sombok-2.3.1/0000775000076400007640000000000012221427042010016 500000000000000sombok-2.3.1/compile0000755000076400007640000001615212221426342011321 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-03-05.13; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free # Software Foundation, Inc. # Written by Tom Tromey . # # This program 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. # # This program 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 this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: sombok-2.3.1/README.ja_JP0000644000076400007640000000333712210017203011574 00000000000000========================================= Sombok - ユニコードテキスト分節パッケージ ========================================= Sombok is Copyright (C) 2009-2013, by Hatuka*nezumi - IKEDA Soji. It is free software; you can redistribute it and/or modify it under the terms of either: a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License". ---- See the COPYING and the ARTISTIC files for more details. これはなにか ============ ソンボク (sombok) ライブラリパッケージは、ユニコード標準附属書14 (UAX #14) に述べる「ユニコード行分割アルゴリズム」を実行できます。附属書11 (UAX #11) で定義する East_Asian_Width 参考特性を考慮して行分割位置を決定 できます。またこのパッケージでは、附属書29 (UAX #29) で述べる「初期の」 書記素クラスタをも実装しています。 ソンボクの入手 ============== ソンボクは次の場所で入手できます。 http://sf.net/projects/linefold/ インストール ============ INSTALL.ja_JP を参照。 名前 ==== 「ソンボク」の名は、朝鮮語で「すぱっと切る」という様子を表す擬態語 (「サ ンバク」も使います) にちなんでいます。クメール語の「ソンボック」や アフリカーンス語の「シャンボク」とは関係ありません。 言語バインディング ================== Perl Unicode-LineBreak: http://search.cpan.org/dist/Unicode-LineBreak/ Python pytextseg: http://pypi.python.org/pypi/pytextseg/ 著者 ==== Hatuka*nezumi - IKEDA Soji . sombok-2.3.1/sombok.spec0000664000076400007640000000473612221427036012121 00000000000000Name: sombok Version: 2.3.1 Release: 1%{?dist} Epoch: 0 License: Artistic or GPLv2+ Group: System Environment/Libraries Summary(ja): ユニコード テキスト分節パッケージ Summary: Unicode Text Segmentation Package Source: sombok-2.3.1.tar.gz URL: http://hatuka.nezumi.nu/repos/sombok/ BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(%{__id_u} -n) BuildRequires: pkgconfig # we edit the Makefile.am's BuildRequires: automake BuildRequires: autoconf BuildRequires: libtool BuildRequires: libthai-devel >= 0.1.9 BuildRequires: doxygen Requires: libthai >= 0.1.9 %description -l ja ソンボク (Sombok) パッケージはユニコード標準附属書14 (UAX #14) で 述べるユニコード行分割アルゴリズムを実行する。行分割位置の決定にあ たって、附属書11 (UAX #11) で定める East_Asian_Width 参考特性を考 慮する。また、附属書29 (UAX #29) で述べる「初期の」書記素クラスタ 分節も実装している。 %description sombok package performs Line Breaking Algorithm described in Unicode Standard Annex #14 (UAX #14). East_Asian_Width informative properties defined by Annex #11 (UAX #11) will be concerned to determin breaking positions. This package also implements ``default'' Grapheme Cluster segmentation described in Annex #29 (UAX #29). %package devel Summary(ja): ユニコード テキスト分節パッケージ Summary: Unicode Text Segmentation package Group: Development/Libraries Requires: %{name} = %{epoch}:%{version}-%{release} Requires: pkgconfig %description devel The sombok-devel package includes the header files and developer docs for the sombok package. Install sombok-devel if you want to develop programs which will use sombok. %prep %setup -q -n %{name}-%{version} %build autoreconf -i -f %configure make [ -e doc/html/search ] && mv doc/html/search doc/html-search %check make check %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT rm $RPM_BUILD_ROOT%{_libdir}/*.la make uninstall-htmlDATA DESTDIR=$RPM_BUILD_ROOT [ -e doc/html-search ] && mv doc/html-search doc/html/search %clean rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-, root, root) %doc README* AUTHORS ARTISTIC COPYING ChangeLog* NEWS TODO %{_libdir}/lib*.so.* %files devel %defattr(-, root, root) %doc README* AUTHORS ARTISTIC COPYING ChangeLog* doc/html NEWS TODO %{_includedir}/* %{_libdir}/lib*.a %{_libdir}/lib*.so %{_libdir}/pkgconfig/* #%{_mandir}/man3/* %changelog sombok-2.3.1/install-sh0000755000076400007640000003325612221426342011753 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for `test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: sombok-2.3.1/include/0000775000076400007640000000000012221427042011441 500000000000000sombok-2.3.1/include/sombok_constants.h0000664000076400007640000000477112221425452015134 00000000000000/* * This file is automatically generated. DON'T EDIT THIS FILE MANUALLY. */ #ifndef _SOMBOK_CONSTANTS_H_ #define LB_BK ((propval_t)0) #define LB_CR ((propval_t)1) #define LB_LF ((propval_t)2) #define LB_NL ((propval_t)3) #define LB_SP ((propval_t)4) #define LB_OP ((propval_t)5) #define LB_CL ((propval_t)6) #define LB_QU ((propval_t)7) #define LB_GL ((propval_t)8) #define LB_NS ((propval_t)9) #define LB_EX ((propval_t)10) #define LB_SY ((propval_t)11) #define LB_IS ((propval_t)12) #define LB_PR ((propval_t)13) #define LB_PO ((propval_t)14) #define LB_NU ((propval_t)15) #define LB_AL ((propval_t)16) #define LB_ID ((propval_t)17) #define LB_IN ((propval_t)18) #define LB_HY ((propval_t)19) #define LB_BA ((propval_t)20) #define LB_BB ((propval_t)21) #define LB_B2 ((propval_t)22) #define LB_CB ((propval_t)23) #define LB_ZW ((propval_t)24) #define LB_CM ((propval_t)25) #define LB_WJ ((propval_t)26) #define LB_H2 ((propval_t)27) #define LB_H3 ((propval_t)28) #define LB_JL ((propval_t)29) #define LB_JV ((propval_t)30) #define LB_JT ((propval_t)31) #define LB_CP ((propval_t)32) #define LB_RI ((propval_t)33) #define LB_SG ((propval_t)34) #define LB_AI ((propval_t)35) #define LB_SA ((propval_t)36) #define LB_XX ((propval_t)37) #define LB_HL ((propval_t)38) #define LB_CJ ((propval_t)39) #define EA_Z ((propval_t)0) #define EA_Na ((propval_t)1) #define EA_N ((propval_t)2) #define EA_A ((propval_t)3) #define EA_W ((propval_t)4) #define EA_H ((propval_t)5) #define EA_F ((propval_t)6) #define EA_ZA ((propval_t)7) #define EA_ZW ((propval_t)8) #define GB_CR ((propval_t)0) #define GB_LF ((propval_t)1) #define GB_Control ((propval_t)2) #define GB_Extend ((propval_t)3) #define GB_Prepend ((propval_t)4) #define GB_SpacingMark ((propval_t)5) #define GB_L ((propval_t)6) #define GB_V ((propval_t)7) #define GB_T ((propval_t)8) #define GB_LV ((propval_t)9) #define GB_LVT ((propval_t)10) #define GB_Other ((propval_t)11) #define GB_Virama ((propval_t)12) #define GB_OtherLetter ((propval_t)13) #define GB_Regional_Indicator ((propval_t)14) #define SC_Common ((propval_t)0) #define SC_Inherited ((propval_t)1) #define SC_Unknown ((propval_t)2) #define SC_Han ((propval_t)3) #define SC_Hangul ((propval_t)4) #define SC_Thai ((propval_t)5) #define SC_Lao ((propval_t)6) #define SC_Myanmar ((propval_t)7) #define SC_Khmer ((propval_t)8) #define SC_Tai_Le ((propval_t)9) #define SC_New_Tai_Lue ((propval_t)10) #define SC_Tai_Tham ((propval_t)11) #define SC_Tai_Viet ((propval_t)12) #define _SOMBOK_CONSTANTS_H_ #endif /* _SOMBOK_CONSTANTS_H_ */ sombok-2.3.1/include/sombok.h.in0000644000076400007640000003023412210015234013423 00000000000000/* * sombok.h - common definitions for Sombok library * * Copyright (C) 2009-2012 by Hatuka*nezumi - IKEDA Soji. * * This file is part of the Sombok Package. This program is free * software; you can redistribute it and/or modify it under the terms of * either the GNU General Public License or the Artistic License, as * specified in the README file. * */ #ifndef _SOMBOK_H_ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #ifdef HAVE_STRINGS_H # include #endif /* HAVE_STRINGS_H */ #define SOMBOK_VERSION "@PACKAGE_VERSION@" @SOMBOK_UNICHAR_T_IS_WCHAR_T@ @SOMBOK_UNICHAR_T_IS_UNSIGNED_INT@ @SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG@ /*** *** Data structure. ***/ /* Primitive types */ /** Unicode character */ typedef @SOMBOK_UNICHAR_T@ unichar_t; /** Character property * @ingroup linebreak */ typedef unsigned char propval_t; /** Unicode string * @ingroup gcstring,linebreak,linebreak_break */ typedef struct { /** Sequence of Unicode character. * Note that NUL character (U+0000) may be contained. * NULL may specify zero-length string. */ unichar_t *str; /** Length of Unicode character sequence. */ size_t len; } unistr_t; /** Grapheme cluster * @ingroup gcstring */ typedef struct { /** Offset of Unicode string. */ size_t idx; /** Length of Unicode string. */ size_t len; /** Calculated number of columns. */ size_t col; /** Line breaking class of grapheme base. */ propval_t lbc; /** Line breaking class of grapheme extender if it is not CM. */ propval_t elbc; /** User-defined flag. */ unsigned char flag; } gcchar_t; /** Property map entry * @ingroup linebreak */ typedef struct { /** Beginning of UCS range. */ unichar_t beg; /** End of UCS range. */ unichar_t end; /** UAX #14 line breaking class. */ propval_t lbc; /** UAX #11 East_Asian_Width property value. */ propval_t eaw; /** UAX #29 Grapheme_Cluster_Break property value. */ propval_t gcb; /** Script property value. */ propval_t scr; } mapent_t; struct linebreak_t; /** Grapheme cluster string. * @ingroup gcstring,linebreak,linebreak_break */ typedef struct { /** Sequence of Unicode characters. * Note that NUL character (U+0000) may be contained. * NULL may specify zero-length string. */ unichar_t *str; /** Number of Unicode characters. */ size_t len; /** Sequence of grapheme clusters. * NULL may specify zero-length grapheme cluster string. */ gcchar_t *gcstr; /** Number of grapheme clusters. */ size_t gclen; /** Next position. */ size_t pos; /** linebreak object. */ struct linebreak_t *lbobj; } gcstring_t; /** @ingroup linebreak * state argument for format callback. */ typedef enum { LINEBREAK_STATE_NONE = 0, LINEBREAK_STATE_SOT, LINEBREAK_STATE_SOP, LINEBREAK_STATE_SOL, LINEBREAK_STATE_LINE, LINEBREAK_STATE_EOL, LINEBREAK_STATE_EOP, LINEBREAK_STATE_EOT, LINEBREAK_STATE_MAX } linebreak_state_t; typedef void (*linebreak_ref_func_t) (void *, int, int); typedef gcstring_t * (*linebreak_format_func_t) (struct linebreak_t *, linebreak_state_t, gcstring_t *); typedef double (*linebreak_sizing_func_t) (struct linebreak_t *, double, gcstring_t *, gcstring_t *, gcstring_t *); typedef gcstring_t * (*linebreak_urgent_func_t) (struct linebreak_t *, gcstring_t *); typedef gcstring_t * (*linebreak_prep_func_t) (struct linebreak_t *, void *, unistr_t *, unistr_t *); typedef gcstring_t * (*linebreak_obs_prep_func_t) (struct linebreak_t *, unistr_t *); /** LineBreak object. * @ingroup linebreak */ typedef struct linebreak_t { /** @name private members *@{*/ /** reference count */ unsigned long int refcount; /** state */ int state; /** buffered line */ unistr_t bufstr; /** spaces trailing to buffered line */ unistr_t bufspc; /** calculated columns of buffered line */ double bufcols; /** unread input */ unistr_t unread; /*@}*/ /** @name public members *@{*/ /** Maximum number of Unicode characters each line may contain. */ size_t charmax; /** Maximum number of columns. */ double colmax; /** Minimum number of columns. */ double colmin; /** User-tailored property map. */ mapent_t *map; size_t mapsiz; /** Newline sequence. */ unistr_t newline; /** Options. See Defines. */ unsigned int options; /** Data argument of callback functions. See utils.c. */ void *format_data; void *sizing_data; void *urgent_data; /** @deprecated Use prep_data instead. */ void *user_data; /** User-defined private data. */ void *stash; /** Format callback function. See utils.c. */ linebreak_format_func_t format_func; /** Sizing callback function. See utils.c. */ linebreak_sizing_func_t sizing_func; /** Urgent breaking callback function. See utils.c. */ linebreak_urgent_func_t urgent_func; /** Preprocessing callback function. See utils.c. * @deprecated Use prep_func instead. */ linebreak_obs_prep_func_t user_func; /** Reference Count function. * This may be called with 3 arguments: ref_func(data, type, action). * data is a (pointer to) external object assinged to stash, format_data, * sizing_data, urgent_data or prep_data members. type is type of object. * according to action being negative or positive, this function should * decrement or increment reference count of object, respectively. */ linebreak_ref_func_t ref_func; /** Number of last error. * may be a value of errno defined in or LINEBREAK_ELONG below. */ int errnum; /*@}*/ /** @name public members addendum on release 2011.1. *@{*/ /** Array of preprocessing callback functions. See utils.c. */ linebreak_prep_func_t * prep_func; /** Data argument of each preprocessing callback functions. See utils.c. */ void **prep_data; /*@}*/ } linebreak_t; /*** *** Constants. ***/ /** General: Unknown property value. */ #define PROP_UNKNOWN ((propval_t)~0) /** @ingroup gcstring * standard flag values. */ #define LINEBREAK_FLAG_PROHIBIT_BEFORE (1) #define LINEBREAK_FLAG_ALLOW_BEFORE (2) #define LINEBREAK_FLAG_BREAK_BEFORE LINEBREAK_FLAG_ALLOW_BEFORE /** @ingroup linebreak * default of charmax member. */ #define LINEBREAK_DEFAULT_CHARMAX (998) /** @ingroup linebreak * bitwise options. */ #define LINEBREAK_OPTION_EASTASIAN_CONTEXT (1) #define LINEBREAK_OPTION_HANGUL_AS_AL (2) #define LINEBREAK_OPTION_LEGACY_CM (4) #define LINEBREAK_OPTION_BREAK_INDENT (8) #define LINEBREAK_OPTION_COMPLEX_BREAKING (16) #define LINEBREAK_OPTION_NONSTARTER_LOOSE (32) #define LINEBREAK_OPTION_VIRAMA_AS_JOINER (64) #define LINEBREAK_OPTION_WIDE_NONSPACING_W (128) /** @ingroup linebreak * internal states. */ #define LINEBREAK_STATE_SOT_FORMAT (-LINEBREAK_STATE_SOT) #define LINEBREAK_STATE_SOP_FORMAT (-LINEBREAK_STATE_SOP) #define LINEBREAK_STATE_SOL_FORMAT (-LINEBREAK_STATE_SOL) /** @ingroup linebreak * type argument of ref_func callback. */ #define LINEBREAK_REF_STASH (0) #define LINEBREAK_REF_FORMAT (1) #define LINEBREAK_REF_SIZING (2) #define LINEBREAK_REF_URGENT (3) #define LINEBREAK_REF_USER (4) #define LINEBREAK_REF_PREP (5) /** @ingroup linebreak * Line breaking action. */ #define LINEBREAK_ACTION_MANDATORY (4) #define LINEBREAK_ACTION_DIRECT (3) #define LINEBREAK_ACTION_INDIRECT (2) #define LINEBREAK_ACTION_PROHIBITED (1) /** @ingroup linebreak * special errnum value. */ #define LINEBREAK_ELONG (-2) #define LINEBREAK_EEXTN (-3) /** @ingroup utf8 * check specs. */ #define SOMBOK_UTF8_CHECK_NONE (0) #define SOMBOK_UTF8_CHECK_MALFORMED (1) #define SOMBOK_UTF8_CHECK_SURROGATE (2) #define SOMBOK_UTF8_CHECK_NONUNICODE (3) /*** *** Public functions, global variables and macros. ***/ extern void linebreak_charprop(linebreak_t *, unichar_t, propval_t *, propval_t *, propval_t *, propval_t *); extern gcstring_t *gcstring_new(unistr_t *, linebreak_t *); extern gcstring_t *gcstring_new_from_utf8(char *, size_t, int, linebreak_t *); extern gcstring_t *gcstring_newcopy(unistr_t *, linebreak_t *); extern gcstring_t *gcstring_copy(gcstring_t *); extern void gcstring_destroy(gcstring_t *); extern gcstring_t *gcstring_append(gcstring_t *, gcstring_t *); extern size_t gcstring_columns(gcstring_t *); extern int gcstring_cmp(gcstring_t *, gcstring_t *); extern gcstring_t *gcstring_concat(gcstring_t *, gcstring_t *); extern gcchar_t *gcstring_next(gcstring_t *); extern void gcstring_setpos(gcstring_t *, int); extern void gcstring_shrink(gcstring_t *, int); extern gcstring_t *gcstring_substr(gcstring_t *, int, int); extern gcstring_t *gcstring_replace(gcstring_t *, int, int, gcstring_t *); #define gcstring_eos(gcstr) \ ((gcstr)->gclen <= (gcstr)->pos) #define gcstring_getpos(gcstr) \ ((gcstr)->pos) extern propval_t gcstring_lbclass(gcstring_t *, int); extern propval_t gcstring_lbclass_ext(gcstring_t *, int); extern linebreak_t *linebreak_new(linebreak_ref_func_t); extern linebreak_t *linebreak_copy(linebreak_t *); extern linebreak_t *linebreak_incref(linebreak_t *); extern void linebreak_destroy(linebreak_t *); extern void linebreak_set_newline(linebreak_t *, unistr_t *); extern void linebreak_set_stash(linebreak_t *, void *); extern void linebreak_set_format(linebreak_t *, linebreak_format_func_t, void *); extern void linebreak_add_prep(linebreak_t *, linebreak_prep_func_t, void *); extern void linebreak_set_sizing(linebreak_t *, linebreak_sizing_func_t, void *); extern void linebreak_set_urgent(linebreak_t *, linebreak_urgent_func_t, void *); extern void linebreak_set_user(linebreak_t *, linebreak_obs_prep_func_t, void *); extern void linebreak_reset(linebreak_t *); extern void linebreak_update_lbclass(linebreak_t *, unichar_t, propval_t); extern void linebreak_clear_lbclass(linebreak_t *); extern void linebreak_update_eawidth(linebreak_t *, unichar_t, propval_t); extern void linebreak_clear_eawidth(linebreak_t *); extern propval_t linebreak_search_lbclass(linebreak_t *, unichar_t); extern propval_t linebreak_search_eawidth(linebreak_t *, unichar_t); extern void linebreak_merge_lbclass(linebreak_t *, linebreak_t *); extern void linebreak_merge_eawidth(linebreak_t *, linebreak_t *); extern propval_t linebreak_eawidth(linebreak_t *, unichar_t); /* obs. */ extern propval_t linebreak_get_lbrule(linebreak_t *, propval_t, propval_t); extern propval_t linebreak_lbclass(linebreak_t *, unichar_t); /* obs. */ extern gcstring_t **linebreak_break(linebreak_t *, unistr_t *); extern gcstring_t **linebreak_break_fast(linebreak_t *, unistr_t *); extern gcstring_t **linebreak_break_from_utf8(linebreak_t *, char *, size_t, int); extern gcstring_t **linebreak_break_partial(linebreak_t *, unistr_t *); extern void linebreak_free_result(gcstring_t **, int); extern propval_t linebreak_lbrule(propval_t, propval_t); /* obs. */ extern const char *linebreak_unicode_version; extern const char *linebreak_propvals_EA[]; extern const char *linebreak_propvals_LB[]; extern const char *linebreak_southeastasian_supported; extern void linebreak_southeastasian_flagbreak(gcstring_t *); extern unistr_t *sombok_decode_utf8(unistr_t *, size_t, const char *, size_t, int); extern char *sombok_encode_utf8(char *, size_t *, size_t, unistr_t *); /*** *** Built-in callbacks for linebreak_t. ***/ extern gcstring_t *linebreak_format_SIMPLE(linebreak_t *, linebreak_state_t, gcstring_t *); extern gcstring_t *linebreak_format_NEWLINE(linebreak_t *, linebreak_state_t, gcstring_t *); extern gcstring_t *linebreak_format_TRIM(linebreak_t *, linebreak_state_t, gcstring_t *); extern gcstring_t *linebreak_prep_URIBREAK(linebreak_t *, void *, unistr_t *, unistr_t *); extern double linebreak_sizing_UAX11(linebreak_t *, double, gcstring_t *, gcstring_t *, gcstring_t *); extern gcstring_t *linebreak_urgent_ABORT(linebreak_t *, gcstring_t *); extern gcstring_t *linebreak_urgent_FORCE(linebreak_t *, gcstring_t *); #define _SOMBOK_H_ #endif /* _SOMBOK_H_ */ #ifdef MALLOC_DEBUG #include "src/mymalloc.h" #endif /* MALLOC_DEBUG */ sombok-2.3.1/tests/0000775000076400007640000000000012221427042011160 500000000000000sombok-2.3.1/tests/14sea_al.t0000775000076400007640000000013012210015235012646 00000000000000#! /bin/sh . tests/lb.sh plan 1 dotest th th.al --no-complex-breaking check_result sombok-2.3.1/tests/03ns.t0000775000076400007640000000031412210015235012044 00000000000000#! /bin/sh . tests/lb.sh plan 3 dotest ja-k ja-k --colmax 72 dotest ja-k ja-k.ns --lbclass 3083=ID,3063=ID,3087=ID,3085=ID --colmax 72 dotest ja-k ja-k.ns --nonstarter LOOSE --colmax 72 check_result sombok-2.3.1/tests/07sea.t0000775000076400007640000000030112210015235012174 00000000000000#! /bin/sh . tests/lb.sh if [ "`./sombok --sea-support`" = "none" ]; then echo "SA word segmentation not supported." exit 77 fi plan 1 dotest th th --complex-breaking check_result sombok-2.3.1/tests/01break.t0000775000076400007640000000022612210015235012510 00000000000000#! /bin/sh . tests/lb.sh plan 13 for lang in ar el fr he ja ja-a ko ko-decomp ru sa vi vi-decomp zh; do dotest $lang $lang done check_result sombok-2.3.1/tests/lb.sh0000664000076400007640000000164612210015235012033 00000000000000# -*- bash -*- OPTIONS="\ --charmax 998 \ --colmin 0 \ --colmax 76 \ --format-func SIMPLE \ --no-hangul-as-al \ --legacy-cm \ --newline \\n \ --sizing-func UAX11 \ --urgent-func NONE \ --virama-as-joiner \ " plan () { PLANNED=$1 SUCCESS=0 } dotest () { in=$1 shift if [ "$in" = "negate" ]; then negate=yes in=$1 shift fi out=$1 shift ./sombok $OPTIONS $* -o tmp.out test-data/$in.in rc=$? if [ $rc = 0 ]; then if [ -e test-data/$out.out ]; then cmp tmp.out test-data/$out.out rc=$? else cat tmp.out > test-data/$out.xxx rc=255 fi fi rm -f tmp.out if [ "$negate" = "yes" ]; then if [ $rc = 0 ]; then rc=255 else rc=0 fi fi if [ $rc = 0 ]; then SUCCESS=`expr $SUCCESS + 1` fi } check_result () { echo "$SUCCESS of $PLANNED subtests passed." if [ "$PLANNED" = "$SUCCESS" ]; then exit 0 else exit 1 fi } sombok-2.3.1/tests/06context.t0000775000076400007640000000033012210015235013111 00000000000000#! /bin/sh . tests/lb.sh plan 2 dotest fr fr.ea --context EASTASIAN dotest fr fr --context EASTASIAN \ --eawidth \ C6=N,D0=N,D8=N,DE-E1=N,E6=N,E8-EA=N,EC-ED=N,F0=N,F2-F3=N,F8-FA=N,FC=N,FE=N check_result sombok-2.3.1/tests/11format.t0000775000076400007640000000112312210015235012712 00000000000000#! /bin/sh . tests/lb.sh plan 6 for lang in fr ja; do ./sombok $OPTIONS --format-func ' ( case "$1" in sot | sop | sol) echo -n " $1>" cat ;; eol | eop | eot) echo "<$1" ;; *) cat ;; esac ) | dd 2>/dev/null' \ -o tmp.out test-data/$lang.in cmp tmp.out test-data/$lang.format.out if [ "$?" = "0" ]; then SUCCESS=`expr $SUCCESS + 1` fi rm -f tmp.out done for lang in fr ko; do dotest $lang "$lang.newline" --format-func NEWLINE done for lang in fr ko; do dotest $lang $lang.newline --format-func TRIM done check_result sombok-2.3.1/tests/05urgent.t0000775000076400007640000000056112210015235012736 00000000000000#! /bin/sh . tests/lb.sh plan 5 dotest ecclesiazusae ecclesiazusae dotest ecclesiazusae ecclesiazusae.ColumnsMax --urgent-func FORCE dotest ecclesiazusae ecclesiazusae.CharactersMax --charmax 79 dotest ecclesiazusae ecclesiazusae.ColumnsMin \ --colmin 7 --colmax 66 --urgent-func FORCE dotest negate ecclesiazusae ecclesiazusae --urgent-func ABORT check_result sombok-2.3.1/tests/09uri.t0000775000076400007640000000024212210015235012231 00000000000000#! /bin/sh . tests/lb.sh plan 2 dotest uri uri.break --colmax 1 --prep-func BREAKURI dotest uri uri.nonbreak --colmax 1 --prep-func NONBREAKURI check_result sombok-2.3.1/tests/02hangul.t0000775000076400007640000000020512210015235012700 00000000000000#! /bin/sh . tests/lb.sh plan 2 dotest ko ko.al --hangul-as-al dotest amitagyong amitagyong --eawidth 302E=Z,302F=Z check_result sombok-2.3.1/config.guess0000775000076400007640000012732012210015236012257 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-02-12' # This file 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 3 of the License, or # (at your option) any later version. # # This program 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 this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:MidnightBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd7.0 exit 0 ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or1k:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: sombok-2.3.1/aclocal.m40000664000076400007640000124172412221426331011611 00000000000000# generated automatically by aclocal 1.11.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, # Inc. # This file 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. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, [m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file 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. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2010 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file 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. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file 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. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file 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. # @configure_input@ # serial 3293 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4]) m4_define([LT_PACKAGE_REVISION], [1.3293]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4' macro_revision='1.3293' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file 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. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program 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 of the License, or # (at your option) any later version. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT]) ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .]) ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software # Foundation, Inc. # # This file 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. # serial 1 # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.6], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.6])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file 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. # serial 1 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file 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. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, # 2010, 2011 Free Software Foundation, Inc. # # This file 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. # serial 12 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file 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. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file 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. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, # Inc. # # This file 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. # serial 1 # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file 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. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file 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. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file 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. # serial 6 # AM_PROG_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi dnl Make sure AC_PROG_CC is never called again, or it will override our dnl setting of CC. m4_define([AC_PROG_CC], [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file 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. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, # Inc. # # This file 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. # serial 1 # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software # Foundation, Inc. # # This file 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. # serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file 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. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file 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. # serial 1 # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file 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. # serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file 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. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR sombok-2.3.1/doc/0000775000076400007640000000000012221427042010563 500000000000000sombok-2.3.1/doc/doxyfile.in0000664000076400007640000000057012210015235012653 00000000000000PROJECT_NAME = @PACKAGE@ PROJECT_NUMBER = @VERSION@ OUTPUT_DIRECTORY = doc OPTIMIZE_OUTPUT_FOR_C = YES EXTRACT_ALL = YES INPUT = lib include FILE_PATTERNS = *.c *.h EXCLUDE_PATTERNS = sombok_constants.h [0-9].[0-9].[0-9].c GENERATE_LATEX = NO GENERATE_MAN = NO ENABLE_PREPROCESSING = NO sombok-2.3.1/sombok.pc.in0000664000076400007640000000032612210015236012156 00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: sombok Description: Unicode Text Segmentation library Version: @VERSION@ Libs: -L${libdir} -lsombok Cflags: -I${includedir} sombok-2.3.1/ChangeLog0000644000076400007640000002447512221426716011531 000000000000002.3.1 2013-09-28 * Update UCD to 6.3.0. * Typo in README.ja_JP. 2.3.1beta1 2013-03-26 * Update UCD to 6.3.0 beta at 2013-03-02. 2.3.0 2012-10-01 * Update UCD to 6.2.0. * data/custom.pl: * data/data.pl: * lib/charprop.c: * lib/gcstring.c: - EA_Z was devided to EA_Z, EA_ZA and EA_ZW which are nonspacing variants of EAW "N", "A" and "W", respectively. Currently, there are no differences between EA_Z and EA_ZA. - VIRAMA_AS_JOINER option had been applicable to versions prior to 6.1.0. 2.3.0gamma1 2012-08-18 * data/Rules-6.2.0beta.txt: * data/constants.pl: * data/custom.pl: * data/data.pl: * lib/charprop.c: * lib/gcstring.c: - Changes based on new drafts of UAX#14/UAX#29 (not yet published). GCB Joiner and After_Joiner and LBC ZJ are withdrawn by UC. As also NonJoiner. 2.3.0beta1 2012-07-14 * Update UCD to 6.2.0beta at Jun 05 2012. * config.guess: * config.sub: - updated. * data/constants.pl: * data/custom.pl: * data/data.pl: * data/makefile: - custom Grapheme_Cluster_Break property value "ZWJ" is divided to "NonJoiner" (U+200C ZERO WIDTH NON-JOINER) and "Joiner" (U+200D ZERO WIDTH JOINER). - Store custom GCB to *.custom file. * lib/charprop.c: - Added ZJ/Joiner case of guessed properties. * lib/gcstring.c: - Updated GCB rules. * Makefile.am: - increase -version-info from 4.5.1 to 4.6.1. 2.2.1 2012-04-11 * lib/gcstring.c: - Treat an isolated hangul jamo as wide, though some of them are assigned EAW neutral (N). cf. the discussion: http://lists.w3.org/Archives/Public/public-i18n-cjk/2011JanMar/thread.html#msg55 * REAME: * README.ja_JP: - About naming. 2.2.0 2012-04-02 * data/constants.pl: * data/data.pl: - NEW: added custom Grapheme_Cluster_Break property value "ZWJ", U+200C ZERO WIDTH JOINER or U+200D ZERO WIDTH NON-JOINER. They are lb:CM and gb:Extend but aren't gc:M so do not affect to Legacy-CM rule. * tests/01break.t: - Added Korean (NFD) test. * tests/03ns.t: - Added loose nonstarter test. 2.2.0beta 2012-03-30 * License Change: - From now on, sombok is distributed under dual license of GPL *and* Artistic License. * configure.ac: - Move variable version informations to files: UNICODE and VERSION. * lib/break.c: - New: linebreak_free_result(): to free result of linebreak_break*() so that implementation mismatches of malloc functions are hidden. * lib/charprop.c: - New: linebreak_merge_lbclass(), linebreak_merge_eawidth(). * lib/gcstring.c: - New: gcstring_lbclass(), gcstring_lbclass_ext(). * lib/linebreak.c: - Specify strict prototypes for some more functions. - linebreak_get_lbrule(): Concern LEGACY_CM and HANGUL_AS_AL options. - Obsoleted: linebreak_lbclass(), linebreak_lbclass_ext(), linebreak_eawidth(). * Makefile.am: - increase -version-info from 4.4.1 to 4.5.1. * Added TODO. 2.1.1 2012-02-25 * config.guess: * config.sub: - updated. * data/Rules-6.1.0.txt: - Correct revision date of UAX#14. * include/sombok.h.in: * lib/linebreak.c: - Specify strict prototypes of callback members of linebreak_t. * lib/break.c: * lib/gcstring.c: - Chg: Now Legacy-CM rule is applied during grapheme cluster breaking. If this rule is disabled, SPACE and succeeding combining mark are not conjoined. - Chg: Morbid hangul syllable block (e.g. ) no longer does not form single grapheme cluster. 2.1.0 2012-02-04 * Release 2.1.0. * Makefile.am: - increase -version-info from 4.3.1 to 4.4.1. * tests/01break.t: - Added Sanskrit (sa) case. 2.1.0beta2 2012-01-29 * data/constants.pl: * data/data.pl: - NEW: added custom Grapheme_Cluster_Break property values "Virama" and "OtherLetter". Former means characters having canonical combining class 9 (Virama) (they are either Extend or SpacingMark). Latter means characters having general category L? and Grapheme_Cluster_Break Other. They are currently limited to Brahmic scripts. * lib/break.c: - NEW: linebreak_break_from_utf8(). - Chg: charmax may be 0 (unlimited). NOTE: this feature has not been tested enough. * lib/gcstring.c: - NEW: gcstring_new_from_utf8(). - NEW: LINEBREAK_OPTION_VIRAMA_AS_JOINER option of linebreak object controls if virama characters behave as consonant joiner. * lib/utf8.c: - NEW: sombok_decode_utf8(), sombok_encode_utf8(). 2.1.0beta 2012-01-01 * Bump up minor version. * Update UCD to 6.1.0beta at Dec 15 2011. * config.sub: * config.guess: - Updated. * data/Rules-6.0.0.txt: - Backport - removed LB25 entries. * lib/break.c: - _break_partial(): Fix: LB25 preprocessing can miss partial input. * lib/charprop.c: * lib/lineBreak.c: * include/sombok.h.in: - New option LINEBREAK_OPTION_NONSTARTER_LOOSE to control strictness of line breaking behavior. If it is set, a newly introduced class CJ will be treated as ID, otherwise NS. * t/02hangul.t: - Unicode 6.1.0beta changed general category of hangul bangjeom (U+302E and U+302F) from Mn to Mc. * [Note] ``Compact array'' became smaller than 8192 entries again. 2.0.6 2011-11-01 Backport from 2.1.0beta; Unicode data version 6.0.0. * data/Rule-6.0.0.txt: - Removed LB25 entries since they are handled by hardcoded preprocessing. * debian/*: - Updated Debian packaging info by which in Debian sid packaged by Emmanuel Bouthenot. * lib/break.c: - Implemented strict LB25 rule. See also UAX#14 8.2 Example 7. - Moved linebreak_lbrule() from linebreak.c to break.c. - For compatibility, linebreak_lbrule() gives results by simplified rules LB1, LB25 and emulates LB9, LB10. * src/sombok.c: - Fix SF.net bug #3400519(1): removed ESTRPIPE which is specific to Linux etc. Reported by Yusuke Muraoka (jbking@sf.net). * tests/01break.t: - Added Hebrew (he) test. * config.guess: * config.sub: - Updated. * COPYING: - Fix CPAN RT#71657: Updated street address of FSF. Reported by Xavier Bachelot. 2.0.6beta2 2011-10-26 * data/Rules-6.1.0beta.txt: - Removed LB25 entries since they are handled by hardcoded preprocessing. * debian/*: - Updated Debian packaging info by which in Debian sid packaged by Emmanuel Bouthenot. * lib/break.c: - Implemented strict LB25 rule. See also UAX#14 8.2 Example 7. - Moved linebreak_lbrule() from linebreak.c to break.c. - For compatibility, linebreak_lbrule() gives results by simplified rules LB1, LB21a & LB25 and emulates LB9, LB10. * lib/linebreak.c: - New: linebreak_get_lbrule(): Resolve AI then apply linebreak_lbrule(). 2.0.6beta1 2011-10-21 * Update UCD to 6.1.0beta at Sep 19. * lib/break.c: - New prep for LB21a about HL (as of UAX#14 rel 27; 6.1.0 draft 2). * lib/charprop.c: - Unassigned codepoints (Cn) are GCB Control, not Other (as of Unicode 6.1.0beta data). * lib/linebreak.c: - linebreak_lbrule(): treat HL as AL. * Makefile.am: - increase -version-info from 4.2.1 to 4.3.1. * src/sombok.c: - Fix SF.net bug #3400519(1): removed ESTRPIPE which is specific to Linux etc. Reported by Yusuke Muraoka (jbking@sf.net). * tests/01break.t: - Added Hebrew (he) test. * config.guess: * config.sub: - Updated. * COPYING: - Fix CPAN RT#71657: Updated street address of FSF. Reported by Xavier Bachelot. * [Note] ``Compact array'' has grown bigger than 8191 entries. Therefore the architectures with 16-bit signed pointer won't be supported anymore. 2.0.5 2011-04-23 * No new features. * New versioning scheme. Suggested by Emmanuel Bouthenot. 2011.5RC Sat Apr 16 2011 * break.c: - Bug Fix: Infinite loop occurs when prep_func generated very long (> charmax) unbreakable line. * utils.c: - linebreak_prep_URIBREAK(): loosely refers RFC3986. 2011.4 Fri Apr 01 2011 * Added Debian packaging info. * Makefile.am: - increase -version-info from 4.1.1 to 4.2.1. - added doc rules. * sombok.h.in: new macro SOMBOK_VERSION. 2011.4RC Sat Mar 26 2011 * charprop.c, break.c: Fix groundless coding denied by honest C compilers (e.g. Solaris cc). * Makefile.am: Added README.ja_JP to EXTRA_DIST. * tests/lb.sh: function definition suitable for both bash and d?ash. 2011.3 Mon Mar 21 2011 * tests/01break.t: Added tests for Vietnamese. 2011.3RC Sun Mar 13 2011 * configure.ac: unichar_t may be unsigned int or unsigned long. * include/sombok.h: now generated from include/sombok.h.in. * Bug Fix: southeastasian.c: th_wbrk() may return 0 _or_ -1 when breaking position was not found. * break.c: some optimizations. 2011.2 Sat Mar 05 2011 * charprop.c: Fix: _add_prop() broke custom map. 2011.2beta1 Sat Feb 26 2011 * charprop.c: New: linebreak_update_lbclass(), linebreak_clear_lbclass(), linebreak_update_eawidth(), linebreak_clear_eawidth(). * tests/03ns.t: added test on custom map. * tests/06context.t: added test on custom map. * Typos: GBC will be GCB. * Chg: update -version-info to 4:1:1. 2011.1 Sat Feb 19 2011 * Chg: update -version-info to 4:0:1. * Doc: some additions. 2011.1RC Fri Feb 11 2011 * break.c: New: ``preprocess'' callback feature. user_func is obsoleted. * utils.c: built-in preprocess callback linebreak_prep_URIBREAK(). * sombok.c: custom format callback using shell script. * Test: added test data for ``make check''. 2011.0 Wed Jan 26 2011 * Brush-up documentations. * ``make check'' feature (incomplete). 2011.0RC Thu Jan 20 2011 * Fix: Eliminated all (maybe, ...hopefully) memory leaks. * Chg: split part of gcstring_substr() to gcstring_replace(). 2011.0b1 Sun Jan 15 2011 * First beta of new major release. Important Changes beside Linebreak 1.x: * 1.x has memory leaks & potantial buffer overrun vulnerabilities. Switching to release 20XX is strongly recommended. * Renamed package name from Linebreak to Sombok. * Major changes on public interface: - urgent_func callback takes two arguments, not five. - sizing_func callback with extra 6th argument was obsoleted. - default sizing method simply returns number of grapheme clusters, not number of columns based on UAX #11. For compatible behavior with 1.x, use linebreak_sizing_UAX11() built-in callback function. - linebreak_break*() functions return array of lines, not single Unicode string. Additinally, elements of array are grapheme cluster strings. About change history until release 1.x see ChangeLog.REL1 file. sombok-2.3.1/ChangeLog.REL10000644000076400007640000000460312210015236012207 000000000000002011.0 Xxx Xxx XX XXXX * RENAMED library name from linebreak to sombok. * Imp: lib/utils.c: Built-in callbacks. * Chg: urgent_func callback takes two arguments, not five. * Chg: sizing_func callback with extra 6th argument was obsoleted. * Chg: default sizing method simply returns number of grapheme cluster, not column number based on UAX11. * Bug Fix: memory leaks & potential buffer overruns in linebreak_break_partial(). 1.10 Sat Jan 01 2011 * Added LINEBREAK_OPTION_BREAK_INDENT option. * Fix SA segmentaion behavior. 1.9 Wed Dec 29 2010 * BUG FIX: broken pair tables. * updated config.sub & config.guess. 1.8.2 Mon Nov 01 2010 * Win32: typo in lib/Makefile.mingw 1.8.1 Mon Oct 11 2010 * update Unicode data to version 6.0.0. * update config.sub & config.guess. * renamed: include/linebreak_defs.h, libinebreak. * added linebreak.spec.in. * removed autogen.sh, linebreak_constants.h.in. * added Makefile's for MinGW (testing). * Chg: added linebreak_propvals_?? variables to tell application layer possible property values. 1.5 Wed Dec 30 2009 * gcstring_t: added new member elbc to describe non-CM LBC at after-side of grapheme cluster. * Chg: On , set LBC of prepend character to lbc member and LBC of X to elbc member. * Use compact array instead of hash table. * update config.sub/config.guess to support Dragonfly etc. * patched config.sub/config.guess to support MidnightBSD. 1.4.p1 Thu Oct 29 2009 * southeastasian.c: Added assert() to check broken libthai. * Fix: break.c: NULL arguments for _sizing() and _urgent_break() may cause segfault in user-defined functions. * Supports pkg-config. * Added documentations. 1.4 Sun Oct 18 2009 * Fix: break.c: Custom function won't be used when user data is NULL. * Imp: linebreak_charprop(): Complement GCB property for characters with tailored LB property. * Fix: gcstring_new(): Too large memory allocation. * New: gcstring_newcopy(). 1.3 Thu Oct 15 2009 * Fix: linebreak_break_partial(): Memory leak saving status. * Fix: linebreak_break_partial(): Fix state transition. * Fix: gcstring_cmp(): Case of comparison with zero length string. * New: linebreak_break() and linebreak_break_fast(). Latter consumes heap size proportional to length of input. linebreak_break() is highly recommended. * Chg: linebreak_break*() get unistr_t * input then return unistr_t *. * break.c: Cleanup codes. sombok-2.3.1/ARTISTIC0000644000076400007640000001446312210015236011105 00000000000000The "Artistic License" Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder as specified below. "Copyright Holder" is whoever is named in the copyright or copyrights for the package. "You" is you, if you're thinking about copying or distributing this Package. "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a. place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as uunet.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b. use the modified Package only within your corporation or organization. c. rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d. make other distribution arrangements with the Copyright Holder. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a. distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b. accompany the distribution with the machine-readable source of the Package with your modifications. c. give non-standard executables non-standard names, and clearly document the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d. make other distribution arrangements with the Copyright Holder. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. You may embed this Package's interpreter within an executable of yours (by linking); this shall be construed as a mere form of aggregation, provided that the complete Standard Version of the interpreter is so embedded. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. If such scripts or library files are aggregated with this Package via the so-called "undump" or "unexec" methods of producing a binary executable image, then distribution of such an image shall neither be construed as a distribution of this Package nor shall it fall under the restrictions of Paragraphs 3 and 4, provided that you do not represent such an executable image as a Standard Version of this Package. C subroutines (or comparably compiled subroutines in other languages) supplied by you and linked into this Package in order to emulate subroutines and variables of the language defined by this Package shall not be considered part of this Package, but are the equivalent of input as in Paragraph 6, provided these subroutines do not change the language in any way that would cause it to fail the regression tests for the language. Aggregation of this Package with a commercial distribution is always permitted provided that the use of this Package is embedded; that is, when no overt attempt is made to make this Package's interfaces visible to the end user of the commercial distribution. Such use shall not be construed as a distribution of this Package. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End sombok-2.3.1/ltmain.sh0000755000076400007640000105021612221426332011565 00000000000000 # libtool (GNU libtool) 2.4 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION=2.4 TIMESTAMP="" package_revision=1.3293 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 sombok-2.3.1/NEWS0000664000076400007640000000061312210015236010431 000000000000002.3.0 201X-XX-XX - Supports Unicode 6.2.0. 2.2.0 2012-04-02 - License Change: From now on, sombok is distributed under dual license of GPL *and* Artistic License. 2.1.0 2011-02-04 - Supports Unicode 6.1.0. 2.0.5 2011-04-23 - Bug Fix: Infinite loop occurs when prep_func generated very long (> charmax) unbreakable line. - linebreak_prep_URIBREAK(): loosely refers RFC3986. sombok-2.3.1/INSTALL0000664000076400007640000000076212210015236010770 00000000000000================= Installing Sombok ================= Prerequisites ============= * ANSI C compiler, for example GCC C Compiler, is required. * Optionally, libthai package need to be installed to support Thai word segmentation: http://linux.thai.net/projects/libthai In this case pkg-config is also required. Install ======= Extract tarball then run as follows: ./configure [options...] make make check make install ``./configure --help`` will show available options. sombok-2.3.1/Makefile.am0000664000076400007640000000246612210017214011774 00000000000000lib_LTLIBRARIES = libsombok.la libsombok_la_SOURCES = lib/break.c lib/charprop.c lib/gcstring.c \ lib/linebreak.c lib/utf8.c lib/utils.c \ lib/southeastasian.c lib/@UNICODE_VERSION@.c if MALLOC_DEBUG libsombok_la_SOURCES += src/mymalloc.c endif libsombok_la_CFLAGS = -I. -Iinclude @LIBTHAI_CFLAGS@ libsombok_la_LDFLAGS = -version-info 4:6:1 @LIBTHAI_LIBS@ include_HEADERS = include/sombok_constants.h nodist_include_HEADERS = include/sombok.h noinst_HEADERS = src/mymalloc.h pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = sombok.pc check_PROGRAMS = sombok sombok_SOURCES = src/sombok.c if !HAVE_STRERROR sombok_SOURCES += src/strerror.c endif if !HAVE_STRCASECMP sombok_SOURCES += src/strcasecmp.c endif sombok_CFLAGS = -Iinclude sombok_LDFLAGS = sombok_LDADD = libsombok.la TESTS = tests/*.t if ENABLE_DOC html_DATA = doc/html/* MOSTLYCLEANFILES = stamp-html $(html_DATA) $(html_DATA): stamp-html stamp-html: doc/doxyfile $(include_HEADERS) $(nodist_include_HEADERS) \ $(libsombok_la_SOURCES) $(DOXYGEN) doc/doxyfile touch stamp-html endif EXTRA_DIST = sombok.spec debian/* \ lib/?.?.?.c \ tests/lb.sh $(TESTS) test-data/* \ data/makefile data/constants.pl data/custom.pl data/data.pl \ data/*.custom data/Rules-*.txt data/LBCLASSES \ ARTISTIC ChangeLog.REL1 INSTALL.ja_JP README.ja_JP \ UNICODE VERSION sombok-2.3.1/depcomp0000755000076400007640000005064312221426342011323 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2012-03-27.16; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. # This program 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. # This program 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 this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # A tabulation character. tab=' ' # A newline character. nl=' ' if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' "$nl" < "$tmpdepfile" | ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependent.h'. # Do two passes, one to just change these to # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. # However on # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\': # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... # tcc 0.9.26 (FIXME still under development at the moment of writing) # will emit a similar output, but also prepend the continuation lines # with horizontal tabulation characters. "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form 'foo.o: dependent.h', # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. # Do two passes, one to just change these to # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ < "$tmpdepfile" > "$depfile" sed ' s/[ '"$tab"'][ '"$tab"']*/ /g s/^ *// s/ *\\*$// s/^[^:]*: *// /^$/d /:$/d s/$/ :/ ' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test "$stat" = 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' "$nl" < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: sombok-2.3.1/sombok.spec.in0000664000076400007640000000474612210015236012520 00000000000000Name: sombok Version: @VERSION@ Release: 1%{?dist} Epoch: 0 License: Artistic or GPLv2+ Group: System Environment/Libraries Summary(ja): ユニコード テキスト分節パッケージ Summary: Unicode Text Segmentation Package Source: sombok-@VERSION@.tar.gz URL: http://hatuka.nezumi.nu/repos/sombok/ BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(%{__id_u} -n) BuildRequires: pkgconfig # we edit the Makefile.am's BuildRequires: automake BuildRequires: autoconf BuildRequires: libtool BuildRequires: libthai-devel >= 0.1.9 BuildRequires: doxygen Requires: libthai >= 0.1.9 %description -l ja ソンボク (Sombok) パッケージはユニコード標準附属書14 (UAX #14) で 述べるユニコード行分割アルゴリズムを実行する。行分割位置の決定にあ たって、附属書11 (UAX #11) で定める East_Asian_Width 参考特性を考 慮する。また、附属書29 (UAX #29) で述べる「初期の」書記素クラスタ 分節も実装している。 %description sombok package performs Line Breaking Algorithm described in Unicode Standard Annex #14 (UAX #14). East_Asian_Width informative properties defined by Annex #11 (UAX #11) will be concerned to determin breaking positions. This package also implements ``default'' Grapheme Cluster segmentation described in Annex #29 (UAX #29). %package devel Summary(ja): ユニコード テキスト分節パッケージ Summary: Unicode Text Segmentation package Group: Development/Libraries Requires: %{name} = %{epoch}:%{version}-%{release} Requires: pkgconfig %description devel The sombok-devel package includes the header files and developer docs for the sombok package. Install sombok-devel if you want to develop programs which will use sombok. %prep %setup -q -n %{name}-%{version} %build autoreconf -i -f %configure make [ -e doc/html/search ] && mv doc/html/search doc/html-search %check make check %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT rm $RPM_BUILD_ROOT%{_libdir}/*.la make uninstall-htmlDATA DESTDIR=$RPM_BUILD_ROOT [ -e doc/html-search ] && mv doc/html-search doc/html/search %clean rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-, root, root) %doc README* AUTHORS ARTISTIC COPYING ChangeLog* NEWS TODO %{_libdir}/lib*.so.* %files devel %defattr(-, root, root) %doc README* AUTHORS ARTISTIC COPYING ChangeLog* doc/html NEWS TODO %{_includedir}/* %{_libdir}/lib*.a %{_libdir}/lib*.so %{_libdir}/pkgconfig/* #%{_mandir}/man3/* %changelog sombok-2.3.1/UNICODE0000644000076400007640000000000612213270270010741 000000000000006.3.0 sombok-2.3.1/test-data/0000775000076400007640000000000012221427042011704 500000000000000sombok-2.3.1/test-data/ja.plain.out0000664000076400007640000000170112210015244014043 00000000000000第1条 すべての人間は、生まれながらにして自由であり、かつ、尊厳と権利とについて平等 である。人間は、理性と良心とを授けられており、互いに同胞の精神をもって行動し なければならない。 第2条 すべて人は、人種、皮膚の色、性、言語、宗教、政治上その他の意見、国民的もしく は社会的出身、財産、門地その他の地位又はこれに類するいかなる事由による差別を も受けることなく、この宣言に掲げるすべての権利と自由とを享有することができ る。 さらに、個人の属する国又は地域が独立国であると、信託統治地域であると、非自治 地域であると、又は他のなんらかの主権制限の下にあるとを問わず、その国又は地域 の政治上、管轄上又は国際上の地位に基ずくいかなる差別もしてはならない。 sombok-2.3.1/test-data/fr.wrap.out0000664000076400007640000000160212210015244013726 00000000000000 Article premier Tous les êtres humains naissent libres et égaux en dignité et en droits. Ils sont doués de raison et de conscience et doivent agir les uns envers les autres dans un esprit de fraternité. Article 2 Chacun peut se prévaloir de tous les droits et de toutes les libertés proclamés dans la présente Déclaration, sans distinction aucune, notamment de race, de couleur, de sexe, de langue, de religion, d'opinion politique ou de toute autre opinion, d'origine nationale ou sociale, de fortune, de naissance ou de toute autre situation. De plus, il ne sera fait aucune distinction fondée sur le statut politique, juridique ou international du pays ou du territoire dont une personne est ressortissante, que ce pays ou territoire soit indépendant, sous tutelle, non autonome ou soumis à une limitation quelconque de souveraineté. sombok-2.3.1/test-data/fr.fixed.out0000664000076400007640000000153212210015244014056 00000000000000Article premier Tous les êtres humains naissent libres et égaux en dignité et en droits. Ils sont doués de raison et de conscience et doivent agir les uns envers les autres dans un esprit de fraternité. Article 2 Chacun peut se prévaloir de tous les droits et de toutes les libertés proclamés dans la présente Déclaration, sans distinction aucune, notamment de race, de couleur, de sexe, de langue, de religion, d'opinion politique ou de toute autre opinion, d'origine nationale ou sociale, de fortune, de naissance ou de toute autre situation. De plus, il ne sera fait aucune distinction fondée sur le statut politique, juridique ou international du pays ou du territoire dont une personne est ressortissante, que ce pays ou territoire soit indépendant, sous tutelle, non autonome ou soumis à une limitation quelconque de souveraineté. sombok-2.3.1/test-data/fr.ea.out0000664000076400007640000000153612210015244013350 00000000000000Article premier Tous les êtres humains naissent libres et égaux en dignité et en droits. Ils sont doués de raison et de conscience et doivent agir les uns envers les autres dans un esprit de fraternité. Article 2 Chacun peut se prévaloir de tous les droits et de toutes les libertés proclamés dans la présente Déclaration, sans distinction aucune, notamment de race, de couleur, de sexe, de langue, de religion, d'opinion politique ou de toute autre opinion, d'origine nationale ou sociale, de fortune, de naissance ou de toute autre situation. De plus, il ne sera fait aucune distinction fondée sur le statut politique, juridique ou international du pays ou du territoire dont une personne est ressortissante, que ce pays ou territoire soit indépendant, sous tutelle, non autonome ou soumis à une limitation quelconque de souveraineté. sombok-2.3.1/test-data/ru.in0000664000076400007640000000273512210015244012604 00000000000000Статья 1 Все люди рождаются свободными и равными в своем достоинстве и правах. Они наделены разумом и совестью и должны поступать в отношении друг друга в духе братства. Статья 2 Каждый человек должен обладать всеми правами и всеми свободами, провозглашенными настоящей Декларацией, без какого бы то ни было различия, как-то в отношении расы, цвета кожи, пола, языка, религии, политических или иных убеждений, национального или социального происхождения, имущественного, сословного или иного положения. Кроме того, не должно проводиться никакого различия на основе политического, правового или международного статуса страны или территории, к которой человек принадлежит, независимо от того, является ли эта территория независимой, подопечной, несамоуправляющейся или как-либо иначе ограниченной в своем суверенитете. sombok-2.3.1/test-data/sa.in0000664000076400007640000000343312210015244012555 00000000000000अनुच्छेद: 1 सर्वे मानवा: स्वतन्त्रा: समुत्पन्ना: वर्तन्ते अपि च, गौरवदृशा अधिकारदृशा च समाना: एव वर्तन्ते। एते सर्वे चेतना-तर्क-शक्तिभ्यां सुसम्पन्ना: सन्ति। अपि च, सर्वेऽपि बन्धुत्व-भावनया परस्परं व्यवहरन्तु। अनुच्छेद: 2 अस्यां अभिघोषणायां निर्दिष्टा: सर्वेऽपि अधिकारा: सर्वाण्यपि च स्वातन्त्र्याणि, विनैव जाति-वर्ण-लिंग-भाषा-धर्म-राजनीतिक-तदितर-मन्तव्यादि-भेदम्, राष्ट्रीयं सामाजिकाधारं सम्पज्जन्म-तदितर स्तरञ्च अविगणय्य, अधिगन्तुं सर्वोऽपि जन: प्रभवति। एतदतिरिक्तम्, कस्याश्चिदपि प्रभुसत्ताया: नियमनान्तर्गतम्, स्वाधीनस्य आत्मप्रशासनेतर-तन्त्रस्य, न्यासितन्त्रस्य वा वास्तव्यस्य प्रदेशस्य देशस्य वा राजनीतिक-सीमा-निबन्धनान्ताराष्ट्रिक-स्तराधारेण न कोऽपि भेदो विधास्यते। sombok-2.3.1/test-data/ja-a.out0000664000076400007640000000340412210015244013161 00000000000000第1条(だいいちじょう) すべての人間(にんげん)は、生(う)まれながらにして自由(じゆう)であり、かつ、尊 厳(そんげん)と権利(けんり)とについて平等(びょうどう)である。人間(にんげん) は、理性(りせい)と良心(りょうしん)とを授(さず)けられており、互(たが)いに同胞 (どうほう)の精神(せいしん)をもって行動(こうどう)しなければならない。 第2条(だいにじょう) すべて人(ひと)は、人種(じんしゅ)、皮膚(ひふ)の色(いろ)、性(せい)、言語(げん ご)、宗教(しゅうきょう)、政治上(せいじじょう)その他(た)の意見(いけん)、国民 的(こくみんてき)もしくは社会的(しゃかいてき)出身(しゅっしん)、財産(ざいさ ん)、門地(もんち)その他(た)の地位(ちい)又(また)はこれに類(るい)するいかなる 事由(じゆう)による差別(さべつ)をも受(う)けることなく、この宣言(せんげん)に掲 (かか)げるすべての権利(けんり)と自由(じゆう)とを享有(きょうゆう)することがで きる。 さらに、個人(こじん)の属(ぞく)する国(くに)又(また)は地域(ちいき)が独立国(ど くりつこく)であると、信託統治地域(しんたくとうちちいき)であると、非自治地域 (ひじちちいき)であると、又(また)は他(ほか)のなんらかの主権制限(しゅけんせい げん)の下(もと)にあるとを問(と)わず、その国(くに)又(また)は地域(ちいき)の政 治上(せいじじょう)、管轄上(かんかつじょう)又(また)は国際上(こくさいじょう)の 地位(ちい)に基(もと)ずくいかなる差別(さべつ)もしてはならない。 sombok-2.3.1/test-data/ja.wrap.out0000664000076400007640000000174712210015244013723 00000000000000 第1条 すべての人間は、生まれながらにして自由であり、かつ、尊厳と権利とにつ いて平等である。人間は、理性と良心とを授けられており、互いに同胞の精神を もって行動しなければならない。 第2条 すべて人は、人種、皮膚の色、性、言語、宗教、政治上その他の意見、国民 的もしくは社会的出身、財産、門地その他の地位又はこれに類するいかなる事由 による差別をも受けることなく、この宣言に掲げるすべての権利と自由とを享有 することができる。 さらに、個人の属する国又は地域が独立国であると、信託統治地域である と、非自治地域であると、又は他のなんらかの主権制限の下にあるとを問わず、 その国又は地域の政治上、管轄上又は国際上の地位に基ずくいかなる差別もして はならない。 sombok-2.3.1/test-data/ko.newline.out0000664000076400007640000000151512210015244014423 00000000000000제 1 조 모든 인간은 태어날 때부터 자유로우며 그 존엄과 권리에 있어 동등하다. 인간은 천부적으로 이성과 양심을 부여받았으며 서로 형제애의 정신으로 행동하여야 한 다. 제 2 조 모든 사람은 인종, 피부색, 성, 언어, 종교, 정치적 또는 기타의 견해, 민족적 또 는 사회적 출신, 재산, 출생 또는 기타의 신분과 같은 어떠한 종류의 차별이 없 이, 이 선언에 규정된 모든 권리와 자유를 향유할 자격이 있다. 더 나아가 개인이 속한 국가 또는 영토가 독립국, 신탁통치지역, 비자치지역이거 나 또는 주권에 대한 여타의 제약을 받느냐에 관계없이, 그 국가 또는 영토의 정 치적, 법적 또는 국제적 지위에 근거하여 차별이 있어서는 아니된다. sombok-2.3.1/test-data/ja.format.out0000664000076400007640000000216612210015244014236 00000000000000 sot>第1条すべての人間は、生まれながらにして自由であり、かつ、尊厳と権利とについて平等である。人間は、理性と良心とを授けられており、互いに同胞の精神をもって行動しなければならない。第2条すべて人は、人種、皮膚の色、性、言語、宗教、政治上その他の意見、国民的もしくは社会的出身、財産、門地その他の地位又はこれに類するいかなる事由による差別をも受けることなく、この宣言に掲げるすべての権利と自由とを享有することができる。さらに、個人の属する国又は地域が独立国であると、信託統治地域であると、非自治地域であると、又は他のなんらかの主権制限の下にあるとを問わず、その国又は地域の政治上、管轄上又は国際上の地位に基ずくいかなる差別もしてはならない。 Thou villainous ill-breeding spongy dizzy-eyed > reeky elf-skinned pigeon-egg! >> Thou artless swag-bellied milk-livered >> dismal-dreaming idle-headed scut! >>> Thou errant folly-fallen spleeny reeling-ripe >>> unmuzzled ratsbane! >>>> Henceforth, the coding style is to be strictly >>>> enforced, including the use of only upper case. >>>>> I've noticed a lack of adherence to the coding >>>>> styles, of late. >>>>>> Any complaints? ---- `Take some more tea,' the March Hare said to Alice, very earnestly. `I've had nothing yet,' Alice replied in an offended tone, `so I can't take more.' `You mean you can't take LESS,' said the Hatter: `it's very easy to take MORE than nothing.' ---- >>>Take some more tea. >>I've had nothing yet, so I can't take more. >You mean you can't take LESS, it's very easy to take >MORE than nothing. sombok-2.3.1/test-data/ja.flowed.out0000664000076400007640000000172212210015244014223 00000000000000第1条 すべての人間は、生まれながらにして自由であり、かつ、尊厳と権利とについて平等 である。人間は、理性と良心とを授けられており、互いに同胞の精神をもって行動し なければならない。 第2条 すべて人は、人種、皮膚の色、性、言語、宗教、政治上その他の意見、国民的もしく は社会的出身、財産、門地その他の地位又はこれに類するいかなる事由による差別を も受けることなく、この宣言に掲げるすべての権利と自由とを享有することができ る。 さらに、個人の属する国又は地域が独立国であると、信託統治地域であると、非自治 地域であると、又は他のなんらかの主権制限の下にあるとを問わず、その国又は地域 の政治上、管轄上又は国際上の地位に基ずくいかなる差別もしてはならない。 sombok-2.3.1/test-data/quotes.in0000664000076400007640000000146412210015244013474 00000000000000> Thou villainous ill-breeding spongy dizzy-eyed reeky elf-skinned pigeon-egg! >> Thou artless swag-bellied milk-livered dismal-dreaming idle-headed scut! >>> Thou errant folly-fallen spleeny reeling-ripe unmuzzled ratsbane! >>>> Henceforth, the coding style is to be strictly enforced, including the use of only upper case. >>>>> I've noticed a lack of adherence to the coding styles, of late. >>>>>> Any complaints? ---- `Take some more tea,' the March Hare said to Alice, very earnestly. `I've had nothing yet,' Alice replied in an offended tone, `so I can't take more.' `You mean you can't take LESS,' said the Hatter: `it's very easy to take MORE than nothing.' ---- >>> Take some more tea. >> I've had nothing yet, so I can't take more. > You mean you can't take LESS, it's very easy to take MORE than nothing. sombok-2.3.1/test-data/he.out0000664000076400007640000000172212210015244012746 00000000000000סעיף א. כל בני אדם נולדו בני חורין ושווים בערכם ובזכויותיהם. כולם חוננו בתבונה ובמצפון, לפיכך חובה עליהם לנהוג איש ברעהו ברוח של אחוה. סעיף ב. כל אדם זכאי לזכויות ולחרויות שנקבעו בהכרזש זו ללא הפליה כלשהיא מטעמי גזע, צבע, מין, לשון, דח, דעה פוליטית או דעה בבעיות אחרות, בגלל מוצא לאומי או חברתי, קנין, לידה או מעמד אחר. גדולה מזו, לא יופלה אדם על פי מעמדה המדיני, על פי סמכותה או על פי מעמדה הבינלאומי של המדינה או הארץ שאליה הוא שייך, דין שהארץ היא עצמאית, ובין שהיא נתונה לנאמנות, בין שהיא נטולת שלטון עצמי ובין שריבונותה מוגבלת כל הגבלה אחרת. sombok-2.3.1/test-data/ja-k.out0000664000076400007640000000240312210015244013171 00000000000000だいいちじょう すべてのにんげんは、うまれながらにしてじゆうであり、かつ、そんげんとけん りとについてびょうどうである。にんげんは、りせいとりょうしんとをさずけら れており、たがいにどうほうのせいしんをもってこうどうしなければならない。 だいにじょう すべてひとは、じんしゅ、ひふのいろ、せい、げんご、しゅうきょう、せいじ じょうそのたのいけん、こくみんてきもしくはしゃかいてきしゅっしん、ざいさ ん、もんちそのたのちいまたはこれにるいするいかなるじゆうによるさべつをも うけることなく、このせんげんにかかげるすべてのけんりとじゆうとをきょうゆ うすることができる。 さらに、こじんのぞくするくにまたはちいきがどくりつこくであると、しんたく とうちちいきであると、ひじちちいきであると、またはほかのなんらかのしゅけ んせいげんのもとにあるとをとわず、そのくにまたはちいきのせいじじょう、か んかつじょうまたはこくさいじょうのちいにもとずくいかなるさべつもしてはな らない。 sombok-2.3.1/test-data/ja.fixed.out0000664000076400007640000000170612210015244014044 00000000000000第1条 すべての人間は、生まれながらにして自由であり、かつ、尊厳と権利とについて平等 である。人間は、理性と良心とを授けられており、互いに同胞の精神をもって行動し なければならない。 第2条 すべて人は、人種、皮膚の色、性、言語、宗教、政治上その他の意見、国民的もしく は社会的出身、財産、門地その他の地位又はこれに類するいかなる事由による差別を も受けることなく、この宣言に掲げるすべての権利と自由とを享有することができ る。 さらに、個人の属する国又は地域が独立国であると、信託統治地域であると、非自治 地域であると、又は他のなんらかの主権制限の下にあるとを問わず、その国又は地域 の政治上、管轄上又は国際上の地位に基ずくいかなる差別もしてはならない。 sombok-2.3.1/test-data/fr.flowed.out0000664000076400007640000000156112210015244014241 00000000000000Article premier Tous les êtres humains naissent libres et égaux en dignité et en droits. Ils sont doués de raison et de conscience et doivent agir les uns envers les autres dans un esprit de fraternité. Article 2 Chacun peut se prévaloir de tous les droits et de toutes les libertés proclamés dans la présente Déclaration, sans distinction aucune, notamment de race, de couleur, de sexe, de langue, de religion, d'opinion politique ou de toute autre opinion, d'origine nationale ou sociale, de fortune, de naissance ou de toute autre situation. De plus, il ne sera fait aucune distinction fondée sur le statut politique, juridique ou international du pays ou du territoire dont une personne est ressortissante, que ce pays ou territoire soit indépendant, sous tutelle, non autonome ou soumis à une limitation quelconque de souveraineté. sombok-2.3.1/test-data/amitagyong.out0000664000076400007640000001127712210015244014517 00000000000000佛說阿彌陁經 …… ᄯᅩ〮舍利弗아〮極樂國土애〮衆生나니〮ᄂᆞᆫ〮다〯阿鞞跋致니〮 [阿鞞跋致ᄂᆞᆫ〮믈리〮그우디〮아니〮타혼〮마〯리 니〮므르디〮아니〮호〮미〮세〯ᄠᅳ〮디〮잇ᄂᆞ니〮空位예〮드〮러〮므르디〮아니〮홈〮과〮假行애〮드〮러〮므르디〮아니〮홈〮과〮 中念에〮드〮러〮므르디〮아니〮홈〮괘〮라〮ᄒᆞᆫ念도〮相업〯수미〮空이〮니〮긔〯般若ᅟᅵ니〮두〯生死ᄅᆞᆯ〮여흴〮ᄊᆡ〮니라〮몯〯 ᄀᆞᄌᆞᆫ〮法업〯수미〮假ᅟᅵ니〮假ᄂᆞᆫ〮빌〯씨〮니〮本來업〯슨〮거긔〮法이슈〮미〮비룸〮ᄀᆞᆮ〮ᄒᆞ니〮라〮긔〯解脫이〮니〮ᄒᆡᇰ〯뎌〮기〮 ᄀᆞᄌᆞᆯ〮ᄊᆡ〮니라〮ᄒᆞ나토〮아니〮며〮다ᄅᆞ도〮아니〮호〮미〮中이〮니〮긔〯法身이〮니〮眞實ᄉᅠ境界ᄅᆞᆯ〮證ᄒᆞᆯᄊᆡ〮니라〮두〯 生死ᄂᆞᆫ〮分段生死와〮變易生死ᅟᅵ니〮分ᄋᆞᆫ〮제여고ᇝ〮가〮니니〮목수〯믜〮그지〮라〮段ᄋᆞᆫ〮그티니〮모〮ᄆᆡ〮얼구리〮 라〮變易ᄋᆞᆫ〮고텨〮ᄃᆞ욀씨〮니〮因이〮올ᄆᆞ〮며〮果ᅟᅵ밧골씨〮라〮] 그中에〮一生補處ᅟᅵ해〯이셔〮 [一生ᄋᆞᆫ〮ᄒᆞᆫ 번날씨〮니〮ᄒᆞᆫ번다ᄅᆞᆫ地位예〮난後ᅟᅵ면〮妙覺地位예〮오ᄅᆞᆯ씨〮니〮等覺位ᄅᆞᆯ〮니르니〮라〮等覺애셔〮金剛 乾慧예〮ᄒᆞᆫ번나면〮後에〮妙覺애〮오ᄅᆞᄂᆞ니〮나다〮ᄒᆞ〮논마〯ᄅᆞᆫ〮사라〮나다〮ᄒᆞ〮논마〯리〮아니〮라〮부텻지븨〮나 다〮ᄒᆞ〮논ᄠᅳ〮디라〮補ᄂᆞᆫ〮보탈〮씨〮오〮處ᄂᆞᆫ〮고〮디니〮부텻고대〮와〮보탈〮씨〮라〮] 그數ᅟᅵ甚히〮하〮算數ᄋᆡ〮能히〮 아로ᇙ〮디〮아니〮오〮오직〮無量無邊阿僧祇로〮닐오ᇙ〮디〮니라〮 舍利弗아〮衆生이〮드르닌〮뎌〮나라〮해〮나고〮져〮發願호ᇙ〮디니〮엇〯뎨〮어뇨〮이〮ᄀᆞ〮ᄐᆞᆫᄆᆞᆺ〮어〮딘사〯ᄅᆞᆷᄃᆞᆯ〮콰〮ᄒᆞᆫᄃᆡ〮 모ᄃᆞ〮릴ᄊᆡ〮니라〮 舍利弗아〮죠〯고맛〮善根福德因緣으〮로〮뎌〮나라〮해〮나디〮몯〯ᄒᆞ〮ᄂᆞ니〮舍利弗아〮ᄒᆞ〮다가〮善男子善女人 이〮 [善男子ᄂᆞᆫ〮이든〮남지니〮오〮善女人ᄋᆞᆫ〮이든〮겨〯지비라〮] 阿彌陀佛닐오〮ᄆᆞᆯ〮듣ᄌᆞᆸ〯고〮일후〮믈〮디니〮 ᅀᆞᄫᅡ〮ᄒᆞᆯ리〮어나〮이트〮리〮어나〮사ᄋᆞ〮리〮어나〮나ᄋᆞ〮리〮어나〮다쐐〮어나〮여쐐〮어나〮닐웨〮어나〮ᄒᆞᆫᄆᆞᅀᆞᄆᆞ〮로〮 섯디〮아니〮ᄒᆞ면〮그사〯ᄅᆞ미〮ᄒᆞ마〮命終ᄒᆞᆯ쩨阿彌陀佛이〮聖衆ᄃᆞᆯ콰〮로〮알ᄑᆡ〮와〮뵈시〮리니〮이〮사〯ᄅᆞᆷ命終 ᄒᆞᇙ제ᄆᆞᅀᆞ미〮가ᄭᆞ〮디〮아니〮ᄒᆞ〮야〮즉〮재阿彌陀佛極樂國土애〮가〮나리〮니〮舍利弗아〮내〮이〮런利ᄅᆞᆯ〮볼ᄊᆡ〮 이〮마〯ᄅᆞᆯ〮ᄒᆞ〮노니〮衆生이〮이〮말〯드르니〮ᄂᆞᆫ〮뎌〮나라〮해〮나고〮져〮發願호ᇙ〮디〮니라〮 舍利弗아〮내〮이〮제阿彌陀佛ᄉᅠ不可思議功德利ᄅᆞᆯ〮 [不可思議ᄂᆞᆫ〮어루ᄉᆞ라ᇰ-ᄒᆞ〮야〮議論몯〯ᄒᆞᆯ씨〮 니〮ᄀᆞ자ᇰ〮하〯ᄆᆞᆯ〮니르니〮라〮] 讚歎ᄒᆞ〮ᅀᆞᄫᅩᆷ〮ᄀᆞᆮ〮ᄒᆞ〮야〮東方애〮도〮阿閦鞞佛須彌相佛大須彌佛須彌光佛 妙音佛이〮ᄀᆞ〮ᄐᆞ신〮恒河沙數諸佛이〮 [恒河沙ᄂᆞᆫ〮恒河앳〮몰애〮니〮부톄〯ᄌᆞ조〮이〮믌〮ᄀᆞ〯ᅀᅢ〮와〮說法ᄒᆞ〮실 ᄊᆡ〮만〯ᄒᆞᆫ數를〮이〮몰애〮로〮가ᄌᆞᆯ〮벼〮니르시〮더〮니라〮] 各各그나라〮해〮廣長舌相ᄋᆞᆯ〮내〯샤〮 [廣長舌相ᄋᆞᆫ〮 넙고〮긴〯혓야ᇰᄌᆡ〮라〮] 三千大千世界ᄅᆞᆯ〮다〯두프샤〮 [一千나라〮히〮小千界오〮一千小千界中千界오〮 一千中千界大千界라〮] 誠實ᄒᆞᆫ마〯ᄅᆞᆯ〮니르시〮ᄂᆞ니〮 [誠實ᄋᆞᆫ거〯츠디〮아니〮ᄒᆞ〮야〮實ᄒᆞᆯ씨〯라〮] 너희 衆生ᄃᆞᆯ〮히〮이〮不可思議功德일ᄏᆞ라〮讚歎ᄒᆞ〮샤ᄆᆞᆯ〮信호ᇙ〮디니〮一切諸佛護念ᄒᆞ〮시ᇙ〮經이〮라〮 [護念ᄋᆞᆫ〮 護持ᄒᆞ〮야〮닛디〮아니〮ᄒᆞᆯ씨〮라〮] …… Source: 韓國書誌學會 (1993). “佛說阿彌陁經”, 季刊書誌學報 10. sombok-2.3.1/test-data/ja.out0000664000076400007640000000170112210015244012741 00000000000000第1条 すべての人間は、生まれながらにして自由であり、かつ、尊厳と権利とについて平等 である。人間は、理性と良心とを授けられており、互いに同胞の精神をもって行動し なければならない。 第2条 すべて人は、人種、皮膚の色、性、言語、宗教、政治上その他の意見、国民的もしく は社会的出身、財産、門地その他の地位又はこれに類するいかなる事由による差別を も受けることなく、この宣言に掲げるすべての権利と自由とを享有することができ る。 さらに、個人の属する国又は地域が独立国であると、信託統治地域であると、非自治 地域であると、又は他のなんらかの主権制限の下にあるとを問わず、その国又は地域 の政治上、管轄上又は国際上の地位に基ずくいかなる差別もしてはならない。 sombok-2.3.1/test-data/ja-k.ns.out0000664000076400007640000000240312210015244013610 00000000000000だいいちじょう すべてのにんげんは、うまれながらにしてじゆうであり、かつ、そんげんとけん りとについてびょうどうである。にんげんは、りせいとりょうしんとをさずけら れており、たがいにどうほうのせいしんをもってこうどうしなければならない。 だいにじょう すべてひとは、じんしゅ、ひふのいろ、せい、げんご、しゅうきょう、せいじじ ょうそのたのいけん、こくみんてきもしくはしゃかいてきしゅっしん、ざいさ ん、もんちそのたのちいまたはこれにるいするいかなるじゆうによるさべつをも うけることなく、このせんげんにかかげるすべてのけんりとじゆうとをきょうゆ うすることができる。 さらに、こじんのぞくするくにまたはちいきがどくりつこくであると、しんたく とうちちいきであると、ひじちちいきであると、またはほかのなんらかのしゅけ んせいげんのもとにあるとをとわず、そのくにまたはちいきのせいじじょう、か んかつじょうまたはこくさいじょうのちいにもとずくいかなるさべつもしてはな らない。 sombok-2.3.1/test-data/quotes.fixed.out0000664000076400007640000000147012210015244014770 00000000000000> Thou villainous ill-breeding spongy dizzy-eyed reeky elf-skinned pigeon-egg! >> Thou artless swag-bellied milk-livered dismal-dreaming idle-headed scut! >>> Thou errant folly-fallen spleeny reeling-ripe unmuzzled ratsbane! >>>> Henceforth, the coding style is to be strictly enforced, including the use of only upper case. >>>>> I've noticed a lack of adherence to the coding styles, of late. >>>>>> Any complaints? ---- `Take some more tea,' the March Hare said to Alice, very earnestly. `I've had nothing yet,' Alice replied in an offended tone, `so I can't take more.' `You mean you can't take LESS,' said the Hatter: `it's very easy to take MORE than nothing.' ---- >>> Take some more tea. >> I've had nothing yet, so I can't take more. > You mean you can't take LESS, it's very easy to take MORE than nothing. sombok-2.3.1/test-data/vi-decomp.out0000664000076400007640000000225012210015244014232 00000000000000Điều 1: Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền. Mọi con người đều được tạo hoá ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình bằng hữu. Điều 2: Mọi người đều được hưởng tất cả những quyền và tự do nêu trong Bản tuyên ngôn này, không phân biệt chủng tộc, màu da, giới tính, ngôn ngữ, tôn giáo, quan điểm chính trị hay các quan điểm khác, nguồn gốc quốc gia hay xã hội, tài sản, thành phần xuất thân hay địa vị xã hội. Ngoài ra, cũng không có bất cứ sự phân biệt nào về địa vị chính trị, pháp quyền hay quốc tế của quốc gia hay lãnh thổ mà một người xuất thân, cho dù quốc gia hay lãnh thổ đó được độc lập, được đặt dưới chế độ uỷ trị, chưa tự quản hay có chủ quyền hạn chế. sombok-2.3.1/test-data/el.out0000664000076400007640000000305312210015244012751 00000000000000ΑΡΘΡΟ 1 'Ολοι οι άνθρωποι γεννιούνται ελεύθεροι και ίσοι στην αξιοπρέπεια και τα δικαιώματα. Είναι προικισμένοι με λογική και συνείδηση, και οφείλουν να συμπεριφέρονται μεταξύ τους με πνεύμα αδελφοσύνης. ΑΡΘΡΟ 2 Κάθε άνθρωπος δικαιούται να επικαλείται όλα τα δικαιώματα και όλες τις ελευθερίες που προκηρύσσει η παρούσα Διακήρυξη, χωρίς καμία απολύτως διάκριση, ειδικότερα ως προς τη φυλή, το χρώμα, το φύλο, τη γλώσσα, τις θρησκείες, τις πολιτικές ή οποιεσδήποτε άλλες πεποιθήσεις, την εθνική ή κοινωνική καταγωγή, την περιουσία, τη γέννηση ή οποιαδήποτε άλλη κατάσταση. Δεν θα μπορεί ακόμα να γίνεται καμία διάκριση εξαιτίας του πολιτικού, νομικού ή διεθνούς καθεστώτος της χώρας από την οποία προέρχεται κανείς, είτε πρόκειται για χώρα ή εδαφική περιοχή ανεξάρτητη, υπό κηδεμονία ή υπεξουσία, ή που βρίσκεται υπό οποιονδήποτε άλλον περιορισμό κυριαρχίας. sombok-2.3.1/test-data/ja-k.in0000664000076400007640000000237112210015244012774 00000000000000だいいちじょう すべてのにんげんは、うまれながらにしてじゆうであり、かつ、そんげんとけんりとについてびょうどうである。にんげんは、りせいとりょうしんとをさずけられており、たがいにどうほうのせいしんをもってこうどうしなければならない。 だいにじょう すべてひとは、じんしゅ、ひふのいろ、せい、げんご、しゅうきょう、せいじじょうそのたのいけん、こくみんてきもしくはしゃかいてきしゅっしん、ざいさん、もんちそのたのちいまたはこれにるいするいかなるじゆうによるさべつをもうけることなく、このせんげんにかかげるすべてのけんりとじゆうとをきょうゆうすることができる。 さらに、こじんのぞくするくにまたはちいきがどくりつこくであると、しんたくとうちちいきであると、ひじちちいきであると、またはほかのなんらかのしゅけんせいげんのもとにあるとをとわず、そのくにまたはちいきのせいじじょう、かんかつじょうまたはこくさいじょうのちいにもとずくいかなるさべつもしてはならない。 sombok-2.3.1/test-data/vi.out0000664000076400007640000000174612210015244012776 00000000000000Điều 1: Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền. Mọi con người đều được tạo hoá ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình bằng hữu. Điều 2: Mọi người đều được hưởng tất cả những quyền và tự do nêu trong Bản tuyên ngôn này, không phân biệt chủng tộc, màu da, giới tính, ngôn ngữ, tôn giáo, quan điểm chính trị hay các quan điểm khác, nguồn gốc quốc gia hay xã hội, tài sản, thành phần xuất thân hay địa vị xã hội. Ngoài ra, cũng không có bất cứ sự phân biệt nào về địa vị chính trị, pháp quyền hay quốc tế của quốc gia hay lãnh thổ mà một người xuất thân, cho dù quốc gia hay lãnh thổ đó được độc lập, được đặt dưới chế độ uỷ trị, chưa tự quản hay có chủ quyền hạn chế. sombok-2.3.1/test-data/fr.plain.out0000664000076400007640000000152512210015244014064 00000000000000Article premier Tous les êtres humains naissent libres et égaux en dignité et en droits. Ils sont doués de raison et de conscience et doivent agir les uns envers les autres dans un esprit de fraternité. Article 2 Chacun peut se prévaloir de tous les droits et de toutes les libertés proclamés dans la présente Déclaration, sans distinction aucune, notamment de race, de couleur, de sexe, de langue, de religion, d'opinion politique ou de toute autre opinion, d'origine nationale ou sociale, de fortune, de naissance ou de toute autre situation. De plus, il ne sera fait aucune distinction fondée sur le statut politique, juridique ou international du pays ou du territoire dont une personne est ressortissante, que ce pays ou territoire soit indépendant, sous tutelle, non autonome ou soumis à une limitation quelconque de souveraineté. sombok-2.3.1/test-data/uri.nonbreak.out0000664000076400007640000000077112210015244014752 00000000000000http://www.library.my.town.va.us/Catalogue/76523471236%2Fwen44--4.98 http://info.cern.ch:8000/imaginary/test http://www.myu.edu/org/admin/people#andy http://info.my.org/AboutUs/Index/Phonebook?dobbins http://info.cern.ch/RDB/EMP?*%20where%20name%%3Ddobbins Yes, Jim, I found it under but you can probably pick it up from . Note the warning in . sombok-2.3.1/test-data/fr.format.out0000664000076400007640000000205512210015244014250 00000000000000 sot>Article premierTous les êtres humains naissent libres et égaux en dignité et endroits. Ils sont doués de raison et de conscience et doivent agirles uns envers les autres dans un esprit de fraternité.Article 2Chacun peut se prévaloir de tous les droits et de toutes leslibertés proclamés dans la présente Déclaration, sans distinctionaucune, notamment de race, de couleur, de sexe, de langue, dereligion, d'opinion politique ou de toute autre opinion, d'originenationale ou sociale, de fortune, de naissance ou de toute autresituation.De plus, il ne sera fait aucune distinction fondée sur le statutpolitique, juridique ou international du pays ou du territoire dontune personne est ressortissante, que ce pays ou territoire soitindépendant, sous tutelle, non autonome ou soumis à une limitationquelconque de souveraineté. but you can probably pick it up from . Note the warning in . sombok-2.3.1/test-data/quotes.plain.out0000664000076400007640000000146412210015244014777 00000000000000> Thou villainous ill-breeding spongy dizzy-eyed reeky elf-skinned pigeon- egg! >> Thou artless swag-bellied milk-livered dismal-dreaming idle-headed scut! >>> Thou errant folly-fallen spleeny reeling-ripe unmuzzled ratsbane! >>>> Henceforth, the coding style is to be strictly enforced, including the use of only upper case. >>>>> I've noticed a lack of adherence to the coding styles, of late. >>>>>> Any complaints? ---- `Take some more tea,' the March Hare said to Alice, very earnestly. `I've had nothing yet,' Alice replied in an offended tone, `so I can't take more.' `You mean you can't take LESS,' said the Hatter: `it's very easy to take MORE than nothing.' ---- >>> Take some more tea. >> I've had nothing yet, so I can't take more. > You mean you can't take LESS, it's very easy to take MORE than nothing. sombok-2.3.1/test-data/sa.out0000664000076400007640000000344112210015244012755 00000000000000अनुच्छेद: 1 सर्वे मानवा: स्वतन्त्रा: समुत्पन्ना: वर्तन्ते अपि च, गौरवदृशा अधिकारदृशा च समाना: एव वर्तन्ते। एते सर्वे चेतना-तर्क-शक्तिभ्यां सुसम्पन्ना: सन्ति। अपि च, सर्वेऽपि बन्धुत्व-भावनया परस्परं व्यवहरन्तु। अनुच्छेद: 2 अस्यां अभिघोषणायां निर्दिष्टा: सर्वेऽपि अधिकारा: सर्वाण्यपि च स्वातन्त्र्याणि, विनैव जाति- वर्ण-लिंग-भाषा-धर्म-राजनीतिक-तदितर-मन्तव्यादि-भेदम्, राष्ट्रीयं सामाजिकाधारं सम्पज्जन्म- तदितर स्तरञ्च अविगणय्य, अधिगन्तुं सर्वोऽपि जन: प्रभवति। एतदतिरिक्तम्, कस्याश्चिदपि प्रभुसत्ताया: नियमनान्तर्गतम्, स्वाधीनस्य आत्मप्रशासनेतर-तन्त्रस्य, न्यासितन्त्रस्य वा वास्तव्यस्य प्रदेशस्य देशस्य वा राजनीतिक-सीमा-निबन्धनान्ताराष्ट्रिक- स्तराधारेण न कोऽपि भेदो विधास्यते। sombok-2.3.1/test-data/ecclesiazusae.ColumnsMax.out0000664000076400007640000000273612210015244017265 00000000000000ΑΡΙΣΤΟΦΑΝΟΥΣ ΕΚΚΛΗΣΙΑΖΟΥΣΑΙ ... ΧΟ. ὦ, ὦ, ὥρα δή, ὦ φίλαι γυναῖκες, εἴπερ μέλλομεν τὸ χρῆμα δρᾶν, ἐπὶ τὸ δεῖπνον ὑπανακινεῖν. Κρητικῶς οὖν τὼ πόδε καὶ σὺ κίνει. ΗΜ. τοῦτο δρῶ. ΧΟ. καὶ τάσδε νῦν λαγαρὰς τοῖν σκελίσκοιν τὸν ῥυθμόν. τάχα γὰρ ἔπεισι λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιολιπαρομελιτοκατακεχ υμενοκιχλεπικοσσυφοφαττοπεριστεραλεκτρυονοπτοπιφαλλιδοκιγκλοπελειολαγῳοσιραι οβαφητραγανοπτερυγών. σὺ δὲ ταῦτ᾿ ἀκροασάμενος ταχὺ καὶ ταχέως λαβὲ τρύβλιον. εἶτα κόνισαι λαβὼν λέκιθον, ἵν᾿ ἐπιδειπνῇς. ΗΜ. ἀλλὰ λαιμάττουσί που. ΧΟ. αἴρεσθ᾿ ἄνω, ἰαί, εὐαί, δειπνήσομεν, εὐοῖ, εὐαί, εὐαί, ὡς ἐπὶ νίκῃ. εὐαί εὐαί εὐαί εὐαί. Source: Wilhelm Dindorf (ed.) (1846). “Poetarum scenicorum Graecorum: Aeschyli, Sophoclis, Euripidis, et Aristophanis fabulae quae exstant omnes, cum deperditarum fabularum fragmentis necnon caeteris eorum scriptis”, J. Abrams et C. Richards. pp. 707f. sombok-2.3.1/test-data/ecclesiazusae.ColumnsMin.out0000664000076400007640000000274012210015244017256 00000000000000ΑΡΙΣΤΟΦΑΝΟΥΣ ΕΚΚΛΗΣΙΑΖΟΥΣΑΙ ... ΧΟ. ὦ, ὦ, ὥρα δή, ὦ φίλαι γυναῖκες, εἴπερ μέλλομεν τὸ χρῆμα δρᾶν, ἐπὶ τὸ δεῖπνον ὑπανακινεῖν. Κρητικῶς οὖν τὼ πόδε καὶ σὺ κίνει. ΗΜ. τοῦτο δρῶ. ΧΟ. καὶ τάσδε νῦν λαγαρὰς τοῖν σκελίσκοιν τὸν ῥυθμόν. τάχα γὰρ ἔπεισι λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιολι παρομελιτοκατακεχυμενοκιχλεπικοσσυφοφαττοπεριστεραλεκτρυονοπτοπιφα λλιδοκιγκλοπελειολαγῳοσιραιοβαφητραγανοπτερυγών. σὺ δὲ ταῦτ᾿ ἀκροασάμενος ταχὺ καὶ ταχέως λαβὲ τρύβλιον. εἶτα κόνισαι λαβὼν λέκιθον, ἵν᾿ ἐπιδειπνῇς. ΗΜ. ἀλλὰ λαιμάττουσί που. ΧΟ. αἴρεσθ᾿ ἄνω, ἰαί, εὐαί, δειπνήσομεν, εὐοῖ, εὐαί, εὐαί, ὡς ἐπὶ νίκῃ. εὐαί εὐαί εὐαί εὐαί. Source: Wilhelm Dindorf (ed.) (1846). “Poetarum scenicorum Graecorum: Aeschyli, Sophoclis, Euripidis, et Aristophanis fabulae quae exstant omnes, cum deperditarum fabularum fragmentis necnon caeteris eorum scriptis”, J. Abrams et C. Richards. pp. 707f. sombok-2.3.1/test-data/ko-decomp.in0000664000076400007640000000354612210015244014035 00000000000000제 1 조 모든 인간은 태어날 때부터 자유로우며 그 존엄과 권리에 있어 동등하다. 인간은 천부적으로 이성과 양심을 부여받았으며 서로 형제애의 정신으로 행동하여야 한다. 제 2 조 모든 사람은 인종, 피부색, 성, 언어, 종교, 정치적 또는 기타의 견해, 민족적 또는 사회적 출신, 재산, 출생 또는 기타의 신분과 같은 어떠한 종류의 차별이 없이, 이 선언에 규정된 모든 권리와 자유를 향유할 자격이 있다. 더 나아가 개인이 속한 국가 또는 영토가 독립국, 신탁통치지역, 비자치지역이거나 또는 주권에 대한 여타의 제약을 받느냐에 관계없이, 그 국가 또는 영토의 정치적, 법적 또는 국제적 지위에 근거하여 차별이 있어서는 아니된다. sombok-2.3.1/test-data/vi-decomp.in0000664000076400007640000000224012210015244014030 00000000000000Điều 1: Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền. Mọi con người đều được tạo hoá ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình bằng hữu. Điều 2: Mọi người đều được hưởng tất cả những quyền và tự do nêu trong Bản tuyên ngôn này, không phân biệt chủng tộc, màu da, giới tính, ngôn ngữ, tôn giáo, quan điểm chính trị hay các quan điểm khác, nguồn gốc quốc gia hay xã hội, tài sản, thành phần xuất thân hay địa vị xã hội. Ngoài ra, cũng không có bất cứ sự phân biệt nào về địa vị chính trị, pháp quyền hay quốc tế của quốc gia hay lãnh thổ mà một người xuất thân, cho dù quốc gia hay lãnh thổ đó được độc lập, được đặt dưới chế độ uỷ trị, chưa tự quản hay có chủ quyền hạn chế. sombok-2.3.1/test-data/uri.in0000664000076400007640000000074512210015244012754 00000000000000http://www.library.my.town.va.us/Catalogue/76523471236%2Fwen44--4.98 http://info.cern.ch:8000/imaginary/test http://www.myu.edu/org/admin/people#andy http://info.my.org/AboutUs/Index/Phonebook?dobbins http://info.cern.ch/RDB/EMP?*%20where%20name%%3Ddobbins Yes, Jim, I found it under but you can probably pick it up from . Note the warning in . sombok-2.3.1/test-data/fr.out0000664000076400007640000000153612210015244012764 00000000000000Article premier Tous les êtres humains naissent libres et égaux en dignité et en droits. Ils sont doués de raison et de conscience et doivent agir les uns envers les autres dans un esprit de fraternité. Article 2 Chacun peut se prévaloir de tous les droits et de toutes les libertés proclamés dans la présente Déclaration, sans distinction aucune, notamment de race, de couleur, de sexe, de langue, de religion, d'opinion politique ou de toute autre opinion, d'origine nationale ou sociale, de fortune, de naissance ou de toute autre situation. De plus, il ne sera fait aucune distinction fondée sur le statut politique, juridique ou international du pays ou du territoire dont une personne est ressortissante, que ce pays ou territoire soit indépendant, sous tutelle, non autonome ou soumis à une limitation quelconque de souveraineté. sombok-2.3.1/test-data/th.out0000664000076400007640000000327012210015244012765 00000000000000ข้อ 1 มนุษย์ทั้งปวงเกิดมามีอิสระและเสมอภาคกันในศักดิ์ศรีและสิทธิ ต่างในตนมีเหตุผลและมโนธรรม และควร ปฏิบัติต่อกันด้วยจิตวิญญาณแห่งภราดรภาพ ข้อ 2 ทุกคนย่อมมีสิทธิและอิสรภาพทั้งปวงตามที่กําหนดไว้ในปฏิญญานี้ โดยปราศจากการแบ่งแยกไม่ ว่าชนิดใด อาทิ เชื้อชาติ ผิว เพศ ภาษา ศาสนา ความคิดเห็นทางการเมืองหรือทางอื่น พื้นเพทางชาติหรือ สังคม ทรัพย์สิน การเกิด หรือสถานะอื่น นอกเหนือจากนี้ จะไม่มีการแบ่งแยกใด บนพื้นฐานของสถานะ ทางการเมือง ทางกฎหมาย หรือทางการ ระหว่างประเทศของประเทศ หรือดินแดนที่บุคคลสังกัด ไม่ว่า ดินแดนนี้จะเป็นเอกราช อยู่ในความพิทักษ์ มิได้ปกครองตนเอง หรืออยู่ภายใต้การจํากัดอธิปไตยอื่นใด sombok-2.3.1/test-data/quotes.norm.in0000664000076400007640000000146312210015244014445 00000000000000> Thou villainous ill-breeding spongy dizzy-eyed reeky elf-skinned pigeon-egg! >> Thou artless swag-bellied milk-livered dismal-dreaming idle-headed scut! >>> Thou errant folly-fallen spleeny reeling-ripe unmuzzled ratsbane! >>>> Henceforth, the coding style is to be strictly enforced, including the use of only upper case. >>>>> I've noticed a lack of adherence to the coding styles, of late. >>>>>> Any complaints? ---- `Take some more tea,' the March Hare said to Alice, very earnestly. `I've had nothing yet,' Alice replied in an offended tone, `so I can't take more.' `You mean you can't take LESS,' said the Hatter: `it's very easy to take MORE than nothing.' ---- >>> Take some more tea. >> I've had nothing yet, so I can't take more. > You mean you can't take LESS, it's very easy to take MORE than nothing. sombok-2.3.1/test-data/zh.out0000664000076400007640000000112512210015244012770 00000000000000第一条 人人生而自由,在尊严和权利上一律平等。他们赋有理性和良心,并应以兄弟关系的精神 相对待。 第二条 人人有资格享有本宣言所载的一切权利和自由,不分种族、肤色、性别、语言、宗教、 政治或其他见解、国籍或社会出身、财产、出生或其他身分等任何区别。 并且不得因一人所属的国家或领土的政治的、行政的或者国际的地位之不同而有所区 别,无论该领土是独立领土、托管领土、非自治领土或者处于其他任何主权受限制的情 况之下。 sombok-2.3.1/test-data/ecclesiazusae.out0000664000076400007640000000273512210015244015177 00000000000000ΑΡΙΣΤΟΦΑΝΟΥΣ ΕΚΚΛΗΣΙΑΖΟΥΣΑΙ ... ΧΟ. ὦ, ὦ, ὥρα δή, ὦ φίλαι γυναῖκες, εἴπερ μέλλομεν τὸ χρῆμα δρᾶν, ἐπὶ τὸ δεῖπνον ὑπανακινεῖν. Κρητικῶς οὖν τὼ πόδε καὶ σὺ κίνει. ΗΜ. τοῦτο δρῶ. ΧΟ. καὶ τάσδε νῦν λαγαρὰς τοῖν σκελίσκοιν τὸν ῥυθμόν. τάχα γὰρ ἔπεισι λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιολιπαρομελιτοκατακεχυμενοκιχλεπικοσσυφοφαττοπεριστεραλεκτρυονοπτοπιφαλλιδοκιγκλοπελειολαγῳοσιραιοβαφητραγανοπτερυγών. σὺ δὲ ταῦτ᾿ ἀκροασάμενος ταχὺ καὶ ταχέως λαβὲ τρύβλιον. εἶτα κόνισαι λαβὼν λέκιθον, ἵν᾿ ἐπιδειπνῇς. ΗΜ. ἀλλὰ λαιμάττουσί που. ΧΟ. αἴρεσθ᾿ ἄνω, ἰαί, εὐαί, δειπνήσομεν, εὐοῖ, εὐαί, εὐαί, ὡς ἐπὶ νίκῃ. εὐαί εὐαί εὐαί εὐαί. Source: Wilhelm Dindorf (ed.) (1846). “Poetarum scenicorum Graecorum: Aeschyli, Sophoclis, Euripidis, et Aristophanis fabulae quae exstant omnes, cum deperditarum fabularum fragmentis necnon caeteris eorum scriptis”, J. Abrams et C. Richards. pp. 707f. sombok-2.3.1/test-data/amitagyong.in0000664000076400007640000001125012210015244014305 00000000000000佛說阿彌陁經 …… ᄯᅩ〮舍利弗아〮極樂國土애〮衆生나니〮ᄂᆞᆫ〮다〯阿鞞跋致니〮 [阿鞞跋致ᄂᆞᆫ〮믈리〮그우디〮아니〮타혼〮마〯리니〮므르디〮아니〮호〮미〮세〯ᄠᅳ〮디〮잇ᄂᆞ니〮空位예〮드〮러〮므르디〮아니〮홈〮과〮假行애〮드〮러〮므르디〮아니〮홈〮과〮中念에〮드〮러〮므르디〮아니〮홈〮괘〮라〮ᄒᆞᆫ念도〮相업〯수미〮空이〮니〮긔〯般若ᅟᅵ니〮두〯生死ᄅᆞᆯ〮여흴〮ᄊᆡ〮니라〮몯〯ᄀᆞᄌᆞᆫ〮法업〯수미〮假ᅟᅵ니〮假ᄂᆞᆫ〮빌〯씨〮니〮本來업〯슨〮거긔〮法이슈〮미〮비룸〮ᄀᆞᆮ〮ᄒᆞ니〮라〮긔〯解脫이〮니〮ᄒᆡᇰ〯뎌〮기〮ᄀᆞᄌᆞᆯ〮ᄊᆡ〮니라〮ᄒᆞ나토〮아니〮며〮다ᄅᆞ도〮아니〮호〮미〮中이〮니〮긔〯法身이〮니〮眞實ᄉᅠ境界ᄅᆞᆯ〮證ᄒᆞᆯᄊᆡ〮니라〮두〯生死ᄂᆞᆫ〮分段生死와〮變易生死ᅟᅵ니〮分ᄋᆞᆫ〮제여고ᇝ〮가〮니니〮목수〯믜〮그지〮라〮段ᄋᆞᆫ〮그티니〮모〮ᄆᆡ〮얼구리〮라〮變易ᄋᆞᆫ〮고텨〮ᄃᆞ욀씨〮니〮因이〮올ᄆᆞ〮며〮果ᅟᅵ밧골씨〮라〮] 그中에〮一生補處ᅟᅵ해〯이셔〮 [一生ᄋᆞᆫ〮ᄒᆞᆫ번날씨〮니〮ᄒᆞᆫ번다ᄅᆞᆫ地位예〮난後ᅟᅵ면〮妙覺地位예〮오ᄅᆞᆯ씨〮니〮等覺位ᄅᆞᆯ〮니르니〮라〮等覺애셔〮金剛乾慧예〮ᄒᆞᆫ번나면〮後에〮妙覺애〮오ᄅᆞᄂᆞ니〮나다〮ᄒᆞ〮논마〯ᄅᆞᆫ〮사라〮나다〮ᄒᆞ〮논마〯리〮아니〮라〮부텻지븨〮나다〮ᄒᆞ〮논ᄠᅳ〮디라〮補ᄂᆞᆫ〮보탈〮씨〮오〮處ᄂᆞᆫ〮고〮디니〮부텻고대〮와〮보탈〮씨〮라〮] 그數ᅟᅵ甚히〮하〮算數ᄋᆡ〮能히〮아로ᇙ〮디〮아니〮오〮오직〮無量無邊阿僧祇로〮닐오ᇙ〮디〮니라〮 舍利弗아〮衆生이〮드르닌〮뎌〮나라〮해〮나고〮져〮發願호ᇙ〮디니〮엇〯뎨〮어뇨〮이〮ᄀᆞ〮ᄐᆞᆫᄆᆞᆺ〮어〮딘사〯ᄅᆞᆷᄃᆞᆯ〮콰〮ᄒᆞᆫᄃᆡ〮모ᄃᆞ〮릴ᄊᆡ〮니라〮 舍利弗아〮죠〯고맛〮善根福德因緣으〮로〮뎌〮나라〮해〮나디〮몯〯ᄒᆞ〮ᄂᆞ니〮舍利弗아〮ᄒᆞ〮다가〮善男子善女人이〮 [善男子ᄂᆞᆫ〮이든〮남지니〮오〮善女人ᄋᆞᆫ〮이든〮겨〯지비라〮] 阿彌陀佛닐오〮ᄆᆞᆯ〮듣ᄌᆞᆸ〯고〮일후〮믈〮디니〮ᅀᆞᄫᅡ〮ᄒᆞᆯ리〮어나〮이트〮리〮어나〮사ᄋᆞ〮리〮어나〮나ᄋᆞ〮리〮어나〮다쐐〮어나〮여쐐〮어나〮닐웨〮어나〮ᄒᆞᆫᄆᆞᅀᆞᄆᆞ〮로〮섯디〮아니〮ᄒᆞ면〮그사〯ᄅᆞ미〮ᄒᆞ마〮命終ᄒᆞᆯ쩨阿彌陀佛이〮聖衆ᄃᆞᆯ콰〮로〮알ᄑᆡ〮와〮뵈시〮리니〮이〮사〯ᄅᆞᆷ命終ᄒᆞᇙ제ᄆᆞᅀᆞ미〮가ᄭᆞ〮디〮아니〮ᄒᆞ〮야〮즉〮재阿彌陀佛極樂國土애〮가〮나리〮니〮舍利弗아〮내〮이〮런利ᄅᆞᆯ〮볼ᄊᆡ〮이〮마〯ᄅᆞᆯ〮ᄒᆞ〮노니〮衆生이〮이〮말〯드르니〮ᄂᆞᆫ〮뎌〮나라〮해〮나고〮져〮發願호ᇙ〮디〮니라〮 舍利弗아〮내〮이〮제阿彌陀佛ᄉᅠ不可思議功德利ᄅᆞᆯ〮 [不可思議ᄂᆞᆫ〮어루ᄉᆞ라ᇰ-ᄒᆞ〮야〮議論몯〯ᄒᆞᆯ씨〮니〮ᄀᆞ자ᇰ〮하〯ᄆᆞᆯ〮니르니〮라〮] 讚歎ᄒᆞ〮ᅀᆞᄫᅩᆷ〮ᄀᆞᆮ〮ᄒᆞ〮야〮東方애〮도〮阿閦鞞佛須彌相佛大須彌佛須彌光佛妙音佛이〮ᄀᆞ〮ᄐᆞ신〮恒河沙數諸佛이〮 [恒河沙ᄂᆞᆫ〮恒河앳〮몰애〮니〮부톄〯ᄌᆞ조〮이〮믌〮ᄀᆞ〯ᅀᅢ〮와〮說法ᄒᆞ〮실ᄊᆡ〮만〯ᄒᆞᆫ數를〮이〮몰애〮로〮가ᄌᆞᆯ〮벼〮니르시〮더〮니라〮] 各各그나라〮해〮廣長舌相ᄋᆞᆯ〮내〯샤〮 [廣長舌相ᄋᆞᆫ〮넙고〮긴〯혓야ᇰᄌᆡ〮라〮] 三千大千世界ᄅᆞᆯ〮다〯두프샤〮 [一千나라〮히〮小千界오〮一千小千界中千界오〮一千中千界大千界라〮] 誠實ᄒᆞᆫ마〯ᄅᆞᆯ〮니르시〮ᄂᆞ니〮 [誠實ᄋᆞᆫ거〯츠디〮아니〮ᄒᆞ〮야〮實ᄒᆞᆯ씨〯라〮] 너희衆生ᄃᆞᆯ〮히〮이〮不可思議功德일ᄏᆞ라〮讚歎ᄒᆞ〮샤ᄆᆞᆯ〮信호ᇙ〮디니〮一切諸佛護念ᄒᆞ〮시ᇙ〮經이〮라〮 [護念ᄋᆞᆫ〮護持ᄒᆞ〮야〮닛디〮아니〮ᄒᆞᆯ씨〮라〮] …… Source: 韓國書誌學會 (1993). “佛說阿彌陁經”, 季刊書誌學報 10. sombok-2.3.1/test-data/ru.out0000664000076400007640000000274712210015244013010 00000000000000Статья 1 Все люди рождаются свободными и равными в своем достоинстве и правах. Они наделены разумом и совестью и должны поступать в отношении друг друга в духе братства. Статья 2 Каждый человек должен обладать всеми правами и всеми свободами, провозглашенными настоящей Декларацией, без какого бы то ни было различия, как-то в отношении расы, цвета кожи, пола, языка, религии, политических или иных убеждений, национального или социального происхождения, имущественного, сословного или иного положения. Кроме того, не должно проводиться никакого различия на основе политического, правового или международного статуса страны или территории, к которой человек принадлежит, независимо от того, является ли эта территория независимой, подопечной, несамоуправляющейся или как-либо иначе ограниченной в своем суверенитете. sombok-2.3.1/test-data/ecclesiazusae.in0000664000076400007640000000272512210015244014775 00000000000000ΑΡΙΣΤΟΦΑΝΟΥΣ ΕΚΚΛΗΣΙΑΖΟΥΣΑΙ ... ΧΟ. ὦ, ὦ, ὥρα δή, ὦ φίλαι γυναῖκες, εἴπερ μέλλομεν τὸ χρῆμα δρᾶν, ἐπὶ τὸ δεῖπνον ὑπανακινεῖν. Κρητικῶς οὖν τὼ πόδε καὶ σὺ κίνει. ΗΜ. τοῦτο δρῶ. ΧΟ. καὶ τάσδε νῦν λαγαρὰς τοῖν σκελίσκοιν τὸν ῥυθμόν. τάχα γὰρ ἔπεισι λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιολιπαρομελιτοκατακεχυμενοκιχλεπικοσσυφοφαττοπεριστεραλεκτρυονοπτοπιφαλλιδοκιγκλοπελειολαγῳοσιραιοβαφητραγανοπτερυγών. σὺ δὲ ταῦτ᾿ ἀκροασάμενος ταχὺ καὶ ταχέως λαβὲ τρύβλιον. εἶτα κόνισαι λαβὼν λέκιθον, ἵν᾿ ἐπιδειπνῇς. ΗΜ. ἀλλὰ λαιμάττουσί που. ΧΟ. αἴρεσθ᾿ ἄνω, ἰαί, εὐαί, δειπνήσομεν, εὐοῖ, εὐαί, εὐαί, ὡς ἐπὶ νίκῃ. εὐαί εὐαί εὐαί εὐαί. Source: Wilhelm Dindorf (ed.) (1846). “Poetarum scenicorum Graecorum: Aeschyli, Sophoclis, Euripidis, et Aristophanis fabulae quae exstant omnes, cum deperditarum fabularum fragmentis necnon caeteris eorum scriptis”, J. Abrams et C. Richards. pp. 707f. sombok-2.3.1/test-data/zh.in0000664000076400007640000000112112210015244012563 00000000000000第一条 人人生而自由,在尊严和权利上一律平等。他们赋有理性和良心,并应以兄弟关系的精神相对待。 第二条 人人有资格享有本宣言所载的一切权利和自由,不分种族、肤色、性别、语言、宗教、政治或其他见解、国籍或社会出身、财产、出生或其他身分等任何区别。 并且不得因一人所属的国家或领土的政治的、行政的或者国际的地位之不同而有所区别,无论该领土是独立领土、托管领土、非自治领土或者处于其他任何主权受限制的情况之下。 sombok-2.3.1/test-data/th.al.out0000664000076400007640000000327012210015244013360 00000000000000ข้อ 1 มนุษย์ทั้งปวงเกิดมามีอิสระและเสมอภาคกันในศักดิ์ศรีและสิทธิ ต่างในตนมีเหตุผลและมโนธรรม และควรปฏิบัติต่อกันด้วยจิตวิญญาณแห่งภราดรภาพ ข้อ 2 ทุกคนย่อมมีสิทธิและอิสรภาพทั้งปวงตามที่กําหนดไว้ในปฏิญญานี้ โดยปราศจากการแบ่งแยกไม่ ว่าชนิดใด อาทิ เชื้อชาติ ผิว เพศ ภาษา ศาสนา ความคิดเห็นทางการเมืองหรือทางอื่น พื้นเพทางชาติหรือ สังคม ทรัพย์สิน การเกิด หรือสถานะอื่น นอกเหนือจากนี้ จะไม่มีการแบ่งแยกใด บนพื้นฐานของสถานะ ทางการเมือง ทางกฎหมาย หรือทางการระหว่างประเทศของประเทศ หรือดินแดนที่บุคคลสังกัด ไม่ว่า ดินแดนนี้จะเป็นเอกราช อยู่ในความพิทักษ์ มิได้ปกครองตนเอง หรืออยู่ภายใต้การจํากัดอธิปไตยอื่นใด sombok-2.3.1/test-data/ko-decomp.out0000664000076400007640000000355412210015244014235 00000000000000제 1 조 모든 인간은 태어날 때부터 자유로우며 그 존엄과 권리에 있어 동등하다. 인간은 천부적으로 이성과 양심을 부여받았으며 서로 형제애의 정신으로 행동하여야 한 다. 제 2 조 모든 사람은 인종, 피부색, 성, 언어, 종교, 정치적 또는 기타의 견해, 민족적 또 는 사회적 출신, 재산, 출생 또는 기타의 신분과 같은 어떠한 종류의 차별이 없 이, 이 선언에 규정된 모든 권리와 자유를 향유할 자격이 있다. 더 나아가 개인이 속한 국가 또는 영토가 독립국, 신탁통치지역, 비자치지역이거 나 또는 주권에 대한 여타의 제약을 받느냐에 관계없이, 그 국가 또는 영토의 정 치적, 법적 또는 국제적 지위에 근거하여 차별이 있어서는 아니된다. sombok-2.3.1/test-data/ko.al.out0000664000076400007640000000152012210015244013352 00000000000000제 1 조 모든 인간은 태어날 때부터 자유로우며 그 존엄과 권리에 있어 동등하다. 인간은 천부적으로 이성과 양심을 부여받았으며 서로 형제애의 정신으로 행동하여야 한다. 제 2 조 모든 사람은 인종, 피부색, 성, 언어, 종교, 정치적 또는 기타의 견해, 민족적 또는 사회적 출신, 재산, 출생 또는 기타의 신분과 같은 어떠한 종류의 차별이 없이, 이 선언에 규정된 모든 권리와 자유를 향유할 자격이 있다. 더 나아가 개인이 속한 국가 또는 영토가 독립국, 신탁통치지역, 비자치지역이거나 또는 주권에 대한 여타의 제약을 받느냐에 관계없이, 그 국가 또는 영토의 정치적, 법적 또는 국제적 지위에 근거하여 차별이 있어서는 아니된다. sombok-2.3.1/test-data/uri.break.http.out0000664000076400007640000000105112210015244015205 00000000000000http:// www .library .my .town .va .us/ Catalogue/ 76523471236 %2Fwen44 --4 .98 http:// info .cern .ch:8000/ imaginary/ test http:// www .myu .edu/ org/ admin/ people #andy http:// info .my .org/ AboutUs/ Index/ Phonebook ?dobbins http:// info .cern .ch/ RDB/ EMP ?* %20where %20name % %3Ddobbins Yes, Jim, I found it under but you can probably pick it up from . Note the warning in . sombok-2.3.1/test-data/fr.in0000664000076400007640000000152512210015244012561 00000000000000Article premier Tous les êtres humains naissent libres et égaux en dignité et en droits. Ils sont doués de raison et de conscience et doivent agir les uns envers les autres dans un esprit de fraternité. Article 2 Chacun peut se prévaloir de tous les droits et de toutes les libertés proclamés dans la présente Déclaration, sans distinction aucune, notamment de race, de couleur, de sexe, de langue, de religion, d'opinion politique ou de toute autre opinion, d'origine nationale ou sociale, de fortune, de naissance ou de toute autre situation. De plus, il ne sera fait aucune distinction fondée sur le statut politique, juridique ou international du pays ou du territoire dont une personne est ressortissante, que ce pays ou territoire soit indépendant, sous tutelle, non autonome ou soumis à une limitation quelconque de souveraineté. sombok-2.3.1/test-data/vi.in0000664000076400007640000000173612210015244012574 00000000000000Điều 1: Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền. Mọi con người đều được tạo hoá ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình bằng hữu. Điều 2: Mọi người đều được hưởng tất cả những quyền và tự do nêu trong Bản tuyên ngôn này, không phân biệt chủng tộc, màu da, giới tính, ngôn ngữ, tôn giáo, quan điểm chính trị hay các quan điểm khác, nguồn gốc quốc gia hay xã hội, tài sản, thành phần xuất thân hay địa vị xã hội. Ngoài ra, cũng không có bất cứ sự phân biệt nào về địa vị chính trị, pháp quyền hay quốc tế của quốc gia hay lãnh thổ mà một người xuất thân, cho dù quốc gia hay lãnh thổ đó được độc lập, được đặt dưới chế độ uỷ trị, chưa tự quản hay có chủ quyền hạn chế. sombok-2.3.1/test-data/README.test-data0000664000076400007640000000733512210015244014374 00000000000000Test data for line breaking =========================== Files named ``*.in'' are input text. ``*.out'' are expected outputs. Default configuration is as following. Overridden values are described by each test data. charmax: 998 colmin: 0 colmax: 76 context: NONEASTASIAN format: SIMPLE hangul as AL: no legacy CM: yes virama sign: behave as consonant joiner newline: "\n" sizing: UAX11 tailoring EAW: none tailoring LBC: none urgent breaking:none preprocessing: none 01 Generic ---------- ar.in ar.out Arabic el.in el.out Greek fr.in fr.out French he.in he.out Hebrew ja.in ja.out Japanese ja-a.in ja-a.out Japanese (annotated readings) ja-k.in Japanese (kana transcribed) ko.in ko.out Korean ko-decomp.in ko-decomp.out Korean (NFD) ru.in ru.out Russian sa.in sa.out Sanskrit th.in th.out Thai vi.in vi.out Vietnamese vi-decomp.in vi-decomp.out Vietnamese (decomposed) zh.in zh.out Chinese Mandarin 02 Hangul text -------------- amitagyong.in amitagyong.out complex hangul syllables and conjoining jamo. tailoring EAW: U+302E and U+302F are nonspacing. ko.al.out treat hangul syllables and conjoining jamo as alphabetic (AL). 03 Tailoring Line Breaking Classes ---------------------------------- ja-k.in ja-k.out colmax: 72 ja-k.ns.out colmax: 72 kana nonstarters (small kana) are assigned Line Breaking Class ``ID''. 04 Folding/unfolding -------------------- fr.fixed.out ja.fixed.out same as default but an empty line is inserted after each paragraph. fr.flowed.out ja.flowed.out RFC 3676 ``Format="FLOWED"; DelSp="YES"'' format. fr.plain.out ja.plain.out same as default. quotes.in unfolded e-mail text with one problematic line. quotes.norm.in unfolded e-mail text without problematic lines. quotes.fixed.out quotes.flowed.out quotes.plain.out folded e-mail text by three methods as above. 05 Long lines ------------- ecclesiazusae.in ecclesiazusae.out ecclesiazusae.CharactersMax.out charmax: 79 ecclesiazusae.ColumnsMax.out urgent breaking:FORCE ecclesiazusae.ColumnsMin.out colmin: 7 colmax: 66 urgent breaking:FORCE 06 East Asian context --------------------- fr.ea.out context: EASTASIAN 07 n/a ------ 08 n/a ------ 09 URI ------ uri.in uri.break.out colmax: 1 preprocessing: break URIs according to some CMoS rules. uri.break.http.out colmax: 1 preprocessing: break HTTP URLs according to some CMoS rules; never break FTP URLs. uri.nonbreak.out colmax: 1 preprocessing: never break URIs. 10 n/a ------ 11 Formatting context --------------------- fr.format.out ja.format.out insert context names. fr.newline.out ko.newline.out trim spaces at end of each lines. 12 Indentation -------------- fr.wrap.out ja.wrap.out Paragraphs are indented by one horizontal tab ("\t") and other lines are indented by four spaces (" "). 13 RFC 3676 ----------- fr.flowed.out ja.flowed.out folding by RFC 3676 ``Format="FLOWED"; DelSp="YES"'' method. flowedsp.in flowedsp.out unfolding RFC 3676 ``Format="FLOWED"; DelSp="NO"'' (obsoleted RFC 2646) format. 14 Non-South East Asian context ------------------------------- th.al.out treat South East Asian complex context (SA) as alphabetic (AL). 15 n/a ------ 16 n/a ------ Other useful test data ---------------------- * LineBreakTest.txt file in Unicode Character Database (UCD) may be useful for regression test. Current version of this file will be found at: http://www.unicode.org/Public/UNIDATA/auxiliary/LineBreakTest.txt $$ sombok-2.3.1/test-data/ja.in0000664000076400007640000000167212210015244012547 00000000000000第1条 すべての人間は、生まれながらにして自由であり、かつ、尊厳と権利とについて平等である。人間は、理性と良心とを授けられており、互いに同胞の精神をもって行動しなければならない。 第2条 すべて人は、人種、皮膚の色、性、言語、宗教、政治上その他の意見、国民的もしくは社会的出身、財産、門地その他の地位又はこれに類するいかなる事由による差別をも受けることなく、この宣言に掲げるすべての権利と自由とを享有することができる。 さらに、個人の属する国又は地域が独立国であると、信託統治地域であると、非自治地域であると、又は他のなんらかの主権制限の下にあるとを問わず、その国又は地域の政治上、管轄上又は国際上の地位に基ずくいかなる差別もしてはならない。 sombok-2.3.1/test-data/th.in0000664000076400007640000000326312210015244012566 00000000000000ข้อ 1 มนุษย์ทั้งปวงเกิดมามีอิสระและเสมอภาคกันในศักดิ์ศรีและสิทธิ ต่างในตนมีเหตุผลและมโนธรรม และควรปฏิบัติต่อกันด้วยจิตวิญญาณแห่งภราดรภาพ ข้อ 2 ทุกคนย่อมมีสิทธิและอิสรภาพทั้งปวงตามที่กําหนดไว้ในปฏิญญานี้ โดยปราศจากการแบ่งแยกไม่ ว่าชนิดใด อาทิ เชื้อชาติ ผิว เพศ ภาษา ศาสนา ความคิดเห็นทางการเมืองหรือทางอื่น พื้นเพทางชาติหรือ สังคม ทรัพย์สิน การเกิด หรือสถานะอื่น นอกเหนือจากนี้ จะไม่มีการแบ่งแยกใด บนพื้นฐานของสถานะ ทางการเมือง ทางกฎหมาย หรือทางการระหว่างประเทศของประเทศ หรือดินแดนที่บุคคลสังกัด ไม่ว่า ดินแดนนี้จะเป็นเอกราช อยู่ในความพิทักษ์ มิได้ปกครองตนเอง หรืออยู่ภายใต้การจํากัดอธิปไตยอื่นใด sombok-2.3.1/test-data/ar.in0000664000076400007640000000221612210015244012552 00000000000000المادة 1 يولد جميع الناس أحرارًا متساوين في الكرامة والحقوق. وقد وهبوا عقلاً وضميرًا وعليهم أن يعامل بعضهم بعضًا بروح الإخاء. المادة 2 لكل إنسان حق التمتع بكافة الحقوق والحريات الواردة في هذا الإعلان، دون أي تمييز، كالتمييز بسبب العنصر أو اللون أو الجنس أو اللغة أو الدين أو الرأي السياسي أو أي رأي آخر، أو الأصل الوطني أو الإجتماعي أو الثروة أو الميلاد أو أي وضع آخر، دون أية تفرقة بين الرجال والنساء. وفضلاً عما تقدم فلن يكون هناك أي تمييز أساسه الوضع السياسي أو القانوني أو الدولي لبلد أو البقعة التي ينتمي إليها الفرد سواء كان هذا البلد أو تلك البقعة مستقلاً أو تحت الوصاية أو غير متمتع بالحكم الذاتي أو كانت سيادته خاضعة لأي قيد من القيود. sombok-2.3.1/test-data/flowedsp.out0000664000076400007640000000146412210015244014200 00000000000000> Thou villainous ill-breeding spongy dizzy-eyed reeky elf-skinned pigeon-egg! >> Thou artless swag-bellied milk-livered dismal-dreaming idle-headed scut! >>> Thou errant folly-fallen spleeny reeling-ripe unmuzzled ratsbane! >>>> Henceforth, the coding style is to be strictly enforced, including the use of only upper case. >>>>> I've noticed a lack of adherence to the coding styles, of late. >>>>>> Any complaints? ---- `Take some more tea,' the March Hare said to Alice, very earnestly. `I've had nothing yet,' Alice replied in an offended tone, `so I can't take more.' `You mean you can't take LESS,' said the Hatter: `it's very easy to take MORE than nothing.' ---- >>> Take some more tea. >> I've had nothing yet, so I can't take more. > You mean you can't take LESS, it's very easy to take MORE than nothing. sombok-2.3.1/test-data/he.in0000664000076400007640000000171412210015244012546 00000000000000סעיף א. כל בני אדם נולדו בני חורין ושווים בערכם ובזכויותיהם. כולם חוננו בתבונה ובמצפון, לפיכך חובה עליהם לנהוג איש ברעהו ברוח של אחוה. סעיף ב. כל אדם זכאי לזכויות ולחרויות שנקבעו בהכרזש זו ללא הפליה כלשהיא מטעמי גזע, צבע, מין, לשון, דח, דעה פוליטית או דעה בבעיות אחרות, בגלל מוצא לאומי או חברתי, קנין, לידה או מעמד אחר. גדולה מזו, לא יופלה אדם על פי מעמדה המדיני, על פי סמכותה או על פי מעמדה הבינלאומי של המדינה או הארץ שאליה הוא שייך, דין שהארץ היא עצמאית, ובין שהיא נתונה לנאמנות, בין שהיא נטולת שלטון עצמי ובין שריבונותה מוגבלת כל הגבלה אחרת. sombok-2.3.1/test-data/ja-a.in0000664000076400007640000000336612210015244012767 00000000000000第1条(だいいちじょう) すべての人間(にんげん)は、生(う)まれながらにして自由(じゆう)であり、かつ、尊厳(そんげん)と権利(けんり)とについて平等(びょうどう)である。人間(にんげん)は、理性(りせい)と良心(りょうしん)とを授(さず)けられており、互(たが)いに同胞(どうほう)の精神(せいしん)をもって行動(こうどう)しなければならない。 第2条(だいにじょう) すべて人(ひと)は、人種(じんしゅ)、皮膚(ひふ)の色(いろ)、性(せい)、言語(げんご)、宗教(しゅうきょう)、政治上(せいじじょう)その他(た)の意見(いけん)、国民的(こくみんてき)もしくは社会的(しゃかいてき)出身(しゅっしん)、財産(ざいさん)、門地(もんち)その他(た)の地位(ちい)又(また)はこれに類(るい)するいかなる事由(じゆう)による差別(さべつ)をも受(う)けることなく、この宣言(せんげん)に掲(かか)げるすべての権利(けんり)と自由(じゆう)とを享有(きょうゆう)することができる。 さらに、個人(こじん)の属(ぞく)する国(くに)又(また)は地域(ちいき)が独立国(どくりつこく)であると、信託統治地域(しんたくとうちちいき)であると、非自治地域(ひじちちいき)であると、又(また)は他(ほか)のなんらかの主権制限(しゅけんせいげん)の下(もと)にあるとを問(と)わず、その国(くに)又(また)は地域(ちいき)の政治上(せいじじょう)、管轄上(かんかつじょう)又(また)は国際上(こくさいじょう)の地位(ちい)に基(もと)ずくいかなる差別(さべつ)もしてはならない。 sombok-2.3.1/test-data/ar.out0000664000076400007640000000222512210015244012753 00000000000000المادة 1 يولد جميع الناس أحرارًا متساوين في الكرامة والحقوق. وقد وهبوا عقلاً وضميرًا وعليهم أن يعامل بعضهم بعضًا بروح الإخاء. المادة 2 لكل إنسان حق التمتع بكافة الحقوق والحريات الواردة في هذا الإعلان، دون أي تمييز، كالتمييز بسبب العنصر أو اللون أو الجنس أو اللغة أو الدين أو الرأي السياسي أو أي رأي آخر، أو الأصل الوطني أو الإجتماعي أو الثروة أو الميلاد أو أي وضع آخر، دون أية تفرقة بين الرجال والنساء. وفضلاً عما تقدم فلن يكون هناك أي تمييز أساسه الوضع السياسي أو القانوني أو الدولي لبلد أو البقعة التي ينتمي إليها الفرد سواء كان هذا البلد أو تلك البقعة مستقلاً أو تحت الوصاية أو غير متمتع بالحكم الذاتي أو كانت سيادته خاضعة لأي قيد من القيود. sombok-2.3.1/test-data/quotes.flowed.out0000664000076400007640000000151412210015244015150 00000000000000> Thou villainous ill-breeding spongy dizzy-eyed reeky elf-skinned pigeon- > egg! >> Thou artless swag-bellied milk-livered dismal-dreaming idle-headed scut! >>> Thou errant folly-fallen spleeny reeling-ripe unmuzzled ratsbane! >>>> Henceforth, the coding style is to be strictly enforced, including the >>>> use of only upper case. >>>>> I've noticed a lack of adherence to the coding styles, of late. >>>>>> Any complaints? ---- `Take some more tea,' the March Hare said to Alice, very earnestly. `I've had nothing yet,' Alice replied in an offended tone, `so I can't take more.' `You mean you can't take LESS,' said the Hatter: `it's very easy to take MORE than nothing.' ---- >>> Take some more tea. >> I've had nothing yet, so I can't take more. > You mean you can't take LESS, it's very easy to take MORE than nothing. sombok-2.3.1/test-data/ecclesiazusae.CharactersMax.out0000664000076400007640000000273612210015244017724 00000000000000ΑΡΙΣΤΟΦΑΝΟΥΣ ΕΚΚΛΗΣΙΑΖΟΥΣΑΙ ... ΧΟ. ὦ, ὦ, ὥρα δή, ὦ φίλαι γυναῖκες, εἴπερ μέλλομεν τὸ χρῆμα δρᾶν, ἐπὶ τὸ δεῖπνον ὑπανακινεῖν. Κρητικῶς οὖν τὼ πόδε καὶ σὺ κίνει. ΗΜ. τοῦτο δρῶ. ΧΟ. καὶ τάσδε νῦν λαγαρὰς τοῖν σκελίσκοιν τὸν ῥυθμόν. τάχα γὰρ ἔπεισι λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιολιπαρομελιτοκατακεχυμε νοκιχλεπικοσσυφοφαττοπεριστεραλεκτρυονοπτοπιφαλλιδοκιγκλοπελειολαγῳοσιραιοβαφητ ραγανοπτερυγών. σὺ δὲ ταῦτ᾿ ἀκροασάμενος ταχὺ καὶ ταχέως λαβὲ τρύβλιον. εἶτα κόνισαι λαβὼν λέκιθον, ἵν᾿ ἐπιδειπνῇς. ΗΜ. ἀλλὰ λαιμάττουσί που. ΧΟ. αἴρεσθ᾿ ἄνω, ἰαί, εὐαί, δειπνήσομεν, εὐοῖ, εὐαί, εὐαί, ὡς ἐπὶ νίκῃ. εὐαί εὐαί εὐαί εὐαί. Source: Wilhelm Dindorf (ed.) (1846). “Poetarum scenicorum Graecorum: Aeschyli, Sophoclis, Euripidis, et Aristophanis fabulae quae exstant omnes, cum deperditarum fabularum fragmentis necnon caeteris eorum scriptis”, J. Abrams et C. Richards. pp. 707f. sombok-2.3.1/test-data/titin.bz0000664000076400007640000000242312210015244013304 00000000000000BZh91AY&SYY͎.`` D@a4bi4)@iS MRRzi$"MOSOꂌPE)@h(DLEiD%Y*EX(Y &D ‹P2XBx)y)~QT_~4-PTU,aM"b-Bi)"i&&4&14&DACU5%2HdO"b- 4U5)2?A2&"4biC(U7BjA9\_?PrE(*ωV 14& 2&DИ &J2d%X*a0L2&DMRL]H?H4V)=&BdL"aS*DL*eQeDS 0L&BhI/ q1Wj5Q&D.TNDOtK"d'"dxN"r&QdN'(&JD𜉑1PVFeH' ȜDb"r& ,LL :(Bd'DV&ȜLJ1W)\- ԤLL"dN:"hL8'Bj2'N&D'SIW2&!  jvXJS(0DeK ;EUEoE*!rU怘K@E@JJĨ/P(rEi eC2&"d&?)O~ԔiR! ҖUF%k Qz!R[0NDħ"eN'1?O>|'^S' !=DD|' L O SLM 'W='T"r'x'Q212'98Oa0Oa?N諉ȞȞB~By N ȞxȟOI'"a0ND⋉"bLNDPN&LD'~О>"zE'O!0NDxN&'LM "}'"t''C0O V'*9'LOY"zO &'N&'I' 'Оx>`IȞ\dM >{"NDb`LND"~bzD|D/胔\DLL9XEb'"dOq8''!>xOt'M ? q)M%^d'NP"aSO!0OOI'OBi0OQ9/!0LM 4&O =DNDLEoptions & LINEBREAK_OPTION_EASTASIAN_CONTEXT) ? 2 : 1) : \ (((e) == EA_F || (e) == EA_W)? 2: \ (((e) == EA_Z || (e) == EA_ZA || (e) == EA_ZW)? 0: 1))) #define IS_EXTENDER(g) \ ((g) == GB_Extend || (g) == GB_SpacingMark || (g) == GB_Virama) static void _gcinfo(linebreak_t * obj, unistr_t * str, size_t pos, gcchar_t * gc) { propval_t glbc = PROP_UNKNOWN, elbc = PROP_UNKNOWN; size_t glen, gcol, pcol, ecol; propval_t lbc, eaw, gcb, ngcb, scr; if (!str || !str->str || !str->len) { gc->len = 0; gc->col = 0; gc->lbc = PROP_UNKNOWN; gc->elbc = PROP_UNKNOWN; return; } linebreak_charprop(obj, str->str[pos], &lbc, &eaw, &gcb, &scr); pos++; glen = 1; if (gcb == GB_V || gcb == GB_T) /* isolated hangul jamo is wide, though part of them are * neutral (N). */ gcol = 2; else gcol = eaw2col(obj, eaw); if (lbc != LB_SA) glbc = lbc; #ifdef USE_LIBTHAI else if (scr == SC_Thai) glbc = lbc; #endif /* USE_LIBTHAI */ else if (IS_EXTENDER(gcb)) glbc = LB_CM; else glbc = LB_AL; switch (gcb) { case GB_LF: /* GB5 */ break; /* switch (gcb) */ case GB_CR: /* GB3, GB4, GB5 */ if (pos < str->len) { linebreak_charprop(obj, str->str[pos], NULL, &eaw, &gcb, NULL); if (gcb == GB_LF) { pos++; glen++; gcol += eaw2col(obj, eaw); } } break; /* switch (gcb) */ case GB_Control: /* GB4 */ break; /* switch (gcb) */ default: pcol = 0; ecol = 0; while (pos < str->len) { /* GB2 */ linebreak_charprop(obj, str->str[pos], &lbc, &eaw, &ngcb, &scr); /* Legacy-CM: Treat SP CM+ as if it were ID. cf. [UAX #14] 9.1. */ if (glbc == LB_SP) { if ((obj->options & LINEBREAK_OPTION_LEGACY_CM) && IS_EXTENDER(ngcb) && (lbc == LB_CM || lbc == LB_SA)) { glbc = LB_ID; /* isolated "wide" nonspacing marks will be wide. */ if (eaw == EA_ZW && (obj->options & LINEBREAK_OPTION_WIDE_NONSPACING_W)) { if (gcol < 2) gcol = 2; } #if 0 /* XXX */ else if (eaw == EA_ZA && (obj->options & LINEBREAK_OPTION_WIDE_NONSPACING_A)) { if (gcol < 2) gcol = 2; } #endif /* 0 */ else ecol += eaw2col(obj, eaw); } else /* prevent degenerate case. */ break; /* while (pos < str->len) */ } /* GB5 */ else if (ngcb == GB_Control || ngcb == GB_CR || ngcb == GB_LF) break; /* while (pos < str->len) */ /* GB6 - GB8 */ /* * Assume hangul syllable block is always wide, while most of * isolated junseong (gcb:V) and jongseong (gcb:T) are neutral * (eaw:N). */ else if ((gcb == GB_L && (ngcb == GB_L || ngcb == GB_V || ngcb == GB_LV || ngcb == GB_LVT)) || ((gcb == GB_LV || gcb == GB_V) && (ngcb == GB_V || ngcb == GB_T)) || ((gcb == GB_LVT || gcb == GB_T) && ngcb == GB_T)) { gcol = 2; elbc = lbc; } /* GB8a */ else if (gcb == GB_Regional_Indicator && ngcb == GB_Regional_Indicator) { gcol += ecol + eaw2col(obj, eaw); ecol = 0; elbc = lbc; } /* GB9, GB9a */ else if (IS_EXTENDER(ngcb)) { ecol += eaw2col(obj, eaw); /* CM in grapheme extender is ignored. Virama is CM. */ /* SA in g. ext. is resolved to CM so it is ignored. */ if (lbc != LB_CM && lbc != LB_SA) elbc = lbc; } /* GB9b */ else if (gcb == GB_Prepend) { /* Here, next char shall grapheme base (or additional prepend * character), since its GCB property is neither Control, * Extend, SpacingMark, and Virama */ if (lbc != LB_SA) elbc = lbc; #ifdef USE_LIBTHAI else if (scr == SC_Thai) elbc = lbc; /* SA char in g. base is not resolved... */ #endif /* USE_LIBTHAI */ else elbc = LB_AL; /* ...or resolved to AL. */ pcol += gcol; if (ngcb == GB_V || ngcb == GB_T) /* isolated hangul jamo with prepend character, though * it may be degenerate case. */ gcol = 2; else gcol = eaw2col(obj, eaw); } /* Virama rule: \p{ccc:Virama} × \p{gc:Letter} */ else if (gcb == GB_Virama && ngcb == GB_OtherLetter && obj->options & LINEBREAK_OPTION_VIRAMA_AS_JOINER) { /* OtherLetter is not grapheme extender. */ gcol += ecol + eaw2col(obj, eaw); ecol = 0; if (lbc != LB_SA) elbc = lbc; #ifdef USE_LIBTHAI else if (scr == SC_Thai) elbc = lbc; /* SA char in g. base is not resolved... */ #endif /* USE_LIBTHAI */ else elbc = LB_AL; /* ...or resolved to AL. */ } /* GB10 */ else break; /* while (pos < str->len) */ pos++; glen++; gcb = ngcb; } /* while (pos < str->len) */ gcol += pcol + ecol; break; /* switch (gcb) */ } /* switch (gcb) */ gc->len = glen; gc->col = gcol; gc->lbc = glbc; gc->elbc = elbc; } /* * Exports */ /** Constructor * * Create new grapheme cluster string from Unicode string. * Use gcstring_newcopy() if you wish to copy buffer of Unicode string. * @param[in] unistr Unicode string. NULL may be given as zero-length string. * @param[in] lbobj linebreak object. * @return New grapheme cluster string sharing str buffer with unistr. * If error occurred, errno is set then NULL is returned. * * option bits of lbobj: * - if LINEBREAK_OPTION_EASTASIAN_CONTEXT bit is set, * LB_AI and EA_A are resolved to LB_ID and EA_F. Otherwise, LB_AL and EA_N, * respectively. * - if LINEBREAK_OPTION_LEGACY_CM bit is set, * combining mark lead by a SPACE is isolated combining mark (ID). * Otherwise, such sequences are treated as degenerate cases. * - if LINEBREAK_OPTION_VIRAMA_AS_JOINER bit is set, * virama and other letter are not broken. */ gcstring_t *gcstring_new(unistr_t * unistr, linebreak_t * lbobj) { gcstring_t *gcstr; size_t len; if ((gcstr = malloc(sizeof(gcstring_t))) == NULL) return NULL; gcstr->str = NULL; gcstr->len = 0; gcstr->gcstr = NULL; gcstr->gclen = 0; gcstr->pos = 0; if (lbobj == NULL) { if ((gcstr->lbobj = linebreak_new(NULL)) == NULL) { free(gcstr); return NULL; } } else gcstr->lbobj = linebreak_incref(lbobj); if (unistr == NULL || unistr->str == NULL || unistr->len == 0) return gcstr; gcstr->str = unistr->str; gcstr->len = len = unistr->len; if (len) { size_t pos; gcchar_t *gc, *_g; if ((gcstr->gcstr = malloc(sizeof(gcchar_t) * len)) == NULL) { gcstr->str = NULL; gcstring_destroy(gcstr); return NULL; } for (pos = 0, gc = gcstr->gcstr; pos < len; pos += gc->len, gcstr->gclen++, gc++) { gc->flag = 0; gc->idx = pos; _gcinfo(gcstr->lbobj, unistr, pos, gc); } if ((_g = realloc(gcstr->gcstr, sizeof(gcchar_t) * gcstr->gclen)) == NULL) { gcstr->str = NULL; gcstring_destroy(gcstr); return NULL; } else gcstr->gcstr = _g; } return gcstr; } /** Constructor copying Unicode string. * * Create new grapheme cluster string from Unicode string. * Use gcstring_new() if you wish not to copy buffer of Unicode string. * @param[in] str Unicode string. NULL may be given as zero-length string. * @param[in] lbobj linebreak object. * @return New grapheme cluster string. * If error occurred, errno is set then NULL is returned. */ gcstring_t *gcstring_newcopy(unistr_t * str, linebreak_t * lbobj) { unistr_t unistr = { NULL, 0 }; if (str->str && str->len) { if ((unistr.str = malloc(sizeof(unichar_t) * str->len)) == NULL) return NULL; memcpy(unistr.str, str->str, sizeof(unichar_t) * str->len); unistr.len = str->len; } return gcstring_new(&unistr, lbobj); } /** Constructor from UTF-8 string * * Create new grapheme cluster string from UTF-8 string. * @param[in] str buffer of UTF-8 string, must not be NULL. * @param[in] len length of UTF-8 string. * @param[in] check check input. See sombok_decode_utf8(). * @param[in] lbobj linebreak object. * @return New grapheme cluster string. * If error occurred, errno is set then NULL is returned. * Source string buffer would not be modified. */ gcstring_t *gcstring_new_from_utf8(char *str, size_t len, int check, linebreak_t * lbobj) { unistr_t unistr = { NULL, 0 }; if (str == NULL) { errno = EINVAL; return NULL; } if (sombok_decode_utf8(&unistr, 0, str, len, check) == NULL) return NULL; return gcstring_new(&unistr, lbobj); } /** Destructor * * Free memories allocated for grapheme cluster string. * @param[in] gcstr grapheme cluster string. * @return none. * If gcstr was NULL, do nothing. */ void gcstring_destroy(gcstring_t * gcstr) { if (gcstr == NULL) return; free(gcstr->str); free(gcstr->gcstr); linebreak_destroy(gcstr->lbobj); free(gcstr); } /** Copy Constructor * * Create deep copy of grapheme cluster string. * @param[in] gcstr grapheme cluster string, must not be NULL. * @return deep copy of grapheme cluster string. * If error occurred, errno is set then NULL is returned. */ gcstring_t *gcstring_copy(gcstring_t * gcstr) { gcstring_t *new; unichar_t *newstr = NULL; gcchar_t *newgcstr = NULL; if (gcstr == NULL) return (errno = EINVAL), NULL; if ((new = malloc(sizeof(gcstring_t))) == NULL) return NULL; memcpy(new, gcstr, sizeof(gcstring_t)); if (gcstr->str && gcstr->len) { if ((newstr = malloc(sizeof(unichar_t) * gcstr->len)) == NULL) { free(new); return NULL; } memcpy(newstr, gcstr->str, sizeof(unichar_t) * gcstr->len); } new->str = newstr; if (gcstr->gcstr && gcstr->gclen) { if ((newgcstr = malloc(sizeof(gcchar_t) * gcstr->gclen)) == NULL) { free(new->str); free(new); return NULL; } memcpy(newgcstr, gcstr->gcstr, sizeof(gcchar_t) * gcstr->gclen); } new->gcstr = newgcstr; if (gcstr->lbobj == NULL) { if ((new->lbobj = linebreak_new(NULL)) == NULL) { gcstring_destroy(new); return NULL; } } else new->lbobj = linebreak_incref(gcstr->lbobj); new->pos = 0; return new; } /** Append * * Modify grapheme cluster string by appending another string. * @param[in] gcstr target grapheme cluster string, must not be NULL. * @param[in] appe grapheme cluster string to be appended. * NULL means null string therefore gcstr won't be modified. * @return Modified grapheme cluster string gcstr itself (not a copy). * If error occurred, errno is set then NULL is returned. */ gcstring_t *gcstring_append(gcstring_t * gcstr, gcstring_t * appe) { unistr_t ustr = { NULL, 0 }; if (gcstr == NULL) return (errno = EINVAL), NULL; if (appe == NULL || appe->str == NULL || appe->len == 0) return gcstr; if (gcstr->gclen && appe->gclen) { size_t aidx, alen, blen, newlen, newgclen, i; unsigned char bflag; gcstring_t *cstr; unichar_t *_u; gcchar_t *_g; aidx = gcstr->gcstr[gcstr->gclen - 1].idx; alen = gcstr->gcstr[gcstr->gclen - 1].len; blen = appe->gcstr[0].len; bflag = appe->gcstr[0].flag; if ((ustr.str = malloc(sizeof(unichar_t) * (alen + blen))) == NULL) return NULL; memcpy(ustr.str, gcstr->str + aidx, sizeof(unichar_t) * alen); memcpy(ustr.str + alen, appe->str, sizeof(unichar_t) * blen); ustr.len = alen + blen; if ((cstr = gcstring_new(&ustr, gcstr->lbobj)) == NULL) { free(ustr.str); return NULL; } newlen = gcstr->len + appe->len; newgclen = gcstr->gclen - 1 + cstr->gclen + appe->gclen - 1; if ((_u = realloc(gcstr->str, sizeof(unichar_t) * newlen)) == NULL) { gcstring_destroy(cstr); return NULL; } else gcstr->str = _u; if ((_g = realloc(gcstr->gcstr, sizeof(gcchar_t) * newgclen)) == NULL) { gcstring_destroy(cstr); return NULL; } else gcstr->gcstr = _g; memcpy(gcstr->str + gcstr->len, appe->str, sizeof(unichar_t) * appe->len); for (i = 0; i < cstr->gclen; i++) { gcchar_t *gc = gcstr->gcstr + gcstr->gclen - 1 + i; gc->idx = cstr->gcstr[i].idx + aidx; gc->len = cstr->gcstr[i].len; gc->col = cstr->gcstr[i].col; gc->lbc = cstr->gcstr[i].lbc; gc->elbc = cstr->gcstr[i].elbc; if (aidx + alen == gc->idx) /* Restore flag if possible */ gc->flag = bflag; } for (i = 1; i < appe->gclen; i++) { gcchar_t *gc = gcstr->gcstr + gcstr->gclen - 1 + cstr->gclen + i - 1; gc->idx = appe->gcstr[i].idx - blen + aidx + cstr->len; gc->len = appe->gcstr[i].len; gc->col = appe->gcstr[i].col; gc->lbc = appe->gcstr[i].lbc; gc->elbc = appe->gcstr[i].elbc; gc->flag = appe->gcstr[i].flag; } gcstr->len = newlen; gcstr->gclen = newgclen; gcstring_destroy(cstr); } else if (appe->gclen) { if ((gcstr->str = malloc(sizeof(unichar_t) * appe->len)) == NULL) return NULL; if ((gcstr->gcstr = malloc(sizeof(gcchar_t) * appe->gclen)) == NULL) { free(gcstr->str); return NULL; } memcpy(gcstr->str, appe->str, sizeof(unichar_t) * appe->len); gcstr->len = appe->len; memcpy(gcstr->gcstr, appe->gcstr, sizeof(gcchar_t) * appe->gclen); gcstr->gclen = appe->gclen; gcstr->pos = 0; } return gcstr; } /** Compare * * Compare grapheme cluster strings. * @param[in] a grapheme cluster string. * @param[in] b grapheme cluster string. * @return positive, zero or negative value when a is greater, equal to, lesser than b, respectively. */ int gcstring_cmp(gcstring_t * a, gcstring_t * b) { size_t i; if (!a->len || !b->len) return (a->len ? 1 : 0) - (b->len ? 1 : 0); for (i = 0; i < a->len && i < b->len; i++) if (a->str[i] != b->str[i]) return a->str[i] - b->str[i]; return a->len - b->len; } /** Number of Columns * * Returns number of columns of grapheme cluster strings determined by built-in character database according to UAX #11. * @param[in] gcstr grapheme cluster string. NULL may mean null string. * @return Number of columns. */ size_t gcstring_columns(gcstring_t * gcstr) { size_t col, i; if (gcstr == NULL) return 0; for (col = 0, i = 0; i < gcstr->gclen; i++) col += gcstr->gcstr[i].col; return col; } /** Concatenate * * Create new grapheme cluster string which is concatination of two strings. * @param[in] gcstr grapheme cluster string, must not be NULL. * @param[in] appe grapheme cluster string to be appended. NULL means null * string. * @return New grapheme cluster string. * If error occurred, errno is set then NULL is returned. */ gcstring_t *gcstring_concat(gcstring_t * gcstr, gcstring_t * appe) { gcstring_t *new; size_t pos; if (gcstr == NULL) return (errno = EINVAL), NULL; pos = gcstr->pos; if ((new = gcstring_copy(gcstr)) == NULL) return NULL; new->pos = pos; return gcstring_append(new, appe); } /** Iterator * * Returns pointer to next grapheme cluster of grapheme cluster string. * Next position will be incremented. * @param[in] gcstr grapheme cluster string. * @return Pointer to grapheme cluster. * If pointer was already at end of the string, NULL will be returned. */ gcchar_t *gcstring_next(gcstring_t * gcstr) { if (gcstr->gclen <= gcstr->pos) return NULL; return gcstr->gcstr + (gcstr->pos++); } /** Set Next Position * * Set next position of grapheme cluster string. * @param[in] gcstr grapheme cluster string. * @param[in] pos New position. * @return none. * If pos is out of range of string, position won't be updated. * * @todo On next major release, pos would be ssize_t, not int. */ void gcstring_setpos(gcstring_t * gcstr, int pos) { if (pos < 0) pos += gcstr->gclen; if (pos < 0 || gcstr->gclen < pos) return; gcstr->pos = pos; } /** Shrink * * Modify grapheme cluster string to shrink its length. * Length is specified by number of grapheme clusters. * @param[in] gcstr grapheme cluster string. * @param[in] length New length. * @return none. * If gcstr was NULL, do nothing. * * @todo On next major release, length would be ssize_t, not int. */ void gcstring_shrink(gcstring_t * gcstr, int length) { if (gcstr == NULL) return; if (length < 0) length += gcstr->gclen; if (length <= 0) { free(gcstr->str); gcstr->str = NULL; gcstr->len = 0; free(gcstr->gcstr); gcstr->gcstr = NULL; gcstr->gclen = 0; } else if (gcstr->gclen <= length) return; else { gcstr->len = gcstr->gcstr[length].idx; gcstr->gclen = length; } } /** Substring * * Returns substring of grapheme cluster string. * Offset and length are specified by number of grapheme clusters. * @param[in] gcstr grapheme cluster string. Must not be NULL. * @param[in] offset Offset of substring. * @param[in] length Length of substring. * @return (newly allocated) substring. * If error occurred, errno is set to non-zero then NULL is returned. * * @todo On next major release, offset and length would be ssize_t, not int. */ gcstring_t *gcstring_substr(gcstring_t * gcstr, int offset, int length) { gcstring_t *new; size_t ulength, i; if (gcstr == NULL) return (errno = EINVAL), NULL; /* adjust offset. */ if (offset < 0) offset += gcstr->gclen; if (offset < 0) { length += offset; offset = 0; } if (length < 0) length += gcstr->gclen - offset; if (length < 0 || gcstr->gclen < offset) /* out of range */ return gcstring_new(NULL, gcstr->lbobj); if (gcstr->gclen == offset) length = 0; else if (gcstr->gclen <= offset + length) length = gcstr->gclen - offset; /* create substring. */ if (gcstr->gclen == offset) ulength = 0; else if (gcstr->gclen <= offset + length) ulength = gcstr->len - gcstr->gcstr[offset].idx; else ulength = gcstr->gcstr[offset + length].idx - gcstr->gcstr[offset].idx; if ((new = gcstring_new(NULL, gcstr->lbobj)) == NULL) return NULL; if (ulength == 0); else if ((new->str = malloc(sizeof(unichar_t) * ulength)) == NULL) { gcstring_destroy(new); return NULL; } if (length == 0); else if ((new->gcstr = malloc(sizeof(gcchar_t) * length)) == NULL) { free(new->str); gcstring_destroy(new); return NULL; } if (ulength != 0) memcpy(new->str, gcstr->str + gcstr->gcstr[offset].idx, sizeof(unichar_t) * ulength); new->len = ulength; for (i = 0; i < length; i++) { memcpy(new->gcstr + i, gcstr->gcstr + offset + i, sizeof(gcchar_t)); new->gcstr[i].idx -= gcstr->gcstr[offset].idx; } new->gclen = length; return new; } /** Replace substring * * Replace substring og grapheme cluster string. * Offset and length are specified by number of grapheme clusters. * @param[in,out] gcstr grapheme cluster string. Must not be NULL. * @param[in] offset Offset of substring. * @param[in] length Length of substring. * offset and length must not be out of range. * @param[in] replacement If this was not NULL, modify grapheme cluster string by replacing substring with it. * @return modified gcstr itself (not a copy of it). * If error occurred, errno is set to non-zero then NULL is returned. * * @todo On next major release, offset and length would be ssize_t, not int. */ gcstring_t *gcstring_replace(gcstring_t * gcstr, int offset, int length, gcstring_t * replacement) { gcstring_t *tail; if (gcstr == NULL) return (errno = EINVAL), NULL; /* without replacement: meaningless. return immedately. */ if (replacement == NULL) return gcstr; /* adjust offset. */ if (offset < 0) offset += gcstr->gclen; if (offset < 0) { length += offset; offset = 0; } if (length < 0) length += gcstr->gclen - offset; if (length < 0 || gcstr->gclen < offset) /* out of range */ return (errno = EINVAL), NULL; if (gcstr->gclen == offset) length = 0; else if (gcstr->gclen <= offset + length) length = gcstr->gclen - offset; /* returns modified gcstr itself. */ if ((tail = gcstring_substr(gcstr, offset + length, gcstr->gclen - (offset + length))) == NULL) return NULL; gcstring_shrink(gcstr, offset); if (gcstring_append(gcstr, replacement) == NULL) { gcstring_destroy(tail); return NULL; } if (gcstring_append(gcstr, tail) == NULL) { gcstring_destroy(tail); return NULL; } gcstring_destroy(tail); return gcstr; } /** Get Line Breaking Class of grapheme base * * Get UAX #14 line breaking class of grapheme base. * @param[in] gcstr grapheme cluster string, must not be NULL. * @param[in] pos position. * @return line breaking class property value. * * @note Introduced by sombok 2.2. */ propval_t gcstring_lbclass(gcstring_t * gcstr, int pos) { if (pos < 0) pos += gcstr->gclen; if (pos < 0 || gcstr->gclen == 0 || gcstr->gclen <= pos) return PROP_UNKNOWN; return gcstr->gcstr[pos].lbc; } /** Get Line Breaking Class of grapheme extender * * Get UAX #14 line breaking class of grapheme extender. * If it is CM, get one of grapheme base. * @param[in] gcstr grapheme cluster string, must not be NULL. * @param[in] pos position. * @return line breaking class property value. * * @note Introduced by sombok 2.2. */ propval_t gcstring_lbclass_ext(gcstring_t * gcstr, int pos) { propval_t lbc; if (pos < 0) pos += gcstr->gclen; if (pos < 0 || gcstr->gclen == 0 || gcstr->gclen <= pos) return PROP_UNKNOWN; if ((lbc = gcstr->gcstr[pos].elbc) == PROP_UNKNOWN) lbc = gcstr->gcstr[pos].lbc; return lbc; } sombok-2.3.1/lib/linebreak.c0000644000076400007640000004142512210015235012603 00000000000000/* * linebreak.c - implementation of Linebreak object. * * Copyright (C) 2009-2012 by Hatuka*nezumi - IKEDA Soji. * * This file is part of the Sombok Package. This program is free * software; you can redistribute it and/or modify it under the terms of * either the GNU General Public License or the Artistic License, as * specified in the README file. * */ #include "sombok_constants.h" #include "sombok.h" /** @defgroup linebreak linebreak * @brief Handle linebreak object. * *@{*/ /** Constructor * * Creates new linebreak object. * Reference count of it will be set to 1. * @param[in] ref_func function to handle reference count of external objects, * or NULL. * @return New linebreak object. * If error occurred, errno is set then NULL is returned. */ linebreak_t *linebreak_new(linebreak_ref_func_t ref_func) { linebreak_t *obj; if ((obj = malloc(sizeof(linebreak_t))) == NULL) return NULL; memset(obj, 0, sizeof(linebreak_t)); #ifdef USE_LIBTHAI obj->options = LINEBREAK_OPTION_COMPLEX_BREAKING; #endif /* USE_LIBTHAI */ obj->ref_func = ref_func; obj->refcount = 1UL; return obj; } /** Increase Reference Count * * Increse reference count of linebreak object. * @param[in] obj linebreak object, must not be NULL. * @return linebreak object itself. * If error occurred, errno is set then NULL is returned. */ linebreak_t *linebreak_incref(linebreak_t * obj) { obj->refcount += 1UL; return obj; } /** Copy Constructor * * Create deep copy of linebreak object. * Reference count of new object will be set to 1. * If ref_func member of object is not NULL, it will be executed to increase * reference count of prep_data, format_data, sizing_data, urgent_data and * stash members. * @param[in] obj linebreak object, must not be NULL. * @return New linebreak object. * If error occurred, errno is set then NULL is returned. */ linebreak_t *linebreak_copy(linebreak_t * obj) { linebreak_t *newobj; mapent_t *newmap; unichar_t *newstr; if (obj == NULL) return (errno = EINVAL), NULL; if ((newobj = malloc(sizeof(linebreak_t))) == NULL) return NULL; memcpy(newobj, obj, sizeof(linebreak_t)); if (obj->map != NULL && obj->mapsiz) { if ((newmap = malloc(sizeof(mapent_t) * obj->mapsiz)) == NULL) { free(newobj); return NULL; } memcpy(newmap, obj->map, sizeof(mapent_t) * obj->mapsiz); newobj->map = newmap; } else newobj->map = NULL; if (obj->newline.str != NULL && obj->newline.len) { if ((newstr = malloc(sizeof(unichar_t) * obj->newline.len)) == NULL) { free(newobj->map); free(newobj); return NULL; } memcpy(newstr, obj->newline.str, sizeof(unichar_t) * obj->newline.len); newobj->newline.str = newstr; } else newobj->newline.str = NULL; if (obj->bufstr.str != NULL && obj->bufstr.len) { if ((newstr = malloc(sizeof(unichar_t) * obj->bufstr.len)) == NULL) { free(newobj->map); free(newobj->newline.str); free(newobj); return NULL; } memcpy(newstr, obj->bufstr.str, sizeof(unichar_t) * obj->bufstr.len); newobj->bufstr.str = newstr; } else newobj->bufstr.str = NULL; if (obj->bufspc.str != NULL && obj->bufspc.len) { if ((newstr = malloc(sizeof(unichar_t) * obj->bufspc.len)) == NULL) { free(newobj->map); free(newobj->newline.str); free(newobj->bufstr.str); free(newobj); return NULL; } memcpy(newstr, obj->bufspc.str, sizeof(unichar_t) * obj->bufspc.len); newobj->bufspc.str = newstr; } else newobj->bufspc.str = NULL; if (obj->unread.str != NULL && obj->unread.len) { if ((newstr = malloc(sizeof(unichar_t) * obj->unread.len)) == NULL) { free(newobj->map); free(newobj->newline.str); free(newobj->bufstr.str); free(newobj->bufspc.str); free(newobj); return NULL; } memcpy(newstr, obj->unread.str, sizeof(unichar_t) * obj->unread.len); newobj->unread.str = newstr; } else newobj->unread.str = NULL; if (obj->prep_func != NULL) { size_t i; for (i = 0; obj->prep_func[i] != NULL; i++); if ((newobj->prep_func = malloc(sizeof(linebreak_prep_func_t) * (i + 1))) == NULL) { free(newobj->map); free(newobj->newline.str); free(newobj->bufstr.str); free(newobj->bufspc.str); free(newobj->unread.str); free(newobj); return NULL; } memcpy(newobj->prep_func, obj->prep_func, sizeof(linebreak_prep_func_t) * (i + 1)); if ((newobj->prep_data = malloc(sizeof(void *) * (i + 1))) == NULL) { free(newobj->map); free(newobj->newline.str); free(newobj->bufstr.str); free(newobj->bufspc.str); free(newobj->unread.str); free(newobj->prep_func); free(newobj); return NULL; } if (obj->prep_data == NULL) memset(newobj->prep_data, 0, sizeof(void *) * (i + 1)); else memcpy(newobj->prep_data, obj->prep_data, sizeof(void *) * (i + 1)); } if (newobj->ref_func != NULL) { if (newobj->stash != NULL) (*newobj->ref_func) (newobj->stash, LINEBREAK_REF_STASH, +1); if (newobj->format_data != NULL) (*newobj->ref_func) (newobj->format_data, LINEBREAK_REF_FORMAT, +1); if (newobj->prep_data != NULL) { size_t i; for (i = 0; newobj->prep_func[i] != NULL; i++) if (newobj->prep_data[i] != NULL) (*newobj->ref_func) (newobj->prep_data[i], LINEBREAK_REF_PREP, +1); } if (newobj->sizing_data != NULL) (*newobj->ref_func) (newobj->sizing_data, LINEBREAK_REF_SIZING, +1); if (newobj->urgent_data != NULL) (*newobj->ref_func) (newobj->urgent_data, LINEBREAK_REF_URGENT, +1); if (newobj->user_data != NULL) (*newobj->ref_func) (newobj->user_data, LINEBREAK_REF_USER, +1); } newobj->refcount = 1UL; return newobj; } /** Decrease Reference Count; Destructor * * Decrement reference count of linebreak object. * When reference count becomes zero, free memories allocated for * object and then, if ref_func member of object was not NULL, * it will be executed to decrease reference count of prep_data, format_data, * sizing_data, urgent_data and stash members. * @param[in] obj linebreak object. * @return none. * If obj was NULL, do nothing. */ void linebreak_destroy(linebreak_t * obj) { if (obj == NULL) return; if ((obj->refcount -= 1UL)) return; free(obj->map); free(obj->newline.str); free(obj->bufstr.str); free(obj->bufspc.str); free(obj->unread.str); if (obj->ref_func != NULL) { if (obj->stash != NULL) (*obj->ref_func) (obj->stash, LINEBREAK_REF_STASH, -1); if (obj->format_data != NULL) (*obj->ref_func) (obj->format_data, LINEBREAK_REF_FORMAT, -1); if (obj->prep_func != NULL) { size_t i; for (i = 0; obj->prep_func[i] != NULL; i++) if (obj->prep_data[i] != NULL) (*obj->ref_func) (obj->prep_data[i], LINEBREAK_REF_PREP, -1); } if (obj->sizing_data != NULL) (*obj->ref_func) (obj->sizing_data, LINEBREAK_REF_SIZING, -1); if (obj->urgent_data != NULL) (*obj->ref_func) (obj->urgent_data, LINEBREAK_REF_URGENT, -1); if (obj->user_data != NULL) (*obj->ref_func) (obj->user_data, LINEBREAK_REF_USER, -1); } free(obj->prep_func); free(obj->prep_data); free(obj); } /** Setter: Update newline member * * @param[in] lbobj target linebreak object, must not be NULL. * @param[in] newline pointer to Unicode string. * @return none. * Copy of newline is set. * If error occurred, lbobj->errnum is set. */ void linebreak_set_newline(linebreak_t * lbobj, unistr_t * newline) { unichar_t *str; size_t len; if (newline != NULL && newline->str != NULL && newline->len != 0) { if ((str = malloc(sizeof(unichar_t) * newline->len)) == NULL) { lbobj->errnum = errno ? errno : ENOMEM; return; } memcpy(str, newline->str, sizeof(unichar_t) * newline->len); len = newline->len; } else { str = NULL; len = 0; } free(lbobj->newline.str); lbobj->newline.str = str; lbobj->newline.len = len; } /** Setter: Update stash Member * * @param[in] lbobj target linebreak object, must not be NULL. * @param[in] stash new stash value or NULL. * @return none. * New stash value is set. * Reference count of stash member will be handled appropriately. */ void linebreak_set_stash(linebreak_t * lbobj, void *stash) { if (lbobj->ref_func != NULL) { if (stash != NULL) (*(lbobj->ref_func)) (stash, LINEBREAK_REF_STASH, +1); if (lbobj->stash != NULL) (*(lbobj->ref_func)) (lbobj->stash, LINEBREAK_REF_STASH, -1); } lbobj->stash = stash; } /** Setter: Update format_func/format_data Member * * @param[in] lbobj target linebreak object. * @param[in] format_func format callback function or NULL. * @param[in] format_data new format_data value. * @return none. * New format callback is set. * Reference count of format_data member will be handled appropriately. */ void linebreak_set_format(linebreak_t * lbobj, linebreak_format_func_t format_func, void *format_data) { if (lbobj->ref_func != NULL) { if (format_data != NULL) (*(lbobj->ref_func)) (format_data, LINEBREAK_REF_FORMAT, +1); if (lbobj->format_data != NULL) (*(lbobj->ref_func)) (lbobj->format_data, LINEBREAK_REF_FORMAT, -1); } lbobj->format_func = format_func; lbobj->format_data = format_data; } /** Setter: Add/clear prep_func/prep_data Member * * @param[in] lbobj target linebreak object. * @param[in] prep_func preprocessing callback function or NULL. * @param[in] prep_data new prep_data value. * @return none. * New preprocessing callback is added. * Reference count of prep_data item will be handled appropriately. * if prep_func was NULL, all data are cleared. */ void linebreak_add_prep(linebreak_t * lbobj, linebreak_prep_func_t prep_func, void *prep_data) { size_t i; linebreak_prep_func_t *p; void **q; if (prep_func == NULL) { if (lbobj->prep_data != NULL) { for (i = 0; lbobj->prep_func[i] != NULL; i++) if (lbobj->prep_data[i] != NULL) (*lbobj->ref_func) (lbobj->prep_data[i], LINEBREAK_REF_PREP, -1); free(lbobj->prep_data); lbobj->prep_data = NULL; } free(lbobj->prep_func); lbobj->prep_func = NULL; return; } if (lbobj->prep_func == NULL) i = 0; else for (i = 0; lbobj->prep_func[i] != NULL; i++); if ((p = realloc(lbobj->prep_func, sizeof(linebreak_prep_func_t) * (i + 2))) == NULL) { lbobj->errnum = errno; return; } p[i] = NULL; lbobj->prep_func = p; if ((q = realloc(lbobj->prep_data, sizeof(void *) * (i + 2))) == NULL) { lbobj->errnum = errno; return; } lbobj->prep_data = q; if (lbobj->ref_func != NULL && prep_data != NULL) (*(lbobj->ref_func)) (prep_data, LINEBREAK_REF_PREP, +1); p[i] = prep_func; p[i + 1] = NULL; q[i] = prep_data; q[i + 1] = NULL; } /** Setter: Update sizing_func/sizing_data Member * * @param[in] lbobj target linebreak object. * @param[in] sizing_func sizing callback function or NULL. * @param[in] sizing_data new sizing_data value. * @return none. * New sizing callback is set. * Reference count of sizing_data member will be handled appropriately. */ void linebreak_set_sizing(linebreak_t * lbobj, linebreak_sizing_func_t sizing_func, void *sizing_data) { if (lbobj->ref_func != NULL) { if (sizing_data != NULL) (*(lbobj->ref_func)) (sizing_data, LINEBREAK_REF_SIZING, +1); if (lbobj->sizing_data != NULL) (*(lbobj->ref_func)) (lbobj->sizing_data, LINEBREAK_REF_SIZING, -1); } lbobj->sizing_func = sizing_func; lbobj->sizing_data = sizing_data; } /** Setter: Update urgent_func/urgent_data Member * * @param[in] lbobj target linebreak object. * @param[in] urgent_func urgent breaking callback function or NULL. * @param[in] urgent_data new urgent_data value. * @return none. * New urgent breaking callback is set. * Reference count of urgent_data member will be handled appropriately. */ void linebreak_set_urgent(linebreak_t * lbobj, linebreak_urgent_func_t urgent_func, void *urgent_data) { if (lbobj->ref_func != NULL) { if (urgent_data != NULL) (*(lbobj->ref_func)) (urgent_data, LINEBREAK_REF_URGENT, +1); if (lbobj->urgent_data != NULL) (*(lbobj->ref_func)) (lbobj->urgent_data, LINEBREAK_REF_URGENT, -1); } lbobj->urgent_func = urgent_func; lbobj->urgent_data = urgent_data; } /** Setter: Update user_func/user_data Member * @deprecated Use linebreak_add_prep() instead. * * @param[in] lbobj target linebreak object. * @param[in] user_func preprocessing callback function or NULL. * @param[in] user_data new user_data value. * @return none. * New preprocessing callback is set. * Reference count of user_data member will be handled appropriately. */ void linebreak_set_user(linebreak_t * lbobj, linebreak_obs_prep_func_t user_func, void *user_data) { if (lbobj->ref_func != NULL) { if (user_data != NULL) (*(lbobj->ref_func)) (user_data, LINEBREAK_REF_USER, +1); if (lbobj->user_data != NULL) (*(lbobj->ref_func)) (lbobj->user_data, LINEBREAK_REF_USER, -1); } lbobj->user_func = user_func; lbobj->user_data = user_data; } /** Reset State * * Reset internal state of linebreak object. * Internal state is set by linebreak_break_partial() function. * @param[in] lbobj linebreak object. * @return none. * If lbobj was NULL, do nothing. */ void linebreak_reset(linebreak_t * lbobj) { if (lbobj == NULL) return; free(lbobj->unread.str); lbobj->unread.str = NULL; lbobj->unread.len = 0; free(lbobj->bufstr.str); lbobj->bufstr.str = NULL; lbobj->bufstr.len = 0; free(lbobj->bufspc.str); lbobj->bufspc.str = NULL; lbobj->bufspc.len = 0; lbobj->bufcols = 0.0; lbobj->state = LINEBREAK_STATE_NONE; lbobj->errnum = 0; } /** Get breaking rule between two classes * * From given two line breaking classes, get breaking rule determined by * internal data. * @param[in] obj linebreak object, must not be NULL. * @param[in] albc line breaking class. * @param[in] blbc line breaking class. * @return line breaking action: MANDATORY, DIRECT, INDIRECT or PROHIBITED. * If action was not determined, returns DIRECT. * * @note This method gives just approximate description of line breaking * behavior. Class AI and CJ will be resolved to approppriate classes. * See also linebreak_lbrule(). * * @note This method was introduced by Sombok 2.0.6. * @note LEGACY_CM and HANGUL_AS_AL options are concerned as of Sombok 2.1.2. * @note Only HANGUL_AS_AL is concerned as of Sombok 2.2. * */ propval_t linebreak_get_lbrule(linebreak_t * obj, propval_t blbc, propval_t albc) { switch (blbc) { case LB_AI: blbc = (obj->options & LINEBREAK_OPTION_EASTASIAN_CONTEXT) ? LB_ID : LB_AL; break; case LB_CJ: blbc = (obj->options & LINEBREAK_OPTION_NONSTARTER_LOOSE) ? LB_ID : LB_NS; break; /* Optionally, treat hangul syllable as if it were AL. */ case LB_H2: case LB_H3: case LB_JL: case LB_JV: case LB_JT: if ((albc == LB_H2 || albc == LB_H3 || albc == LB_JL || albc == LB_JV || albc == LB_JT) && obj->options & LINEBREAK_OPTION_HANGUL_AS_AL) return LINEBREAK_ACTION_INDIRECT; break; } switch (albc) { case LB_AI: albc = (obj->options & LINEBREAK_OPTION_EASTASIAN_CONTEXT) ? LB_ID : LB_AL; break; case LB_CJ: albc = (obj->options & LINEBREAK_OPTION_NONSTARTER_LOOSE) ? LB_ID : LB_NS; break; } return linebreak_lbrule(blbc, albc); } /** Get Line Breaking Class * @deprecated Use gcstring_lbclass() or gcstring_lbclass_ext() instead. * * Get UAX #14 line breaking class of Unicode character. * Classes XX and SG will be resolved to AL. * @param[in] obj linebreak object, must not be NULL. * @param[in] c Unicode character. * @return line breaking class property value. */ propval_t linebreak_lbclass(linebreak_t * obj, unichar_t c) { propval_t lbc, gcb, scr; linebreak_charprop(obj, c, &lbc, NULL, &gcb, &scr); if (lbc == LB_AI) lbc = (obj->options & LINEBREAK_OPTION_EASTASIAN_CONTEXT) ? LB_ID : LB_AL; else if (lbc == LB_CJ) lbc = (obj->options & LINEBREAK_OPTION_NONSTARTER_LOOSE) ? LB_ID : LB_NS; else if (lbc == LB_SA) { #ifdef USE_LIBTHAI if (scr != SC_Thai) #endif /* USE_LIBTHAI */ lbc = (gcb == GB_Extend || gcb == GB_SpacingMark || gcb == GB_Virama) ? LB_CM : LB_AL; } return lbc; } /** Get East_Asian_Width Property * @deprecated Use gcstring_columns() instead. * * Get UAX #11 East_Asian_Width property value of Unicode character. * Class A will be resolved to appropriate property F or N. * @param[in] obj linebreak object, must not be NULL. * @param[in] c Unicode character. * @return East_Asian_Width property value. */ propval_t linebreak_eawidth(linebreak_t * obj, unichar_t c) { propval_t eaw; linebreak_charprop(obj, c, NULL, &eaw, NULL, NULL); if (eaw == EA_A) eaw = (obj->options & LINEBREAK_OPTION_EASTASIAN_CONTEXT) ? EA_F : EA_N; return eaw; } sombok-2.3.1/lib/southeastasian.c0000644000076400007640000000555312210015235013704 00000000000000/* * southeastasian.c - interfaces for South East Asian complex breaking. * * Copyright (C) 2009-2012 by Hatuka*nezumi - IKEDA Soji. * * This file is part of the Sombok Package. This program is free * software; you can redistribute it and/or modify it under the terms of * either the GNU General Public License or the Artistic License, as * specified in the README file. * */ #include #include "sombok_constants.h" #include "sombok.h" #ifdef USE_LIBTHAI # include "thai/thwchar.h" # include "thai/thwbrk.h" #endif /* USE_LIBTHAI */ /** @defgroup linebreak_southeastasian southeastasian * @brief Supports for breaking in South East Asian complex context. * *@{*/ /** Flag to determin whether South East Asian word segmentation is supported. */ const char *linebreak_southeastasian_supported = #ifdef USE_LIBTHAI "Thai:" USE_LIBTHAI " " #else /* USE_LIBTHAI */ NULL #endif /* USE_LIBTHAI */ ; void linebreak_southeastasian_flagbreak(gcstring_t * gcstr) { #ifdef USE_LIBTHAI wchar_t *buf; size_t i, j, len; int brk, sa; if (gcstr == NULL || gcstr->gclen == 0) return; if (!(((linebreak_t *) gcstr->lbobj)->options & LINEBREAK_OPTION_COMPLEX_BREAKING)) return; len = gcstr->len; /* Copy string to temp buffer so that abuse of external module avoided. */ if ((buf = malloc(sizeof(wchar_t) * (len + 1))) == NULL) return; #ifdef SOMBOK_UNICHAR_T_IS_WCHAR_T memcpy(buf, gcstr->str, sizeof(wchar_t) * len); #else /* SOMBOK_UNICHAR_T_IS_WCHAR_T */ for (i = 0; i < len; i++) buf[i] = (wchar_t) (gcstr->str[i]); #endif /* SOMBOK_UNICHAR_T_IS_WCHAR_T */ buf[len] = (wchar_t) 0; /* * Flag breaking points. * Note: th_wbrk() sometimes returns -1 when breaking positions weren't * found. */ sa = 0; for (i = 0, j = 0; j < len && th_wbrk(buf + j, &brk, 1) == 1; j += brk) { /* check if external module is broken. */ assert(0 <= brk); assert(brk < len); if (brk == 0) /* This should not cause but is caused by older libthai */ break; for (; i < gcstr->gclen && gcstr->gcstr[i].idx <= j + brk; i++) { /* check if external module broke temp buffer. */ assert(buf[i] == (wchar_t) (gcstr->str[i])); if (gcstr->gcstr[i].lbc == LB_SA) { if (!sa) /* skip the first grapheme of each SA block. */ sa = 1; else if (gcstr->gcstr[i].flag) /* already flagged by _prep(). */ ; else if (gcstr->gcstr[i].idx != j + brk) /* not grapheme cluster boundary. */ ; else { propval_t p = PROP_UNKNOWN; linebreak_charprop(gcstr->lbobj, gcstr->str[gcstr->gcstr[i].idx - 1], &p, NULL, NULL, NULL); /* bogus breaking by libthai on non-SA grapheme extender * (e.g. CM SA). */ if (p == LB_SA) gcstr->gcstr[i].flag = LINEBREAK_FLAG_ALLOW_BEFORE; } } else sa = 0; } } free(buf); #endif /* USE_LIBTHAI */ } sombok-2.3.1/lib/utf8.c0000644000076400007640000002120212210015235011524 00000000000000/* * utf8.c - Handle UTF-8 sequence. * * Copyright (C) 2012 by Hatuka*nezumi - IKEDA Soji. * * This file is part of the Sombok Package. This program is free * software; you can redistribute it and/or modify it under the terms of * either the GNU General Public License or the Artistic License, as * specified in the README file. * */ #include "sombok.h" /** @defgroup utf8 utf8 * @brief Handle UTF-8 sequence. * * @note This module was introduced by release 2.1.0. * *@{*/ /** Decode UTF-8 string to Unicode string * * @param[out] unistr Unicode string, must not be NULL. * @param[in] maxchars maximum number of characters to be decoded. * 0 means infinite * @param[in] utf8 source UTF-8 string * @param[in] utf8len length of string * @param[in] check 0: no check; 1: check malformed sequence; 2: check * surrogate too; 3: check codes beyond Unicode too * * @returns Unicode string. * If unistr->str was NULL or maxchars was 0 (infinite), required buffer will * be (re-)allocated. * If error occurred, NULL is returned and errno is set. * * @note unistr->str must not point to static memory. */ unistr_t *sombok_decode_utf8(unistr_t *unistr, size_t maxchars, const char *utf8, size_t utf8len, int check) { size_t i, unilen; unichar_t unichar, *uni; int pass; if (unistr == NULL) { errno = EINVAL; return NULL; } uni = unistr->str; if (utf8 == NULL) utf8len = 0; for (pass = 1; pass <= 2; pass++) { for (i = 0, unilen = 0; i < utf8len; unilen++) { if (maxchars != 0 && maxchars < unilen + 1) break; if ((utf8[i] & 0x80) == 0) { if (pass == 2) uni[unilen] = utf8[i]; i++; } else if (i + 1 < utf8len && (utf8[i] & 0xE0) == 0xC0 && (utf8[i + 1] & 0xC0) == 0x80) { if (pass == 2) { unichar = utf8[i] & 0x1F; unichar <<= 6; unichar |= utf8[i + 1] & 0x3F; uni[unilen] = unichar; } i += 2; } else if (i + 2 < utf8len && (utf8[i] & 0xF0) == 0xE0 && (utf8[i + 1] & 0xC0) == 0x80 && (utf8[i + 2] & 0xC0) == 0x80) { if (SOMBOK_UTF8_CHECK_SURROGATE <= check && (utf8[i] & 0x0F) == 0x0D && (utf8[i + 1] & 0x20) == 0x20) { errno = EPERM; return NULL; } if (pass == 2) { unichar = utf8[i] & 0x0F; unichar <<= 6; unichar |= utf8[i + 1] & 0x3F; unichar <<= 6; unichar |= utf8[i + 2] & 0x3F; uni[unilen] = unichar; } i += 3; } else if (i + 3 < utf8len && (utf8[i] & 0xF8) == 0xF0 && (utf8[i + 1] & 0xC0) == 0x80 && (utf8[i + 2] & 0xC0) == 0x80 && (utf8[i + 3] & 0xC0) == 0x80) { if (SOMBOK_UTF8_CHECK_NONUNICODE <= check && 0x10 < (((utf8[i] & 0x07) << 2) | ((utf8[i + 1] & 0x30) >> 4))) { errno = EPERM; return NULL; } if (pass == 2) { unichar = utf8[i] & 0x07; unichar <<= 6; unichar |= utf8[i + 1] & 0x3F; unichar <<= 6; unichar |= utf8[i + 2] & 0x3F; unichar <<= 6; unichar |= utf8[i + 3] & 0x3F; uni[unilen] = unichar; } i += 4; } else if (SOMBOK_UTF8_CHECK_NONUNICODE <= check) { errno = EPERM; return NULL; } else if (i + 4 < utf8len && (utf8[i] & 0xFC) == 0xF8 && (utf8[i + 1] & 0xC0) == 0x80 && (utf8[i + 2] & 0xC0) == 0x80 && (utf8[i + 3] & 0xC0) == 0x80 && (utf8[i + 4] & 0xC0) == 0x80) { if (pass == 2) { unichar = utf8[i] & 0x03; unichar <<= 6; unichar |= utf8[i + 1] & 0x3F; unichar <<= 6; unichar |= utf8[i + 2] & 0x3F; unichar <<= 6; unichar |= utf8[i + 3] & 0x3F; unichar <<= 6; unichar |= utf8[i + 4] & 0x3F; uni[unilen] = unichar; } i += 5; } else if (i + 5 < utf8len && (utf8[i] & 0xFE) == 0xFC && (utf8[i + 1] & 0xC0) == 0x80 && (utf8[i + 2] & 0xC0) == 0x80 && (utf8[i + 3] & 0xC0) == 0x80 && (utf8[i + 4] & 0xC0) == 0x80 && (utf8[i + 5] & 0xC0) == 0x80) { if (pass == 2) { unichar = utf8[i] & 0x01; unichar <<= 6; unichar |= utf8[i + 1] & 0x3F; unichar <<= 6; unichar |= utf8[i + 2] & 0x3F; unichar <<= 6; unichar |= utf8[i + 3] & 0x3F; unichar <<= 6; unichar |= utf8[i + 4] & 0x3F; unichar <<= 6; unichar |= utf8[i + 5] & 0x3F; uni[unilen] = unichar; } i += 6; } else { if (SOMBOK_UTF8_CHECK_MALFORMED <= check) { errno = EPERM; return NULL; } if (pass == 2) uni[unilen] = utf8[i]; i++; } } if (pass == 1) { if (uni == NULL) { if ((uni = malloc(sizeof(unichar_t) * (unilen + 1))) == NULL) return NULL; uni[unilen] = 0; } else if (maxchars == 0) { if ((uni = realloc(uni, sizeof(unichar_t) * (unilen + 1))) == NULL) return NULL; uni[unilen] = 0; } else if (unilen < maxchars) uni[unilen] = 0; unistr->str = uni; unistr->len = unilen; } } return unistr; } /** Encode Unicode string to UTF-8 string * * @param[out] utf8 string buffer, may be NULL. * @param[out] utf8lenp pointer to length of buffer, may be NULL. * @param[in] maxbytes maximum number of bytes to be encoded. 0 means infinite * @param[in] unistr source Unicode string, must not be NULL. * * @returns string buffer. * If utf8 was NULL or maxbytes was 0 (infinite), required buffer will be * (re-)allocated. * If error occurred, NULL is returned and errno is set. * * @note utf8 must not point to static memory. */ char *sombok_encode_utf8(char *utf8, size_t *utf8lenp, size_t maxbytes, unistr_t *unistr) { size_t i, utf8len, unilen; unichar_t unichar; int pass; if (unistr == NULL) { errno = EINVAL; return NULL; } if (unistr->str == NULL) unilen = 0; else unilen = unistr->len; for (pass = 1; pass <= 2; pass++) { for (i = 0, utf8len = 0; i < unilen; i++) { unichar = unistr->str[i]; if (unichar == (unichar & 0x007F)) { if (maxbytes != 0 && maxbytes < utf8len + 1) break; if (pass == 2) utf8[utf8len] = (char) unichar; utf8len++; } else if (unichar == (unichar & 0x07FF)) { if (maxbytes != 0 && maxbytes < utf8len + 2) break; if (pass == 2) { utf8[utf8len + 1] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len] = (char) (unichar & 0x1F) | 0xC0; } utf8len += 2; } else if (unichar == (unichar & 0x00FFFF)) { if (maxbytes != 0 && maxbytes < utf8len + 3) break; if (pass == 2) { utf8[utf8len + 2] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len + 1] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len] = (char) (unichar & 0x0F) | 0xE0; } utf8len += 3; } else if (unichar == (unichar & 0x001FFFFF)) { if (maxbytes != 0 && maxbytes < utf8len + 4) break; if (pass == 2) { utf8[utf8len + 3] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len + 2] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len + 1] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len] = (char) (unichar & 0x07) | 0xF0; } utf8len += 4; } else if (unichar == (unichar & 0x03FFFFFF)) { if (maxbytes != 0 && maxbytes < utf8len + 5) break; if (pass == 2) { utf8[utf8len + 4] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len + 3] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len + 2] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len + 1] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len] = (char) (unichar & 0x03) | 0xF8; } utf8len += 5; } else if (unichar == (unichar & 0x7FFFFFFF)) { if (maxbytes != 0 && maxbytes < utf8len + 6) break; if (pass == 2) { utf8[utf8len + 5] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len + 4] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len + 3] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len + 2] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len + 1] = (char) (unichar & 0x3F) | 0x80; unichar >>= 6; utf8[utf8len] = (char) (unichar & 0x01) | 0xFC; } utf8len += 6; } else { errno = EPERM; return NULL; } } if (pass == 1) { if (utf8 == NULL) { if ((utf8 = malloc(sizeof(char) * (utf8len + 1))) == NULL) return NULL; utf8[utf8len] = '\0'; } else if (maxbytes == 0) { if ((utf8 = realloc(utf8, sizeof(char) * (utf8len + 1))) == NULL) return NULL; utf8[utf8len] = '\0'; } else if (utf8len < maxbytes) utf8[utf8len] = '\0'; if (utf8lenp != NULL) *utf8lenp = utf8len; } } return utf8; } sombok-2.3.1/lib/6.3.0.c0000664000076400007640000120745312221425602011330 00000000000000/* * This file is automatically generated. DON'T EDIT THIS FILE MANUALLY. */ #include "sombok_constants.h" #include "sombok.h" #define UNICODE_VERSION "6.3.0" const char *linebreak_unicode_version = UNICODE_VERSION; const char *linebreak_propvals_EA[] = { "Z", "Na", "N", "A", "W", "H", "F", "ZA", "ZW", NULL }; const char *linebreak_propvals_GB[] = { "CR", "LF", "Control", "Extend", "Prepend", "SpacingMark", "L", "V", "T", "LV", "LVT", "Other", "Virama", "OtherLetter", "Regional_Indicator", NULL }; const char *linebreak_propvals_LB[] = { "BK", "CR", "LF", "NL", "SP", "OP", "CL", "QU", "GL", "NS", "EX", "SY", "IS", "PR", "PO", "NU", "AL", "ID", "IN", "HY", "BA", "BB", "B2", "CB", "ZW", "CM", "WJ", "H2", "H3", "JL", "JV", "JT", "CP", "RI", "SG", "AI", "SA", "HL", "CJ", "XX", NULL }; const char *linebreak_propvals_SC[] = { "Common", "Inherited", "Unknown", "Han", "Hangul", "Thai", "Lao", "Myanmar", "Khmer", "Tai_Le", "New_Tai_Lue", "Tai_Tham", "Tai_Viet", NULL }; #define M (LINEBREAK_ACTION_MANDATORY) #define D (LINEBREAK_ACTION_DIRECT) #define I (LINEBREAK_ACTION_INDIRECT) #define P (LINEBREAK_ACTION_PROHIBITED) #define r(cc) static propval_t rule_##cc[] /* Note: Entries related to BK, CR, CM, LF, NL aren't used by break(). */ /* BkCrLfNlSpOpClQuGlNsExSyIsPrPoNuAlIdInHyBaBbB2CbZwCmWjH2H3JlJvJtCpRi */ r(BK)={M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M}; r(CR)={M,M,P,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M}; r(LF)={M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M}; r(NL)={M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M}; r(SP)={P,P,P,P,P,D,P,D,D,D,P,P,P,D,D,D,D,D,D,D,D,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(OP)={P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P}; r(CL)={P,P,P,P,P,D,P,I,I,P,P,P,P,D,D,D,D,D,D,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(QU)={P,P,P,P,P,P,P,I,I,I,P,P,P,I,I,I,I,I,I,I,I,I,I,I,P,I,P,I,I,I,I,I,P,I}; r(GL)={P,P,P,P,P,I,P,I,I,I,P,P,P,I,I,I,I,I,I,I,I,I,I,I,P,I,P,I,I,I,I,I,P,I}; r(NS)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,D,D,D,D,D,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(EX)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,D,D,D,D,D,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(SY)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,D,D,D,D,D,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(IS)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,D,D,I,D,D,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(PR)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,D,D,I,I,D,I,I,D,D,D,P,D,P,I,I,I,I,I,P,D}; r(PO)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,D,D,I,D,D,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(NU)={P,P,P,P,P,I,P,I,I,I,P,P,P,D,D,D,I,D,I,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(AL)={P,P,P,P,P,I,P,I,I,I,P,P,P,D,D,I,I,D,I,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(ID)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,I,D,D,D,I,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(IN)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,D,D,D,D,I,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(HY)={P,P,P,P,P,D,P,I,D,I,P,P,P,D,D,D,D,D,D,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(BA)={P,P,P,P,P,D,P,I,D,I,P,P,P,D,D,D,D,D,D,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(BB)={P,P,P,P,P,I,P,I,I,I,P,P,P,I,I,I,I,I,I,I,I,I,I,D,P,I,P,I,I,I,I,I,P,I}; r(B2)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,D,D,D,D,D,I,I,D,P,D,P,D,P,D,D,D,D,D,P,D}; r(CB)={P,P,P,P,P,D,P,I,I,D,P,P,P,D,D,D,D,D,D,D,D,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(ZW)={P,P,P,P,P,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,P,D,D,D,D,D,D,D,D,D}; r(CM)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,D,D,D,D,D,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(WJ)={P,P,P,P,P,I,P,I,I,I,P,P,P,I,I,I,I,I,I,I,I,I,I,I,P,I,P,I,I,I,I,I,P,I}; r(H2)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,I,D,D,D,I,I,I,D,D,D,P,D,P,D,D,D,I,I,P,D}; r(H3)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,I,D,D,D,I,I,I,D,D,D,P,D,P,D,D,D,D,I,P,D}; r(JL)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,I,D,D,D,I,I,I,D,D,D,P,D,P,I,I,I,I,D,P,D}; r(JV)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,I,D,D,D,I,I,I,D,D,D,P,D,P,D,D,D,I,I,P,D}; r(JT)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,I,D,D,D,I,I,I,D,D,D,P,D,P,D,D,D,D,I,P,D}; r(CP)={P,P,P,P,P,D,P,I,I,P,P,P,P,D,D,I,I,D,D,I,I,D,D,D,P,D,P,D,D,D,D,D,P,D}; r(RI)={P,P,P,P,P,D,P,I,I,I,P,P,P,D,D,D,D,D,D,I,I,D,D,D,P,D,P,D,D,D,D,D,P,I}; #undef r propval_t *linebreak_rules[] = { rule_BK, rule_CR, rule_LF, rule_NL, rule_SP, rule_OP, rule_CL, rule_QU, rule_GL, rule_NS, rule_EX, rule_SY, rule_IS, rule_PR, rule_PO, rule_NU, rule_AL, rule_ID, rule_IN, rule_HY, rule_BA, rule_BB, rule_B2, rule_CB, rule_ZW, rule_CM, rule_WJ, rule_H2, rule_H3, rule_JL, rule_JV, rule_JT, rule_CP, rule_RI }; size_t linebreak_rulessiz = 34; unsigned short linebreak_prop_index[] = { 0, 32, 64, 94, 125, 157, 189, 219, 248, 276, 307, 333, 345, 345, 363, 345, 345, 345, 392, 343, 345, 345, 420, 345, 452, 452, 469, 498, 529, 559, 589, 345, 620, 636, 652, 345, 681, 345, 345, 345, 345, 345, 345, 345, 704, 721, 753, 774, 806, 345, 838, 870, 345, 345, 887, 918, 944, 962, 983, 345, 345, 1009, 1041, 1062, 1088, 1116, 1130, 345, 345, 345, 345, 1158, 1190, 1196, 1227, 1257, 1288, 1292, 1323, 1353, 1384, 1388, 1419, 1445, 1384, 1388, 1477, 1507, 1288, 1525, 1557, 1587, 1617, 1620, 1652, 1678, 1709, 1713, 1744, 1587, 1774, 1778, 1810, 1587, 1774, 1620, 1842, 1872, 1774, 345, 1898, 1930, 1961, 1976, 2008, 345, 2039, 2071, 2103, 345, 2135, 2167, 345, 2199, 2231, 2256, 2288, 345, 2320, 2339, 2371, 2402, 2432, 345, 345, 345, 2464, 2464, 2464, 2496, 2496, 2520, 2528, 2528, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 2560, 2592, 345, 345, 345, 345, 2593, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 2625, 345, 345, 2654, 2668, 2689, 2712, 2712, 2744, 2756, 2786, 1041, 2816, 345, 345, 345, 345, 1610, 345, 345, 345, 2848, 2876, 2894, 2926, 2946, 2973, 345, 3005, 3037, 3048, 3080, 3112, 3144, 345, 345, 3176, 3188, 3218, 3249, 3281, 3312, 345, 3338, 345, 3366, 3112, 3398, 345, 345, 3430, 3461, 345, 345, 345, 345, 345, 345, 3493, 987, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 3525, 3557, 3589, 3620, 3652, 3684, 3716, 3739, 3508, 3771, 3802, 3815, 3847, 3873, 3899, 3925, 3950, 3982, 4013, 4043, 4075, 4105, 4132, 345, 345, 4145, 4173, 345, 345, 345, 345, 345, 4189, 345, 345, 345, 4221, 4221, 4221, 4221, 4243, 4221, 4221, 4275, 4291, 4323, 4355, 4383, 4413, 4445, 4477, 4509, 4541, 4573, 4605, 4637, 4668, 4700, 4714, 4744, 4775, 4807, 345, 4834, 4860, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 4889, 345, 4914, 4942, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 4972, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 4998, 345, 345, 345, 5030, 345, 345, 345, 3493, 5062, 5094, 345, 345, 5126, 5153, 5153, 5165, 5153, 5153, 5153, 5153, 5153, 5153, 5163, 5185, 5217, 5249, 5281, 5310, 5339, 5371, 5310, 5400, 5432, 5450, 5153, 5153, 5137, 5158, 5153, 5478, 5154, 5153, 5510, 5153, 5153, 5153, 5153, 5154, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 345, 345, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5526, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5548, 5153, 5573, 3398, 345, 345, 345, 345, 345, 345, 345, 345, 5592, 1041, 345, 5609, 5639, 345, 345, 5654, 345, 345, 345, 345, 345, 345, 345, 345, 5684, 5713, 345, 5738, 1711, 5762, 5790, 3507, 1041, 5816, 5841, 5873, 1190, 5902, 5934, 345, 345, 5960, 5989, 6021, 6053, 6069, 6101, 6133, 345, 345, 345, 345, 345, 345, 345, 6162, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6218, 6194, 6198, 6202, 6206, 6210, 6214, 6246, 6271, 2532, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 6335, 6366, 6398, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 6414, 345, 345, 345, 345, 345, 6446, 6478, 6510, 6538, 6569, 345, 345, 345, 6581, 6613, 6645, 6675, 6707, 6724, 6756, 6787, 6819, 345, 345, 345, 345, 345, 345, 345, 345, 3395, 345, 345, 345, 345, 345, 345, 6849, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 2594, 345, 2609, 345, 345, 345, 345, 345, 345, 1041, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 2602, 345, 345, 345, 345, 345, 2594, 345, 345, 345, 345, 345, 345, 345, 6880, 6896, 6928, 345, 345, 345, 345, 345, 345, 6952, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 6984, 6992, 7018, 1035, 3281, 7034, 3396, 7066, 3522, 7092, 3394, 345, 3281, 7124, 7156, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 7182, 1041, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 7206, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 7226, 345, 7256, 345, 345, 345, 345, 345, 345, 7266, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 7294, 7311, 7342, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 7374, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 7401, 7430, 7452, 345, 345, 345, 345, 7482, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 7500, 7514, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 7546, 7566, 7546, 7546, 7582, 7614, 7645, 345, 7677, 7695, 4221, 7717, 7733, 345, 345, 7760, 7792, 5158, 7815, 345, 345, 345, 345, 345, 7546, 7847, 7546, 7549, 7582, 7870, 7893, 7925, 7546, 7547, 7957, 7546, 7546, 7989, 7546, 8008, 8037, 8064, 7909, 8074, 345, 345, 345, 8082, 7546, 7546, 8113, 345, 7546, 7546, 4708, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345 }; propval_t linebreak_prop_array[] = { LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_BA, EA_Z, GB_Control, SC_Unknown, LB_LF, EA_Z, GB_LF, SC_Unknown, LB_BK, EA_Z, GB_Control, SC_Unknown, LB_BK, EA_Z, GB_Control, SC_Unknown, LB_CR, EA_Z, GB_CR, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_SP, EA_Na, GB_Other, SC_Unknown, LB_EX, EA_Na, GB_Other, SC_Unknown, LB_QU, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_PR, EA_Na, GB_Other, SC_Unknown, LB_PO, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_QU, EA_Na, GB_Other, SC_Unknown, LB_OP, EA_Na, GB_Other, SC_Unknown, LB_CP, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_PR, EA_Na, GB_Other, SC_Unknown, LB_IS, EA_Na, GB_Other, SC_Unknown, LB_HY, EA_Na, GB_Other, SC_Unknown, LB_IS, EA_Na, GB_Other, SC_Unknown, LB_SY, EA_Na, GB_Other, SC_Unknown, LB_NU, EA_Na, GB_Other, SC_Unknown, LB_NU, EA_Na, GB_Other, SC_Unknown, LB_NU, EA_Na, GB_Other, SC_Unknown, LB_NU, EA_Na, GB_Other, SC_Unknown, LB_NU, EA_Na, GB_Other, SC_Unknown, LB_NU, EA_Na, GB_Other, SC_Unknown, LB_NU, EA_Na, GB_Other, SC_Unknown, LB_NU, EA_Na, GB_Other, SC_Unknown, LB_NU, EA_Na, GB_Other, SC_Unknown, LB_NU, EA_Na, GB_Other, SC_Unknown, LB_IS, EA_Na, GB_Other, SC_Unknown, LB_IS, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_EX, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_OP, EA_Na, GB_Other, SC_Unknown, LB_PR, EA_Na, GB_Other, SC_Unknown, LB_CP, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_OP, EA_Na, GB_Other, SC_Unknown, LB_BA, EA_Na, GB_Other, SC_Unknown, LB_CL, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_NL, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_GL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_A, GB_Other, SC_Unknown, LB_PO, EA_Na, GB_Other, SC_Unknown, LB_PR, EA_Na, GB_Other, SC_Unknown, LB_PR, EA_A, GB_Other, SC_Unknown, LB_PR, EA_Na, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_BA, EA_ZA, GB_Control, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_Na, GB_Other, SC_Unknown, LB_PO, EA_A, GB_Other, SC_Unknown, LB_PR, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_BB, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_OP, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BB, EA_A, GB_Other, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_GL, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_GL, EA_ZA, GB_Extend, SC_Unknown, LB_GL, EA_ZA, GB_Extend, SC_Unknown, LB_GL, EA_ZA, GB_Extend, SC_Unknown, LB_GL, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_IS, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_IS, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_IS, EA_N, GB_Other, SC_Unknown, LB_IS, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_IS, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_SpacingMark, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Virama, SC_Thai, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_N, GB_Other, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_SA, EA_Z, GB_Extend, SC_Thai, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_SpacingMark, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_SA, EA_Z, GB_Extend, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_SA, EA_N, GB_Other, SC_Lao, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_GL, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_GL, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_GL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_BA, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_GL, EA_N, GB_Other, SC_Unknown, LB_GL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_N, GB_SpacingMark, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_Z, GB_Virama, SC_Myanmar, LB_SA, EA_Z, GB_Virama, SC_Myanmar, LB_SA, EA_N, GB_SpacingMark, SC_Myanmar, LB_SA, EA_N, GB_SpacingMark, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_SpacingMark, SC_Myanmar, LB_SA, EA_N, GB_SpacingMark, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_SpacingMark, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_Z, GB_Extend, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_N, GB_SpacingMark, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_N, GB_SpacingMark, SC_Khmer, LB_SA, EA_N, GB_SpacingMark, SC_Khmer, LB_SA, EA_N, GB_SpacingMark, SC_Khmer, LB_SA, EA_N, GB_SpacingMark, SC_Khmer, LB_SA, EA_N, GB_SpacingMark, SC_Khmer, LB_SA, EA_N, GB_SpacingMark, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_N, GB_SpacingMark, SC_Khmer, LB_SA, EA_N, GB_SpacingMark, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_SA, EA_Z, GB_Virama, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_NS, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Khmer, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Khmer, LB_SA, EA_Z, GB_Extend, SC_Khmer, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_GL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_SA, EA_N, GB_Other, SC_Tai_Le, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_SpacingMark, SC_New_Tai_Lue, LB_SA, EA_N, GB_SpacingMark, SC_New_Tai_Lue, LB_SA, EA_N, GB_SpacingMark, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_SpacingMark, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_SA, EA_N, GB_Other, SC_New_Tai_Lue, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_SpacingMark, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_N, GB_SpacingMark, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_Z, GB_Virama, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_N, GB_SpacingMark, SC_Tai_Tham, LB_SA, EA_N, GB_SpacingMark, SC_Tai_Tham, LB_SA, EA_N, GB_SpacingMark, SC_Tai_Tham, LB_SA, EA_N, GB_SpacingMark, SC_Tai_Tham, LB_SA, EA_N, GB_SpacingMark, SC_Tai_Tham, LB_SA, EA_N, GB_SpacingMark, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_SA, EA_Z, GB_Extend, SC_Tai_Tham, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_SA, EA_N, GB_Other, SC_Tai_Tham, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_Virama, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_Virama, SC_Unknown, LB_CM, EA_N, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_GL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_ZW, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_BA, EA_A, GB_Other, SC_Unknown, LB_GL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_A, GB_Other, SC_Unknown, LB_B2, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_QU, EA_A, GB_Other, SC_Unknown, LB_QU, EA_A, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_A, GB_Other, SC_Unknown, LB_QU, EA_A, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_IN, EA_A, GB_Other, SC_Unknown, LB_IN, EA_A, GB_Other, SC_Unknown, LB_IN, EA_A, GB_Other, SC_Unknown, LB_BA, EA_A, GB_Other, SC_Unknown, LB_BK, EA_Z, GB_Control, SC_Unknown, LB_BK, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_GL, EA_N, GB_Other, SC_Unknown, LB_PO, EA_A, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_PO, EA_A, GB_Other, SC_Unknown, LB_PO, EA_A, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_PO, EA_A, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_NS, EA_N, GB_Other, SC_Unknown, LB_NS, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_IS, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_NS, EA_N, GB_Other, SC_Unknown, LB_NS, EA_N, GB_Other, SC_Unknown, LB_NS, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_WJ, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_H, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_A, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PO, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PO, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PR, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_PR, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_ID, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AI, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_Na, GB_Other, SC_Unknown, LB_CL, EA_Na, GB_Other, SC_Unknown, LB_OP, EA_Na, GB_Other, SC_Unknown, LB_CL, EA_Na, GB_Other, SC_Unknown, LB_OP, EA_Na, GB_Other, SC_Unknown, LB_CL, EA_Na, GB_Other, SC_Unknown, LB_OP, EA_Na, GB_Other, SC_Unknown, LB_CL, EA_Na, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_Na, GB_Other, SC_Unknown, LB_CL, EA_Na, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_QU, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_B2, EA_N, GB_Other, SC_Unknown, LB_B2, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_F, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CM, EA_ZW, GB_Extend, SC_Unknown, LB_CM, EA_ZW, GB_Extend, SC_Unknown, LB_CM, EA_ZW, GB_Extend, SC_Unknown, LB_CM, EA_ZW, GB_Extend, SC_Unknown, LB_CM, EA_W, GB_Extend, SC_Unknown, LB_CM, EA_W, GB_Extend, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CM, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_ZW, GB_Extend, SC_Unknown, LB_CM, EA_ZW, GB_Extend, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_CJ, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_BB, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_EX, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_JL, EA_W, GB_L, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_SA, EA_N, GB_Other, SC_Myanmar, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_Z, GB_Extend, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_Z, GB_Extend, SC_Tai_Viet, LB_SA, EA_Z, GB_Extend, SC_Tai_Viet, LB_SA, EA_Z, GB_Extend, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_Z, GB_Extend, SC_Tai_Viet, LB_SA, EA_Z, GB_Extend, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_Z, GB_Extend, SC_Tai_Viet, LB_SA, EA_Z, GB_Extend, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_Z, GB_Extend, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_SA, EA_N, GB_Other, SC_Tai_Viet, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_H2, EA_W, GB_LV, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H2, EA_W, GB_LV, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_H3, EA_W, GB_LVT, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_JV, EA_N, GB_V, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_JT, EA_N, GB_T, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_HL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PO, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_CM, EA_ZA, GB_Extend, SC_Unknown, LB_IS, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_IS, EA_W, GB_Other, SC_Unknown, LB_IS, EA_W, GB_Other, SC_Unknown, LB_EX, EA_W, GB_Other, SC_Unknown, LB_EX, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_IN, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_NS, EA_W, GB_Other, SC_Unknown, LB_EX, EA_W, GB_Other, SC_Unknown, LB_EX, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_OP, EA_W, GB_Other, SC_Unknown, LB_CL, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_PR, EA_W, GB_Other, SC_Unknown, LB_PO, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_WJ, EA_Z, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_EX, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_PR, EA_F, GB_Other, SC_Unknown, LB_PO, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_OP, EA_F, GB_Other, SC_Unknown, LB_CL, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_CL, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_CL, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_NS, EA_F, GB_Other, SC_Unknown, LB_NS, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_EX, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_OP, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_CL, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_OP, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_CL, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_OP, EA_F, GB_Other, SC_Unknown, LB_CL, EA_F, GB_Other, SC_Unknown, LB_CL, EA_H, GB_Other, SC_Unknown, LB_OP, EA_H, GB_Other, SC_Unknown, LB_CL, EA_H, GB_Other, SC_Unknown, LB_CL, EA_H, GB_Other, SC_Unknown, LB_NS, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_CJ, EA_H, GB_Other, SC_Unknown, LB_CJ, EA_H, GB_Other, SC_Unknown, LB_CJ, EA_H, GB_Other, SC_Unknown, LB_CJ, EA_H, GB_Other, SC_Unknown, LB_CJ, EA_H, GB_Other, SC_Unknown, LB_CJ, EA_H, GB_Other, SC_Unknown, LB_CJ, EA_H, GB_Other, SC_Unknown, LB_CJ, EA_H, GB_Other, SC_Unknown, LB_CJ, EA_H, GB_Other, SC_Unknown, LB_CJ, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_NS, EA_H, GB_Extend, SC_Unknown, LB_NS, EA_H, GB_Extend, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_PO, EA_F, GB_Other, SC_Unknown, LB_PR, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_ID, EA_F, GB_Other, SC_Unknown, LB_PR, EA_F, GB_Other, SC_Unknown, LB_PR, EA_F, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_H, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_AL, EA_N, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CB, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_Z, GB_Control, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_CM, EA_Z, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_Virama, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_Virama, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_BA, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_OP, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_CL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_N, GB_SpacingMark, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_N, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Control, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_CM, EA_Z, GB_Extend, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_NU, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AI, EA_A, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_RI, EA_N, GB_Regional_Indicator, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_ID, EA_W, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_ID, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown, LB_AL, EA_N, GB_Other, SC_Unknown }; sombok-2.3.1/lib/break.c0000644000076400007640000010304312210015235011726 00000000000000/* * break.c - an implementation of Unicode line breaking algorithm. * * Copyright (C) 2009-2012 by Hatuka*nezumi - IKEDA Soji. * * This file is part of the Sombok Package. This program is free * software; you can redistribute it and/or modify it under the terms of * either the GNU General Public License or the Artistic License, as * specified in the README file. * */ #include "sombok_constants.h" #include "sombok.h" extern propval_t *linebreak_rules[]; extern size_t linebreak_rulessiz; /** * @defgroup linebreak_break break * @brief Perform line breaking algorithm *@{*/ static gcstring_t *_user(linebreak_t * lbobj, unistr_t * str) { gcstring_t *result; if (str == NULL) return NULL; else if (lbobj->user_func == NULL || ((result = (*(lbobj->user_func)) (lbobj, str)) == NULL && !lbobj->errnum)) { if ((result = gcstring_newcopy(str, lbobj)) == NULL) lbobj->errnum = errno ? errno : ENOMEM; } return result; } static gcstring_t *_prep_sub(linebreak_t * lbobj, unistr_t * substr, unistr_t * text, size_t findex) { unistr_t unistr = { NULL, 0 }; gcstring_t *ret, *s; unichar_t *prev_str; size_t prev_len; gcstring_t *(*func) (linebreak_t *, void *, unistr_t *, unistr_t *); void *data; if ((func = lbobj->prep_func[findex]) == NULL) { if ((ret = gcstring_newcopy(substr, lbobj)) == NULL) lbobj->errnum = errno ? errno : ENOMEM; return ret; } if (lbobj->prep_data == NULL) data = NULL; else data = lbobj->prep_data[findex]; if ((ret = gcstring_new(NULL, lbobj)) == NULL) { lbobj->errnum = errno ? errno : ENOMEM; return NULL; } prev_str = substr->str; prev_len = substr->len; while (1) { /* Pass I: search. */ unistr.str = prev_str; unistr.len = prev_len; gcstring_destroy((*func) (lbobj, data, &unistr, text)); /* - no match: stop searching. */ if (unistr.str == NULL) break; /* - buffer may be modified: abort. */ if (unistr.len < 0 || unistr.str < text->str || text->str + text->len < unistr.str + unistr.len) { gcstring_destroy(ret); lbobj->errnum = EINVAL; return NULL; } /* - out of range: stop searching. */ if (unistr.str < substr->str || substr->str + substr->len < unistr.str + unistr.len) break; /* apply next callback to unmatched part. */ if (prev_str <= unistr.str) { unistr_t us; us.len = unistr.str - prev_str; us.str = prev_str; if ((s = _prep_sub(lbobj, &us, text, findex + 1)) == NULL) { gcstring_destroy(ret); return NULL; } if (gcstring_append(ret, s) == NULL) { gcstring_destroy(ret); gcstring_destroy(s); lbobj->errnum = errno ? errno : ENOMEM; return NULL; } gcstring_destroy(s); } /* Pass II: process matched string. */ if ((s = (*func) (lbobj, data, &unistr, NULL)) == NULL) { if (lbobj->errnum != 0) { gcstring_destroy(ret); return NULL; } if ((s = gcstring_newcopy(&unistr, lbobj)) == NULL) { gcstring_destroy(ret); lbobj->errnum = errno ? errno : ENOMEM; return NULL; } } if (gcstring_append(ret, s) == NULL) { gcstring_destroy(ret); gcstring_destroy(s); lbobj->errnum = errno ? errno : ENOMEM; return NULL; } gcstring_destroy(s); /* skip zero length match to avoid infinite loop. */ if (unistr.len == 0) { if (substr->str + substr->len <= unistr.str) { prev_str = unistr.str; prev_len = 0; break; } else { prev_str = unistr.str + 1; prev_len = substr->str + substr->len - prev_str; continue; } } prev_str = unistr.str + unistr.len; prev_len = substr->str + substr->len - prev_str; } /* apply next callback to the rest of string. */ if (prev_str < substr->str + substr->len) { unistr.str = prev_str; unistr.len = prev_len; if ((s = _prep_sub(lbobj, &unistr, text, findex + 1)) == NULL) { gcstring_destroy(ret); return NULL; } if (gcstring_append(ret, s) == NULL) { gcstring_destroy(ret); gcstring_destroy(s); lbobj->errnum = errno ? errno : ENOMEM; return NULL; } gcstring_destroy(s); } return ret; } static gcstring_t *_prep(linebreak_t * lbobj, unistr_t * text) { gcstring_t *ret; if (lbobj->prep_func == NULL) { if ((ret = gcstring_newcopy(text, lbobj)) == NULL) lbobj->errnum = errno ? errno : ENOMEM; return ret; } return _prep_sub(lbobj, text, text, 0); } static gcstring_t *_format(linebreak_t * lbobj, linebreak_state_t action, gcstring_t * str) { gcstring_t *result; if (str == NULL) return NULL; else if (lbobj->format_func == NULL || ((result = (*(lbobj->format_func)) (lbobj, action, str)) == NULL && !lbobj->errnum)) { if ((result = gcstring_copy(str)) == NULL) lbobj->errnum = errno ? errno : ENOMEM; } return result; } static double _sizing(linebreak_t * lbobj, double len, gcstring_t * pre, gcstring_t * spc, gcstring_t * str) { double ret; if (lbobj->sizing_func == NULL || ((ret = (*(lbobj->sizing_func)) (lbobj, len, pre, spc, str)) < 0.0 && !lbobj->errnum)) { if (spc != NULL) len += (double) spc->gclen; if (str != NULL) len += (double) str->gclen; return len; } return ret; } static gcstring_t *_urgent_break(linebreak_t * lbobj, gcstring_t * str) { gcstring_t *result; if (lbobj->urgent_func == NULL || ((result = (*(lbobj->urgent_func)) (lbobj, str)) == NULL && !lbobj->errnum)) { if ((result = gcstring_copy(str)) == NULL) lbobj->errnum = errno ? errno : ENOMEM; } return result; } #define gcstring_DESTROY(gcstr) \ gcstring_destroy(gcstr); gcstr = NULL; #define IF_NULL_THEN_ABORT(x) \ if ((x) == NULL) { \ size_t i; \ if (lbobj->errnum == 0) \ lbobj->errnum = errno? errno: EINVAL; \ gcstring_destroy(str); \ gcstring_destroy(bufStr); \ gcstring_destroy(bufSpc); \ for (i = 0; i < reslen; i++) \ gcstring_destroy(results[i]); \ free(results); \ gcstring_destroy(s); \ gcstring_destroy(t); \ gcstring_destroy(beforeFrg); \ gcstring_destroy(fmt); \ gcstring_destroy(broken); \ return NULL; \ } /** @fn propval_t linebreak_lbrule(propval_t b_idx, propval_t a_idx) * @deprecated Use linebreak_get_lbrule(). * * Get breaking rule between two classes * * From given two line breaking classes, get breaking rule determined by * internal data. * @param[in] a_idx line breaking class. * @param[in] b_idx line breaking class. * @return line breaking action: MANDATORY, DIRECT, INDIRECT or PROHIBITED. * If action was not determined, returns DIRECT. * * @note This method gives just approximate description of line breaking * behavior. Especially, it won't give meaningful value related to classes * AI and CJ. * See also linebreak_get_lbrule(). * */ static propval_t _lbruleinfo(propval_t b_idx, propval_t a_idx) { propval_t result = PROP_UNKNOWN; if (b_idx < 0 || linebreak_rulessiz <= b_idx || a_idx < 0 || linebreak_rulessiz <= a_idx); else result = linebreak_rules[b_idx][a_idx]; if (result == PROP_UNKNOWN) return LINEBREAK_ACTION_DIRECT; return result; } propval_t linebreak_lbrule(propval_t b_idx, propval_t a_idx) { /* Resolve before-side class. */ switch (b_idx) { /* LB1: Resolve SA, SG, XX to AL; AI and CJ cannot be resolved. */ case LB_SA: case LB_SG: case LB_XX: /* LB10: Resolve CM to AL. */ case LB_CM: /* Resolve HL to AL. */ case LB_HL: b_idx = LB_AL; break; } /* Resolve after-side class. */ switch (a_idx) { /* LB1 */ case LB_SA: case LB_SG: case LB_XX: a_idx = LB_AL; break; /* LB9, LB10 */ case LB_CM: /* LB9: Treat X CM as if it were X, with some exceptions. */ switch (b_idx) { case LB_BK: case LB_CR: case LB_LF: case LB_NL: case LB_SP: case LB_ZW: break; default: return LINEBREAK_ACTION_PROHIBITED; } /* XXX Legacy-CM rule cannot be applied. */ /* LB10: Treat any remaining combining mark as AL. */ a_idx = LB_AL; if (b_idx == LB_CM) b_idx = LB_AL; break; /* Resolve HL to AL. */ case LB_HL: a_idx = LB_AL; break; } /* LB25, simplified: * (CL|CP|NU) × (PO|PR) * (PO|PR) × (OP|NU) * (HY|IS|NU|SY) × NU */ if (((b_idx == LB_CL || b_idx == LB_CP || b_idx == LB_NU) && (a_idx == LB_PO || a_idx == LB_PR)) || ((b_idx == LB_PO || b_idx == LB_PR) && (a_idx == LB_OP || a_idx == LB_NU)) || ((b_idx == LB_HY || b_idx == LB_IS || b_idx == LB_NU || b_idx == LB_SY) && a_idx == LB_NU)) return LINEBREAK_ACTION_PROHIBITED; return _lbruleinfo(b_idx, a_idx); } /** @fn gcstring_t** linebreak_break_partial(linebreak_t *lbobj, unistr_t *input) * * Perform line breaking algorithm with incremental inputs. * * @param[in] lbobj linebreak object. * @param[in] input Unicode string; give NULL to specify end of input. * @return array of (partial) broken grapheme cluster strings terminated by NULL. * If internal error occurred, lbobj->errnum is set then NULL is returned. */ static gcstring_t **_break_partial(linebreak_t * lbobj, unistr_t * input, size_t * lenp, int eot) { int state; gcstring_t *str = NULL, *bufStr = NULL, *bufSpc = NULL; double bufCols; size_t bBeg, bLen, bCM, bSpc, aCM, urgEnd; gcstring_t **results = NULL; size_t reslen = 0; gcstring_t *s = NULL, *t = NULL, *beforeFrg = NULL, *fmt = NULL, *broken = NULL; unistr_t unistr; size_t i; gcstring_t empty = { NULL, 0, NULL, 0, 0, lbobj }; /*** *** Unread and additional input. ***/ unistr.str = lbobj->unread.str; unistr.len = lbobj->unread.len; lbobj->unread.str = NULL; lbobj->unread.len = 0; if (input != NULL && input->len != 0) { unichar_t *_u; if ((_u = realloc(unistr.str, sizeof(unichar_t) * (unistr.len + input->len))) == NULL) { lbobj->errnum = errno; free(unistr.str); return NULL; } else unistr.str = _u; memcpy(unistr.str + unistr.len, input->str, sizeof(unichar_t) * input->len); unistr.len += input->len; } /*** *** Preprocessing. ***/ /* perform user breaking */ if (lbobj->user_func != NULL) str = _user(lbobj, &unistr); else str = _prep(lbobj, &unistr); free(unistr.str); if (str == NULL) return NULL; /* South East Asian complex breaking. */ errno = 0; linebreak_southeastasian_flagbreak(str); if (errno) { lbobj->errnum = errno; gcstring_DESTROY(str); return NULL; } /* LB21a (as of 6.1.0): HL (HY | BA) × [^ CB] */ if (str != NULL && str->gclen) { propval_t lbc; for (i = 0; i < str->gclen; i++) { /* HL */ if ((lbc = gcstring_lbclass(str, i)) == LB_HL && gcstring_lbclass_ext(str, i) == lbc) /* avoid non-CM grapheme extenders */ i++; else continue; /* CM* */ while (i < str->gclen && gcstring_lbclass(str, i) == LB_CM) i++; if (str->gclen <= i) break; /* (HY|BA) */ if (((lbc = gcstring_lbclass(str, i)) == LB_HY || lbc == LB_BA) && gcstring_lbclass_ext(str, i) == lbc) /* avoid non-CM grapheme extenders */ i++; else continue; /* CM* */ while (i < str->gclen && gcstring_lbclass(str, i) == LB_CM) i++; if (str->gclen <= i) break; /* [^CB] */ switch (gcstring_lbclass(str, i)) { /* prohibit break by default */ case LB_BK: /* LB6 */ case LB_CR: case LB_LF: case LB_NL: case LB_SP: /* LB7 */ case LB_ZW: case LB_CM: /* LB9 */ case LB_WJ: /* LB11 */ /* allow break by default */ case LB_CB: /* LB20 */ continue; } if (!str->gcstr[i].flag) str->gcstr[i].flag = LINEBREAK_FLAG_PROHIBIT_BEFORE; } } /* LB25: not break in (PR|PO)? (OP|HY)? NU (NU|SY|IS)* (CL|CP)? (PR|PO)? */ /* FIXME:Avoid non-CM grapheme extenders */ if (str != NULL && str->gclen) { size_t st, et; for (i = 0; i < str->gclen; i++) { st = et = (size_t) - 1; /* (PR|PO)? */ switch (gcstring_lbclass(str, i)) { case LB_PR: case LB_PO: if (st == (size_t) - 1) st = i; LB25_PRPO_PREFIX: i++; /* CM* */ while (i < str->gclen && gcstring_lbclass(str, i) == LB_CM) i++; if (str->gclen <= i) goto LB25_BREAK; } /* (OP|HY)? */ switch (gcstring_lbclass(str, i)) { case LB_OP: case LB_HY: if (st == (size_t) - 1) st = i; LB25_OPHY_PREFIX: i++; /* CM* */ while (i < str->gclen && gcstring_lbclass(str, i) == LB_CM) i++; if (str->gclen <= i) { if (eot) goto LB25_BREAK; else goto LB25_FOUND; /* save possible partial sequence. */ } } /* NU (NU|SY|IS)* */ switch (gcstring_lbclass(str, i)) { case LB_NU: if (st == (size_t) - 1) st = i; i++; /* (NU|SY|IS|CM)* */ while (i < str->gclen) switch (gcstring_lbclass(str, i)) { case LB_NU: case LB_SY: case LB_IS: case LB_CM: i++; break; /* (CL|CP) */ case LB_CL: case LB_CP: goto LB25_CLCP_SUFFIX; /* (PR|PO) */ case LB_PR: case LB_PO: goto LB25_PRPO_SUFFIX; default: goto LB25_FOUND; } if (str->gclen <= i) goto LB25_FOUND; break; case LB_PR: case LB_PO: st = i; goto LB25_PRPO_PREFIX; case LB_OP: case LB_HY: st = i; goto LB25_OPHY_PREFIX; default: continue; } /* (CL|CP)? */ switch (gcstring_lbclass(str, i)) { case LB_CL: case LB_CP: LB25_CLCP_SUFFIX: i++; /* CM* */ while (i < str->gclen && gcstring_lbclass(str, i) == LB_CM) i++; if (str->gclen <= i) goto LB25_FOUND; } /* (PR|PO)? */ switch (gcstring_lbclass(str, i)) { case LB_PR: case LB_PO: LB25_PRPO_SUFFIX: et = i; i++; /* CM* */ while (i < str->gclen && gcstring_lbclass(str, i) == LB_CM) i++; if (str->gclen <= i) goto LB25_FOUND; } LB25_FOUND: for (st++; st < i; st++) { if (!str->gcstr[st].flag) str->gcstr[st].flag = LINEBREAK_FLAG_PROHIBIT_BEFORE; } /* match may be overwrapped */ if (et != (size_t) - 1) { i = st = et; et = (size_t) - 1; goto LB25_PRPO_PREFIX; } } LB25_BREAK: ; } /*** *** Initialize status. ***/ str->pos = 0; /* * Line buffer. * bufStr: Unbreakable text fragment. * bufSpc: Trailing spaces. * bufCols: Columns of bufStr: can be differ from gcstring_columns(). * state: Start of text/paragraph status. * 0: Start of text not done. * 1: Start of text done while start of paragraph not done. * 2: Start of paragraph done while end of paragraph not done. */ state = lbobj->state; unistr.str = lbobj->bufstr.str; unistr.len = lbobj->bufstr.len; lbobj->bufstr.str = NULL; lbobj->bufstr.len = 0; IF_NULL_THEN_ABORT(bufStr = gcstring_new(&unistr, lbobj)); unistr.str = lbobj->bufspc.str; unistr.len = lbobj->bufspc.len; lbobj->bufspc.str = NULL; lbobj->bufspc.len = 0; IF_NULL_THEN_ABORT(bufSpc = gcstring_new(&unistr, lbobj)); bufCols = lbobj->bufcols; /* * Indexes and flags * bBeg: Start of unbreakable text fragment. * bLen: Length of unbreakable text fragment. * bSpc: Length of trailing spaces. * urgEnd: End of substring broken by urgent breaking. * * ...read...| before :CM | spaces | after :CM |...unread...| * ^ ->bCM<- ^ ->aCM<- ^ * |<-- bLen -->|<- bSpc ->| ^ | * bBeg candidate str->pos end of * breaking input * point * `read' positions shall never be read again. */ bBeg = bLen = bCM = bSpc = aCM = urgEnd = 0; /* Result. */ IF_NULL_THEN_ABORT(results = malloc(sizeof(gcstring_t **))); results[0] = NULL; while (1) { /*** *** Chop off a pair of unbreakable character clusters from text. ***/ int action = 0; propval_t lbc; double newcols; /* Go ahead reading input. */ while (!gcstring_eos(str)) { lbc = gcstring_lbclass(str, str->pos); /** ** Append SP/ZW/eop to ``before'' buffer. **/ switch (lbc) { /* - Explicit breaks and non-breaks */ /* LB7(1): × SP+ */ case LB_SP: gcstring_next(str); bSpc++; /* End of input. */ continue; /* while (!gcstring_eos(str)) */ /* - Mandatory breaks */ /* LB4 - LB7: × SP* (BK | CR LF | CR | LF | NL) ! */ case LB_BK: case LB_CR: case LB_LF: case LB_NL: gcstring_next(str); bSpc++; goto last_CHARACTER_PAIR; /* while (!gcstring_eos(str)) */ /* - Explicit breaks and non-breaks */ /* LB7(2): × (SP* ZW+)+ */ case LB_ZW: gcstring_next(str); bLen += bSpc + 1; bCM = 0; bSpc = 0; /* End of input */ continue; /* while (!gcstring_eos(str)) */ } /** ** Then fill ``after'' buffer. **/ gcstring_next(str); /* skip to end of unbreakable fragment by user/complex/urgent * breaking. */ while (!gcstring_eos(str) && str->gcstr[str->pos].flag & LINEBREAK_FLAG_PROHIBIT_BEFORE) gcstring_next(str); /* - Combining marks */ /* LB9: Treat X CM+ as if it were X * where X is anything except BK, CR, LF, NL, SP or ZW * (NB: Some CM characters may be single grapheme cluster * since they have Grapheme_Cluster_Break property Control.) */ while (!gcstring_eos(str) && gcstring_lbclass(str, str->pos) == LB_CM) { gcstring_next(str); aCM++; } /* - Start of text */ /* LB2: sot × */ if (0 < bLen || 0 < bSpc) break; /* while (!gcstring_eos(str)) */ /* shift buffers. */ bLen = str->pos - bBeg; bSpc = 0; bCM = aCM; aCM = 0; } /* while (!gcstring_eos(str)) */ last_CHARACTER_PAIR: /*** *** Determin line breaking action by classes of adjacent characters. ***/ /* Mandatory break. */ if (0 < bSpc && (lbc = gcstring_lbclass(str, bBeg + bLen + bSpc - 1)) != LB_SP && (lbc != LB_CR || eot || !gcstring_eos(str))) { /* CR at end of input may be part of CR LF therefore not be eop. */ action = LINEBREAK_ACTION_MANDATORY; /* LB11, LB12 and tailorable rules LB13 - LB31. * Or urgent breaking. */ } else if (bBeg + bLen + bSpc < str->pos) { if (str->gcstr[bBeg + bLen + bSpc].flag & LINEBREAK_FLAG_ALLOW_BEFORE) action = LINEBREAK_ACTION_DIRECT; else if (str->gcstr[bBeg + bLen + bSpc].flag & LINEBREAK_FLAG_PROHIBIT_BEFORE) action = LINEBREAK_ACTION_PROHIBITED; else if (lbobj->options & LINEBREAK_OPTION_BREAK_INDENT && bLen == 0 && 0 < bSpc) /* Allow break at sot or after breaking, * although rules don't tell it obviously. */ action = LINEBREAK_ACTION_DIRECT; else { propval_t blbc, albc; size_t btail; if (bLen == 0) btail = bBeg + bSpc - 1; /* before buffer is SP only. */ else btail = bBeg + bLen - bCM - 1; /* LB9 */ blbc = gcstring_lbclass_ext(str, btail); switch (blbc) { /* (SG and XX are already resolved). */ /* LB1: Resolve AI and CJ. */ case LB_AI: blbc = (lbobj->options & LINEBREAK_OPTION_EASTASIAN_CONTEXT) ? LB_ID : LB_AL; break; case LB_CJ: blbc = (lbobj->options & LINEBREAK_OPTION_NONSTARTER_LOOSE) ? LB_ID : LB_NS; break; /* LB1: SA is resolved to AL. */ case LB_SA: blbc = LB_AL; break; /* LB10: Treat any remaining CM+ as if it were AL. */ case LB_CM: blbc = LB_AL; break; /* (As of 6.1.0): Treat HL as AL. */ case LB_HL: blbc = LB_AL; break; /* Optionally, treat hangul syllable as if it were AL. */ case LB_H2: case LB_H3: case LB_JL: case LB_JV: case LB_JT: if (lbobj->options & LINEBREAK_OPTION_HANGUL_AS_AL) blbc = LB_AL; break; } albc = gcstring_lbclass(str, bBeg + bLen + bSpc); switch (albc) { /* (SG and XX are already resolved). */ /* LB1: Resolve AI and CJ. */ case LB_AI: albc = (lbobj->options & LINEBREAK_OPTION_EASTASIAN_CONTEXT) ? LB_ID : LB_AL; break; case LB_CJ: albc = (lbobj->options & LINEBREAK_OPTION_NONSTARTER_LOOSE) ? LB_ID : LB_NS; break; /* LB1: SA is resolved to AL. */ case LB_SA: albc = LB_AL; break; /* LB10: Treat any remaining CM+ as if it were AL. */ case LB_CM: albc = LB_AL; break; /* (As of 6.1.0): Treat HL as AL. */ case LB_HL: albc = LB_AL; break; /* Optionally, treat hangul syllable as if it were AL. */ case LB_H2: case LB_H3: case LB_JL: case LB_JV: case LB_JT: if (lbobj->options & LINEBREAK_OPTION_HANGUL_AS_AL) albc = LB_AL; break; } action = _lbruleinfo(blbc, albc); } /* Check prohibited break. */ if (action == LINEBREAK_ACTION_PROHIBITED || (action == LINEBREAK_ACTION_INDIRECT && bSpc == 0)) { /* When conjunction is expected to exceed charmax, * try urgent breaking. */ if (urgEnd < bBeg + bLen + bSpc && 0 < lbobj->charmax && lbobj->charmax < str->gcstr[str->pos - 1].idx + str->gcstr[str->pos - 1].len - str->gcstr[bBeg].idx) { size_t charmax, chars; IF_NULL_THEN_ABORT(s = gcstring_substr(str, bBeg, str->pos - bBeg)); IF_NULL_THEN_ABORT(broken = _urgent_break(lbobj, s)); gcstring_DESTROY(s); /* If any of urgently broken fragments still * exceed CharactersMax, force chop them. */ charmax = lbobj->charmax; broken->pos = 0; chars = gcstring_next(broken)->len; while (!gcstring_eos(broken)) { if (broken->gcstr[broken->pos].flag & LINEBREAK_FLAG_ALLOW_BEFORE) chars = 0; else if (charmax < chars + broken->gcstr[broken->pos].len) { broken->gcstr[broken->pos].flag |= LINEBREAK_FLAG_ALLOW_BEFORE; chars = 0; } else chars += broken->gcstr[broken->pos].len; gcstring_next(broken); } /* while (!gcstring_eos(broken)) */ urgEnd = broken->gclen; gcstring_replace(str, 0, str->pos, broken); gcstring_DESTROY(broken); str->pos = 0; bBeg = bLen = bCM = bSpc = aCM = 0; continue; /* while (1) */ } /* if (urgEnd < ...) */ /* Otherwise, fragments may be conjuncted safely. Read more. */ bLen = str->pos - bBeg; bSpc = 0; bCM = aCM; aCM = 0; continue; /* while (1) */ } /* if (action == ...) */ } /* if (0 < bSpc && ...) */ /*** *** Check end of input. ***/ if (!eot && str->gclen <= bBeg + bLen + bSpc) { /* Save status then output partial result. */ lbobj->bufstr.str = bufStr->str; lbobj->bufstr.len = bufStr->len; bufStr->str = NULL; bufStr->len = 0; gcstring_DESTROY(bufStr); lbobj->bufspc.str = bufSpc->str; lbobj->bufspc.len = bufSpc->len; bufSpc->str = NULL; bufSpc->len = 0; gcstring_DESTROY(bufSpc); lbobj->bufcols = bufCols; s = gcstring_substr(str, bBeg, str->gclen - bBeg); lbobj->unread.str = s->str; lbobj->unread.len = s->len; s->str = NULL; s->len = 0; gcstring_DESTROY(s); lbobj->state = state; /* clenup. */ gcstring_DESTROY(str); if (lenp != NULL) *lenp = reslen; return results; } /* After all, possible actions are MANDATORY and arbitrary. */ /*** *** Examine line breaking action ***/ IF_NULL_THEN_ABORT(beforeFrg = gcstring_substr(str, bBeg, bLen)); if (state == LINEBREAK_STATE_NONE) { /* sot undone. */ /* Process start of text. */ IF_NULL_THEN_ABORT(fmt = _format(lbobj, LINEBREAK_STATE_SOT, beforeFrg)); if (gcstring_cmp(beforeFrg, fmt) != 0) { s = gcstring_substr(str, bBeg + bLen, bSpc); gcstring_append(fmt, s); gcstring_DESTROY(s); s = gcstring_substr(str, bBeg + bLen + bSpc, str->pos - (bBeg + bLen + bSpc)); gcstring_append(fmt, s); gcstring_DESTROY(s); gcstring_replace(str, 0, str->pos, fmt); str->pos = 0; bBeg = bLen = bCM = bSpc = aCM = 0; urgEnd = 0; state = LINEBREAK_STATE_SOT_FORMAT; gcstring_DESTROY(fmt); gcstring_DESTROY(beforeFrg); continue; /* while (1) */ } gcstring_DESTROY(fmt); state = LINEBREAK_STATE_SOL; } else if (state == LINEBREAK_STATE_SOT_FORMAT) state = LINEBREAK_STATE_SOL; else if (state == LINEBREAK_STATE_SOT) { /* sop undone. */ /* Process start of paragraph. */ IF_NULL_THEN_ABORT(fmt = _format(lbobj, LINEBREAK_STATE_SOP, beforeFrg)); if (gcstring_cmp(beforeFrg, fmt) != 0) { s = gcstring_substr(str, bBeg + bLen, bSpc); gcstring_append(fmt, s); gcstring_DESTROY(s); s = gcstring_substr(str, bBeg + bLen + bSpc, str->pos - (bBeg + bLen + bSpc)); gcstring_append(fmt, s); gcstring_DESTROY(s); gcstring_replace(str, 0, str->pos, fmt); str->pos = 0; bBeg = bLen = bCM = bSpc = aCM = 0; urgEnd = 0; state = LINEBREAK_STATE_SOP_FORMAT; gcstring_DESTROY(fmt); gcstring_DESTROY(beforeFrg); continue; /* while (1) */ } gcstring_DESTROY(fmt); state = LINEBREAK_STATE_SOP; } else if (state == LINEBREAK_STATE_SOP_FORMAT) state = LINEBREAK_STATE_SOP; /*** *** Check if arbitrary break is needed. ***/ newcols = _sizing(lbobj, bufCols, bufStr, bufSpc, beforeFrg); if (newcols < 0.0) { IF_NULL_THEN_ABORT(NULL); } if (0 < lbobj->colmax && lbobj->colmax < newcols) { newcols = _sizing(lbobj, 0.0, &empty, &empty, beforeFrg); if (newcols < 0.0) { IF_NULL_THEN_ABORT(NULL); } /** ** When arbitrary break is expected to generate a line shorter ** than colmin or, beforeFrg will exceed colmax, try urgent ** breaking. **/ if (urgEnd < bBeg + bLen + bSpc) { broken = NULL; if (0.0 < bufCols && bufCols < lbobj->colmin) { gcstring_replace(beforeFrg, 0, 0, bufSpc); gcstring_replace(beforeFrg, 0, 0, bufStr); gcstring_shrink(bufSpc, 0); gcstring_shrink(bufStr, 0); bufCols = 0.0; IF_NULL_THEN_ABORT(broken = _urgent_break(lbobj, beforeFrg)); } else if (lbobj->colmax < newcols) { IF_NULL_THEN_ABORT(broken = _urgent_break(lbobj, beforeFrg)); } if (broken != NULL) { s = gcstring_substr(str, bBeg + bLen, bSpc); gcstring_append(broken, s); gcstring_DESTROY(s); gcstring_replace(str, 0, bBeg + bLen + bSpc, broken); str->pos = 0; urgEnd = broken->gclen; bBeg = bLen = bCM = bSpc = aCM = 0; gcstring_DESTROY(broken); gcstring_DESTROY(beforeFrg); continue; /* while (1) */ } } /** ** Otherwise, process arbitrary break. **/ if (bufStr->len || bufSpc->len) { gcstring_t **r; IF_NULL_THEN_ABORT(r = realloc(results, sizeof(gcstring_t *) * (reslen + 2))); (results = r)[reslen + 1] = NULL; IF_NULL_THEN_ABORT(s = _format(lbobj, LINEBREAK_STATE_LINE, bufStr)); IF_NULL_THEN_ABORT(t = _format(lbobj, LINEBREAK_STATE_EOL, bufSpc)); IF_NULL_THEN_ABORT(results[reslen] = gcstring_concat(s, t)); reslen++; gcstring_DESTROY(s); gcstring_DESTROY(t); IF_NULL_THEN_ABORT(fmt = _format(lbobj, LINEBREAK_STATE_SOL, beforeFrg)); if (gcstring_cmp(beforeFrg, fmt) != 0) { gcstring_DESTROY(beforeFrg); beforeFrg = fmt; newcols = _sizing(lbobj, 0.0, &empty, &empty, beforeFrg); if (newcols < 0.0) { IF_NULL_THEN_ABORT(NULL); } } else gcstring_DESTROY(fmt); } gcstring_shrink(bufStr, 0); gcstring_append(bufStr, beforeFrg); gcstring_shrink(bufSpc, 0); s = gcstring_substr(str, bBeg + bLen, bSpc); gcstring_append(bufSpc, s); gcstring_DESTROY(s); bufCols = newcols; /*** *** Arbitrary break is not needed. ***/ } else { gcstring_append(bufStr, bufSpc); gcstring_append(bufStr, beforeFrg); gcstring_shrink(bufSpc, 0); s = gcstring_substr(str, bBeg + bLen, bSpc); gcstring_append(bufSpc, s); gcstring_DESTROY(s); bufCols = newcols; } /* if (0 < lbobj->colmax ... ) */ gcstring_DESTROY(beforeFrg); /*** *** Mandatory break or end-of-text. ***/ if (eot && str->gclen <= bBeg + bLen + bSpc) break; /* while (1) */ if (action == LINEBREAK_ACTION_MANDATORY) { /* Process mandatory break. */ gcstring_t **r; IF_NULL_THEN_ABORT(r = realloc(results, sizeof(gcstring_t *) * (reslen + 2))); (results = r)[reslen + 1] = NULL; IF_NULL_THEN_ABORT(s = _format(lbobj, LINEBREAK_STATE_LINE, bufStr)); IF_NULL_THEN_ABORT(t = _format(lbobj, LINEBREAK_STATE_EOP, bufSpc)); IF_NULL_THEN_ABORT(results[reslen] = gcstring_concat(s, t)); reslen++; gcstring_DESTROY(s); gcstring_DESTROY(t); /* eop done then sop must be carried out. */ state = LINEBREAK_STATE_SOT; gcstring_shrink(bufStr, 0); gcstring_shrink(bufSpc, 0); bufCols = 0.0; } /*** *** Shift buffers. ***/ bBeg += bLen + bSpc; bLen = str->pos - bBeg; bSpc = 0; bCM = aCM; aCM = 0; } /* while (1) */ /*** *** Process end of text. ***/ { gcstring_t **r; IF_NULL_THEN_ABORT(r = realloc(results, sizeof(gcstring_t *) * (reslen + 2))); (results = r)[reslen + 1] = NULL; IF_NULL_THEN_ABORT(s = _format(lbobj, LINEBREAK_STATE_LINE, bufStr)); IF_NULL_THEN_ABORT(t = _format(lbobj, LINEBREAK_STATE_EOT, bufSpc)); IF_NULL_THEN_ABORT(results[reslen] = gcstring_concat(s, t)); reslen++; gcstring_DESTROY(s); gcstring_DESTROY(t); } /* clenup. */ gcstring_DESTROY(str); gcstring_DESTROY(bufStr); gcstring_DESTROY(bufSpc); /* Reset status then return the rest of result. */ linebreak_reset(lbobj); if (lenp != NULL) *lenp = reslen; return results; } gcstring_t **linebreak_break_partial(linebreak_t * lbobj, unistr_t * input) { return _break_partial(lbobj, input, NULL, (input == NULL)); } /** * Perform line breaking algorithm on complete input. * * This function will consume heap size proportional to input size. * linebreak_break() is highly recommended. * * @param[in] lbobj linebreak object. * @param[in] input Unicode string. * @return array of broken grapheme cluster strings terminated by NULL. * If internal error occurred, lbobj->errnum is set then NULL is returned. */ gcstring_t **linebreak_break_fast(linebreak_t * lbobj, unistr_t * input) { gcstring_t **ret; if (input == NULL) { if ((ret = malloc(sizeof(gcstring_t *))) == NULL) lbobj->errnum = errno ? errno : ENOMEM; else ret[0] = NULL; return ret; } return _break_partial(lbobj, input, NULL, 1); } #define PARTIAL_LENGTH (1000) /** Perform line breaking algorithm on complete input. * * This function will consume constant size of heap. * * @param[in] lbobj linebreak object. * @param[in] input Unicode string. * @return array of broken grapheme cluster strings terminated by NULL. * If internal error occurred, lbobj->errnum is set then NULL is returned. */ gcstring_t **linebreak_break(linebreak_t * lbobj, unistr_t * input) { unistr_t unistr = { NULL, 0 }; gcstring_t **ret, **appe, **r; size_t i, j, k, retlen, appelen; if ((ret = malloc(sizeof(gcstring_t *))) == NULL) { lbobj->errnum = errno ? errno : ENOMEM; return NULL; } else ret[0] = NULL; if (input == NULL) return ret; retlen = 0; unistr.len = PARTIAL_LENGTH; for (k = 0; PARTIAL_LENGTH < input->len - k; k += PARTIAL_LENGTH) { unistr.str = input->str + k; if ((appe = _break_partial(lbobj, &unistr, &appelen, 0)) == NULL) { for (i = 0; i < retlen; i++) gcstring_destroy(ret[i]); free(ret); return NULL; } if (appelen) { if ((r = realloc(ret, sizeof(gcstring_t *) * (retlen + appelen + 1))) == NULL) { lbobj->errnum = errno ? errno : ENOMEM; for (i = 0; i < retlen; i++) gcstring_destroy(ret[i]); free(ret); for (j = 0; j < appelen; j++) gcstring_destroy(appe[j]); free(appe); return NULL; } else ret = r; memcpy(ret + retlen, appe, sizeof(gcstring_t *) * (appelen + 1)); retlen += appelen; } free(appe); } unistr.len = input->len - k; unistr.str = input->str + k; if (k < input->len) { if ((appe = _break_partial(lbobj, &unistr, &appelen, 1)) == NULL) { for (i = 0; i < retlen; i++) gcstring_destroy(ret[i]); free(ret); return NULL; } if (appelen) { if ((r = realloc(ret, sizeof(gcstring_t *) * (retlen + appelen + 1))) == NULL) { lbobj->errnum = errno ? errno : ENOMEM; for (i = 0; i < retlen; i++) gcstring_destroy(ret[i]); free(ret); for (j = 0; j < appelen; j++) gcstring_destroy(appe[j]); free(appe); return NULL; } else ret = r; memcpy(ret + retlen, appe, sizeof(gcstring_t *) * (appelen + 1)); retlen += appelen; } free(appe); } return ret; } /** Perform line breaking algorithm on UTF-8 text * * This function will consume constant size of heap. * * @param[in] lbobj linebreak object. * @param[in] input UTF-8 string, must not be NULL. * @param[in] len length of UTF-8 string. * @param[in] check check input. See sombok_decode_utf8(). * @return array of broken grapheme cluster strings terminated by NULL. * If internal error occurred, lbobj->errnum is set then NULL is returned. */ gcstring_t **linebreak_break_from_utf8(linebreak_t * lbobj, char *input, size_t len, int check) { unistr_t unistr = { NULL, 0 }; gcstring_t **ret; if (input == NULL) { lbobj->errnum = EINVAL; return NULL; } if (sombok_decode_utf8(&unistr, 0, input, len, check) == NULL) return NULL; ret = linebreak_break(lbobj, &unistr); free(unistr.str); return ret; } void linebreak_free_result(gcstring_t ** result, int deep) { size_t i; if (result == NULL) return; if (deep) for (i = 0; result[i] != NULL; i++) gcstring_destroy(result[i]); free(result); } sombok-2.3.1/lib/charprop.c0000644000076400007640000003135712210015235012470 00000000000000/* * charprop.c - character property handling. * * Copyright (C) 2009-2012 by Hatuka*nezumi - IKEDA Soji. * * This file is part of the Sombok Package. This program is free * software; you can redistribute it and/or modify it under the terms of * either the GNU General Public License or the Artistic License, as * specified in the README file. * */ #include #include "sombok_constants.h" #include "sombok.h" extern const unsigned short linebreak_prop_index[]; extern const propval_t linebreak_prop_array[]; #define BLKLEN (5) /* CJK Ideographs */ static propval_t PROPENT_HAN[] = { LB_ID, EA_W, GB_Other, SC_Han }; /* Tags */ static propval_t PROPENT_TAG[] = { LB_CM, EA_Z, GB_Control, SC_Common }; /* Variation Selectors */ static propval_t PROPENT_VSEL[] = { LB_CM, EA_ZA, GB_Extend, SC_Inherited }; /* Private use - XX */ static propval_t PROPENT_PRIVATE[] = { LB_AL, EA_A, GB_Other, SC_Unknown }; /* Reserved or noncharacter - XX */ static propval_t PROPENT_RESERVED[] = { LB_AL, EA_N, GB_Control, SC_Unknown }; static void _search_props(linebreak_t * obj, unichar_t c, propval_t * lbcptr, propval_t * eawptr, propval_t * gcbptr) { mapent_t *top, *bot, *cur; if (obj->map == NULL || obj->mapsiz == 0) return; top = obj->map; bot = obj->map + obj->mapsiz - 1; while (top <= bot) { cur = top + (bot - top) / 2; if (c < cur->beg) bot = cur - 1; else if (cur->end < c) top = cur + 1; else { if (lbcptr) *lbcptr = cur->lbc; if (eawptr) *eawptr = cur->eaw; /* Complement unknown Grapheme_Cluster_Break property. */ if (gcbptr == NULL) break; if (cur->gcb != PROP_UNKNOWN) { *gcbptr = cur->gcb; break; } switch (cur->lbc) { case PROP_UNKNOWN: *gcbptr = PROP_UNKNOWN; break; case LB_CR: *gcbptr = GB_CR; break; case LB_LF: *gcbptr = GB_LF; break; case LB_BK: case LB_NL: case LB_WJ: case LB_ZW: *gcbptr = GB_Control; break; case LB_CM: *gcbptr = GB_Extend; break; case LB_H2: *gcbptr = GB_LV; break; case LB_H3: *gcbptr = GB_LVT; break; case LB_JL: *gcbptr = GB_L; break; case LB_JV: *gcbptr = GB_V; break; case LB_JT: *gcbptr = GB_T; break; case LB_RI: *gcbptr = GB_Regional_Indicator; break; default: *gcbptr = GB_Other; break; } break; } } } /** Search for character properties. * * @note this function is for internal use. * * Configuration parameters of linebreak object: * * * map, mapsiz: custom property map overriding built-in map. * * @param[in] obj linebreak object. * @param[in] c Unicode character. * @param[out] lbcptr UAX #14 line breaking class. * @param[out] eawptr UAX #11 East_Asian_Width property value. * @param[out] gcbptr UAX #29 Grapheme_Cluster_Break property value. * @param[out] scrptr Script (limited to several scripts). * @return none. * * @note As of 2.2.0, LINEBREAK_OPTION_EASTASIAN_CONTEXT and * LINEBREAK_OPTION_NONSTARTER_LOOSE are not affect. */ void linebreak_charprop(linebreak_t * obj, unichar_t c, propval_t * lbcptr, propval_t * eawptr, propval_t * gcbptr, propval_t * scrptr) { propval_t lbc = PROP_UNKNOWN, eaw = PROP_UNKNOWN, gcb = PROP_UNKNOWN, scr = PROP_UNKNOWN, *ent; /* * First, search custom map using binary search. */ _search_props(obj, c, &lbc, &eaw, &gcb); /* * Otherwise, search built-in ``compact array''. * About compact array see: * Gillam, Richard (2003). "Unicode Demystified: A Practical * Programmer's Guide to the Encoding Standard". pp. 514ff. */ if ((lbcptr && lbc == PROP_UNKNOWN) || (eawptr && eaw == PROP_UNKNOWN) || (gcbptr && gcb == PROP_UNKNOWN)) { if (c < 0x20000) ent = linebreak_prop_array + (linebreak_prop_index[c >> BLKLEN] + (c & ((1 << BLKLEN) - 1))) * 4; else if (c <= 0x2FFFD || (0x30000 <= c && c <= 0x3FFFD)) ent = PROPENT_HAN; else if (c == 0xE0001 || (0xE0020 <= c && c <= 0xE007E) || c == 0xE007F) ent = PROPENT_TAG; else if (0xE0100 <= c && c <= 0xE01EF) ent = PROPENT_VSEL; else if ((0xF0000 <= c && c <= 0xFFFFD) || (0x100000 <= c && c <= 0x10FFFD)) ent = PROPENT_PRIVATE; else ent = PROPENT_RESERVED; if (lbcptr && lbc == PROP_UNKNOWN) lbc = ent[0]; if (eawptr && eaw == PROP_UNKNOWN) eaw = ent[1]; if (gcbptr && gcb == PROP_UNKNOWN) gcb = ent[2]; if (scrptr) scr = ent[3]; } if (lbcptr) *lbcptr = lbc; if (eawptr) *eawptr = eaw; if (gcbptr) *gcbptr = gcb; if (scrptr) *scrptr = scr; } /** Find property from custom line breaking class map. * @ingroup linebreak * @param[in] obj linebreak object. * @param[in] c Unicode character. * @return property value. If not found, PROP_UNKNOWN. */ propval_t linebreak_search_lbclass(linebreak_t * obj, unichar_t c) { propval_t p = PROP_UNKNOWN; _search_props(obj, c, &p, NULL, NULL); return p; } /** Find property from custom East_Asian_Width map. * @ingroup linebreak * @param[in] obj linebreak object. * @param[in] c Unicode character. * @return property value. If not found, PROP_UNKNOWN. */ propval_t linebreak_search_eawidth(linebreak_t * obj, unichar_t c) { propval_t p = PROP_UNKNOWN; _search_props(obj, c, NULL, &p, NULL); return p; } #define SET_PROP(pos, prop) \ do { \ if (idx == 0) \ (pos)->lbc = (prop); \ else if (idx == 1) \ (pos)->eaw = (prop); \ else if (idx == 2) \ (pos)->gcb = (prop); \ else if (idx == 3) \ (pos)->scr = (prop); \ else { \ obj->errnum = EINVAL; \ return; \ } \ } while (0) #define INSERT_CUR(new) \ do { \ mapent_t *m; \ if ((m = realloc(map, sizeof(mapent_t) * (mapsiz + 1))) \ == NULL) { \ obj->errnum = errno ? errno : ENOMEM; \ return; \ } \ cur = m + (cur - map); \ map = m; \ if (cur < map + mapsiz) \ memmove(cur + 1, cur, \ sizeof(mapent_t) * (mapsiz - (cur - map))); \ if ((new) != cur) \ memcpy(cur, (new), sizeof(mapent_t)); \ mapsiz++; \ } while (0) #define DELETE_CUR \ do { \ if (cur < map + mapsiz - 1) \ memmove(cur, cur + 1, \ sizeof(mapent_t) * (mapsiz - (cur - map) - 1)); \ mapsiz--; \ } while (0) #define MAP_EQ(x, y) \ ((x)->lbc == (y)->lbc && (x)->eaw == (y)->eaw && \ (x)->gcb == (y)->gcb && (x)->scr == (y)->scr) static void _add_prop(linebreak_t * obj, unichar_t beg, unichar_t end, propval_t p, int idx) { mapent_t *map, *top, *bot, *cur = NULL; mapent_t newmap = { beg, end, PROP_UNKNOWN, PROP_UNKNOWN, PROP_UNKNOWN, PROP_UNKNOWN }; size_t mapsiz; unichar_t beg_cont = (unichar_t) (-1), end_cont = (unichar_t) (-1); #if 0 unichar_t b = beg, e = end; #endif /* assert(beg <= end); */ /* assert(0 <= idx && idx < 4); */ if (p == PROP_UNKNOWN) { obj->errnum = EINVAL; return; } SET_PROP(&newmap, p); /* no maps */ if (obj->map == NULL || obj->mapsiz == 0) { if (obj->map == NULL && (obj->map = malloc(sizeof(mapent_t))) == NULL) { obj->errnum = errno ? errno : ENOMEM; return; } memcpy(obj->map, &newmap, sizeof(mapent_t)); obj->mapsiz = 1; return; } map = obj->map; mapsiz = obj->mapsiz; /* first, seek map */ top = map; bot = map + mapsiz - 1; while (top <= bot) { cur = top + (bot - top) / 2; if (beg < cur->beg) bot = cur - 1; else if (cur->end < beg) top = cur + 1; else break; } while (1) { if (cur < map + mapsiz && cur->end < beg) cur++; if (map + mapsiz <= cur) { /* at tail of map */ cur = map + mapsiz; if ((cur - 1)->end + 1 == beg && MAP_EQ((cur - 1), &newmap)) (cur - 1)->end = end; else INSERT_CUR(&newmap); break; } if (beg < cur->beg) { /* in gap of existing map */ if (cur->beg <= end) { beg_cont = cur->beg; end_cont = end; end = newmap.end = cur->beg - 1; } if (end + 1 == cur->beg && MAP_EQ(cur, &newmap)) cur->beg = beg; else INSERT_CUR(&newmap); } else { /* otherwise */ if (cur->end < end) { beg_cont = cur->end + 1; end_cont = end; end = newmap.end = cur->end; } newmap.lbc = cur->lbc; newmap.eaw = cur->eaw; newmap.gcb = cur->gcb; newmap.scr = cur->scr; SET_PROP(&newmap, p); if (MAP_EQ(cur, &newmap)) /* noop */ ; else if (beg == cur->beg && end == cur->end) { SET_PROP(cur, p); if (cur + 1 < map + mapsiz && cur->end + 1 == (cur + 1)->beg && MAP_EQ(cur, cur + 1)) { (cur + 1)->beg = cur->beg; DELETE_CUR; } } else if (beg == cur->beg) { cur->beg = end + 1; INSERT_CUR(&newmap); } else if (end == cur->end) { cur->end = beg - 1; cur++; INSERT_CUR(&newmap); cur++; } else { INSERT_CUR(cur); cur->end = beg - 1; (cur + 1)->beg = end + 1; cur++; INSERT_CUR(&newmap); } } if (map < cur && cur < map + mapsiz && (cur - 1)->end + 1 == cur->beg && MAP_EQ(cur - 1, cur)) { (cur - 1)->end = cur->end; DELETE_CUR; cur--; } if (beg_cont == (unichar_t) (-1)) break; /* while (1) */ beg = newmap.beg = beg_cont; end = newmap.end = end_cont; beg_cont = (unichar_t) (-1); newmap.lbc = newmap.eaw = newmap.gcb = newmap.scr = PROP_UNKNOWN; SET_PROP(&newmap, p); } /* while (1) */ obj->map = map; obj->mapsiz = mapsiz; #if 0 { size_t i; mapent_t null_map = { 0, 0, PROP_UNKNOWN, PROP_UNKNOWN, PROP_UNKNOWN, PROP_UNKNOWN }; unichar_t c; for (i = 0; i < mapsiz; i++) { assert(!MAP_EQ(map + i, &null_map)); assert(map[i].beg <= map[i].end); if (i == 0) continue; assert(map[i - 1].end < map[i].beg); if (MAP_EQ(map + i - 1, map + i)) { assert(map[i - 1].end < map[i].beg); assert(map[i - 1].end + 1 < map[i].beg); } } for (c = b; c <= e; c++) if (idx == 0) assert(linebreak_search_lbclass(obj, c) == p); else assert(linebreak_search_eawidth(obj, c) == p); } #endif } /** Update custom line breaking class map. * @ingroup linebreak * @param[in] obj linebreak object. * @param[in] c Unicode character. * @param[in] p New line breaking class propery value. * @return none. * Custom map will be updated. */ void linebreak_update_lbclass(linebreak_t * obj, unichar_t c, propval_t p) { _add_prop(obj, c, c, p, 0); } /** Update custom East_Asian_Width propety map. * @ingroup linebreak * @param[in] obj linebreak object. * @param[in] c Unicode character. * @param[in] p New East_Asian_Width propery value. * @returns none. * custom map will be updated. */ void linebreak_update_eawidth(linebreak_t * obj, unichar_t c, propval_t p) { _add_prop(obj, c, c, p, 1); } /** Update custom line breaking class map by another map. * @ingroup linebreak * @param[in] obj destination linebreak object. * @param[in] diff source linebreak object. * @returns none. * custom map will be updated. */ void linebreak_merge_lbclass(linebreak_t * obj, linebreak_t * diff) { size_t i; if (obj == diff) return; if (diff->map == NULL || diff->mapsiz == 0) return; for (i = 0; i < diff->mapsiz; i++) if (diff->map[i].lbc != PROP_UNKNOWN) { _add_prop(obj, diff->map[i].beg, diff->map[i].end, diff->map[i].lbc, 0); if (obj->errnum) return; } } /** Update custom East_Asian_Width map by another map. * @ingroup linebreak * @param[in] obj destination linebreak object. * @param[in] diff source linebreak object. * @returns none. * custom map will be updated. */ void linebreak_merge_eawidth(linebreak_t * obj, linebreak_t * diff) { size_t i; if (obj == diff) return; if (diff->map == NULL || diff->mapsiz == 0) return; for (i = 0; i < diff->mapsiz; i++) if (diff->map[i].eaw != PROP_UNKNOWN) { _add_prop(obj, diff->map[i].beg, diff->map[i].end, diff->map[i].eaw, 1); if (obj->errnum) return; } } static const mapent_t nullmap = { 0, 0, PROP_UNKNOWN, PROP_UNKNOWN, PROP_UNKNOWN, PROP_UNKNOWN }; static void _clear_prop(linebreak_t * obj, int idx) { mapent_t *map = obj->map, *cur; size_t mapsiz = obj->mapsiz, i; if (mapsiz == 0) return; for (i = 0; i < mapsiz;) { cur = map + i; SET_PROP(cur, PROP_UNKNOWN); if (MAP_EQ(cur, &nullmap)) { DELETE_CUR; } else i++; } if (mapsiz == 0) { free(obj->map); obj->map = NULL; obj->mapsiz = 0; } else { obj->map = map; obj->mapsiz = mapsiz; } } /** Clear custom line breaking class map * @ingroup linebreak * @param[in] obj linebreak object. * @returns none. * All line breaking class values in custom map will be cleared. */ void linebreak_clear_lbclass(linebreak_t * obj) { _clear_prop(obj, 0); } /** Clear custom East_Asian_Width property map * @ingroup linebreak * @param[in] obj linebreak object. * @returns none. * All East_Asian_Width values in custom map will be cleared. */ void linebreak_clear_eawidth(linebreak_t * obj) { _clear_prop(obj, 1); } sombok-2.3.1/lib/utils.c0000644000076400007640000003742212210015235012011 00000000000000/* * utls.c - Utility functions. * * Copyright (C) 2009-2011 by Hatuka*nezumi - IKEDA Soji. * * This file is part of the Sombok Package. This program is free * software; you can redistribute it and/or modify it under the terms of * either the GNU General Public License or the Artistic License, as * specified in the README file. * */ #include "sombok_constants.h" #include "sombok.h" /** @defgroup linebreak_utils utils * @brief Callback functions used by linebreak *@{*/ /** @name Preprocessing callback * gcstring_t *callback(linebreak_t *lbobj, void *data, unistr_t *str, unistr_t *text) * * Preprocessing behaviors specified by item of ``prep_func'' member of * linebreak_t. Corresponding item of ``prep_data'' member can be used to * modify behavior. * @param[in] obj linebreak object. * @param[in] data an item of prep_data correspondig to callback. * @param[in,out] substr pointer to Unicode string. * @param[in] text whole text to be broken, or NULL. * @return This callback is past twice by each substring of text: * * On the first pass, when text is not NULL, it should return the first * occurrance in substr matching its criteria, update substr->str to be * matching position and substr->len to be length. Otherwise, should set * NULL to substr->str. * Return value shall be discarded. * * On the second pass, when text is NULL, it should return new grapheme * cluster string created from substr. Return value should not share * Unicode buffer with substr (i.e. use gcstring_newcopy()). * * If error occurred, callback must set lbobj->errnum nonzero then return NULL. */ /*@{*/ static int startswith(unistr_t * unistr, size_t idx, char *str, size_t len, int cs) { size_t i; unichar_t uc, c; if (unistr->str == NULL) return 0; if (unistr->len - idx < len) return 0; for (i = 0; i < len; i++) { uc = unistr->str[idx + i]; c = (unichar_t) str[i]; if (!cs) { if ((unichar_t) 'A' <= uc && uc <= (unichar_t) 'Z') uc += (unichar_t) ('a' - 'A'); if ((unichar_t) 'A' <= c && c <= (unichar_t) 'Z') c += (unichar_t) ('a' - 'A'); } if (uc != c) return 0; } return 1; } #define is(str, i, c) \ ((i) < (str)->len && (str)->str[i] == (c)) #define _is_alpha(s) \ (('a' <= (s) && (s) <= 'z') || ('A' <= (s) && (s) <= 'Z')) #define is_alpha(str, i) \ ((i) < (str)->len && _is_alpha((str)->str[i])) #define _is_digit(s) \ ('0' <= (s) && (s) <= '9') #define is_digit(str, i) \ ((i) < (str)->len && _is_digit((str)->str[i])) #define _is_hexdig(s) \ (_is_digit(s) || ('a' <= (s) && (s) <= 'f') || ('A' <= (s) && (s) <= 'F')) #define is_hexdig(str, i) \ ((i) < (str)->len && _is_hexdig((str)->str[i])) #define _is_sub_delim(s) \ ((s) == '!' || (s) == '$' || (s) == '&' || (s) == '\'' || (s) == '(' || \ (s) == ')' || (s) == '*' || (s) == '+' || (s) == ',' || (s) == ';' || \ (s) == '=') #define is_sub_delim(str, i) \ ((i) < (str)->len && _is_sub_delim((str)->str[i])) #define _is_unreserved(s) \ (_is_alpha(s) || _is_digit(s) || \ (s) == '-' || (s) == '.' || (s) == '_' || (s) == '~') #define is_unreserved(str, i) \ ((i) < (str)->len && _is_unreserved((str)->str[i])) #define _is_pct_encoded(s) \ ((s) == '%' || _is_hexdig(s)) #define is_pct_encoded(str, i) \ ((i) < (str)->len && _is_pct_encoded((str)->str[i])) #define _is_pchar(s) \ (_is_unreserved(s) || _is_pct_encoded(s) || _is_sub_delim(s) || \ (s) == ':' || (s) == '@') #define is_pchar(str, i) \ ((i) < (str)->len && _is_pchar((str)->str[i])) /** Built-in preprocessing callback * * Built-in preprocessing callback to break or not to break URLs according to * some rules by Chicago Manual of Style 15th ed. * If data is NULL, prohibit break. * Otherwise, allow break by rule above. */ gcstring_t *linebreak_prep_URIBREAK(linebreak_t * lbobj, void *data, unistr_t * str, unistr_t * text) { gcstring_t *gcstr; size_t i; unichar_t *ptr; /* Pass I */ if (text != NULL) { /* * Search URL in str. * Following code loosely refers RFC3986 but some practical * assumptions are put: * * o Broken pct-encoded sequences (e.g. single "%") are allowed. * o scheme names must end with alphanumeric, must be longer than * or equal to two octets, and must not contain more than one * non-alphanumeric ("+", "-" or "."). * o URLs containing neither non-empty path, query part nor fragment * (e.g. "about:") are omitted: they are treated as ordinal words. */ for (ptr = NULL, i = 0; i < str->len; ptr = NULL, i++) { int has_double_slash, has_authority, has_empty_path, has_no_query, has_no_fragment; size_t alphadigit, nonalphadigit; /* skip non-alpha. */ if (!is_alpha(str, i)) continue; ptr = str->str + i; /* "url:" - case insensitive */ if (startswith(str, i, "url:", 4, 0)) i += 4; /* scheme */ if (is_alpha(str, i)) i++; else continue; nonalphadigit = 0; alphadigit = 1; while (1) { if (is_alpha(str, i) || is_digit(str, i)) alphadigit++; else if (is(str, i, '+') || is(str, i, '-') || is(str, i, '.')) nonalphadigit++; else break; i++; } if (alphadigit < 2 || 1 < nonalphadigit || ! (is_digit(str, i - 1) || is_alpha(str, i - 1))) continue; /* ":" */ if (is(str, i, ':')) i++; else continue; /* hier-part */ has_double_slash = 0; has_authority = 0; has_empty_path = 0; has_no_query = 0; has_no_fragment = 0; if (startswith(str, i, "//", 2, 0)) { /* "//" */ has_double_slash = 1; i += 2; /* authority - FIXME:syntax relaxed */ if (is(str, i, '[') || is(str, i, ':') || is(str, i, '@') || is_unreserved(str, i) || is_pct_encoded(str, i) || is_sub_delim(str, i)) { has_authority = 1; i++; while (is(str, i, '[') || is(str, i, ']') || is(str, i, ':') || is(str, i, '@') || is_unreserved(str, i) || is_pct_encoded(str, i) || is_sub_delim(str, i)) i++; } } /* path */ if (has_double_slash) { if (has_authority) goto path_abempty; else goto path_absolute; } /* else goto path_rootless; */ /* path_rootless: */ if (is_pchar(str, i)) { /* FIXME:path-noscheme not concerned */ i++; while (is_pchar(str, i)) i++; goto path_abempty; } else { has_empty_path = 1; goto path_empty; } path_absolute: if (startswith(str, i, "//", 2, 0)) continue; else if (is(str, i, '/')) { i++; if (is_pchar(str, i)) { i++; while (is_pchar(str, i)) i++; } goto path_abempty; } else continue; path_abempty: if (is(str, i, '/')) { i++; while (is(str, i, '/') || is_pchar(str, i)) i++; } /* else goto path_empty; */ path_empty: ; /* query */ if (is(str, i, '?')) { i++; while (is(str, i, '/') || is(str, i, '?') || is_pchar(str, i)) i++; } else has_no_query = 1; /* fragment */ if (is(str, i, '#')) { i++; while (is(str, i, '/') || is(str, i, '?') || is_pchar(str, i)) i++; } else has_no_fragment = 1; if (has_empty_path && has_no_query && has_no_fragment) continue; break; } if (ptr != NULL) str->len = i - (ptr - str->str); str->str = ptr; return NULL; } /* Pass II */ if ((gcstr = gcstring_newcopy(str, lbobj)) == NULL) { lbobj->errnum = errno ? errno : ENOMEM; return NULL; } /* non-break URI. */ if (data == NULL) { for (i = 1; i < gcstr->gclen; i++) gcstr->gcstr[i].flag = LINEBREAK_FLAG_PROHIBIT_BEFORE; return gcstr; } /* break URI. */ if (startswith((unistr_t *) gcstr, 0, "url:", 4, 0)) { gcstr->gcstr[4].flag = LINEBREAK_FLAG_ALLOW_BEFORE; i = 5; } else i = 1; for (; i < gcstr->gclen; i++) { unichar_t u, v; u = gcstr->str[gcstr->gcstr[i - 1].idx]; v = gcstr->str[gcstr->gcstr[i].idx]; /* * Some rules based on CMoS 15th ed. * 17.11 1.1: [/] ÷ [^/] * 17.11 2: [-] × * 6.17 2: [.] × * 17.11 1.2: ÷ [-~.,_?#%] * 17.11 1.3: ÷ [=&] * 17.11 1.3: [=&] ÷ * Default: ALL × ALL */ if (u == '/' && v != '/') gcstr->gcstr[i].flag = LINEBREAK_FLAG_ALLOW_BEFORE; else if (u == '-' || u == '.') gcstr->gcstr[i].flag = LINEBREAK_FLAG_PROHIBIT_BEFORE; else if (v == '-' || v == '~' || v == '.' || v == ',' || v == '_' || v == '?' || v == '#' || v == '%' || u == '=' || v == '=' || u == '&' || v == '&') gcstr->gcstr[i].flag = LINEBREAK_FLAG_ALLOW_BEFORE; else gcstr->gcstr[i].flag = LINEBREAK_FLAG_PROHIBIT_BEFORE; } /* Won't break punctuations at end of matches. */ for (i = gcstr->gclen - 1; 1 <= i; i--) { unichar_t u = gcstr->str[gcstr->gcstr[i].idx]; if (gcstr->gcstr[i].flag == LINEBREAK_FLAG_ALLOW_BEFORE && (u == '"' || u == '.' || u == ':' || u == ';' || u == ',' || u == '>')) gcstr->gcstr[i].flag = LINEBREAK_FLAG_PROHIBIT_BEFORE; else break; } return gcstr; } /*@}*/ /** @name Sizing callback * double callback(linebreak_t *obj, double len, gcstring_t *pre, gcstring_t *spc, gcstring_t *str) * * Sizing behavior specified by ``sizing_func'' member of linebreak_t. * ``sizing_data'' member can be used to modify behavior. * @param[in] obj linebreak object. * @param[in] len Number of columns of preceding grapheme cluster string. * @param[in] pre Preceding grapheme cluster string. * @param[in] spc Trailing spaces of preceding string. * @param[in] str Appended grapheme cluster string. * @return number of columns of pre+spc+str. * If error occurred, callback must set lbobj->errnum nonzero then return NULL. */ /*@{*/ /** Built-in Sizing callback * * Built-in Sizing callback based on UAX #11. */ double linebreak_sizing_UAX11(linebreak_t * obj, double len, gcstring_t * pre, gcstring_t * spc, gcstring_t * str) { gcstring_t *spcstr; if ((!spc || !spc->str || !spc->len) && (!str || !str->str || !str->len)) return len; if (!spc || !spc->str) spcstr = gcstring_copy(str); else if ((spcstr = gcstring_concat(spc, str)) == NULL) return -1.0; len += (double) gcstring_columns(spcstr); gcstring_destroy(spcstr); return len; } /*@}*/ /** @name Formatting callback * gcstring_t *callback(linebreak_t *lbobj, linebreak_state_t state, gcstring_t *gcstr) * * Formatting behaviors specified by ``format_func'' member of linebreak_t. * ``formt_data'' member can be used to modify behavior. * @param[in] obj linebreak object. * @param[in] state state. * @param[in] gcstr text fragment. * @return new text fragment or, if no modification needed, NULL. * If error occurred, callback must set lbobj->errnum nonzero then return NULL. * * Following table describes behavior of built-in format callbacks. * * @verbatim * state| SIMPLE | NEWLINE | TRIM * -----+-----------------+-------------------+------------------- * SOT | * SOP | not modify * SOL | * LINE | * EOL | append newline | replace by newline| replace by newline * EOP | not modify | replace by newline| remove SPACEs * EOT | not modify | replace by newline| remove SPACEs * ---------------------------------------------------------------- * @endverbatim */ /*@{*/ /** Built-in formatting callback * */ gcstring_t *linebreak_format_SIMPLE(linebreak_t * lbobj, linebreak_state_t state, gcstring_t * gcstr) { gcstring_t *t, *result; unistr_t unistr; switch (state) { case LINEBREAK_STATE_EOL: if ((result = gcstring_copy(gcstr)) == NULL) return NULL; unistr.str = lbobj->newline.str; unistr.len = lbobj->newline.len; if ((t = gcstring_new(&unistr, lbobj)) == NULL) return NULL; if (gcstring_append(result, t) == NULL) { t->str = NULL; gcstring_destroy(t); return NULL; } t->str = NULL; gcstring_destroy(t); return result; default: errno = 0; return NULL; } } /** Built-in formatting callback * */ gcstring_t *linebreak_format_NEWLINE(linebreak_t * lbobj, linebreak_state_t state, gcstring_t * gcstr) { gcstring_t *result; unistr_t unistr; switch (state) { case LINEBREAK_STATE_EOL: case LINEBREAK_STATE_EOP: case LINEBREAK_STATE_EOT: unistr.str = lbobj->newline.str; unistr.len = lbobj->newline.len; if ((result = gcstring_newcopy(&unistr, lbobj)) == NULL) return NULL; return result; default: errno = 0; return NULL; } } /** Built-in formatting callback * */ gcstring_t *linebreak_format_TRIM(linebreak_t * lbobj, linebreak_state_t state, gcstring_t * gcstr) { gcstring_t *result; unistr_t unistr = { NULL, 0 }; size_t i; switch (state) { case LINEBREAK_STATE_EOL: unistr.str = lbobj->newline.str; unistr.len = lbobj->newline.len; if ((result = gcstring_newcopy(&unistr, lbobj)) == NULL) return NULL; return result; case LINEBREAK_STATE_EOP: case LINEBREAK_STATE_EOT: if (gcstr->str == NULL || gcstr->len == 0) { if ((result = gcstring_newcopy(&unistr, lbobj)) == NULL) return NULL; return result; } for (i = 0; i < gcstr->gclen && gcstr->gcstr[i].lbc == LB_SP; i++); if ((result = gcstring_substr(gcstr, i, gcstr->gclen)) == NULL) return NULL; return result; default: errno = 0; return NULL; } } /*@}*/ /** @name Urgent breaking callbacks * gcstring_t *callback(linebreak_t *lbobj, gcstring_t *str) * * Urgent breaking behaviors specified by ``urgent_func'' member of * linebreak_t. ``urgent_data'' member can be used to modify behavior. * @param[in] obj linebreak object. * @param[in] str text to be broken. * @return new text or, if no modification needed, NULL. * If error occurred, callback must set lbobj->errnum nonzero then return NULL. * * There are two built-in urgent breaking callbacks. */ /*@{*/ /** Built-in urgent brealing callback * * Abort processing. lbobj->errnum is set to LINEBREAK_ELONG. */ gcstring_t *linebreak_urgent_ABORT(linebreak_t * lbobj, gcstring_t * str) { lbobj->errnum = LINEBREAK_ELONG; return NULL; } /** Built-in urgent brealing callback * * Force breaking lines. */ gcstring_t *linebreak_urgent_FORCE(linebreak_t * lbobj, gcstring_t * str) { gcstring_t *result, *s, empty = { NULL, 0, NULL, 0, 0, lbobj }; if (!str || !str->len) return gcstring_new(NULL, lbobj); result = gcstring_new(NULL, lbobj); s = gcstring_copy(str); while (1) { size_t i; gcstring_t *t; double cols; for (i = 0; i < s->gclen; i++) { t = gcstring_substr(s, 0, i + 1); if (lbobj->sizing_func != NULL) cols = (*(lbobj->sizing_func)) (lbobj, 0.0, &empty, &empty, t); else cols = (double) t->gclen; gcstring_destroy(t); if (lbobj->colmax < cols) break; } if (0 < i) { t = gcstring_substr(s, 0, i); if (t->gclen) { t->gcstr[0].flag = LINEBREAK_FLAG_ALLOW_BEFORE; gcstring_append(result, t); } gcstring_destroy(t); t = gcstring_substr(s, i, s->gclen - i); gcstring_destroy(s); s = t; if (!s->gclen) break; } else { if (s->gclen) { s->gcstr[0].flag = LINEBREAK_FLAG_ALLOW_BEFORE; gcstring_append(result, s); } break; } } gcstring_destroy(s); return result; } /*@}*/ /** @name Preprocessing callbacks - obsoleted form * gcstring_t *callback(linebreak_t *lbobj, unistr_t *str) * Preprocessing behaviors specified by ``user_func'' member of linebreak_t. * ``user_data'' member can be used to modify behavior. * @param[in] obj linebreak object. * @param[in] str Unicode string (not grapheme cluster string) to be processed. * @return new grapheme cluster string. NULL means no data. * If error occurred, callback must set lbobj->errnum nonzero then return NULL. * * Currently no built-in preprocessing callbacks are defined. * NOTE: Feature of this callback described here is planned to be changed * by next release. */ sombok-2.3.1/src/0000775000076400007640000000000012221427042010605 500000000000000sombok-2.3.1/src/sombok.c0000664000076400007640000003570012210015235012163 00000000000000#include #include #include #include #include #include "sombok.h" #define BUFLEN (8192) static char buf[BUFLEN]; static char *encbuf = NULL; static unistr_t unistr = { NULL, 0 }; static unichar_t newline_str[] = { 0x000A }; static unichar_t hextou(unichar_t * str, int len) { size_t i; unichar_t c, u = 0; for (i = 0; i < len; i++) { c = str[i]; if ((unichar_t) '0' <= c && c <= (unichar_t) '9') u = u * 16 + c - (unichar_t) '0'; else if ((unichar_t) 'a' <= c && c <= (unichar_t) 'f') u = u * 16 + c - (unichar_t) 'a' + 10; else if ((unichar_t) 'A' <= c && c <= (unichar_t) 'F') u = u * 16 + c - (unichar_t) 'A' + 10; else return (unichar_t)-1; } return u; } static unistr_t *parse_string(char *utf8str, size_t len) { unichar_t *buf; size_t i, j; if (sombok_decode_utf8(&unistr, 0, utf8str, len, 3) == NULL) return NULL; buf = unistr.str; for (i = 0, j = 0; i < unistr.len; i++) { if (buf[i] == (unichar_t) '\\') { if (i + 1 < unistr.len) { i++; switch (buf[i]) { case (unichar_t) '0': buf[j] = 0x0000; /* null */ break; case (unichar_t) 'a': buf[j] = 0x0007; /* bell */ break; case (unichar_t) 'b': buf[j] = 0x0008; /* back space */ break; case (unichar_t) 't': buf[j] = 0x0009; /* horizontal tab */ break; case (unichar_t) 'n': buf[j] = 0x000A; /* line feed */ break; case (unichar_t) 'v': buf[j] = 0x000B; /* vertical tab */ break; case (unichar_t) 'f': buf[j] = 0x000C; /* form feed */ break; case (unichar_t) 'r': buf[j] = 0x000D; /* carriage return */ break; case (unichar_t) 'e': buf[j] = 0x001B; /* escape */ break; case (unichar_t) 'x': /* \xhh */ if ((buf[j] = hextou(buf + i + 1, 2)) == -1) buf[j] = buf[i]; else i += 2; break; case (unichar_t) 'u': /* \uhhhh */ if ((buf[j] = hextou(buf + i + 1, 4)) == -1) buf[j] = buf[i]; else i += 4; break; case (unichar_t) 'U': /* \Uhhhhhhhh */ if ((buf[j] = hextou(buf + i + 1, 8)) == -1) buf[j] = buf[i]; else i += 8; break; default: buf[j] = buf[i]; } } else if (j < i) buf[j] = buf[i]; } else if (j < i) buf[j] = buf[i]; j++; } unistr.len = j; return &unistr; } static pid_t popen2(const char *cmd, const char *arg, int *ifd, int *ofd) { int ipipe[2], opipe[2], errnum; pid_t pid; if (pipe(ipipe) != 0 || pipe(opipe) != 0) return -1; if ((pid = fork()) < 0) return -1; if (pid == 0) { close(ipipe[1]); dup2(ipipe[0], 0); close(opipe[0]); dup2(opipe[1], 1); execl(SHELL_PROGRAM, SHELL_NAME, "-c", cmd, SHELL_NAME, arg, NULL); errnum = errno; perror("execl"); exit(errnum); } *ifd = ipipe[1]; *ofd = opipe[0]; return pid; } static gcstring_t *format_SHELL(linebreak_t * lbobj, linebreak_state_t state, gcstring_t * gcstr) { size_t len; int ifd = 0, ofd = 1; char *statestr; gcstring_t *ret; switch (state) { case LINEBREAK_STATE_SOT: statestr = "sot"; break; case LINEBREAK_STATE_SOP: statestr = "sop"; break; case LINEBREAK_STATE_SOL: statestr = "sol"; break; case LINEBREAK_STATE_LINE: statestr = ""; break; case LINEBREAK_STATE_EOL: statestr = "eol"; break; case LINEBREAK_STATE_EOP: statestr = "eop"; break; case LINEBREAK_STATE_EOT: statestr = "eot"; break; default: lbobj->errnum = EINVAL; return NULL; } if ((encbuf = sombok_encode_utf8(encbuf, &len, 0, (unistr_t *)gcstr)) == NULL) { lbobj->errnum = errno; return NULL; } popen2(lbobj->format_data, statestr, &ifd, &ofd); write(ifd, encbuf, len); close(ifd); if ((len = read(ofd, buf, BUFSIZ)) == -1) { lbobj->errnum = errno; close(ofd); return NULL; } if (close(ofd) == -1) { lbobj->errnum = errno; return NULL; } if (len == 0) unistr.len = 0; else if (sombok_decode_utf8(&unistr, 0, buf, len, 3) == NULL) { lbobj->errnum = errno; return NULL; } if ((ret = gcstring_newcopy(&unistr, lbobj)) == NULL) { lbobj->errnum = errno ? errno : ENOMEM; return NULL; } return ret; } int main(int argc, char **argv) { linebreak_t *lbobj; size_t i, j, len; gcstring_t **lines; char *outfile = NULL; FILE *ifp, *ofp; int errnum; unistr_t newline; lbobj = linebreak_new(NULL); lbobj->colmax = 76.0; lbobj->charmax = 998; newline.str = newline_str; newline.len = 1; linebreak_set_newline(lbobj, &newline); linebreak_set_format(lbobj, linebreak_format_SIMPLE, NULL); linebreak_set_sizing(lbobj, linebreak_sizing_UAX11, NULL); for (i = 1; i < argc; i++) { if (argv[i][0] == '-' && argv[i][1] == '-') { if (argv[i][2] == '\0') { i++; break; } else if (strcmp(argv[i] + 2, "colmax") == 0) lbobj->colmax = atof(argv[++i]); else if (strcmp(argv[i] + 2, "colmin") == 0) lbobj->colmin = atof(argv[++i]); else if (strcmp(argv[i] + 2, "charmax") == 0) lbobj->charmax = atol(argv[++i]); else if (strcmp(argv[i] + 2, "newline") == 0 && i + 1 < argc) { i++; if (parse_string(argv[i], strlen(argv[i])) == NULL) { errnum = errno; perror("parse_string"); linebreak_destroy(lbobj); exit(errnum); } linebreak_set_newline(lbobj, &unistr); } else if (strcmp(argv[i] + 2, "complex-breaking") == 0) lbobj->options |= LINEBREAK_OPTION_COMPLEX_BREAKING; else if (strcmp(argv[i] + 2, "no-complex-breaking") == 0) lbobj->options &= ~LINEBREAK_OPTION_COMPLEX_BREAKING; else if (strcmp(argv[i] + 2, "context") == 0 && i + 1 < argc) { i++; if (strcasecmp(argv[i], "EASTASIAN") == 0) lbobj->options |= LINEBREAK_OPTION_EASTASIAN_CONTEXT; else lbobj->options &= ~LINEBREAK_OPTION_EASTASIAN_CONTEXT; } else if (strcmp(argv[i] + 2, "hangul-as-al") == 0) lbobj->options |= LINEBREAK_OPTION_HANGUL_AS_AL; else if (strcmp(argv[i] + 2, "no-hangul-as-al") == 0) lbobj->options &= ~LINEBREAK_OPTION_HANGUL_AS_AL; else if (strcmp(argv[i] + 2, "legacy-cm") == 0) lbobj->options |= LINEBREAK_OPTION_LEGACY_CM; else if (strcmp(argv[i] + 2, "no-legacy-cm") == 0) lbobj->options &= ~LINEBREAK_OPTION_LEGACY_CM; else if (strcmp(argv[i] + 2, "nonstarter") == 0 && i + 1 < argc) { i++; if (strcasecmp(argv[i], "LOOSE") == 0) lbobj->options |= LINEBREAK_OPTION_NONSTARTER_LOOSE; else lbobj->options &= ~LINEBREAK_OPTION_NONSTARTER_LOOSE; } else if (strcmp(argv[i] + 2, "virama-as-joiner") == 0) lbobj->options |= LINEBREAK_OPTION_VIRAMA_AS_JOINER; else if (strcmp(argv[i] + 2, "no-virama-as-joiner") == 0) lbobj->options &= ~LINEBREAK_OPTION_VIRAMA_AS_JOINER; else if (strcmp(argv[i] + 2, "format-func") == 0 && i + 1 < argc) { i++; if (strcasecmp(argv[i], "NONE") == 0) linebreak_set_format(lbobj, NULL, NULL); else if (strcasecmp(argv[i], "SIMPLE") == 0) linebreak_set_format(lbobj, linebreak_format_SIMPLE, NULL); else if (strcasecmp(argv[i], "NEWLINE") == 0) linebreak_set_format(lbobj, linebreak_format_NEWLINE, NULL); else if (strcasecmp(argv[i], "TRIM") == 0) linebreak_set_format(lbobj, linebreak_format_TRIM, NULL); else linebreak_set_format(lbobj, format_SHELL, argv[i]); } else if (strcmp(argv[i] + 2, "prep-func") == 0 && i + 1 < argc) { i++; if (strcasecmp(argv[i], "NONE") == 0) linebreak_add_prep(lbobj, NULL, NULL); else if (strcasecmp(argv[i], "BREAKURI") == 0) linebreak_add_prep(lbobj, linebreak_prep_URIBREAK, ""); else if (strcasecmp(argv[i], "NONBREAKURI") == 0) linebreak_add_prep(lbobj, linebreak_prep_URIBREAK, NULL); else { fprintf(stderr, "unknown option value: %s\n", argv[i]); linebreak_destroy(lbobj); exit(1); } } else if (strcmp(argv[i] + 2, "sizing-func") == 0 && i + 1 < argc) { i++; if (strcasecmp(argv[i], "NONE") == 0) linebreak_set_sizing(lbobj, NULL, NULL); else if (strcasecmp(argv[i], "UAX11") == 0) linebreak_set_sizing(lbobj, linebreak_sizing_UAX11, NULL); else { fprintf(stderr, "unknown option value: %s\n", argv[i]); linebreak_destroy(lbobj); exit(1); } } else if (strcmp(argv[i] + 2, "urgent-func") == 0 && i + 1 < argc) { i++; if (strcasecmp(argv[i], "NONE") == 0) linebreak_set_urgent(lbobj, NULL, NULL); else if (strcasecmp(argv[i], "ABORT") == 0) linebreak_set_urgent(lbobj, linebreak_urgent_ABORT, NULL); else if (strcasecmp(argv[i], "FORCE") == 0) linebreak_set_urgent(lbobj, linebreak_urgent_FORCE, NULL); else { fprintf(stderr, "unknown option value: %s\n", argv[i]); linebreak_destroy(lbobj); exit(1); } } else if (strcmp(argv[i] + 2, "eawidth") == 0 && i + 1 < argc) { char *p, *q, *codes, *propname = ""; size_t j; propval_t propval = PROP_UNKNOWN; unichar_t beg, end, c; i++; p = argv[i]; while ((q = strchr(p, '=')) != NULL) { *q = '\0'; codes = p; propname = q + 1; if ((q = strchr(propname, ',')) != NULL) { *q = '\0'; p = q + 1; while (*p == ' ' || *p == '\t') p++; } else while (*p) p++; for (j = 0; linebreak_propvals_EA[j] != NULL; j++) if (strcasecmp(linebreak_propvals_EA[j], propname) == 0) { propval = j; break; } if ((q = strchr(codes, '-')) != NULL) { *q = '\0'; beg = (unichar_t)strtoul(codes, NULL, 16); end = (unichar_t)strtoul(q + 1, NULL, 16); if (end < beg) { c = beg; beg = end; end = c; } } else beg = end = (unichar_t)strtoul(codes, NULL, 16); for (c = beg; c <= end; c++) linebreak_update_eawidth(lbobj, c, propval); } } else if (strcmp(argv[i] + 2, "lbclass") == 0 && i + 1 < argc) { char *p, *q, *codes, *propname = ""; size_t j; propval_t propval = PROP_UNKNOWN; unichar_t beg, end, c; i++; p = argv[i]; while ((q = strchr(p, '=')) != NULL) { *q = '\0'; codes = p; propname = q + 1; if ((q = strchr(propname, ',')) != NULL) { *q = '\0'; p = q + 1; while (*p == ' ' || *p == '\t') p++; } else while (*p) p++; for (j = 0; linebreak_propvals_LB[j] != NULL; j++) if (strcasecmp(linebreak_propvals_LB[j], propname) == 0) { propval = j; break; } if ((q = strchr(codes, '-')) != NULL) { *q = '\0'; beg = (unichar_t)strtoul(codes, NULL, 16); end = (unichar_t)strtoul(q + 1, NULL, 16); if (end < beg) { c = beg; beg = end; end = c; } } else beg = end = (unichar_t)strtoul(codes, NULL, 16); for (c = beg; c <= end; c++) linebreak_update_lbclass(lbobj, c, propval); } } else if (strcmp(argv[i] + 2, "version") == 0) { printf(PACKAGE_NAME " " PACKAGE_VERSION "\n"); linebreak_destroy(lbobj); exit(0); } else if (strcmp(argv[i] + 2, "sea-support") == 0) { printf("%s\n", linebreak_southeastasian_supported ? linebreak_southeastasian_supported : "none"); linebreak_destroy(lbobj); exit(0); } else { fprintf(stderr, "unknown option: %s\n", argv[i]); linebreak_destroy(lbobj); exit(1); } } else if (argv[i][0] == '-' && argv[i][1] != '\0' && argv[i][2] == '\0') { switch (argv[i][1]) { case 'o': if (i + 1 < argc) { i++; outfile = argv[i]; break; } default: fprintf(stderr, "Unknown optoion %s\n", argv[i]); linebreak_destroy(lbobj); exit(1); } } else break; } if (outfile == NULL) ofp = stdout; else if ((ofp = fopen(outfile, "wb")) == NULL) { errnum = errno; perror(outfile); linebreak_destroy(lbobj); exit(errnum); } if (argc <= i) { len = fread(buf, sizeof(char), BUFLEN - 1, stdin); if (len <= 0 && errno) { errnum = errno; perror("(stdin)"); linebreak_destroy(lbobj); exit(errnum); } if (len == 0) unistr.len = 0; else if (sombok_decode_utf8(&unistr, 0, buf, len, 3) == NULL) { errnum = errno; perror("decode_utf8"); linebreak_destroy(lbobj); exit(errnum); } lines = linebreak_break(lbobj, &unistr); if (lbobj->errnum == LINEBREAK_ELONG) { fprintf(stderr, "Excessive line was found\n"); free(unistr.str); linebreak_destroy(lbobj); exit(LINEBREAK_ELONG); } else if (lbobj->errnum) { errno = errnum = lbobj->errnum; perror("linebreak_break"); linebreak_destroy(lbobj); exit(errnum); } for (j = 0; lines[j] != NULL; j++) { if (lines[j]->str != NULL) { if ((encbuf = sombok_encode_utf8(encbuf, &len, 0, (unistr_t *)(lines[j]))) == NULL) { errnum = errno; perror("encode_utf8"); linebreak_destroy(lbobj); exit(errnum); } fwrite(encbuf, sizeof(char), len, ofp); } gcstring_destroy(lines[j]); } free(lines); } else { for (; i < argc; i++) { if (argv[i][0] == '-' && argv[i][1] == '\0') ifp = stdin; else if ((ifp = fopen(argv[i], "rb")) == NULL) { errnum = errno; perror(argv[i]); linebreak_destroy(lbobj); exit(errnum); } len = fread(buf, sizeof(char), BUFLEN - 1, ifp); if (len <= 0 && errno) { errnum = errno; perror("fread"); linebreak_destroy(lbobj); exit(errnum); } if (len == 0) unistr.len = 0; else if (sombok_decode_utf8(&unistr, 0, buf, len, 3) == NULL) { errnum = errno; perror("decode_utf8"); linebreak_destroy(lbobj); exit(errnum); } fclose(ifp); lines = linebreak_break_partial(lbobj, &unistr); if (lbobj->errnum == LINEBREAK_ELONG) { fprintf(stderr, "Excessive line was found\n"); free(unistr.str); linebreak_destroy(lbobj); exit(LINEBREAK_ELONG); } else if (lbobj->errnum) { errno = errnum = lbobj->errnum; perror("linebreak_break_partial"); linebreak_destroy(lbobj); exit(errnum); } for (j = 0; lines[j] != NULL; j++) { if (lines[j]->str != NULL) { if ((encbuf = sombok_encode_utf8(encbuf, &len, 0, (unistr_t *)(lines[j]))) == NULL) { errnum = errno; perror("encode_utf8"); linebreak_destroy(lbobj); exit(errnum); } fwrite(encbuf, sizeof(char), len, ofp); } gcstring_destroy(lines[j]); } free(lines); } lines = linebreak_break_partial(lbobj, NULL); if (lbobj->errnum == LINEBREAK_ELONG) { fprintf(stderr, "Excessive line was found\n"); free(unistr.str); linebreak_destroy(lbobj); exit(LINEBREAK_ELONG); } else if (lbobj->errnum) { errno = errnum = lbobj->errnum; perror("linebreak_break_partial"); linebreak_destroy(lbobj); exit(errnum); } for (j = 0; lines[j] != NULL; j++) { if (lines[j]->str != NULL) { if ((encbuf = sombok_encode_utf8(encbuf, &len, 0, (unistr_t *)(lines[j]))) == NULL) { errnum = errno; perror("encode_utf8"); linebreak_destroy(lbobj); exit(errnum); } fwrite(encbuf, sizeof(char), len, ofp); } gcstring_destroy(lines[j]); } free(lines); } fclose(ofp); free(encbuf); free(unistr.str); linebreak_destroy(lbobj); exit(0); } sombok-2.3.1/src/strerror.c0000664000076400007640000000165012210015235012550 00000000000000/* * strerror.c - Fallback implementaion of strerror(3). * * Copyright (C) 2006 by Hatuka*nezumi - IKEDA Soji. * * This file is part of the Sombok Package. This program 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 of the License, or (at your option) * any later version. This program 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 COPYING file for more details. * * $id$ */ #include extern int sys_nerr; extern char *sys_errlist[]; char *strerror(int errnum) { static char buf[26]; if (errnum >= 0 && errnum < sys_nerr) return sys_errlist[errnum]; else sprintf(buf, sizeof(buf), "Unknown error %d", errnum); return buf; } sombok-2.3.1/src/mymalloc.c0000664000076400007640000001017312210015235012503 00000000000000#include #include #include #include #define _MYMALLOC_H_ #include "sombok.h" #define INFOLEN (128) #define ALLOCMAX (8191) static void *alloclist[ALLOCMAX + 1]; static size_t allocindex = 0; static int allocserial = 0; static int atexit_set = 0; static int MYcmp(char **x, char **y) { if (*x == NULL) { if (*y == NULL) return 0; else return 1; } else if (*y == NULL) return -1; return strcmp(*x, *y); } void MYatexit(void) { size_t i; void *realbuf; qsort(alloclist, allocindex, sizeof(void *), (int (*)())MYcmp); for (i = 0; i < allocindex; i++) { if (alloclist[i] == NULL) break; realbuf = alloclist[i] + INFOLEN * 2; fprintf(stderr, "================================\n*%s\n", (char *)alloclist[i]); if (strstr(alloclist[i], "gcstring_t *") == NULL && strstr(alloclist[i], "gcstring_t") != NULL) fprintf(stderr, " str:[%016lx]; len:%d\n" " gcstr:[%016lx];gclen:%d\n" " lbobj:[%016lx]\n", ((gcstring_t *) realbuf)->str, ((gcstring_t *) realbuf)->len, ((gcstring_t *) realbuf)->gcstr, ((gcstring_t *) realbuf)->gclen, ((gcstring_t *) realbuf)->lbobj); else if (strstr(alloclist[i], "unistr_t") != NULL) fprintf(stderr, " str:[%016lx]; len:%d\n", ((unistr_t *) realbuf)->str, ((unistr_t *) realbuf)->len); else if (strstr(alloclist[i], "linebreak_t") != NULL) fprintf(stderr, " refcnt:%d\n" "newline:[%016lx]; len:%d\n", ((linebreak_t *) realbuf)->refcount, ((linebreak_t *) realbuf)->newline.str, ((linebreak_t *) realbuf)->newline.len); if (((char *) alloclist[i])[INFOLEN]) fprintf(stderr, ">%s\n", (char *) (alloclist[i] + INFOLEN)); } } void MYfree(void *buf, char *file, int line, char *token) { size_t i; if (buf == NULL) return; for (i = 0; i < allocindex && (buf - INFOLEN * 2) != alloclist[i]; i++); if (allocindex <= i) { fprintf(stderr, "WARN[%016lx] %s:%d double free(%s)\n", buf, file, line, token); return; } free(buf - INFOLEN * 2); alloclist[i] = NULL; } void *MYmalloc(size_t size, const char *file, int line, char *token) { void *mem; size_t i; if (!atexit_set && atexit(MYatexit) == 0) atexit_set = 1; if (size == 0) fprintf(stderr, "WARN[ ] %s:%d malloc(%s=0)\n", file, line, token); if ((mem = malloc(size + INFOLEN * 2)) == NULL) return NULL; snprintf(mem, (INFOLEN - 1), "%6d[%016lx] %s:%d malloc(%s)", allocserial++, mem + INFOLEN * 2, file, line, token); ((char *) mem)[INFOLEN] = '\0'; for (i = 0; alloclist[i] != NULL && i < allocindex; i++); if (allocindex <= i) i = allocindex++; alloclist[i] = mem; return mem + INFOLEN * 2; } void *MYrealloc(void *buf, size_t size, const char *file, int line, char *token1, char *token2) { void *mem; size_t i; if (size == 0) { fprintf(stderr, "WARN[%016lx] %s:%d realloc(%s, %s = 0)\n", buf, file, line, token1, token2); MYfree(buf, "", 0, ""); return NULL; } if (buf == NULL) { if ((mem = malloc(size + INFOLEN * 2)) == NULL) return NULL; snprintf(mem, (INFOLEN - 1), "%6d[%016lx] %s:%d realloc(%s, %s)", allocserial++, mem + INFOLEN * 2, file, line, token1, token2); ((char *) mem)[INFOLEN] = '\0'; for (i = 0; alloclist[i] != NULL && i < allocindex; i++); if (allocindex <= i) i = allocindex++; alloclist[i] = mem; return mem + INFOLEN * 2; } for (i = 0; i < allocindex && (buf - INFOLEN * 2) != alloclist[i]; i++); if ((mem = realloc(buf - INFOLEN * 2, size + INFOLEN * 2)) == NULL) return NULL; if (i < allocindex) { snprintf(mem + INFOLEN, (INFOLEN - 1), "%6d[%016lx] %s:%d realloc(%s, %s)", allocserial++, mem + INFOLEN * 2, file, line, token1, token2); alloclist[i] = mem; } else { snprintf(mem, (INFOLEN - 1), "%6d[%016lx] %s:%d realloc(%s, %s)", allocserial++, mem + INFOLEN * 2, file, line, token1, token2); ((char *) mem)[INFOLEN] = '\0'; for (i = 0; alloclist[i] != NULL && i < allocindex; i++); if (allocindex <= i) i = allocindex++; alloclist[i] = mem; } return mem + INFOLEN * 2; } sombok-2.3.1/src/strcasecmp.c0000664000076400007640000000201212210015235013023 00000000000000/* * strcasecmp.c - Fallback implementaion of strcasecmp(3). * * Copyright (C) 2006 by Hatuka*nezumi - IKEDA Soji. * * This file is part of the Sombok Package. This program 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 of the License, or (at your option) * any later version. This program 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 COPYING file for more details. * * $id$ */ #define TOUPPER(c) \ (('a' <= c && c <= 'z')? c - ('a' - 'A'): c) int strcasecmp(const char *s1, const char *s2) { size_t i; char c1, c2; if (s1 == NULL || s2 == NULL) return ((s1 != NULL)? 1: 0) - ((s2 != NULL)? 1: 0); for (i = 0; (c1 = TOUPPER(s1[i])) && (c2 = TOUPPER(s2[i])); i++) if (c1 != c2) return c1 - c2; return c1 - c2; } sombok-2.3.1/src/mymalloc.h0000664000076400007640000000070412210015235012507 00000000000000#ifndef _MYMALLOC_H_ extern void *MYmalloc(size_t, char *, int, char *); extern void *MYrealloc(void *, size_t, char *, int, char *, char *); extern void MYfree(void *, char *, int, char *); #define malloc(buf) MYmalloc((buf), __FILE__, __LINE__, #buf) #define realloc(buf, size) \ MYrealloc((buf), (size), __FILE__, __LINE__, #buf, #size) #define free(buf) MYfree((buf), __FILE__, __LINE__, #buf) #define _MYMALLOC_H_ #endif /* _MYMALLOC_H_ */ sombok-2.3.1/missing0000755000076400007640000002415212221426342011341 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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. # This program 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 this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: sombok-2.3.1/AUTHORS0000664000076400007640000000005612210015236011003 00000000000000Hatuka*nezumi - IKEDA Soji sombok-2.3.1/config.sub0000775000076400007640000010527712210015236011731 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-02-12' # This file 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 3 of the License, or # (at your option) any later version. # # This program 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 this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 \ | or1k | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -midnightbsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or1k-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: sombok-2.3.1/configure0000775000076400007640000157717612221426341011676 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for sombok 2.3.1. # # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and hatuka@nezumi.nu $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sombok' PACKAGE_TARNAME='sombok' PACKAGE_VERSION='2.3.1' PACKAGE_STRING='sombok 2.3.1' PACKAGE_BUGREPORT='hatuka@nezumi.nu' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS ENABLE_DOC_FALSE ENABLE_DOC_TRUE DOXYGEN MALLOC_DEBUG MALLOC_DEBUG_FALSE MALLOC_DEBUG_TRUE UNICODE_VERSION SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG SOMBOK_UNICHAR_T_IS_UNSIGNED_INT SOMBOK_UNICHAR_T_IS_WCHAR_T SOMBOK_UNICHAR_T LIBTHAI_LIBS LIBTHAI_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG HAVE_STRCASECMP_FALSE HAVE_STRCASECMP_TRUE HAVE_STRERROR_FALSE HAVE_STRERROR_TRUE CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR DLLTOOL OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_shared enable_static with_pic enable_fast_install enable_dependency_tracking with_gnu_ld with_sysroot enable_libtool_lock enable_libthai with_unicode_type with_unicode_version enable_malloc_debug with_shell_program enable_doc ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR LIBTHAI_CFLAGS LIBTHAI_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures sombok 2.3.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/sombok] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of sombok 2.3.1:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-libtool-lock avoid locking (might break parallel builds) --disable-libthai disable libthai support --enable-malloc-debug enable codes to debug memory allocation/deallocation --disable-doc disable document generation Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-unicode-type=TYPE type of Unicode character [default=auto] --with-unicode-version=VERSION version of Unicode Standard [default=current version] --with-shell-program=PROGRAM shell program used by test suite [default=auto] Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path LIBTHAI_CFLAGS C compiler flags for LIBTHAI, overriding pkg-config LIBTHAI_LIBS linker flags for LIBTHAI, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF sombok configure 2.3.1 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ------------------------------- ## ## Report this to hatuka@nezumi.nu ## ## ------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by sombok $as_me 2.3.1, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEFAULT_UNICODE_VERSION="6.3.0" LPATH="$PATH:/usr/local/bin" am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='sombok' VERSION='2.3.1' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' ac_config_headers="$ac_config_headers config.h" # Checks for programs. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4' macro_revision='1.3293' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' lt_prog_compiler_pic='-Xcompiler -fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi if test "x$CC" != xcc; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 $as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. if { ac_try='cc -c conftest.$ac_ext >&5' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # cc works too. : else # cc exists but doesn't like -o. eval ac_cv_prog_cc_${ac_cc}_c_o=no fi fi fi else eval ac_cv_prog_cc_${ac_cc}_c_o=no fi rm -f core conftest* fi if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h fi # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi # Checks for libraries. # Checks for header files. for ac_header in errno.h stdlib.h stddef.h string.h wchar.h strings.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi # Checks for library functions. for ac_func in strerror do : ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" if test "x$ac_cv_func_strerror" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRERROR 1 _ACEOF fi done if test "$ac_cv_func_strerror" = "yes"; then HAVE_STRERROR_TRUE= HAVE_STRERROR_FALSE='#' else HAVE_STRERROR_TRUE='#' HAVE_STRERROR_FALSE= fi for ac_func in strcasecmp do : ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" if test "x$ac_cv_func_strcasecmp" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRCASECMP 1 _ACEOF fi done if test "$ac_cv_func_strcasecmp" = "yes"; then HAVE_STRCASECMP_TRUE= HAVE_STRCASECMP_FALSE='#' else HAVE_STRCASECMP_TRUE='#' HAVE_STRCASECMP_FALSE= fi if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBTHAI" >&5 $as_echo_n "checking for LIBTHAI... " >&6; } if test -n "$LIBTHAI_CFLAGS"; then pkg_cv_LIBTHAI_CFLAGS="$LIBTHAI_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libthai\""; } >&5 ($PKG_CONFIG --exists --print-errors "libthai") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBTHAI_CFLAGS=`$PKG_CONFIG --cflags "libthai" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBTHAI_LIBS"; then pkg_cv_LIBTHAI_LIBS="$LIBTHAI_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libthai\""; } >&5 ($PKG_CONFIG --exists --print-errors "libthai") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBTHAI_LIBS=`$PKG_CONFIG --libs "libthai" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBTHAI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libthai" 2>&1` else LIBTHAI_PKG_ERRORS=`$PKG_CONFIG --print-errors "libthai" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBTHAI_PKG_ERRORS" >&5 LIBTHAI= elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } LIBTHAI= else LIBTHAI_CFLAGS=$pkg_cv_LIBTHAI_CFLAGS LIBTHAI_LIBS=$pkg_cv_LIBTHAI_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } LIBTHAI="libthai/`$PKG_CONFIG --modversion libthai`" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libthai support enabled" >&5 $as_echo_n "checking whether libthai support enabled... " >&6; } # Check whether --enable-libthai was given. if test "${enable_libthai+set}" = set; then : enableval=$enable_libthai; else enable_libthai=yes fi if test -z "$LIBTHAI" then enable_libthai=no fi if test "$enable_libthai" = "no" then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no." >&5 $as_echo "no." >&6; } else cat >>confdefs.h <<_ACEOF #define USE_LIBTHAI "$LIBTHAI" _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBTHAI" >&5 $as_echo "$LIBTHAI" >&6; } fi # determine type of Unicode character { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking what type to be used for Unicode character..." >&5 $as_echo "checking what type to be used for Unicode character..." >&6; } if test "$ac_cv_header_wchar_h" = "yes" then INCLUDE_WCHAR_H='#include ' else INCLUDE_WCHAR_H= fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of wchar_t" >&5 $as_echo_n "checking size of wchar_t... " >&6; } if ${ac_cv_sizeof_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (wchar_t))" "ac_cv_sizeof_wchar_t" "$INCLUDE_WCHAR_H "; then : else if test "$ac_cv_type_wchar_t" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (wchar_t) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_wchar_t=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5 $as_echo "$ac_cv_sizeof_wchar_t" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned int" >&5 $as_echo_n "checking size of unsigned int... " >&6; } if ${ac_cv_sizeof_unsigned_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned int))" "ac_cv_sizeof_unsigned_int" "$ac_includes_default"; then : else if test "$ac_cv_type_unsigned_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_int" >&5 $as_echo "$ac_cv_sizeof_unsigned_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_UNSIGNED_INT $ac_cv_sizeof_unsigned_int _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long" >&5 $as_echo_n "checking size of unsigned long... " >&6; } if ${ac_cv_sizeof_unsigned_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long))" "ac_cv_sizeof_unsigned_long" "$ac_includes_default"; then : else if test "$ac_cv_type_unsigned_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned long) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long" >&5 $as_echo "$ac_cv_sizeof_unsigned_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long _ACEOF # Check whether --with-unicode-type was given. if test "${with_unicode_type+set}" = set; then : withval=$with_unicode_type; SOMBOK_UNICHAR_T="$withval" else SOMBOK_UNICHAR_T= fi if test x"$SOMBOK_UNICHAR_T" = x then if test "$ac_cv_sizeof_unsigned_int" -ge "4" then SOMBOK_UNICHAR_T="unsigned int" else SOMBOK_UNICHAR_T="unsigned long" fi fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unichar_t" >&5 $as_echo_n "checking size of unichar_t... " >&6; } if ${ac_cv_sizeof_unichar_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unichar_t))" "ac_cv_sizeof_unichar_t" "$INCLUDE_WCHAR_H typedef $SOMBOK_UNICHAR_T unichar_t; "; then : else if test "$ac_cv_type_unichar_t" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unichar_t) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unichar_t=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unichar_t" >&5 $as_echo "$ac_cv_sizeof_unichar_t" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_UNICHAR_T $ac_cv_sizeof_unichar_t _ACEOF if test "$ac_cv_sizeof_unichar_t" -lt "4" then as_fn_error $? "sizeof(unichar_t) must not be smaller than 4." "$LINENO" 5 fi if test "$ac_cv_sizeof_unichar_t" = "$ac_cv_sizeof_wchar_t" then SOMBOK_UNICHAR_T_IS_WCHAR_T='#define SOMBOK_UNICHAR_T_IS_WCHAR_T' else SOMBOK_UNICHAR_T_IS_WCHAR_T='#undef SOMBOK_UNICHAR_T_IS_WCHAR_T' fi if test "$ac_cv_sizeof_unichar_t" = "$ac_cv_sizeof_unsigned_int" then SOMBOK_UNICHAR_T_IS_UNSIGNED_INT='#define SOMBOK_UNICHAR_T_IS_UNSIGNED_INT' else SOMBOK_UNICHAR_T_IS_UNSIGNED_INT='#undef SOMBOK_UNICHAR_T_IS_UNSIGNED_INT' fi if test "$ac_cv_sizeof_unichar_t" = "$ac_cv_sizeof_unsigned_long" then SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG='#define SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG' else SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG='#undef SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOMBOK_UNICHAR_T" >&5 $as_echo "$SOMBOK_UNICHAR_T" >&6; } # determin version of Unicode Standard { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking what version of Unicode Standard will be used..." >&5 $as_echo "checking what version of Unicode Standard will be used..." >&6; } # Check whether --with-unicode-version was given. if test "${with_unicode_version+set}" = set; then : withval=$with_unicode_version; UNICODE_VERSION=$withval else UNICODE_VERSION=$DEFAULT_UNICODE_VERSION fi as_ac_File=`$as_echo "ac_cv_file_lib/$UNICODE_VERSION.c" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lib/$UNICODE_VERSION.c" >&5 $as_echo_n "checking for lib/$UNICODE_VERSION.c... " >&6; } if eval \${$as_ac_File+:} false; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "lib/$UNICODE_VERSION.c"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi eval ac_res=\$$as_ac_File { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_File"\" = x"yes"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNICODE_VERSION" >&5 $as_echo "$UNICODE_VERSION" >&6; } else as_fn_error $? "Unknown Unicode version $UNICODE_VERSION." "$LINENO" 5 fi # check if code to debug memory allocation is enabled. # Check whether --enable-malloc-debug was given. if test "${enable_malloc_debug+set}" = set; then : enableval=$enable_malloc_debug; MALLOC_DEBUG=yes fi if test "$MALLOC_DEBUG" = "yes"; then MALLOC_DEBUG_TRUE= MALLOC_DEBUG_FALSE='#' else MALLOC_DEBUG_TRUE='#' MALLOC_DEBUG_FALSE= fi if test "$MALLOC_DEBUG" = "yes" then { $as_echo "$as_me:${as_lineno-$LINENO}: result: use mymalloc." >&5 $as_echo "use mymalloc." >&6; } cat >>confdefs.h <<_ACEOF #define MALLOC_DEBUG "$MALLOC_DEBUG" _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking what shell program will be used" >&5 $as_echo_n "checking what shell program will be used... " >&6; } # Check whether --with-shell-program was given. if test "${with_shell_program+set}" = set; then : withval=$with_shell_program; sombok_shell_program=$withval else sombok_shell_program=none fi if test "$sombok_shell_program" '!=' "none" -a \ "`basename $sombok_shell_program`" = "$sombok_shell_program" then sombok_names="$sombok_shell_program" sombok_shell_program="none" else sombok_names="sh ash dash bash bash2 ksh dtksh pdksh" fi if test "$sombok_shell_program" = "none" then for sombok_path in /bin /usr/bin /usr/sfw/bin /usr/xpg4/bin /usr/dt/bin \ /usr/local/bin /usr/gnu/bin do for sombok_name in $sombok_names do if test -x "$sombok_path/$sombok_name" then if test "`$sombok_path/$sombok_name -c 'echo $1' arg0 arg1`" = "arg1" then sombok_shell_program="$sombok_path/$sombok_name" cat >>confdefs.h <<_ACEOF #define SHELL_PROGRAM "$sombok_shell_program" _ACEOF cat >>confdefs.h <<_ACEOF #define SHELL_NAME "$sombok_name" _ACEOF break fi fi done if test "$sombok_shell_program" '!=' "none" then break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $sombok_shell_program" >&5 $as_echo "$sombok_shell_program" >&6; } # Check whether --enable-doc was given. if test "${enable_doc+set}" = set; then : enableval=$enable_doc; ENABLE_DOC="$enableval" else ENABLE_DOC="yes" fi if test "$ENABLE_DOC" = "yes" then # Extract the first word of "doxygen", so it can be a program name with args. set dummy doxygen; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DOXYGEN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DOXYGEN"; then ac_cv_prog_DOXYGEN="$DOXYGEN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DOXYGEN="doxygen" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_DOXYGEN" && ac_cv_prog_DOXYGEN="no" fi fi DOXYGEN=$ac_cv_prog_DOXYGEN if test -n "$DOXYGEN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5 $as_echo "$DOXYGEN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$DOXYGEN" = "no" then ENABLE_DOC="no" fi fi if test "$ENABLE_DOC" = "yes"; then ENABLE_DOC_TRUE= ENABLE_DOC_FALSE='#' else ENABLE_DOC_TRUE='#' ENABLE_DOC_FALSE= fi if test "x$docdir" = "x" then docdir="$datadir/doc/$PACKAGE_NAME-$PACKAGE_VERSION" fi if test "x$htmldir" = "x" then htmldir="$docdir/html" fi ac_config_files="$ac_config_files Makefile include/sombok.h sombok.pc sombok.spec doc/doxyfile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_STRERROR_TRUE}" && test -z "${HAVE_STRERROR_FALSE}"; then as_fn_error $? "conditional \"HAVE_STRERROR\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_STRCASECMP_TRUE}" && test -z "${HAVE_STRCASECMP_FALSE}"; then as_fn_error $? "conditional \"HAVE_STRCASECMP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MALLOC_DEBUG_TRUE}" && test -z "${MALLOC_DEBUG_FALSE}"; then as_fn_error $? "conditional \"MALLOC_DEBUG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_DOC_TRUE}" && test -z "${ENABLE_DOC_FALSE}"; then as_fn_error $? "conditional \"ENABLE_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by sombok $as_me 2.3.1, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ sombok config.status 2.3.1 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "include/sombok.h") CONFIG_FILES="$CONFIG_FILES include/sombok.h" ;; "sombok.pc") CONFIG_FILES="$CONFIG_FILES sombok.pc" ;; "sombok.spec") CONFIG_FILES="$CONFIG_FILES sombok.spec" ;; "doc/doxyfile") CONFIG_FILES="$CONFIG_FILES doc/doxyfile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi sombok-2.3.1/configure.ac0000664000076400007640000001363612221426261012237 00000000000000# Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) AC_INIT(sombok, m4_esyscmd([cat VERSION | tr -d '\n']), hatuka@nezumi.nu) DEFAULT_UNICODE_VERSION="m4_esyscmd([cat UNICODE | tr -d '\n'])" LPATH="$PATH:/usr/local/bin" AM_INIT_AUTOMAKE AC_CONFIG_HEADER([config.h]) dnl AC_CONFIG_MACRO_DIR([m4]) # Checks for programs. AC_PROG_MAKE_SET AM_PROG_LIBTOOL AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_CC AM_PROG_CC_C_O # Checks for libraries. dnl AM_ICONV # Checks for header files. dnl AC_HEADER_STDC AC_CHECK_HEADERS([errno.h stdlib.h stddef.h string.h wchar.h strings.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_SIZE_T # Checks for library functions. dnl AC_FUNC_MALLOC AC_CHECK_FUNCS([strerror]) AM_CONDITIONAL(HAVE_STRERROR, [test "$ac_cv_func_strerror" = "yes"]) AC_CHECK_FUNCS([strcasecmp]) AM_CONDITIONAL(HAVE_STRCASECMP, [test "$ac_cv_func_strcasecmp" = "yes"]) PKG_CHECK_MODULES(LIBTHAI, [libthai], [LIBTHAI="libthai/`$PKG_CONFIG --modversion libthai`"], [LIBTHAI=]) AC_MSG_CHECKING(whether libthai support enabled) AC_ARG_ENABLE(libthai, AC_HELP_STRING(--disable-libthai, [disable libthai support]), [], [enable_libthai=yes]) if test -z "$LIBTHAI" then enable_libthai=no fi if test "$enable_libthai" = "no" then AC_MSG_RESULT(no.) else AC_DEFINE_UNQUOTED(USE_LIBTHAI, "$LIBTHAI", [ Set this to use libthai library. ]) AC_SUBST(LIBTHAI_CFLAGS) AC_SUBST(LIBTHAI_LIBS) AC_MSG_RESULT($LIBTHAI) fi # determine type of Unicode character AC_MSG_RESULT(checking what type to be used for Unicode character...) if test "$ac_cv_header_wchar_h" = "yes" then INCLUDE_WCHAR_H='#include ' else INCLUDE_WCHAR_H= fi AC_CHECK_SIZEOF([wchar_t], 2, [$INCLUDE_WCHAR_H]) AC_CHECK_SIZEOF([unsigned int], 4) AC_CHECK_SIZEOF([unsigned long], 8) AC_ARG_WITH(unicode-type, AC_HELP_STRING(--with-unicode-type=TYPE, [type of Unicode character @<:@default=auto@:>@]), SOMBOK_UNICHAR_T="$withval", SOMBOK_UNICHAR_T=) if test x"$SOMBOK_UNICHAR_T" = x then if test "$ac_cv_sizeof_unsigned_int" -ge "4" then SOMBOK_UNICHAR_T="unsigned int" else SOMBOK_UNICHAR_T="unsigned long" fi fi AC_CHECK_SIZEOF([unichar_t], 4, [$INCLUDE_WCHAR_H typedef $SOMBOK_UNICHAR_T unichar_t;]) if test "$ac_cv_sizeof_unichar_t" -lt "4" then AC_MSG_ERROR([sizeof(unichar_t) must not be smaller than 4.]) fi if test "$ac_cv_sizeof_unichar_t" = "$ac_cv_sizeof_wchar_t" then SOMBOK_UNICHAR_T_IS_WCHAR_T='#define SOMBOK_UNICHAR_T_IS_WCHAR_T' else SOMBOK_UNICHAR_T_IS_WCHAR_T='#undef SOMBOK_UNICHAR_T_IS_WCHAR_T' fi if test "$ac_cv_sizeof_unichar_t" = "$ac_cv_sizeof_unsigned_int" then SOMBOK_UNICHAR_T_IS_UNSIGNED_INT='#define SOMBOK_UNICHAR_T_IS_UNSIGNED_INT' else SOMBOK_UNICHAR_T_IS_UNSIGNED_INT='#undef SOMBOK_UNICHAR_T_IS_UNSIGNED_INT' fi if test "$ac_cv_sizeof_unichar_t" = "$ac_cv_sizeof_unsigned_long" then SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG='#define SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG' else SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG='#undef SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG' fi AC_MSG_RESULT([$SOMBOK_UNICHAR_T]) AC_SUBST(SOMBOK_UNICHAR_T) AC_SUBST(SOMBOK_UNICHAR_T_IS_WCHAR_T) AC_SUBST(SOMBOK_UNICHAR_T_IS_UNSIGNED_INT) AC_SUBST(SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG) # determin version of Unicode Standard AC_MSG_RESULT(checking what version of Unicode Standard will be used...) AC_ARG_WITH(unicode-version, AC_HELP_STRING(--with-unicode-version=VERSION, [version of Unicode Standard @<:@default=current version@:>@]), UNICODE_VERSION=$withval,UNICODE_VERSION=$DEFAULT_UNICODE_VERSION) AC_CHECK_FILE([lib/$UNICODE_VERSION.c], AC_MSG_RESULT($UNICODE_VERSION), AC_MSG_ERROR(Unknown Unicode version $UNICODE_VERSION.)) AC_SUBST(UNICODE_VERSION) # check if code to debug memory allocation is enabled. AC_ARG_ENABLE(malloc-debug, AC_HELP_STRING(--enable-malloc-debug, [enable codes to debug memory allocation/deallocation]), [MALLOC_DEBUG=yes], []) AM_CONDITIONAL(MALLOC_DEBUG, [test "$MALLOC_DEBUG" = "yes"]) if test "$MALLOC_DEBUG" = "yes" then AC_MSG_RESULT(use mymalloc.) AC_DEFINE_UNQUOTED(MALLOC_DEBUG, "$MALLOC_DEBUG", [ Set this to use mymalloc wrapper. ]) AC_SUBST(MALLOC_DEBUG) fi AC_MSG_CHECKING(what shell program will be used) AC_ARG_WITH(shell-program, AC_HELP_STRING(--with-shell-program=PROGRAM, [shell program used by test suite @<:@default=auto@:>@]), sombok_shell_program=$withval,sombok_shell_program=none) if test "$sombok_shell_program" '!=' "none" -a \ "`basename $sombok_shell_program`" = "$sombok_shell_program" then sombok_names="$sombok_shell_program" sombok_shell_program="none" else sombok_names="sh ash dash bash bash2 ksh dtksh pdksh" fi if test "$sombok_shell_program" = "none" then for sombok_path in /bin /usr/bin /usr/sfw/bin /usr/xpg4/bin /usr/dt/bin \ /usr/local/bin /usr/gnu/bin do for sombok_name in $sombok_names do if test -x "$sombok_path/$sombok_name" then if test "`$sombok_path/$sombok_name -c 'echo $1' arg0 arg1`" = "arg1" then sombok_shell_program="$sombok_path/$sombok_name" AC_DEFINE_UNQUOTED(SHELL_PROGRAM, "$sombok_shell_program", [ Shell program. ]) AC_DEFINE_UNQUOTED(SHELL_NAME, "$sombok_name", [ Name of shell. ]) break fi fi done if test "$sombok_shell_program" '!=' "none" then break fi done fi AC_MSG_RESULT($sombok_shell_program) AC_ARG_ENABLE(doc, [AC_HELP_STRING([--disable-doc], [disable document generation])], ENABLE_DOC="$enableval", ENABLE_DOC="yes") if test "$ENABLE_DOC" = "yes" then AC_CHECK_PROG(DOXYGEN,doxygen,doxygen,no) if test "$DOXYGEN" = "no" then ENABLE_DOC="no" fi fi AM_CONDITIONAL(ENABLE_DOC,test "$ENABLE_DOC" = "yes") if test "x$docdir" = "x" then docdir="$datadir/doc/$PACKAGE_NAME-$PACKAGE_VERSION" fi if test "x$htmldir" = "x" then htmldir="$docdir/html" fi AC_SUBST(docdir) AC_SUBST(htmldir) AC_CONFIG_FILES(Makefile include/sombok.h sombok.pc sombok.spec doc/doxyfile) AC_OUTPUT sombok-2.3.1/README0000644000076400007640000000263112210015236010612 00000000000000========================================== Sombok - Unicode Text Segmentation Package ========================================== Sombok is Copyright (C) 2009-2013, by Hatuka*nezumi - IKEDA Soji. It is free software; you can redistribute it and/or modify it under the terms of either: a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License". ---- See the COPYING and the ARTISTIC files for more details. What is this ============ Sombok library package performs Line Breaking Algorithm described in Unicode Standard Annex #14 (UAX #14). East_Asian_Width informative properties defined by Annex #11 (UAX #11) may be concerned to determin breaking positions. This package also implements "default" Grapheme Cluster segmentation described in Annex #29 (UAX #29). Getting Sombok ============== You can get Sombok from: http://sf.net/projects/linefold/ Installing ========== See INSTALL. Name ==== "Sombok" (or "sambak") is Korean onomatopeic word to represent "cutting cleanly". It is not connected to Khmer word "sombok" nor Afrikaans word "sjambok". Language bindings ================= Perl Unicode-LineBreak: http://search.cpan.org/dist/Unicode-LineBreak/ Python pytextseg: http://pypi.python.org/pypi/pytextseg/ Author ====== Hatuka*nezumi - IKEDA Soji . sombok-2.3.1/TODO0000664000076400007640000000074312210015236010426 00000000000000ToDo on next major release: - offset, length or pos arguments of gcstring_setpos(), gcstring_shrink(), gcstring_substr(), gcstring_replace(), gcstring_lbclass() and gcstring_lbclass_ext() would be ssize_t, not int. - Following functions would be deprecated: - linebreak_lbrule - linebreak_set_user and user_func/user_data members - linebreak_lbclass - linebreak_eawidth - Separated libraries for character database, grapheme cluster segmentation and line breaking. sombok-2.3.1/config.h.in0000664000076400007640000000535212221426341011767 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_WCHAR_H /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Set this to use mymalloc wrapper. */ #undef MALLOC_DEBUG /* 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 /* Name of shell. */ #undef SHELL_NAME /* Shell program. */ #undef SHELL_PROGRAM /* The size of `unichar_t', as computed by sizeof. */ #undef SIZEOF_UNICHAR_T /* The size of `unsigned int', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_INT /* The size of `unsigned long', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_LONG /* The size of `wchar_t', as computed by sizeof. */ #undef SIZEOF_WCHAR_T /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Set this to use libthai library. */ #undef USE_LIBTHAI /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `unsigned int' if does not define. */ #undef size_t sombok-2.3.1/VERSION0000644000076400007640000000000612221425702011001 000000000000002.3.1 sombok-2.3.1/data/0000775000076400007640000000000012221427042010727 500000000000000sombok-2.3.1/data/LBCLASSES0000664000076400007640000000474012221425452012115 00000000000000%indexedclasses = ( 'lb' => { '5.1.0' => [qw(BK CR LF NL SP OP CL QU GL NS EX SY IS PR PO NU AL ID IN HY BA BB B2 CB ZW CM WJ H2 H3 JL JV JT)], '5.2.0' => [qw(BK CR LF NL SP OP CL QU GL NS EX SY IS PR PO NU AL ID IN HY BA BB B2 CB ZW CM WJ H2 H3 JL JV JT CP)], '6.0.0' => [qw(BK CR LF NL SP OP CL QU GL NS EX SY IS PR PO NU AL ID IN HY BA BB B2 CB ZW CM WJ H2 H3 JL JV JT CP)], '6.1.0' => [qw(BK CR LF NL SP OP CL QU GL NS EX SY IS PR PO NU AL ID IN HY BA BB B2 CB ZW CM WJ H2 H3 JL JV JT CP)], '6.2.0' => [qw(BK CR LF NL SP OP CL QU GL NS EX SY IS PR PO NU AL ID IN HY BA BB B2 CB ZW CM WJ H2 H3 JL JV JT CP RI)], '6.3.0' => [qw(BK CR LF NL SP OP CL QU GL NS EX SY IS PR PO NU AL ID IN HY BA BB B2 CB ZW CM WJ H2 H3 JL JV JT CP RI)], }, 'ea' => { '5.1.0' => [qw(Z Na N A W H F ZA ZW)], '5.2.0' => [qw(Z Na N A W H F ZA ZW)], '6.0.0' => [qw(Z Na N A W H F ZA ZW)], '6.1.0' => [qw(Z Na N A W H F ZA ZW)], '6.2.0' => [qw(Z Na N A W H F ZA ZW)], '6.3.0' => [qw(Z Na N A W H F ZA ZW)], }, 'gb' => { '5.1.0' => [qw(CR LF Control Extend Prepend SpacingMark L V T LV LVT Other Virama OtherLetter)], '5.2.0' => [qw(CR LF Control Extend Prepend SpacingMark L V T LV LVT Other Virama OtherLetter)], '6.0.0' => [qw(CR LF Control Extend Prepend SpacingMark L V T LV LVT Other Virama OtherLetter)], '6.1.0' => [qw(CR LF Control Extend Prepend SpacingMark L V T LV LVT Other Virama OtherLetter)], '6.2.0' => [qw(CR LF Control Extend Prepend SpacingMark L V T LV LVT Other Virama OtherLetter Regional_Indicator)], '6.3.0' => [qw(CR LF Control Extend Prepend SpacingMark L V T LV LVT Other Virama OtherLetter Regional_Indicator)], }, 'sc' => { '5.1.0' => [qw(Common Inherited Unknown Han Hangul Thai Lao Myanmar Khmer Tai_Le New_Tai_Lue)], '5.2.0' => [qw(Common Inherited Unknown Han Hangul Thai Lao Myanmar Khmer Tai_Le New_Tai_Lue Tai_Tham Tai_Viet)], '6.0.0' => [qw(Common Inherited Unknown Han Hangul Thai Lao Myanmar Khmer Tai_Le New_Tai_Lue Tai_Tham Tai_Viet)], '6.1.0' => [qw(Common Inherited Unknown Han Hangul Thai Lao Myanmar Khmer Tai_Le New_Tai_Lue Tai_Tham Tai_Viet)], '6.2.0' => [qw(Common Inherited Unknown Han Hangul Thai Lao Myanmar Khmer Tai_Le New_Tai_Lue Tai_Tham Tai_Viet)], '6.3.0' => [qw(Common Inherited Unknown Han Hangul Thai Lao Myanmar Khmer Tai_Le New_Tai_Lue Tai_Tham Tai_Viet)], }, ); 1; sombok-2.3.1/data/data.pl0000664000076400007640000003675712210015236012133 00000000000000#! perl # Custom properties # # EAW: Z - Nonspacing # GCB: Virama - Virama, consonant joiner # GCB: OtherLetter - Letter, now limited to Brahmic scripts. use version; my @cat = split(',', shift @ARGV) or die; my $version = shift @ARGV or die; my $vernum = version->new($version)->numify; # Find Modifier my %GC_Modifier = (); open my $ucd, '<', "UnicodeData-$version.txt" or die $!; while (<$ucd>) { chomp $_; s/\s*#.*$//; next unless /\S/; my ($code, $name, $gc, $ccc) = split /;/; $code = hex("0x$code"); $GC_Modifier{$code} = 1 if $gc =~ /^M/; } close $ucd; # Find SA classes my %SA = (); foreach my $ext ('custom', 'txt') { open LB, '<', "LineBreak-$version.$ext" or next; while () { chomp $_; s/\s*#.*$//; next unless /\S/; my ($code, $prop) = split /;/; $code = hex("0x$code"); $SA{$code} = 1 if $prop eq 'SA'; } close LB; } ### Build rule map. use constant MANDATORY => 3; use constant DIRECT_ALLOWED => 2; use constant DIRECT_PROHIBITED => -1; use constant INDIRECT_PROHIBITED => -2; require "LBCLASSES"; my @LBCLASSES = @{$indexedclasses{'lb'}->{$version}}; my %SCRIPTS = map { $_ => 1 } @{$indexedclasses{'sc'}->{$version}}; my %ACTIONS = ('!' => MANDATORY, 'SP*×' => INDIRECT_PROHIBITED, '×' => DIRECT_PROHIBITED, '÷' => DIRECT_ALLOWED, ); open RULES, "<", "Rules-$version.txt" or die $!; my @rules = (); while () { chomp $_; s/^\s+//; if (!/\S/ or /^\#/) { next; } elsif (/Assign a line breaking class/) { next; } elsif (/Treat X CM\* as if it were X/) { next; } elsif (/Treat any remaining CM as i. i. were AL/) { next; } # 6.1.0 or later: aggregate AL & HL s/\bAL *\| *HL\b/AL/g; #XXXs/\bAL *\| *ZJ *\| *HL\b/AL | ZJ/g; s/[(] *AL *[)]/AL/g; next if /\bHL\b/; # Skip HL rules my ($left, $break, $right) = split(/\s*(!|SP\*\s*×|×|÷)\s*/, $_); $left = &class2re($left); $right = &class2re($right); $break =~ s/\s+//g; $break = $ACTIONS{$break}; push @rules, [$left, $break, $right]; } sub class2re { my $class = shift; if ($class =~ /\(([^)]+)\)/) { $class = &inclusive2re($1); } elsif ($class =~ /[[]\^([^]]+)\]/) { $class = &exclusive2re($1); } elsif ($class =~ /(\S+)/) { if ($& eq 'ALL') { $class = qr{.+}; } else { $class = qr{$&}; } } else { $class = qr{.+}; } return $class; } sub inclusive2re { my $class = shift; $class =~ s/^\s+//; $class =~ s/\s+$//; $class = join '|', split /\s*\|\s*/, $class; return qr{$class}; } sub exclusive2re { my $class = shift; $class =~ s/^\s+//; $class =~ s/\s+$//; my @class = split /\s+/, $class; my %class; foreach my $c (@class) { $class{$c} = 1; } @class = (); foreach my $c (@LBCLASSES) { push @class, $c unless $class{$c}; } $class = join('|', @class); return qr{$class}; } my @RULES = (); foreach my $b (@LBCLASSES) { my @actions = (); foreach my $a (@LBCLASSES) { my $direct = undef; my $indirect = undef; my $mandatory = undef; foreach my $r (@rules) { my ($before, $action, $after) = @{$r}; if ($b =~ /$before/ and $a =~ /$after/) { if ($action == MANDATORY) { $mandatory = 1; $direct = 1 unless defined $direct; } elsif ($action == INDIRECT_PROHIBITED) { $direct = 0 unless defined $direct; $indirect = 0 unless defined $indirect; } elsif ($action == DIRECT_PROHIBITED) { $direct = 0 unless defined $direct; } elsif ($action == DIRECT_ALLOWED) { $direct = 1 unless defined $direct; } } if ("SP" =~ /$before/ and $a =~ /$after/) { if ($action == DIRECT_ALLOWED) { $indirect = 1 unless defined $indirect; } elsif ($action == DIRECT_PROHIBITED or $action == INDIRECT_PROHIBITED) { $indirect = 0 unless defined $indirect; } } last if defined $direct and defined $indirect; } my $action; if ($mandatory and $direct) { $action = 'M'; # '!' } elsif ($direct) { $action = 'D'; # '_' } elsif ($indirect) { $action = 'I'; # '%' } else { $action = 'P'; # '^' } push @actions, $action; } push @RULES, [$b, [@actions]]; } ### Build property map my @PROPS = (); my @RESERVED = (); foreach my $cat (@cat) { my %PROP_EXCEPTIONS = (); # Read data my $data; if ($cat eq 'lb') { $data = 'LineBreak'; } elsif ($cat eq 'ea') { $data = 'EastAsianWidth'; } elsif ($cat eq 'gb') { $data = 'GraphemeBreakProperty'; } elsif ($cat eq 'sc') { $data = 'Scripts'; } else { die "Unknown property $cat"; } my @data = ("$data-$version.txt"); push @data, "$data-$version.custom" if -e "$data-$version.custom"; foreach my $n (1, 0) { next unless $data[$n]; open DATA, '<', $data[$n] or die $!; while () { chomp $_; my $reserved; # 6.1.0: reserved or noncharacter if ($data eq 'GraphemeBreakProperty' and /; *Control *# *Cn\b/) { $reserved = 1; } else { $reserved = 0; } s/\s*\#.*//; next unless /\S/; my ($char, $prop) = split /\s*;\s*/, $_; next unless $prop =~ /^(\@[\w:]+|\w+)$/; my ($start, $end) = (); ($start, $end) = split /\.\./, $char; $end ||= $start; foreach my $c (hex("0x$start") .. hex("0x$end")) { if ($reserved) { $RESERVED[$c] = 1; next; } elsif ($n) { if ($prop =~ /^\@([\w:]+)/) { next; } $PROP_EXCEPTIONS{$c} = $prop; } else { my $p = $PROP_EXCEPTIONS{$c} || $prop; # reduce ranges reserved for CJK ideographs. if (0x3400 <= $c and $c <= 0x4DBF or 0x4E00 <= $c and $c <= 0x9FFF or 0xF900 <= $c and $c <= 0xFAFF or 0x20000 <= $c and $c <= 0x2FFFD or 0x30000 <= $c and $c <= 0x3FFFD) { if ($cat eq 'lb' and $p ne 'ID' or $cat eq 'ea' and $p ne 'W' or $cat eq 'gb' and $p ne 'Other' or $cat eq 'sc' and $p ne 'Han') { die sprintf 'U+%04X have %s property %s', $c, $cat, $p; } else { next; } } # reduce private use areas. elsif (0xE000 <= $c and $c <= 0xF8FF or 0xF0000 <= $c and $c <= 0xFFFFD or 0x100000 <= $c and $c <= 0x10FFFD) { if ($cat eq 'lb' and $p ne 'XX' or $cat eq 'ea' and $p ne 'A' or $cat eq 'gb' and $p ne 'Other' or $cat eq 'sc' and $p ne 'Unknown') { die sprintf 'U+%04X have %s property %s', $c, $cat, $p; } else { next; } } # check plane 14. elsif ($c == 0xE0001 or 0xE0020 <= $c and $c <= 0xE007F) { if ($cat eq 'lb' and $p ne 'CM' or $cat eq 'ea' and $p ne 'Z' or $cat eq 'gb' and $p ne 'Control' or $cat eq 'sc' and $p ne 'Common') { die sprintf 'U+%04X have %s property %s', $c, $cat, $p; } else { next; } } elsif (0xE0100 <= $c and $c <= 0xE01EF) { if ($cat eq 'lb' and $p ne 'CM' or $cat eq 'ea' and $p ne 'ZA' or $cat eq 'gb' and $p ne 'Extend' or $cat eq 'sc' and $p ne 'Inherited') { die sprintf 'U+%04X have %s property %s', $c, $cat, $p; } else { next; } } # check unallocated high planes. elsif (0x20000 <= $c and $c <= 0x10FFFF) { if ($cat eq 'lb' and $p ne 'XX' or $cat eq 'ea' and $p ne 'N' or $cat eq 'gb' and $p ne 'Control' or $cat eq 'sc' and $p ne 'Unknown') { die sprintf 'U+%04X have %s property %s', $c, $cat, $p; } else { next; } } elsif (0x10FFFF < $c) { die sprintf 'U+%04X is out of Unicode range', $c; } $PROPS[$c] ||= {}; $PROPS[$c]->{$cat} = $p; } } } close DATA; } } # foreach my $cat for (my $c = 0; $c <= $#PROPS; $c++) { next unless $PROPS[$c]; # limit scripts to SA characters. delete $PROPS[$c]->{'sc'} if !$SA{$c}; # reduce trivial values. delete $PROPS[$c]->{'lb'} if $PROPS[$c]->{'lb'} =~ /^(AL|SG|XX)$/; unless (scalar keys %{$PROPS[$c]}) { delete $PROPS[$c]; next; } elsif (! $RESERVED[$c]) { $PROPS[$c]->{'gb'} = 'Other' unless $PROPS[$c]->{'gb'}; } # Check exceptions =begin comment if ($PROPS[$c]->{'gb'} =~ /Extend|SpacingMark/ and $PROPS[$c]->{'lb'} !~ /CM|SA/ or $PROPS[$c]->{'gb'} eq 'Prepend' and $PROPS[$c]->{'lb'} !~ /AL|SA/ ) { warn sprintf '!CM: U+%04X: lb => %s, ea => %s, gb => %s, sc => %s'."\n", $c, $PROPS[$c]->{'lb'} || '-', $PROPS[$c]->{'ea'} || '-', $PROPS[$c]->{'gb'} || '-', $PROPS[$c]->{'sc'} || '-'; } =cut if ($PROPS[$c]->{'gb'} ne 'Control' and $PROPS[$c]->{'lb'} =~ /ZW|WJ|BK|NL/) { warn sprintf '!Control: U+%04X: lb => %s, ea => %s, gb => %s, sc => %s'."\n", $c, $PROPS[$c]->{'lb'} || '-', $PROPS[$c]->{'ea'} || '-', $PROPS[$c]->{'gb'} || '-', $PROPS[$c]->{'sc'} || '-'; } =begin comment if ($PROPS[$c]->{'gb'} !~ /Extend|SpacingMark/ and $PROPS[$c]->{'lb'} eq 'CM') { warn sprintf 'CM: U+%04X: lb => %s, ea => %s, gb => %s, sc => %s'."\n", $c, $PROPS[$c]->{'lb'} || '-', $PROPS[$c]->{'ea'} || '-', $PROPS[$c]->{'gb'} || '-', $PROPS[$c]->{'sc'} || '-'; } =cut if ($PROPS[$c]->{'gb'} eq 'Virama' and $PROPS[$c]->{'lb'} !~ /^(CM|SA)$/) { warn sprintf '!CM: U+%04X: lb => %s, ea => %s, gb => %s, sc => %s'."\n", $c, $PROPS[$c]->{'lb'} || '-', $PROPS[$c]->{'ea'} || '-', $PROPS[$c]->{'gb'} || '-', $PROPS[$c]->{'sc'} || '-'; } if ($PROPS[$c]->{'gb'} eq 'OtherLetter' and $PROPS[$c]->{'lb'} eq 'CM') { warn sprintf 'CM: U+%04X: lb => %s, ea => %s, gb => %s, sc => %s'."\n", $c, $PROPS[$c]->{'lb'} || '-', $PROPS[$c]->{'ea'} || '-', $PROPS[$c]->{'gb'} || '-', $PROPS[$c]->{'sc'} || '-'; } # check for Legacy-CM. if ($PROPS[$c]->{'lb'} eq 'CM' and $PROPS[$c]->{'gb'} ne 'Control' and ! $GC_Modifier{$c}) { warn sprintf '!M: U+%04X: lb => %s, ea => %s, gb => %s, sc => %s'."\n", $c, $PROPS[$c]->{'lb'} || '-', $PROPS[$c]->{'ea'} || '-', $PROPS[$c]->{'gb'} || '-', $PROPS[$c]->{'sc'} || '-'; } if ($PROPS[$c]->{'lb'} eq 'CM' and $PROPS[$c]->{'gb'} !~ /^(Control|Extend|SpacingMark|Virama)$/) { warn sprintf 'CM:!extender: U+%04X: lb => %s, ea => %s, gb => %s, sc => %s'."\n", $c, $PROPS[$c]->{'lb'} || '-', $PROPS[$c]->{'ea'} || '-', $PROPS[$c]->{'gb'} || '-', $PROPS[$c]->{'sc'} || '-'; } } ## Debug #for (my $c = 0; $c < 0x20000; $c++) { # next unless defined $PROPS[$c]; # printf "%04X %-2s %-2s %-12s %-2s\n", $c, $PROPS[$c]->{'lb'}, # $PROPS[$c]->{'ea'}, $PROPS[$c]->{'gb'}, $PROPS[$c]->{'sc'}; #} # Construct compact array. use constant BLKLEN => 1 << 5; my @C_ARY = (); my @C_IDX = (); for (my $idx = 0; $idx < 0x20000; $idx += BLKLEN) { my @BLK = (); for (my $bi = 0; $bi < BLKLEN; $bi++) { my $c = $idx + $bi; my %blk = (); # ranges reserved for CJK ideographs. if (0x3400 <= $c and $c <= 0x4DBF or 0x4E00 <= $c and $c <= 0x9FFF or 0xF900 <= $c and $c <= 0xFAFF or 0x20000 <= $c and $c <= 0x2FFFD or 0x30000 <= $c and $c <= 0x3FFFD) { %blk = ('lb' => 'ID', 'ea' => 'W'); # ranges reserved for private use. } elsif (0xE000 <= $c and $c <= 0xF8FF or 0xF0000 <= $c and $c <= 0xFFFFD or 0x100000 <= $c and $c <= 0x10FFFD) { %blk = ('ea' => 'A'); # other reserved or noncharacters. } elsif ($RESERVED[$c]) { %blk = ('gb' => 'Control'); } elsif ($PROPS[$c]) { foreach my $prop (@cat) { $blk{$prop} = $PROPS[$c]->{$prop}; } } $blk{'lb'} ||= 'AL'; $blk{'ea'} ||= 'N'; $blk{'gb'} ||= 'Other'; $blk{'sc'} ||= 'Unknown'; $BLK[$bi] = \%blk; } my ($ci, $bi); C_ARY: for ($ci = 0; $ci <= $#C_ARY; $ci++) { for ($bi = 0; $bi < BLKLEN; $bi++) { last C_ARY if $#C_ARY < $ci + $bi; last unless &hasheq($BLK[$bi], $C_ARY[$ci + $bi]); } last C_ARY if $bi == BLKLEN; } push @C_IDX, $ci; if ($bi < BLKLEN) { for ( ; $bi < BLKLEN; $bi++) { push @C_ARY, $BLK[$bi]; } } #printf STDERR "U+%04X..U+%04X: %d..%d / %d \r", $idx, $idx + (BLKLEN) - 1, $ci, $ci + (BLKLEN) - 1, scalar @C_ARY; } #print STDERR "\n"; ### Output open DATA_C, '>', "../lib/$version.c" or die $!; # Print postamble. print DATA_C <<"EOF"; /* * This file is automatically generated. DON'T EDIT THIS FILE MANUALLY. */ #include "sombok_constants.h" #include "sombok.h" #define UNICODE_VERSION "$version" const char *linebreak_unicode_version = UNICODE_VERSION; EOF # Print property values. foreach my $k (sort keys %indexedclasses) { my $output = ''; my $line = ' '; my @propvals = @{$indexedclasses{$k}->{$version}}; if (uc($k) eq 'LB') { if (6.001000 <= $vernum) { push @propvals, qw(SG AI SA HL CJ XX); } else { push @propvals, qw(SG AI SA XX); } } foreach my $v (@propvals) { if (76 < 4 + length($line) + length($v)) { $output .= "$line\n"; $line = ' '; } $line .= "\"$v\", "; } $line .= "\n " if 76 < length($line) + 4; $output .= "${line}NULL"; print DATA_C "const char *linebreak_propvals_".uc($k)."[] = {\n"; print DATA_C "$output\n"; print DATA_C "};\n"; } print DATA_C "\n"; # print rule map. my $clss = join '', map { /(.)(.)/; $1.lc($2); } @LBCLASSES; print DATA_C <<"EOF"; #define M (LINEBREAK_ACTION_MANDATORY) #define D (LINEBREAK_ACTION_DIRECT) #define I (LINEBREAK_ACTION_INDIRECT) #define P (LINEBREAK_ACTION_PROHIBITED) #define r(cc) static propval_t rule_##cc[] /* Note: Entries related to BK, CR, CM, LF, NL aren't used by break(). */ /* $clss */ EOF print DATA_C join "\n", map { my $b = $_->[0]; my @actions = @{$_->[1]}; "r(" . $_->[0] . ")={" . join(',',@actions) . "};"; } @RULES; print DATA_C "\n"; print DATA_C "#undef r\n"; print DATA_C "propval_t *linebreak_rules[] = {"; for (my $i = 0; $i <= $#LBCLASSES; $i++) { print DATA_C ", " if $i; print DATA_C "\n " if $i % 8 == 0; print DATA_C "rule_$LBCLASSES[$i]"; } print DATA_C "\n};\n\n"; print DATA_C "size_t linebreak_rulessiz = ".scalar(@LBCLASSES).";\n\n"; # print compact array index. my $output = ''; my $line = ''; print DATA_C "unsigned short linebreak_prop_index[] = {\n"; foreach my $ci (@C_IDX) { if (76 < 4 + length($line) + length(", $ci")) { $output .= ",\n" if length $output; $output .= " $line"; $line = ''; } $line .= ", " if length $line; $line .= "$ci"; } $output .= ",\n" if length $output; $output .= " $line"; print DATA_C "$output\n};\n\n"; # print compact array. $output = ''; $line = ''; print DATA_C "propval_t linebreak_prop_array[] = {\n"; foreach my $b (@C_ARY) { foreach my $prop (@cat) { my $citem; unless ($b->{$prop}) { die "$prop property unknown\n" unless $prop eq 'sc'; $citem = 'PROP_UNKNOWN'; } else { $citem = uc($prop) . '_' . $b->{$prop}; } if (76 < 4 + length($line) + length(", $citem")) { $output .= ",\n" if length $output; $output .= " $line"; $line = ''; } $line .= ", " if length $line; $line .= $citem; } } $output .= ",\n" if length $output; $output .= " $line"; print DATA_C "$output\n};\n\n"; ### Print postamble ### Statistics. my $idxld = scalar(grep {defined $_} @INDEX) - 1; printf STDERR "======== Version %s ========\n%d characters (in BMP and SMP), %d entries\n", $version, scalar(grep $_, @PROPS) + 0x4DBF - 0x3400 + 1 + 0x9FFF - 0x4E00 + 1 + 0xFAFF - 0xF900 + 1 + 0xF8FF - 0xE000 + 1, scalar(@C_ARY); die "Too many entriesi to work with unsigned 16-bit short integer: ".scalar(@C_ARY)."\n" if (1 << 16) / 4 <= scalar(@C_ARY); warn "Too many entries to work with signed 16-bit pointer: ".scalar(@C_ARY)."\n" if (1 << 15) / 4 <= scalar(@C_ARY); ############################################################################ sub hasheq { my $a = shift; my $b = shift; foreach my $cat (@cat) { if (!defined $a->{$cat} and !defined $b->{$cat}) { next; } elsif (!defined $a->{$cat} or !defined $b->{$cat}) { return 0; } elsif ($a->{$cat} ne $b->{$cat}) { return 0; } } return 1; } sombok-2.3.1/data/custom.pl0000664000076400007640000000651412210015236012520 00000000000000#-*- perl -*- use version; my $vernum = version->new($ARGV[1])->numify; if ($ARGV[0] eq 'lb') { goto LB_CUSTOM; } elsif ($ARGV[0] eq 'ea') { goto EA_CUSTOM; } elsif ($ARGV[0] eq 'gb') { goto GB_CUSTOM; } else { exit 0; } LB_CUSTOM: print <<'EOF'; ## SA characters may be categorized by their Grapheme_Cluster_Break properties. ## See [UAX #29]. EOF exit 0; EA_CUSTOM: my %eaw; open DATA, '<', "EastAsianWidth-$ARGV[1].txt"; while () { chomp $_; s/\s*#.*//; next unless /\S/; my ($ucs, $c) = split /;\s*/, $_; next unless $ucs; my ($beg, $end) = split /\.\./, $ucs; $end ||= $beg; $beg = hex("0x$beg"); $end = hex("0x$end"); foreach my $chr (($beg..$end)) { $eaw{$chr} = $c; } } close DATA; open UD, '<', "UnicodeData-$ARGV[1].txt"; while () { ($code, $name, $cat) = split /;/; if ($cat =~ /^(Me|Mn|Cc|Cf|Zl|Zp)$/) { my $eaw = $eaw{hex"0x$code"} || ''; $eaw = '' if $eaw eq 'N'; print "$code;Z$eaw # $name\n"; } } close UD; exit 0; GB_CUSTOM: #exit 0 unless 6.001000 <= $vernum; my @codes; my %Virama; my %GC_Letter; my %Brahmic_Script; my %Brahmic; my %name; my %gc; open my $ucd, '<', "UnicodeData-$ARGV[1].txt" or die $!; while (<$ucd>) { chomp $_; s/\s*#.*$//; next unless /\S/; my ($code, $name, $gc, $ccc) = split /;/; $code = hex("0x$code"); $Virama{$code} = 1 if $ccc+0 == 9; $GC_Letter{$code} = 1 if $gc =~ /^L/; push @codes, $code; $name{$code} = $name; $gc{$code} = $gc; } close $ucd; open my $scr, '<', "Scripts-$ARGV[1].txt" or die $!; while (<$scr>) { s/\s*\#.*//; next unless /\S/; my ($char, $prop) = split /\s*;\s*/, $_; chomp $prop; next unless $prop =~ /^(\@[\w:]+|\w+)$/; my ($start, $end) = (); ($start, $end) = split /\.\./, $char; $end ||= $start; foreach my $c (hex("0x$start") .. hex("0x$end")) { $Brahmic_Script{$prop} = 1 if $Virama{$c}; } } close $scr; open $scr, '<', "Scripts-$ARGV[1].txt" or die $!; while (<$scr>) { s/\s*\#.*//; next unless /\S/; my ($char, $prop) = split /\s*;\s*/, $_; chomp $prop; next unless $prop =~ /^(\@[\w:]+|\w+)$/; my ($start, $end) = (); ($start, $end) = split /\.\./, $char; $end ||= $start; foreach my $c (hex("0x$start") .. hex("0x$end")) { $Brahmic{$c} = 1 if $Brahmic_Script{$prop}; } } close $scr; open my $gcb, '<', "GraphemeBreakProperty-$ARGV[1].txt" or die $!; while (<$gcb>) { s/\s*\#.*//; next unless /\S/; my ($char, $prop) = split /\s*;\s*/, $_; chomp $prop; next unless $prop =~ /^(\@[\w:]+|\w+)$/; my ($start, $end) = (); ($start, $end) = split /\.\./, $char; $end ||= $start; foreach my $c (hex("0x$start") .. hex("0x$end")) { $prop{$c} = $prop; } } close $gcb; foreach my $c (@codes) { my $prop = $prop{$c}; my $name = $name{$c}; my $gc = $gc{$c}; # Custom GCB Virama if ($Virama{$c}) { if ($prop =~ /^(Extend|SpacingMark)$/) { $prop = 'Virama'; } else { die sprintf "U+%04X is virama and %s", $c, $prop; } } elsif ($GC_Letter{$c} and $Brahmic{$c}) { if ($prop) { warn sprintf "(non-fatal) U+%04X: GB=%s; won't assign OtherLetter.\n", $c, $prop; } else { $prop = 'OtherLetter'; } } printf "%04X ; %-11s # %s %s\n", $c, $prop, $gc, $name unless $prop eq $prop{$c}; } exit 0; sombok-2.3.1/data/LineBreak-6.3.0.custom0000664000076400007640000000014212221425422014376 00000000000000## SA characters may be categorized by their Grapheme_Cluster_Break properties. ## See [UAX #29]. sombok-2.3.1/data/GraphemeBreakProperty-5.2.0.custom0000664000076400007640000016034312221425413017014 000000000000000904 ; OtherLetter # Lo DEVANAGARI LETTER SHORT A 0905 ; OtherLetter # Lo DEVANAGARI LETTER A 0906 ; OtherLetter # Lo DEVANAGARI LETTER AA 0907 ; OtherLetter # Lo DEVANAGARI LETTER I 0908 ; OtherLetter # Lo DEVANAGARI LETTER II 0909 ; OtherLetter # Lo DEVANAGARI LETTER U 090A ; OtherLetter # Lo DEVANAGARI LETTER UU 090B ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC R 090C ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC L 090D ; OtherLetter # Lo DEVANAGARI LETTER CANDRA E 090E ; OtherLetter # Lo DEVANAGARI LETTER SHORT E 090F ; OtherLetter # Lo DEVANAGARI LETTER E 0910 ; OtherLetter # Lo DEVANAGARI LETTER AI 0911 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA O 0912 ; OtherLetter # Lo DEVANAGARI LETTER SHORT O 0913 ; OtherLetter # Lo DEVANAGARI LETTER O 0914 ; OtherLetter # Lo DEVANAGARI LETTER AU 0915 ; OtherLetter # Lo DEVANAGARI LETTER KA 0916 ; OtherLetter # Lo DEVANAGARI LETTER KHA 0917 ; OtherLetter # Lo DEVANAGARI LETTER GA 0918 ; OtherLetter # Lo DEVANAGARI LETTER GHA 0919 ; OtherLetter # Lo DEVANAGARI LETTER NGA 091A ; OtherLetter # Lo DEVANAGARI LETTER CA 091B ; OtherLetter # Lo DEVANAGARI LETTER CHA 091C ; OtherLetter # Lo DEVANAGARI LETTER JA 091D ; OtherLetter # Lo DEVANAGARI LETTER JHA 091E ; OtherLetter # Lo DEVANAGARI LETTER NYA 091F ; OtherLetter # Lo DEVANAGARI LETTER TTA 0920 ; OtherLetter # Lo DEVANAGARI LETTER TTHA 0921 ; OtherLetter # Lo DEVANAGARI LETTER DDA 0922 ; OtherLetter # Lo DEVANAGARI LETTER DDHA 0923 ; OtherLetter # Lo DEVANAGARI LETTER NNA 0924 ; OtherLetter # Lo DEVANAGARI LETTER TA 0925 ; OtherLetter # Lo DEVANAGARI LETTER THA 0926 ; OtherLetter # Lo DEVANAGARI LETTER DA 0927 ; OtherLetter # Lo DEVANAGARI LETTER DHA 0928 ; OtherLetter # Lo DEVANAGARI LETTER NA 0929 ; OtherLetter # Lo DEVANAGARI LETTER NNNA 092A ; OtherLetter # Lo DEVANAGARI LETTER PA 092B ; OtherLetter # Lo DEVANAGARI LETTER PHA 092C ; OtherLetter # Lo DEVANAGARI LETTER BA 092D ; OtherLetter # Lo DEVANAGARI LETTER BHA 092E ; OtherLetter # Lo DEVANAGARI LETTER MA 092F ; OtherLetter # Lo DEVANAGARI LETTER YA 0930 ; OtherLetter # Lo DEVANAGARI LETTER RA 0931 ; OtherLetter # Lo DEVANAGARI LETTER RRA 0932 ; OtherLetter # Lo DEVANAGARI LETTER LA 0933 ; OtherLetter # Lo DEVANAGARI LETTER LLA 0934 ; OtherLetter # Lo DEVANAGARI LETTER LLLA 0935 ; OtherLetter # Lo DEVANAGARI LETTER VA 0936 ; OtherLetter # Lo DEVANAGARI LETTER SHA 0937 ; OtherLetter # Lo DEVANAGARI LETTER SSA 0938 ; OtherLetter # Lo DEVANAGARI LETTER SA 0939 ; OtherLetter # Lo DEVANAGARI LETTER HA 093D ; OtherLetter # Lo DEVANAGARI SIGN AVAGRAHA 094D ; Virama # Mn DEVANAGARI SIGN VIRAMA 0950 ; OtherLetter # Lo DEVANAGARI OM 0958 ; OtherLetter # Lo DEVANAGARI LETTER QA 0959 ; OtherLetter # Lo DEVANAGARI LETTER KHHA 095A ; OtherLetter # Lo DEVANAGARI LETTER GHHA 095B ; OtherLetter # Lo DEVANAGARI LETTER ZA 095C ; OtherLetter # Lo DEVANAGARI LETTER DDDHA 095D ; OtherLetter # Lo DEVANAGARI LETTER RHA 095E ; OtherLetter # Lo DEVANAGARI LETTER FA 095F ; OtherLetter # Lo DEVANAGARI LETTER YYA 0960 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC RR 0961 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC LL 0971 ; OtherLetter # Lm DEVANAGARI SIGN HIGH SPACING DOT 0972 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA A 0979 ; OtherLetter # Lo DEVANAGARI LETTER ZHA 097A ; OtherLetter # Lo DEVANAGARI LETTER HEAVY YA 097B ; OtherLetter # Lo DEVANAGARI LETTER GGA 097C ; OtherLetter # Lo DEVANAGARI LETTER JJA 097D ; OtherLetter # Lo DEVANAGARI LETTER GLOTTAL STOP 097E ; OtherLetter # Lo DEVANAGARI LETTER DDDA 097F ; OtherLetter # Lo DEVANAGARI LETTER BBA 0985 ; OtherLetter # Lo BENGALI LETTER A 0986 ; OtherLetter # Lo BENGALI LETTER AA 0987 ; OtherLetter # Lo BENGALI LETTER I 0988 ; OtherLetter # Lo BENGALI LETTER II 0989 ; OtherLetter # Lo BENGALI LETTER U 098A ; OtherLetter # Lo BENGALI LETTER UU 098B ; OtherLetter # Lo BENGALI LETTER VOCALIC R 098C ; OtherLetter # Lo BENGALI LETTER VOCALIC L 098F ; OtherLetter # Lo BENGALI LETTER E 0990 ; OtherLetter # Lo BENGALI LETTER AI 0993 ; OtherLetter # Lo BENGALI LETTER O 0994 ; OtherLetter # Lo BENGALI LETTER AU 0995 ; OtherLetter # Lo BENGALI LETTER KA 0996 ; OtherLetter # Lo BENGALI LETTER KHA 0997 ; OtherLetter # Lo BENGALI LETTER GA 0998 ; OtherLetter # Lo BENGALI LETTER GHA 0999 ; OtherLetter # Lo BENGALI LETTER NGA 099A ; OtherLetter # Lo BENGALI LETTER CA 099B ; OtherLetter # Lo BENGALI LETTER CHA 099C ; OtherLetter # Lo BENGALI LETTER JA 099D ; OtherLetter # Lo BENGALI LETTER JHA 099E ; OtherLetter # Lo BENGALI LETTER NYA 099F ; OtherLetter # Lo BENGALI LETTER TTA 09A0 ; OtherLetter # Lo BENGALI LETTER TTHA 09A1 ; OtherLetter # Lo BENGALI LETTER DDA 09A2 ; OtherLetter # Lo BENGALI LETTER DDHA 09A3 ; OtherLetter # Lo BENGALI LETTER NNA 09A4 ; OtherLetter # Lo BENGALI LETTER TA 09A5 ; OtherLetter # Lo BENGALI LETTER THA 09A6 ; OtherLetter # Lo BENGALI LETTER DA 09A7 ; OtherLetter # Lo BENGALI LETTER DHA 09A8 ; OtherLetter # Lo BENGALI LETTER NA 09AA ; OtherLetter # Lo BENGALI LETTER PA 09AB ; OtherLetter # Lo BENGALI LETTER PHA 09AC ; OtherLetter # Lo BENGALI LETTER BA 09AD ; OtherLetter # Lo BENGALI LETTER BHA 09AE ; OtherLetter # Lo BENGALI LETTER MA 09AF ; OtherLetter # Lo BENGALI LETTER YA 09B0 ; OtherLetter # Lo BENGALI LETTER RA 09B2 ; OtherLetter # Lo BENGALI LETTER LA 09B6 ; OtherLetter # Lo BENGALI LETTER SHA 09B7 ; OtherLetter # Lo BENGALI LETTER SSA 09B8 ; OtherLetter # Lo BENGALI LETTER SA 09B9 ; OtherLetter # Lo BENGALI LETTER HA 09BD ; OtherLetter # Lo BENGALI SIGN AVAGRAHA 09CD ; Virama # Mn BENGALI SIGN VIRAMA 09CE ; OtherLetter # Lo BENGALI LETTER KHANDA TA 09DC ; OtherLetter # Lo BENGALI LETTER RRA 09DD ; OtherLetter # Lo BENGALI LETTER RHA 09DF ; OtherLetter # Lo BENGALI LETTER YYA 09E0 ; OtherLetter # Lo BENGALI LETTER VOCALIC RR 09E1 ; OtherLetter # Lo BENGALI LETTER VOCALIC LL 09F0 ; OtherLetter # Lo BENGALI LETTER RA WITH MIDDLE DIAGONAL 09F1 ; OtherLetter # Lo BENGALI LETTER RA WITH LOWER DIAGONAL 0A05 ; OtherLetter # Lo GURMUKHI LETTER A 0A06 ; OtherLetter # Lo GURMUKHI LETTER AA 0A07 ; OtherLetter # Lo GURMUKHI LETTER I 0A08 ; OtherLetter # Lo GURMUKHI LETTER II 0A09 ; OtherLetter # Lo GURMUKHI LETTER U 0A0A ; OtherLetter # Lo GURMUKHI LETTER UU 0A0F ; OtherLetter # Lo GURMUKHI LETTER EE 0A10 ; OtherLetter # Lo GURMUKHI LETTER AI 0A13 ; OtherLetter # Lo GURMUKHI LETTER OO 0A14 ; OtherLetter # Lo GURMUKHI LETTER AU 0A15 ; OtherLetter # Lo GURMUKHI LETTER KA 0A16 ; OtherLetter # Lo GURMUKHI LETTER KHA 0A17 ; OtherLetter # Lo GURMUKHI LETTER GA 0A18 ; OtherLetter # Lo GURMUKHI LETTER GHA 0A19 ; OtherLetter # Lo GURMUKHI LETTER NGA 0A1A ; OtherLetter # Lo GURMUKHI LETTER CA 0A1B ; OtherLetter # Lo GURMUKHI LETTER CHA 0A1C ; OtherLetter # Lo GURMUKHI LETTER JA 0A1D ; OtherLetter # Lo GURMUKHI LETTER JHA 0A1E ; OtherLetter # Lo GURMUKHI LETTER NYA 0A1F ; OtherLetter # Lo GURMUKHI LETTER TTA 0A20 ; OtherLetter # Lo GURMUKHI LETTER TTHA 0A21 ; OtherLetter # Lo GURMUKHI LETTER DDA 0A22 ; OtherLetter # Lo GURMUKHI LETTER DDHA 0A23 ; OtherLetter # Lo GURMUKHI LETTER NNA 0A24 ; OtherLetter # Lo GURMUKHI LETTER TA 0A25 ; OtherLetter # Lo GURMUKHI LETTER THA 0A26 ; OtherLetter # Lo GURMUKHI LETTER DA 0A27 ; OtherLetter # Lo GURMUKHI LETTER DHA 0A28 ; OtherLetter # Lo GURMUKHI LETTER NA 0A2A ; OtherLetter # Lo GURMUKHI LETTER PA 0A2B ; OtherLetter # Lo GURMUKHI LETTER PHA 0A2C ; OtherLetter # Lo GURMUKHI LETTER BA 0A2D ; OtherLetter # Lo GURMUKHI LETTER BHA 0A2E ; OtherLetter # Lo GURMUKHI LETTER MA 0A2F ; OtherLetter # Lo GURMUKHI LETTER YA 0A30 ; OtherLetter # Lo GURMUKHI LETTER RA 0A32 ; OtherLetter # Lo GURMUKHI LETTER LA 0A33 ; OtherLetter # Lo GURMUKHI LETTER LLA 0A35 ; OtherLetter # Lo GURMUKHI LETTER VA 0A36 ; OtherLetter # Lo GURMUKHI LETTER SHA 0A38 ; OtherLetter # Lo GURMUKHI LETTER SA 0A39 ; OtherLetter # Lo GURMUKHI LETTER HA 0A4D ; Virama # Mn GURMUKHI SIGN VIRAMA 0A59 ; OtherLetter # Lo GURMUKHI LETTER KHHA 0A5A ; OtherLetter # Lo GURMUKHI LETTER GHHA 0A5B ; OtherLetter # Lo GURMUKHI LETTER ZA 0A5C ; OtherLetter # Lo GURMUKHI LETTER RRA 0A5E ; OtherLetter # Lo GURMUKHI LETTER FA 0A72 ; OtherLetter # Lo GURMUKHI IRI 0A73 ; OtherLetter # Lo GURMUKHI URA 0A74 ; OtherLetter # Lo GURMUKHI EK ONKAR 0A85 ; OtherLetter # Lo GUJARATI LETTER A 0A86 ; OtherLetter # Lo GUJARATI LETTER AA 0A87 ; OtherLetter # Lo GUJARATI LETTER I 0A88 ; OtherLetter # Lo GUJARATI LETTER II 0A89 ; OtherLetter # Lo GUJARATI LETTER U 0A8A ; OtherLetter # Lo GUJARATI LETTER UU 0A8B ; OtherLetter # Lo GUJARATI LETTER VOCALIC R 0A8C ; OtherLetter # Lo GUJARATI LETTER VOCALIC L 0A8D ; OtherLetter # Lo GUJARATI VOWEL CANDRA E 0A8F ; OtherLetter # Lo GUJARATI LETTER E 0A90 ; OtherLetter # Lo GUJARATI LETTER AI 0A91 ; OtherLetter # Lo GUJARATI VOWEL CANDRA O 0A93 ; OtherLetter # Lo GUJARATI LETTER O 0A94 ; OtherLetter # Lo GUJARATI LETTER AU 0A95 ; OtherLetter # Lo GUJARATI LETTER KA 0A96 ; OtherLetter # Lo GUJARATI LETTER KHA 0A97 ; OtherLetter # Lo GUJARATI LETTER GA 0A98 ; OtherLetter # Lo GUJARATI LETTER GHA 0A99 ; OtherLetter # Lo GUJARATI LETTER NGA 0A9A ; OtherLetter # Lo GUJARATI LETTER CA 0A9B ; OtherLetter # Lo GUJARATI LETTER CHA 0A9C ; OtherLetter # Lo GUJARATI LETTER JA 0A9D ; OtherLetter # Lo GUJARATI LETTER JHA 0A9E ; OtherLetter # Lo GUJARATI LETTER NYA 0A9F ; OtherLetter # Lo GUJARATI LETTER TTA 0AA0 ; OtherLetter # Lo GUJARATI LETTER TTHA 0AA1 ; OtherLetter # Lo GUJARATI LETTER DDA 0AA2 ; OtherLetter # Lo GUJARATI LETTER DDHA 0AA3 ; OtherLetter # Lo GUJARATI LETTER NNA 0AA4 ; OtherLetter # Lo GUJARATI LETTER TA 0AA5 ; OtherLetter # Lo GUJARATI LETTER THA 0AA6 ; OtherLetter # Lo GUJARATI LETTER DA 0AA7 ; OtherLetter # Lo GUJARATI LETTER DHA 0AA8 ; OtherLetter # Lo GUJARATI LETTER NA 0AAA ; OtherLetter # Lo GUJARATI LETTER PA 0AAB ; OtherLetter # Lo GUJARATI LETTER PHA 0AAC ; OtherLetter # Lo GUJARATI LETTER BA 0AAD ; OtherLetter # Lo GUJARATI LETTER BHA 0AAE ; OtherLetter # Lo GUJARATI LETTER MA 0AAF ; OtherLetter # Lo GUJARATI LETTER YA 0AB0 ; OtherLetter # Lo GUJARATI LETTER RA 0AB2 ; OtherLetter # Lo GUJARATI LETTER LA 0AB3 ; OtherLetter # Lo GUJARATI LETTER LLA 0AB5 ; OtherLetter # Lo GUJARATI LETTER VA 0AB6 ; OtherLetter # Lo GUJARATI LETTER SHA 0AB7 ; OtherLetter # Lo GUJARATI LETTER SSA 0AB8 ; OtherLetter # Lo GUJARATI LETTER SA 0AB9 ; OtherLetter # Lo GUJARATI LETTER HA 0ABD ; OtherLetter # Lo GUJARATI SIGN AVAGRAHA 0ACD ; Virama # Mn GUJARATI SIGN VIRAMA 0AD0 ; OtherLetter # Lo GUJARATI OM 0AE0 ; OtherLetter # Lo GUJARATI LETTER VOCALIC RR 0AE1 ; OtherLetter # Lo GUJARATI LETTER VOCALIC LL 0B05 ; OtherLetter # Lo ORIYA LETTER A 0B06 ; OtherLetter # Lo ORIYA LETTER AA 0B07 ; OtherLetter # Lo ORIYA LETTER I 0B08 ; OtherLetter # Lo ORIYA LETTER II 0B09 ; OtherLetter # Lo ORIYA LETTER U 0B0A ; OtherLetter # Lo ORIYA LETTER UU 0B0B ; OtherLetter # Lo ORIYA LETTER VOCALIC R 0B0C ; OtherLetter # Lo ORIYA LETTER VOCALIC L 0B0F ; OtherLetter # Lo ORIYA LETTER E 0B10 ; OtherLetter # Lo ORIYA LETTER AI 0B13 ; OtherLetter # Lo ORIYA LETTER O 0B14 ; OtherLetter # Lo ORIYA LETTER AU 0B15 ; OtherLetter # Lo ORIYA LETTER KA 0B16 ; OtherLetter # Lo ORIYA LETTER KHA 0B17 ; OtherLetter # Lo ORIYA LETTER GA 0B18 ; OtherLetter # Lo ORIYA LETTER GHA 0B19 ; OtherLetter # Lo ORIYA LETTER NGA 0B1A ; OtherLetter # Lo ORIYA LETTER CA 0B1B ; OtherLetter # Lo ORIYA LETTER CHA 0B1C ; OtherLetter # Lo ORIYA LETTER JA 0B1D ; OtherLetter # Lo ORIYA LETTER JHA 0B1E ; OtherLetter # Lo ORIYA LETTER NYA 0B1F ; OtherLetter # Lo ORIYA LETTER TTA 0B20 ; OtherLetter # Lo ORIYA LETTER TTHA 0B21 ; OtherLetter # Lo ORIYA LETTER DDA 0B22 ; OtherLetter # Lo ORIYA LETTER DDHA 0B23 ; OtherLetter # Lo ORIYA LETTER NNA 0B24 ; OtherLetter # Lo ORIYA LETTER TA 0B25 ; OtherLetter # Lo ORIYA LETTER THA 0B26 ; OtherLetter # Lo ORIYA LETTER DA 0B27 ; OtherLetter # Lo ORIYA LETTER DHA 0B28 ; OtherLetter # Lo ORIYA LETTER NA 0B2A ; OtherLetter # Lo ORIYA LETTER PA 0B2B ; OtherLetter # Lo ORIYA LETTER PHA 0B2C ; OtherLetter # Lo ORIYA LETTER BA 0B2D ; OtherLetter # Lo ORIYA LETTER BHA 0B2E ; OtherLetter # Lo ORIYA LETTER MA 0B2F ; OtherLetter # Lo ORIYA LETTER YA 0B30 ; OtherLetter # Lo ORIYA LETTER RA 0B32 ; OtherLetter # Lo ORIYA LETTER LA 0B33 ; OtherLetter # Lo ORIYA LETTER LLA 0B35 ; OtherLetter # Lo ORIYA LETTER VA 0B36 ; OtherLetter # Lo ORIYA LETTER SHA 0B37 ; OtherLetter # Lo ORIYA LETTER SSA 0B38 ; OtherLetter # Lo ORIYA LETTER SA 0B39 ; OtherLetter # Lo ORIYA LETTER HA 0B3D ; OtherLetter # Lo ORIYA SIGN AVAGRAHA 0B4D ; Virama # Mn ORIYA SIGN VIRAMA 0B5C ; OtherLetter # Lo ORIYA LETTER RRA 0B5D ; OtherLetter # Lo ORIYA LETTER RHA 0B5F ; OtherLetter # Lo ORIYA LETTER YYA 0B60 ; OtherLetter # Lo ORIYA LETTER VOCALIC RR 0B61 ; OtherLetter # Lo ORIYA LETTER VOCALIC LL 0B71 ; OtherLetter # Lo ORIYA LETTER WA 0B83 ; OtherLetter # Lo TAMIL SIGN VISARGA 0B85 ; OtherLetter # Lo TAMIL LETTER A 0B86 ; OtherLetter # Lo TAMIL LETTER AA 0B87 ; OtherLetter # Lo TAMIL LETTER I 0B88 ; OtherLetter # Lo TAMIL LETTER II 0B89 ; OtherLetter # Lo TAMIL LETTER U 0B8A ; OtherLetter # Lo TAMIL LETTER UU 0B8E ; OtherLetter # Lo TAMIL LETTER E 0B8F ; OtherLetter # Lo TAMIL LETTER EE 0B90 ; OtherLetter # Lo TAMIL LETTER AI 0B92 ; OtherLetter # Lo TAMIL LETTER O 0B93 ; OtherLetter # Lo TAMIL LETTER OO 0B94 ; OtherLetter # Lo TAMIL LETTER AU 0B95 ; OtherLetter # Lo TAMIL LETTER KA 0B99 ; OtherLetter # Lo TAMIL LETTER NGA 0B9A ; OtherLetter # Lo TAMIL LETTER CA 0B9C ; OtherLetter # Lo TAMIL LETTER JA 0B9E ; OtherLetter # Lo TAMIL LETTER NYA 0B9F ; OtherLetter # Lo TAMIL LETTER TTA 0BA3 ; OtherLetter # Lo TAMIL LETTER NNA 0BA4 ; OtherLetter # Lo TAMIL LETTER TA 0BA8 ; OtherLetter # Lo TAMIL LETTER NA 0BA9 ; OtherLetter # Lo TAMIL LETTER NNNA 0BAA ; OtherLetter # Lo TAMIL LETTER PA 0BAE ; OtherLetter # Lo TAMIL LETTER MA 0BAF ; OtherLetter # Lo TAMIL LETTER YA 0BB0 ; OtherLetter # Lo TAMIL LETTER RA 0BB1 ; OtherLetter # Lo TAMIL LETTER RRA 0BB2 ; OtherLetter # Lo TAMIL LETTER LA 0BB3 ; OtherLetter # Lo TAMIL LETTER LLA 0BB4 ; OtherLetter # Lo TAMIL LETTER LLLA 0BB5 ; OtherLetter # Lo TAMIL LETTER VA 0BB6 ; OtherLetter # Lo TAMIL LETTER SHA 0BB7 ; OtherLetter # Lo TAMIL LETTER SSA 0BB8 ; OtherLetter # Lo TAMIL LETTER SA 0BB9 ; OtherLetter # Lo TAMIL LETTER HA 0BCD ; Virama # Mn TAMIL SIGN VIRAMA 0BD0 ; OtherLetter # Lo TAMIL OM 0C05 ; OtherLetter # Lo TELUGU LETTER A 0C06 ; OtherLetter # Lo TELUGU LETTER AA 0C07 ; OtherLetter # Lo TELUGU LETTER I 0C08 ; OtherLetter # Lo TELUGU LETTER II 0C09 ; OtherLetter # Lo TELUGU LETTER U 0C0A ; OtherLetter # Lo TELUGU LETTER UU 0C0B ; OtherLetter # Lo TELUGU LETTER VOCALIC R 0C0C ; OtherLetter # Lo TELUGU LETTER VOCALIC L 0C0E ; OtherLetter # Lo TELUGU LETTER E 0C0F ; OtherLetter # Lo TELUGU LETTER EE 0C10 ; OtherLetter # Lo TELUGU LETTER AI 0C12 ; OtherLetter # Lo TELUGU LETTER O 0C13 ; OtherLetter # Lo TELUGU LETTER OO 0C14 ; OtherLetter # Lo TELUGU LETTER AU 0C15 ; OtherLetter # Lo TELUGU LETTER KA 0C16 ; OtherLetter # Lo TELUGU LETTER KHA 0C17 ; OtherLetter # Lo TELUGU LETTER GA 0C18 ; OtherLetter # Lo TELUGU LETTER GHA 0C19 ; OtherLetter # Lo TELUGU LETTER NGA 0C1A ; OtherLetter # Lo TELUGU LETTER CA 0C1B ; OtherLetter # Lo TELUGU LETTER CHA 0C1C ; OtherLetter # Lo TELUGU LETTER JA 0C1D ; OtherLetter # Lo TELUGU LETTER JHA 0C1E ; OtherLetter # Lo TELUGU LETTER NYA 0C1F ; OtherLetter # Lo TELUGU LETTER TTA 0C20 ; OtherLetter # Lo TELUGU LETTER TTHA 0C21 ; OtherLetter # Lo TELUGU LETTER DDA 0C22 ; OtherLetter # Lo TELUGU LETTER DDHA 0C23 ; OtherLetter # Lo TELUGU LETTER NNA 0C24 ; OtherLetter # Lo TELUGU LETTER TA 0C25 ; OtherLetter # Lo TELUGU LETTER THA 0C26 ; OtherLetter # Lo TELUGU LETTER DA 0C27 ; OtherLetter # Lo TELUGU LETTER DHA 0C28 ; OtherLetter # Lo TELUGU LETTER NA 0C2A ; OtherLetter # Lo TELUGU LETTER PA 0C2B ; OtherLetter # Lo TELUGU LETTER PHA 0C2C ; OtherLetter # Lo TELUGU LETTER BA 0C2D ; OtherLetter # Lo TELUGU LETTER BHA 0C2E ; OtherLetter # Lo TELUGU LETTER MA 0C2F ; OtherLetter # Lo TELUGU LETTER YA 0C30 ; OtherLetter # Lo TELUGU LETTER RA 0C31 ; OtherLetter # Lo TELUGU LETTER RRA 0C32 ; OtherLetter # Lo TELUGU LETTER LA 0C33 ; OtherLetter # Lo TELUGU LETTER LLA 0C35 ; OtherLetter # Lo TELUGU LETTER VA 0C36 ; OtherLetter # Lo TELUGU LETTER SHA 0C37 ; OtherLetter # Lo TELUGU LETTER SSA 0C38 ; OtherLetter # Lo TELUGU LETTER SA 0C39 ; OtherLetter # Lo TELUGU LETTER HA 0C3D ; OtherLetter # Lo TELUGU SIGN AVAGRAHA 0C4D ; Virama # Mn TELUGU SIGN VIRAMA 0C58 ; OtherLetter # Lo TELUGU LETTER TSA 0C59 ; OtherLetter # Lo TELUGU LETTER DZA 0C60 ; OtherLetter # Lo TELUGU LETTER VOCALIC RR 0C61 ; OtherLetter # Lo TELUGU LETTER VOCALIC LL 0C85 ; OtherLetter # Lo KANNADA LETTER A 0C86 ; OtherLetter # Lo KANNADA LETTER AA 0C87 ; OtherLetter # Lo KANNADA LETTER I 0C88 ; OtherLetter # Lo KANNADA LETTER II 0C89 ; OtherLetter # Lo KANNADA LETTER U 0C8A ; OtherLetter # Lo KANNADA LETTER UU 0C8B ; OtherLetter # Lo KANNADA LETTER VOCALIC R 0C8C ; OtherLetter # Lo KANNADA LETTER VOCALIC L 0C8E ; OtherLetter # Lo KANNADA LETTER E 0C8F ; OtherLetter # Lo KANNADA LETTER EE 0C90 ; OtherLetter # Lo KANNADA LETTER AI 0C92 ; OtherLetter # Lo KANNADA LETTER O 0C93 ; OtherLetter # Lo KANNADA LETTER OO 0C94 ; OtherLetter # Lo KANNADA LETTER AU 0C95 ; OtherLetter # Lo KANNADA LETTER KA 0C96 ; OtherLetter # Lo KANNADA LETTER KHA 0C97 ; OtherLetter # Lo KANNADA LETTER GA 0C98 ; OtherLetter # Lo KANNADA LETTER GHA 0C99 ; OtherLetter # Lo KANNADA LETTER NGA 0C9A ; OtherLetter # Lo KANNADA LETTER CA 0C9B ; OtherLetter # Lo KANNADA LETTER CHA 0C9C ; OtherLetter # Lo KANNADA LETTER JA 0C9D ; OtherLetter # Lo KANNADA LETTER JHA 0C9E ; OtherLetter # Lo KANNADA LETTER NYA 0C9F ; OtherLetter # Lo KANNADA LETTER TTA 0CA0 ; OtherLetter # Lo KANNADA LETTER TTHA 0CA1 ; OtherLetter # Lo KANNADA LETTER DDA 0CA2 ; OtherLetter # Lo KANNADA LETTER DDHA 0CA3 ; OtherLetter # Lo KANNADA LETTER NNA 0CA4 ; OtherLetter # Lo KANNADA LETTER TA 0CA5 ; OtherLetter # Lo KANNADA LETTER THA 0CA6 ; OtherLetter # Lo KANNADA LETTER DA 0CA7 ; OtherLetter # Lo KANNADA LETTER DHA 0CA8 ; OtherLetter # Lo KANNADA LETTER NA 0CAA ; OtherLetter # Lo KANNADA LETTER PA 0CAB ; OtherLetter # Lo KANNADA LETTER PHA 0CAC ; OtherLetter # Lo KANNADA LETTER BA 0CAD ; OtherLetter # Lo KANNADA LETTER BHA 0CAE ; OtherLetter # Lo KANNADA LETTER MA 0CAF ; OtherLetter # Lo KANNADA LETTER YA 0CB0 ; OtherLetter # Lo KANNADA LETTER RA 0CB1 ; OtherLetter # Lo KANNADA LETTER RRA 0CB2 ; OtherLetter # Lo KANNADA LETTER LA 0CB3 ; OtherLetter # Lo KANNADA LETTER LLA 0CB5 ; OtherLetter # Lo KANNADA LETTER VA 0CB6 ; OtherLetter # Lo KANNADA LETTER SHA 0CB7 ; OtherLetter # Lo KANNADA LETTER SSA 0CB8 ; OtherLetter # Lo KANNADA LETTER SA 0CB9 ; OtherLetter # Lo KANNADA LETTER HA 0CBD ; OtherLetter # Lo KANNADA SIGN AVAGRAHA 0CCD ; Virama # Mn KANNADA SIGN VIRAMA 0CDE ; OtherLetter # Lo KANNADA LETTER FA 0CE0 ; OtherLetter # Lo KANNADA LETTER VOCALIC RR 0CE1 ; OtherLetter # Lo KANNADA LETTER VOCALIC LL 0D05 ; OtherLetter # Lo MALAYALAM LETTER A 0D06 ; OtherLetter # Lo MALAYALAM LETTER AA 0D07 ; OtherLetter # Lo MALAYALAM LETTER I 0D08 ; OtherLetter # Lo MALAYALAM LETTER II 0D09 ; OtherLetter # Lo MALAYALAM LETTER U 0D0A ; OtherLetter # Lo MALAYALAM LETTER UU 0D0B ; OtherLetter # Lo MALAYALAM LETTER VOCALIC R 0D0C ; OtherLetter # Lo MALAYALAM LETTER VOCALIC L 0D0E ; OtherLetter # Lo MALAYALAM LETTER E 0D0F ; OtherLetter # Lo MALAYALAM LETTER EE 0D10 ; OtherLetter # Lo MALAYALAM LETTER AI 0D12 ; OtherLetter # Lo MALAYALAM LETTER O 0D13 ; OtherLetter # Lo MALAYALAM LETTER OO 0D14 ; OtherLetter # Lo MALAYALAM LETTER AU 0D15 ; OtherLetter # Lo MALAYALAM LETTER KA 0D16 ; OtherLetter # Lo MALAYALAM LETTER KHA 0D17 ; OtherLetter # Lo MALAYALAM LETTER GA 0D18 ; OtherLetter # Lo MALAYALAM LETTER GHA 0D19 ; OtherLetter # Lo MALAYALAM LETTER NGA 0D1A ; OtherLetter # Lo MALAYALAM LETTER CA 0D1B ; OtherLetter # Lo MALAYALAM LETTER CHA 0D1C ; OtherLetter # Lo MALAYALAM LETTER JA 0D1D ; OtherLetter # Lo MALAYALAM LETTER JHA 0D1E ; OtherLetter # Lo MALAYALAM LETTER NYA 0D1F ; OtherLetter # Lo MALAYALAM LETTER TTA 0D20 ; OtherLetter # Lo MALAYALAM LETTER TTHA 0D21 ; OtherLetter # Lo MALAYALAM LETTER DDA 0D22 ; OtherLetter # Lo MALAYALAM LETTER DDHA 0D23 ; OtherLetter # Lo MALAYALAM LETTER NNA 0D24 ; OtherLetter # Lo MALAYALAM LETTER TA 0D25 ; OtherLetter # Lo MALAYALAM LETTER THA 0D26 ; OtherLetter # Lo MALAYALAM LETTER DA 0D27 ; OtherLetter # Lo MALAYALAM LETTER DHA 0D28 ; OtherLetter # Lo MALAYALAM LETTER NA 0D2A ; OtherLetter # Lo MALAYALAM LETTER PA 0D2B ; OtherLetter # Lo MALAYALAM LETTER PHA 0D2C ; OtherLetter # Lo MALAYALAM LETTER BA 0D2D ; OtherLetter # Lo MALAYALAM LETTER BHA 0D2E ; OtherLetter # Lo MALAYALAM LETTER MA 0D2F ; OtherLetter # Lo MALAYALAM LETTER YA 0D30 ; OtherLetter # Lo MALAYALAM LETTER RA 0D31 ; OtherLetter # Lo MALAYALAM LETTER RRA 0D32 ; OtherLetter # Lo MALAYALAM LETTER LA 0D33 ; OtherLetter # Lo MALAYALAM LETTER LLA 0D34 ; OtherLetter # Lo MALAYALAM LETTER LLLA 0D35 ; OtherLetter # Lo MALAYALAM LETTER VA 0D36 ; OtherLetter # Lo MALAYALAM LETTER SHA 0D37 ; OtherLetter # Lo MALAYALAM LETTER SSA 0D38 ; OtherLetter # Lo MALAYALAM LETTER SA 0D39 ; OtherLetter # Lo MALAYALAM LETTER HA 0D3D ; OtherLetter # Lo MALAYALAM SIGN AVAGRAHA 0D4D ; Virama # Mn MALAYALAM SIGN VIRAMA 0D60 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC RR 0D61 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC LL 0D7A ; OtherLetter # Lo MALAYALAM LETTER CHILLU NN 0D7B ; OtherLetter # Lo MALAYALAM LETTER CHILLU N 0D7C ; OtherLetter # Lo MALAYALAM LETTER CHILLU RR 0D7D ; OtherLetter # Lo MALAYALAM LETTER CHILLU L 0D7E ; OtherLetter # Lo MALAYALAM LETTER CHILLU LL 0D7F ; OtherLetter # Lo MALAYALAM LETTER CHILLU K 0D85 ; OtherLetter # Lo SINHALA LETTER AYANNA 0D86 ; OtherLetter # Lo SINHALA LETTER AAYANNA 0D87 ; OtherLetter # Lo SINHALA LETTER AEYANNA 0D88 ; OtherLetter # Lo SINHALA LETTER AEEYANNA 0D89 ; OtherLetter # Lo SINHALA LETTER IYANNA 0D8A ; OtherLetter # Lo SINHALA LETTER IIYANNA 0D8B ; OtherLetter # Lo SINHALA LETTER UYANNA 0D8C ; OtherLetter # Lo SINHALA LETTER UUYANNA 0D8D ; OtherLetter # Lo SINHALA LETTER IRUYANNA 0D8E ; OtherLetter # Lo SINHALA LETTER IRUUYANNA 0D8F ; OtherLetter # Lo SINHALA LETTER ILUYANNA 0D90 ; OtherLetter # Lo SINHALA LETTER ILUUYANNA 0D91 ; OtherLetter # Lo SINHALA LETTER EYANNA 0D92 ; OtherLetter # Lo SINHALA LETTER EEYANNA 0D93 ; OtherLetter # Lo SINHALA LETTER AIYANNA 0D94 ; OtherLetter # Lo SINHALA LETTER OYANNA 0D95 ; OtherLetter # Lo SINHALA LETTER OOYANNA 0D96 ; OtherLetter # Lo SINHALA LETTER AUYANNA 0D9A ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA KAYANNA 0D9B ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA KAYANNA 0D9C ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA GAYANNA 0D9D ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA GAYANNA 0D9E ; OtherLetter # Lo SINHALA LETTER KANTAJA NAASIKYAYA 0D9F ; OtherLetter # Lo SINHALA LETTER SANYAKA GAYANNA 0DA0 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA CAYANNA 0DA1 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA CAYANNA 0DA2 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA JAYANNA 0DA3 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA JAYANNA 0DA4 ; OtherLetter # Lo SINHALA LETTER TAALUJA NAASIKYAYA 0DA5 ; OtherLetter # Lo SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA 0DA6 ; OtherLetter # Lo SINHALA LETTER SANYAKA JAYANNA 0DA7 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TTAYANNA 0DA8 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TTAYANNA 0DA9 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DDAYANNA 0DAA ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DDAYANNA 0DAB ; OtherLetter # Lo SINHALA LETTER MUURDHAJA NAYANNA 0DAC ; OtherLetter # Lo SINHALA LETTER SANYAKA DDAYANNA 0DAD ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TAYANNA 0DAE ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TAYANNA 0DAF ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DAYANNA 0DB0 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DAYANNA 0DB1 ; OtherLetter # Lo SINHALA LETTER DANTAJA NAYANNA 0DB3 ; OtherLetter # Lo SINHALA LETTER SANYAKA DAYANNA 0DB4 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA PAYANNA 0DB5 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA PAYANNA 0DB6 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA BAYANNA 0DB7 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA BAYANNA 0DB8 ; OtherLetter # Lo SINHALA LETTER MAYANNA 0DB9 ; OtherLetter # Lo SINHALA LETTER AMBA BAYANNA 0DBA ; OtherLetter # Lo SINHALA LETTER YAYANNA 0DBB ; OtherLetter # Lo SINHALA LETTER RAYANNA 0DBD ; OtherLetter # Lo SINHALA LETTER DANTAJA LAYANNA 0DC0 ; OtherLetter # Lo SINHALA LETTER VAYANNA 0DC1 ; OtherLetter # Lo SINHALA LETTER TAALUJA SAYANNA 0DC2 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA SAYANNA 0DC3 ; OtherLetter # Lo SINHALA LETTER DANTAJA SAYANNA 0DC4 ; OtherLetter # Lo SINHALA LETTER HAYANNA 0DC5 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA LAYANNA 0DC6 ; OtherLetter # Lo SINHALA LETTER FAYANNA 0DCA ; Virama # Mn SINHALA SIGN AL-LAKUNA 0E01 ; OtherLetter # Lo THAI CHARACTER KO KAI 0E02 ; OtherLetter # Lo THAI CHARACTER KHO KHAI 0E03 ; OtherLetter # Lo THAI CHARACTER KHO KHUAT 0E04 ; OtherLetter # Lo THAI CHARACTER KHO KHWAI 0E05 ; OtherLetter # Lo THAI CHARACTER KHO KHON 0E06 ; OtherLetter # Lo THAI CHARACTER KHO RAKHANG 0E07 ; OtherLetter # Lo THAI CHARACTER NGO NGU 0E08 ; OtherLetter # Lo THAI CHARACTER CHO CHAN 0E09 ; OtherLetter # Lo THAI CHARACTER CHO CHING 0E0A ; OtherLetter # Lo THAI CHARACTER CHO CHANG 0E0B ; OtherLetter # Lo THAI CHARACTER SO SO 0E0C ; OtherLetter # Lo THAI CHARACTER CHO CHOE 0E0D ; OtherLetter # Lo THAI CHARACTER YO YING 0E0E ; OtherLetter # Lo THAI CHARACTER DO CHADA 0E0F ; OtherLetter # Lo THAI CHARACTER TO PATAK 0E10 ; OtherLetter # Lo THAI CHARACTER THO THAN 0E11 ; OtherLetter # Lo THAI CHARACTER THO NANGMONTHO 0E12 ; OtherLetter # Lo THAI CHARACTER THO PHUTHAO 0E13 ; OtherLetter # Lo THAI CHARACTER NO NEN 0E14 ; OtherLetter # Lo THAI CHARACTER DO DEK 0E15 ; OtherLetter # Lo THAI CHARACTER TO TAO 0E16 ; OtherLetter # Lo THAI CHARACTER THO THUNG 0E17 ; OtherLetter # Lo THAI CHARACTER THO THAHAN 0E18 ; OtherLetter # Lo THAI CHARACTER THO THONG 0E19 ; OtherLetter # Lo THAI CHARACTER NO NU 0E1A ; OtherLetter # Lo THAI CHARACTER BO BAIMAI 0E1B ; OtherLetter # Lo THAI CHARACTER PO PLA 0E1C ; OtherLetter # Lo THAI CHARACTER PHO PHUNG 0E1D ; OtherLetter # Lo THAI CHARACTER FO FA 0E1E ; OtherLetter # Lo THAI CHARACTER PHO PHAN 0E1F ; OtherLetter # Lo THAI CHARACTER FO FAN 0E20 ; OtherLetter # Lo THAI CHARACTER PHO SAMPHAO 0E21 ; OtherLetter # Lo THAI CHARACTER MO MA 0E22 ; OtherLetter # Lo THAI CHARACTER YO YAK 0E23 ; OtherLetter # Lo THAI CHARACTER RO RUA 0E24 ; OtherLetter # Lo THAI CHARACTER RU 0E25 ; OtherLetter # Lo THAI CHARACTER LO LING 0E26 ; OtherLetter # Lo THAI CHARACTER LU 0E27 ; OtherLetter # Lo THAI CHARACTER WO WAEN 0E28 ; OtherLetter # Lo THAI CHARACTER SO SALA 0E29 ; OtherLetter # Lo THAI CHARACTER SO RUSI 0E2A ; OtherLetter # Lo THAI CHARACTER SO SUA 0E2B ; OtherLetter # Lo THAI CHARACTER HO HIP 0E2C ; OtherLetter # Lo THAI CHARACTER LO CHULA 0E2D ; OtherLetter # Lo THAI CHARACTER O ANG 0E2E ; OtherLetter # Lo THAI CHARACTER HO NOKHUK 0E2F ; OtherLetter # Lo THAI CHARACTER PAIYANNOI 0E3A ; Virama # Mn THAI CHARACTER PHINTHU 0E46 ; OtherLetter # Lm THAI CHARACTER MAIYAMOK 0F00 ; OtherLetter # Lo TIBETAN SYLLABLE OM 0F40 ; OtherLetter # Lo TIBETAN LETTER KA 0F41 ; OtherLetter # Lo TIBETAN LETTER KHA 0F42 ; OtherLetter # Lo TIBETAN LETTER GA 0F43 ; OtherLetter # Lo TIBETAN LETTER GHA 0F44 ; OtherLetter # Lo TIBETAN LETTER NGA 0F45 ; OtherLetter # Lo TIBETAN LETTER CA 0F46 ; OtherLetter # Lo TIBETAN LETTER CHA 0F47 ; OtherLetter # Lo TIBETAN LETTER JA 0F49 ; OtherLetter # Lo TIBETAN LETTER NYA 0F4A ; OtherLetter # Lo TIBETAN LETTER TTA 0F4B ; OtherLetter # Lo TIBETAN LETTER TTHA 0F4C ; OtherLetter # Lo TIBETAN LETTER DDA 0F4D ; OtherLetter # Lo TIBETAN LETTER DDHA 0F4E ; OtherLetter # Lo TIBETAN LETTER NNA 0F4F ; OtherLetter # Lo TIBETAN LETTER TA 0F50 ; OtherLetter # Lo TIBETAN LETTER THA 0F51 ; OtherLetter # Lo TIBETAN LETTER DA 0F52 ; OtherLetter # Lo TIBETAN LETTER DHA 0F53 ; OtherLetter # Lo TIBETAN LETTER NA 0F54 ; OtherLetter # Lo TIBETAN LETTER PA 0F55 ; OtherLetter # Lo TIBETAN LETTER PHA 0F56 ; OtherLetter # Lo TIBETAN LETTER BA 0F57 ; OtherLetter # Lo TIBETAN LETTER BHA 0F58 ; OtherLetter # Lo TIBETAN LETTER MA 0F59 ; OtherLetter # Lo TIBETAN LETTER TSA 0F5A ; OtherLetter # Lo TIBETAN LETTER TSHA 0F5B ; OtherLetter # Lo TIBETAN LETTER DZA 0F5C ; OtherLetter # Lo TIBETAN LETTER DZHA 0F5D ; OtherLetter # Lo TIBETAN LETTER WA 0F5E ; OtherLetter # Lo TIBETAN LETTER ZHA 0F5F ; OtherLetter # Lo TIBETAN LETTER ZA 0F60 ; OtherLetter # Lo TIBETAN LETTER -A 0F61 ; OtherLetter # Lo TIBETAN LETTER YA 0F62 ; OtherLetter # Lo TIBETAN LETTER RA 0F63 ; OtherLetter # Lo TIBETAN LETTER LA 0F64 ; OtherLetter # Lo TIBETAN LETTER SHA 0F65 ; OtherLetter # Lo TIBETAN LETTER SSA 0F66 ; OtherLetter # Lo TIBETAN LETTER SA 0F67 ; OtherLetter # Lo TIBETAN LETTER HA 0F68 ; OtherLetter # Lo TIBETAN LETTER A 0F69 ; OtherLetter # Lo TIBETAN LETTER KSSA 0F6A ; OtherLetter # Lo TIBETAN LETTER FIXED-FORM RA 0F6B ; OtherLetter # Lo TIBETAN LETTER KKA 0F6C ; OtherLetter # Lo TIBETAN LETTER RRA 0F84 ; Virama # Mn TIBETAN MARK HALANTA 0F88 ; OtherLetter # Lo TIBETAN SIGN LCE TSA CAN 0F89 ; OtherLetter # Lo TIBETAN SIGN MCHU CAN 0F8A ; OtherLetter # Lo TIBETAN SIGN GRU CAN RGYINGS 0F8B ; OtherLetter # Lo TIBETAN SIGN GRU MED RGYINGS 1000 ; OtherLetter # Lo MYANMAR LETTER KA 1001 ; OtherLetter # Lo MYANMAR LETTER KHA 1002 ; OtherLetter # Lo MYANMAR LETTER GA 1003 ; OtherLetter # Lo MYANMAR LETTER GHA 1004 ; OtherLetter # Lo MYANMAR LETTER NGA 1005 ; OtherLetter # Lo MYANMAR LETTER CA 1006 ; OtherLetter # Lo MYANMAR LETTER CHA 1007 ; OtherLetter # Lo MYANMAR LETTER JA 1008 ; OtherLetter # Lo MYANMAR LETTER JHA 1009 ; OtherLetter # Lo MYANMAR LETTER NYA 100A ; OtherLetter # Lo MYANMAR LETTER NNYA 100B ; OtherLetter # Lo MYANMAR LETTER TTA 100C ; OtherLetter # Lo MYANMAR LETTER TTHA 100D ; OtherLetter # Lo MYANMAR LETTER DDA 100E ; OtherLetter # Lo MYANMAR LETTER DDHA 100F ; OtherLetter # Lo MYANMAR LETTER NNA 1010 ; OtherLetter # Lo MYANMAR LETTER TA 1011 ; OtherLetter # Lo MYANMAR LETTER THA 1012 ; OtherLetter # Lo MYANMAR LETTER DA 1013 ; OtherLetter # Lo MYANMAR LETTER DHA 1014 ; OtherLetter # Lo MYANMAR LETTER NA 1015 ; OtherLetter # Lo MYANMAR LETTER PA 1016 ; OtherLetter # Lo MYANMAR LETTER PHA 1017 ; OtherLetter # Lo MYANMAR LETTER BA 1018 ; OtherLetter # Lo MYANMAR LETTER BHA 1019 ; OtherLetter # Lo MYANMAR LETTER MA 101A ; OtherLetter # Lo MYANMAR LETTER YA 101B ; OtherLetter # Lo MYANMAR LETTER RA 101C ; OtherLetter # Lo MYANMAR LETTER LA 101D ; OtherLetter # Lo MYANMAR LETTER WA 101E ; OtherLetter # Lo MYANMAR LETTER SA 101F ; OtherLetter # Lo MYANMAR LETTER HA 1020 ; OtherLetter # Lo MYANMAR LETTER LLA 1021 ; OtherLetter # Lo MYANMAR LETTER A 1022 ; OtherLetter # Lo MYANMAR LETTER SHAN A 1023 ; OtherLetter # Lo MYANMAR LETTER I 1024 ; OtherLetter # Lo MYANMAR LETTER II 1025 ; OtherLetter # Lo MYANMAR LETTER U 1026 ; OtherLetter # Lo MYANMAR LETTER UU 1027 ; OtherLetter # Lo MYANMAR LETTER E 1028 ; OtherLetter # Lo MYANMAR LETTER MON E 1029 ; OtherLetter # Lo MYANMAR LETTER O 102A ; OtherLetter # Lo MYANMAR LETTER AU 1039 ; Virama # Mn MYANMAR SIGN VIRAMA 103A ; Virama # Mn MYANMAR SIGN ASAT 103F ; OtherLetter # Lo MYANMAR LETTER GREAT SA 1050 ; OtherLetter # Lo MYANMAR LETTER SHA 1051 ; OtherLetter # Lo MYANMAR LETTER SSA 1052 ; OtherLetter # Lo MYANMAR LETTER VOCALIC R 1053 ; OtherLetter # Lo MYANMAR LETTER VOCALIC RR 1054 ; OtherLetter # Lo MYANMAR LETTER VOCALIC L 1055 ; OtherLetter # Lo MYANMAR LETTER VOCALIC LL 105A ; OtherLetter # Lo MYANMAR LETTER MON NGA 105B ; OtherLetter # Lo MYANMAR LETTER MON JHA 105C ; OtherLetter # Lo MYANMAR LETTER MON BBA 105D ; OtherLetter # Lo MYANMAR LETTER MON BBE 1061 ; OtherLetter # Lo MYANMAR LETTER SGAW KAREN SHA 1065 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN THA 1066 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN PWA 106E ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN NNA 106F ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN YWA 1070 ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN GHWA 1075 ; OtherLetter # Lo MYANMAR LETTER SHAN KA 1076 ; OtherLetter # Lo MYANMAR LETTER SHAN KHA 1077 ; OtherLetter # Lo MYANMAR LETTER SHAN GA 1078 ; OtherLetter # Lo MYANMAR LETTER SHAN CA 1079 ; OtherLetter # Lo MYANMAR LETTER SHAN ZA 107A ; OtherLetter # Lo MYANMAR LETTER SHAN NYA 107B ; OtherLetter # Lo MYANMAR LETTER SHAN DA 107C ; OtherLetter # Lo MYANMAR LETTER SHAN NA 107D ; OtherLetter # Lo MYANMAR LETTER SHAN PHA 107E ; OtherLetter # Lo MYANMAR LETTER SHAN FA 107F ; OtherLetter # Lo MYANMAR LETTER SHAN BA 1080 ; OtherLetter # Lo MYANMAR LETTER SHAN THA 1081 ; OtherLetter # Lo MYANMAR LETTER SHAN HA 108E ; OtherLetter # Lo MYANMAR LETTER RUMAI PALAUNG FA 1700 ; OtherLetter # Lo TAGALOG LETTER A 1701 ; OtherLetter # Lo TAGALOG LETTER I 1702 ; OtherLetter # Lo TAGALOG LETTER U 1703 ; OtherLetter # Lo TAGALOG LETTER KA 1704 ; OtherLetter # Lo TAGALOG LETTER GA 1705 ; OtherLetter # Lo TAGALOG LETTER NGA 1706 ; OtherLetter # Lo TAGALOG LETTER TA 1707 ; OtherLetter # Lo TAGALOG LETTER DA 1708 ; OtherLetter # Lo TAGALOG LETTER NA 1709 ; OtherLetter # Lo TAGALOG LETTER PA 170A ; OtherLetter # Lo TAGALOG LETTER BA 170B ; OtherLetter # Lo TAGALOG LETTER MA 170C ; OtherLetter # Lo TAGALOG LETTER YA 170E ; OtherLetter # Lo TAGALOG LETTER LA 170F ; OtherLetter # Lo TAGALOG LETTER WA 1710 ; OtherLetter # Lo TAGALOG LETTER SA 1711 ; OtherLetter # Lo TAGALOG LETTER HA 1714 ; Virama # Mn TAGALOG SIGN VIRAMA 1720 ; OtherLetter # Lo HANUNOO LETTER A 1721 ; OtherLetter # Lo HANUNOO LETTER I 1722 ; OtherLetter # Lo HANUNOO LETTER U 1723 ; OtherLetter # Lo HANUNOO LETTER KA 1724 ; OtherLetter # Lo HANUNOO LETTER GA 1725 ; OtherLetter # Lo HANUNOO LETTER NGA 1726 ; OtherLetter # Lo HANUNOO LETTER TA 1727 ; OtherLetter # Lo HANUNOO LETTER DA 1728 ; OtherLetter # Lo HANUNOO LETTER NA 1729 ; OtherLetter # Lo HANUNOO LETTER PA 172A ; OtherLetter # Lo HANUNOO LETTER BA 172B ; OtherLetter # Lo HANUNOO LETTER MA 172C ; OtherLetter # Lo HANUNOO LETTER YA 172D ; OtherLetter # Lo HANUNOO LETTER RA 172E ; OtherLetter # Lo HANUNOO LETTER LA 172F ; OtherLetter # Lo HANUNOO LETTER WA 1730 ; OtherLetter # Lo HANUNOO LETTER SA 1731 ; OtherLetter # Lo HANUNOO LETTER HA 1734 ; Virama # Mn HANUNOO SIGN PAMUDPOD 1780 ; OtherLetter # Lo KHMER LETTER KA 1781 ; OtherLetter # Lo KHMER LETTER KHA 1782 ; OtherLetter # Lo KHMER LETTER KO 1783 ; OtherLetter # Lo KHMER LETTER KHO 1784 ; OtherLetter # Lo KHMER LETTER NGO 1785 ; OtherLetter # Lo KHMER LETTER CA 1786 ; OtherLetter # Lo KHMER LETTER CHA 1787 ; OtherLetter # Lo KHMER LETTER CO 1788 ; OtherLetter # Lo KHMER LETTER CHO 1789 ; OtherLetter # Lo KHMER LETTER NYO 178A ; OtherLetter # Lo KHMER LETTER DA 178B ; OtherLetter # Lo KHMER LETTER TTHA 178C ; OtherLetter # Lo KHMER LETTER DO 178D ; OtherLetter # Lo KHMER LETTER TTHO 178E ; OtherLetter # Lo KHMER LETTER NNO 178F ; OtherLetter # Lo KHMER LETTER TA 1790 ; OtherLetter # Lo KHMER LETTER THA 1791 ; OtherLetter # Lo KHMER LETTER TO 1792 ; OtherLetter # Lo KHMER LETTER THO 1793 ; OtherLetter # Lo KHMER LETTER NO 1794 ; OtherLetter # Lo KHMER LETTER BA 1795 ; OtherLetter # Lo KHMER LETTER PHA 1796 ; OtherLetter # Lo KHMER LETTER PO 1797 ; OtherLetter # Lo KHMER LETTER PHO 1798 ; OtherLetter # Lo KHMER LETTER MO 1799 ; OtherLetter # Lo KHMER LETTER YO 179A ; OtherLetter # Lo KHMER LETTER RO 179B ; OtherLetter # Lo KHMER LETTER LO 179C ; OtherLetter # Lo KHMER LETTER VO 179D ; OtherLetter # Lo KHMER LETTER SHA 179E ; OtherLetter # Lo KHMER LETTER SSO 179F ; OtherLetter # Lo KHMER LETTER SA 17A0 ; OtherLetter # Lo KHMER LETTER HA 17A1 ; OtherLetter # Lo KHMER LETTER LA 17A2 ; OtherLetter # Lo KHMER LETTER QA 17A3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAQ 17A4 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAA 17A5 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QI 17A6 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QII 17A7 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QU 17A8 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUK 17A9 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUU 17AA ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUUV 17AB ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RY 17AC ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RYY 17AD ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LY 17AE ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LYY 17AF ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QE 17B0 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAI 17B1 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE ONE 17B2 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE TWO 17B3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAU 17D2 ; Virama # Mn KHMER SIGN COENG 17D7 ; OtherLetter # Lm KHMER SIGN LEK TOO 17DC ; OtherLetter # Lo KHMER SIGN AVAKRAHASANYA 1A20 ; OtherLetter # Lo TAI THAM LETTER HIGH KA 1A21 ; OtherLetter # Lo TAI THAM LETTER HIGH KHA 1A22 ; OtherLetter # Lo TAI THAM LETTER HIGH KXA 1A23 ; OtherLetter # Lo TAI THAM LETTER LOW KA 1A24 ; OtherLetter # Lo TAI THAM LETTER LOW KXA 1A25 ; OtherLetter # Lo TAI THAM LETTER LOW KHA 1A26 ; OtherLetter # Lo TAI THAM LETTER NGA 1A27 ; OtherLetter # Lo TAI THAM LETTER HIGH CA 1A28 ; OtherLetter # Lo TAI THAM LETTER HIGH CHA 1A29 ; OtherLetter # Lo TAI THAM LETTER LOW CA 1A2A ; OtherLetter # Lo TAI THAM LETTER LOW SA 1A2B ; OtherLetter # Lo TAI THAM LETTER LOW CHA 1A2C ; OtherLetter # Lo TAI THAM LETTER NYA 1A2D ; OtherLetter # Lo TAI THAM LETTER RATA 1A2E ; OtherLetter # Lo TAI THAM LETTER HIGH RATHA 1A2F ; OtherLetter # Lo TAI THAM LETTER DA 1A30 ; OtherLetter # Lo TAI THAM LETTER LOW RATHA 1A31 ; OtherLetter # Lo TAI THAM LETTER RANA 1A32 ; OtherLetter # Lo TAI THAM LETTER HIGH TA 1A33 ; OtherLetter # Lo TAI THAM LETTER HIGH THA 1A34 ; OtherLetter # Lo TAI THAM LETTER LOW TA 1A35 ; OtherLetter # Lo TAI THAM LETTER LOW THA 1A36 ; OtherLetter # Lo TAI THAM LETTER NA 1A37 ; OtherLetter # Lo TAI THAM LETTER BA 1A38 ; OtherLetter # Lo TAI THAM LETTER HIGH PA 1A39 ; OtherLetter # Lo TAI THAM LETTER HIGH PHA 1A3A ; OtherLetter # Lo TAI THAM LETTER HIGH FA 1A3B ; OtherLetter # Lo TAI THAM LETTER LOW PA 1A3C ; OtherLetter # Lo TAI THAM LETTER LOW FA 1A3D ; OtherLetter # Lo TAI THAM LETTER LOW PHA 1A3E ; OtherLetter # Lo TAI THAM LETTER MA 1A3F ; OtherLetter # Lo TAI THAM LETTER LOW YA 1A40 ; OtherLetter # Lo TAI THAM LETTER HIGH YA 1A41 ; OtherLetter # Lo TAI THAM LETTER RA 1A42 ; OtherLetter # Lo TAI THAM LETTER RUE 1A43 ; OtherLetter # Lo TAI THAM LETTER LA 1A44 ; OtherLetter # Lo TAI THAM LETTER LUE 1A45 ; OtherLetter # Lo TAI THAM LETTER WA 1A46 ; OtherLetter # Lo TAI THAM LETTER HIGH SHA 1A47 ; OtherLetter # Lo TAI THAM LETTER HIGH SSA 1A48 ; OtherLetter # Lo TAI THAM LETTER HIGH SA 1A49 ; OtherLetter # Lo TAI THAM LETTER HIGH HA 1A4A ; OtherLetter # Lo TAI THAM LETTER LLA 1A4B ; OtherLetter # Lo TAI THAM LETTER A 1A4C ; OtherLetter # Lo TAI THAM LETTER LOW HA 1A4D ; OtherLetter # Lo TAI THAM LETTER I 1A4E ; OtherLetter # Lo TAI THAM LETTER II 1A4F ; OtherLetter # Lo TAI THAM LETTER U 1A50 ; OtherLetter # Lo TAI THAM LETTER UU 1A51 ; OtherLetter # Lo TAI THAM LETTER EE 1A52 ; OtherLetter # Lo TAI THAM LETTER OO 1A53 ; OtherLetter # Lo TAI THAM LETTER LAE 1A54 ; OtherLetter # Lo TAI THAM LETTER GREAT SA 1A60 ; Virama # Mn TAI THAM SIGN SAKOT 1AA7 ; OtherLetter # Lm TAI THAM SIGN MAI YAMOK 1B05 ; OtherLetter # Lo BALINESE LETTER AKARA 1B06 ; OtherLetter # Lo BALINESE LETTER AKARA TEDUNG 1B07 ; OtherLetter # Lo BALINESE LETTER IKARA 1B08 ; OtherLetter # Lo BALINESE LETTER IKARA TEDUNG 1B09 ; OtherLetter # Lo BALINESE LETTER UKARA 1B0A ; OtherLetter # Lo BALINESE LETTER UKARA TEDUNG 1B0B ; OtherLetter # Lo BALINESE LETTER RA REPA 1B0C ; OtherLetter # Lo BALINESE LETTER RA REPA TEDUNG 1B0D ; OtherLetter # Lo BALINESE LETTER LA LENGA 1B0E ; OtherLetter # Lo BALINESE LETTER LA LENGA TEDUNG 1B0F ; OtherLetter # Lo BALINESE LETTER EKARA 1B10 ; OtherLetter # Lo BALINESE LETTER AIKARA 1B11 ; OtherLetter # Lo BALINESE LETTER OKARA 1B12 ; OtherLetter # Lo BALINESE LETTER OKARA TEDUNG 1B13 ; OtherLetter # Lo BALINESE LETTER KA 1B14 ; OtherLetter # Lo BALINESE LETTER KA MAHAPRANA 1B15 ; OtherLetter # Lo BALINESE LETTER GA 1B16 ; OtherLetter # Lo BALINESE LETTER GA GORA 1B17 ; OtherLetter # Lo BALINESE LETTER NGA 1B18 ; OtherLetter # Lo BALINESE LETTER CA 1B19 ; OtherLetter # Lo BALINESE LETTER CA LACA 1B1A ; OtherLetter # Lo BALINESE LETTER JA 1B1B ; OtherLetter # Lo BALINESE LETTER JA JERA 1B1C ; OtherLetter # Lo BALINESE LETTER NYA 1B1D ; OtherLetter # Lo BALINESE LETTER TA LATIK 1B1E ; OtherLetter # Lo BALINESE LETTER TA MURDA MAHAPRANA 1B1F ; OtherLetter # Lo BALINESE LETTER DA MURDA ALPAPRANA 1B20 ; OtherLetter # Lo BALINESE LETTER DA MURDA MAHAPRANA 1B21 ; OtherLetter # Lo BALINESE LETTER NA RAMBAT 1B22 ; OtherLetter # Lo BALINESE LETTER TA 1B23 ; OtherLetter # Lo BALINESE LETTER TA TAWA 1B24 ; OtherLetter # Lo BALINESE LETTER DA 1B25 ; OtherLetter # Lo BALINESE LETTER DA MADU 1B26 ; OtherLetter # Lo BALINESE LETTER NA 1B27 ; OtherLetter # Lo BALINESE LETTER PA 1B28 ; OtherLetter # Lo BALINESE LETTER PA KAPAL 1B29 ; OtherLetter # Lo BALINESE LETTER BA 1B2A ; OtherLetter # Lo BALINESE LETTER BA KEMBANG 1B2B ; OtherLetter # Lo BALINESE LETTER MA 1B2C ; OtherLetter # Lo BALINESE LETTER YA 1B2D ; OtherLetter # Lo BALINESE LETTER RA 1B2E ; OtherLetter # Lo BALINESE LETTER LA 1B2F ; OtherLetter # Lo BALINESE LETTER WA 1B30 ; OtherLetter # Lo BALINESE LETTER SA SAGA 1B31 ; OtherLetter # Lo BALINESE LETTER SA SAPA 1B32 ; OtherLetter # Lo BALINESE LETTER SA 1B33 ; OtherLetter # Lo BALINESE LETTER HA 1B44 ; Virama # Mc BALINESE ADEG ADEG 1B45 ; OtherLetter # Lo BALINESE LETTER KAF SASAK 1B46 ; OtherLetter # Lo BALINESE LETTER KHOT SASAK 1B47 ; OtherLetter # Lo BALINESE LETTER TZIR SASAK 1B48 ; OtherLetter # Lo BALINESE LETTER EF SASAK 1B49 ; OtherLetter # Lo BALINESE LETTER VE SASAK 1B4A ; OtherLetter # Lo BALINESE LETTER ZAL SASAK 1B4B ; OtherLetter # Lo BALINESE LETTER ASYURA SASAK 1B83 ; OtherLetter # Lo SUNDANESE LETTER A 1B84 ; OtherLetter # Lo SUNDANESE LETTER I 1B85 ; OtherLetter # Lo SUNDANESE LETTER U 1B86 ; OtherLetter # Lo SUNDANESE LETTER AE 1B87 ; OtherLetter # Lo SUNDANESE LETTER O 1B88 ; OtherLetter # Lo SUNDANESE LETTER E 1B89 ; OtherLetter # Lo SUNDANESE LETTER EU 1B8A ; OtherLetter # Lo SUNDANESE LETTER KA 1B8B ; OtherLetter # Lo SUNDANESE LETTER QA 1B8C ; OtherLetter # Lo SUNDANESE LETTER GA 1B8D ; OtherLetter # Lo SUNDANESE LETTER NGA 1B8E ; OtherLetter # Lo SUNDANESE LETTER CA 1B8F ; OtherLetter # Lo SUNDANESE LETTER JA 1B90 ; OtherLetter # Lo SUNDANESE LETTER ZA 1B91 ; OtherLetter # Lo SUNDANESE LETTER NYA 1B92 ; OtherLetter # Lo SUNDANESE LETTER TA 1B93 ; OtherLetter # Lo SUNDANESE LETTER DA 1B94 ; OtherLetter # Lo SUNDANESE LETTER NA 1B95 ; OtherLetter # Lo SUNDANESE LETTER PA 1B96 ; OtherLetter # Lo SUNDANESE LETTER FA 1B97 ; OtherLetter # Lo SUNDANESE LETTER VA 1B98 ; OtherLetter # Lo SUNDANESE LETTER BA 1B99 ; OtherLetter # Lo SUNDANESE LETTER MA 1B9A ; OtherLetter # Lo SUNDANESE LETTER YA 1B9B ; OtherLetter # Lo SUNDANESE LETTER RA 1B9C ; OtherLetter # Lo SUNDANESE LETTER LA 1B9D ; OtherLetter # Lo SUNDANESE LETTER WA 1B9E ; OtherLetter # Lo SUNDANESE LETTER SA 1B9F ; OtherLetter # Lo SUNDANESE LETTER XA 1BA0 ; OtherLetter # Lo SUNDANESE LETTER HA 1BAA ; Virama # Mc SUNDANESE SIGN PAMAAEH 1BAE ; OtherLetter # Lo SUNDANESE LETTER KHA 1BAF ; OtherLetter # Lo SUNDANESE LETTER SYA A800 ; OtherLetter # Lo SYLOTI NAGRI LETTER A A801 ; OtherLetter # Lo SYLOTI NAGRI LETTER I A803 ; OtherLetter # Lo SYLOTI NAGRI LETTER U A804 ; OtherLetter # Lo SYLOTI NAGRI LETTER E A805 ; OtherLetter # Lo SYLOTI NAGRI LETTER O A806 ; Virama # Mn SYLOTI NAGRI SIGN HASANTA A807 ; OtherLetter # Lo SYLOTI NAGRI LETTER KO A808 ; OtherLetter # Lo SYLOTI NAGRI LETTER KHO A809 ; OtherLetter # Lo SYLOTI NAGRI LETTER GO A80A ; OtherLetter # Lo SYLOTI NAGRI LETTER GHO A80C ; OtherLetter # Lo SYLOTI NAGRI LETTER CO A80D ; OtherLetter # Lo SYLOTI NAGRI LETTER CHO A80E ; OtherLetter # Lo SYLOTI NAGRI LETTER JO A80F ; OtherLetter # Lo SYLOTI NAGRI LETTER JHO A810 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTO A811 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTHO A812 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDO A813 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDHO A814 ; OtherLetter # Lo SYLOTI NAGRI LETTER TO A815 ; OtherLetter # Lo SYLOTI NAGRI LETTER THO A816 ; OtherLetter # Lo SYLOTI NAGRI LETTER DO A817 ; OtherLetter # Lo SYLOTI NAGRI LETTER DHO A818 ; OtherLetter # Lo SYLOTI NAGRI LETTER NO A819 ; OtherLetter # Lo SYLOTI NAGRI LETTER PO A81A ; OtherLetter # Lo SYLOTI NAGRI LETTER PHO A81B ; OtherLetter # Lo SYLOTI NAGRI LETTER BO A81C ; OtherLetter # Lo SYLOTI NAGRI LETTER BHO A81D ; OtherLetter # Lo SYLOTI NAGRI LETTER MO A81E ; OtherLetter # Lo SYLOTI NAGRI LETTER RO A81F ; OtherLetter # Lo SYLOTI NAGRI LETTER LO A820 ; OtherLetter # Lo SYLOTI NAGRI LETTER RRO A821 ; OtherLetter # Lo SYLOTI NAGRI LETTER SO A822 ; OtherLetter # Lo SYLOTI NAGRI LETTER HO A882 ; OtherLetter # Lo SAURASHTRA LETTER A A883 ; OtherLetter # Lo SAURASHTRA LETTER AA A884 ; OtherLetter # Lo SAURASHTRA LETTER I A885 ; OtherLetter # Lo SAURASHTRA LETTER II A886 ; OtherLetter # Lo SAURASHTRA LETTER U A887 ; OtherLetter # Lo SAURASHTRA LETTER UU A888 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC R A889 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC RR A88A ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC L A88B ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC LL A88C ; OtherLetter # Lo SAURASHTRA LETTER E A88D ; OtherLetter # Lo SAURASHTRA LETTER EE A88E ; OtherLetter # Lo SAURASHTRA LETTER AI A88F ; OtherLetter # Lo SAURASHTRA LETTER O A890 ; OtherLetter # Lo SAURASHTRA LETTER OO A891 ; OtherLetter # Lo SAURASHTRA LETTER AU A892 ; OtherLetter # Lo SAURASHTRA LETTER KA A893 ; OtherLetter # Lo SAURASHTRA LETTER KHA A894 ; OtherLetter # Lo SAURASHTRA LETTER GA A895 ; OtherLetter # Lo SAURASHTRA LETTER GHA A896 ; OtherLetter # Lo SAURASHTRA LETTER NGA A897 ; OtherLetter # Lo SAURASHTRA LETTER CA A898 ; OtherLetter # Lo SAURASHTRA LETTER CHA A899 ; OtherLetter # Lo SAURASHTRA LETTER JA A89A ; OtherLetter # Lo SAURASHTRA LETTER JHA A89B ; OtherLetter # Lo SAURASHTRA LETTER NYA A89C ; OtherLetter # Lo SAURASHTRA LETTER TTA A89D ; OtherLetter # Lo SAURASHTRA LETTER TTHA A89E ; OtherLetter # Lo SAURASHTRA LETTER DDA A89F ; OtherLetter # Lo SAURASHTRA LETTER DDHA A8A0 ; OtherLetter # Lo SAURASHTRA LETTER NNA A8A1 ; OtherLetter # Lo SAURASHTRA LETTER TA A8A2 ; OtherLetter # Lo SAURASHTRA LETTER THA A8A3 ; OtherLetter # Lo SAURASHTRA LETTER DA A8A4 ; OtherLetter # Lo SAURASHTRA LETTER DHA A8A5 ; OtherLetter # Lo SAURASHTRA LETTER NA A8A6 ; OtherLetter # Lo SAURASHTRA LETTER PA A8A7 ; OtherLetter # Lo SAURASHTRA LETTER PHA A8A8 ; OtherLetter # Lo SAURASHTRA LETTER BA A8A9 ; OtherLetter # Lo SAURASHTRA LETTER BHA A8AA ; OtherLetter # Lo SAURASHTRA LETTER MA A8AB ; OtherLetter # Lo SAURASHTRA LETTER YA A8AC ; OtherLetter # Lo SAURASHTRA LETTER RA A8AD ; OtherLetter # Lo SAURASHTRA LETTER LA A8AE ; OtherLetter # Lo SAURASHTRA LETTER VA A8AF ; OtherLetter # Lo SAURASHTRA LETTER SHA A8B0 ; OtherLetter # Lo SAURASHTRA LETTER SSA A8B1 ; OtherLetter # Lo SAURASHTRA LETTER SA A8B2 ; OtherLetter # Lo SAURASHTRA LETTER HA A8B3 ; OtherLetter # Lo SAURASHTRA LETTER LLA A8C4 ; Virama # Mn SAURASHTRA SIGN VIRAMA A8F2 ; OtherLetter # Lo DEVANAGARI SIGN SPACING CANDRABINDU A8F3 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU VIRAMA A8F4 ; OtherLetter # Lo DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA A8F5 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU TWO A8F6 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU THREE A8F7 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU AVAGRAHA A8FB ; OtherLetter # Lo DEVANAGARI HEADSTROKE A930 ; OtherLetter # Lo REJANG LETTER KA A931 ; OtherLetter # Lo REJANG LETTER GA A932 ; OtherLetter # Lo REJANG LETTER NGA A933 ; OtherLetter # Lo REJANG LETTER TA A934 ; OtherLetter # Lo REJANG LETTER DA A935 ; OtherLetter # Lo REJANG LETTER NA A936 ; OtherLetter # Lo REJANG LETTER PA A937 ; OtherLetter # Lo REJANG LETTER BA A938 ; OtherLetter # Lo REJANG LETTER MA A939 ; OtherLetter # Lo REJANG LETTER CA A93A ; OtherLetter # Lo REJANG LETTER JA A93B ; OtherLetter # Lo REJANG LETTER NYA A93C ; OtherLetter # Lo REJANG LETTER SA A93D ; OtherLetter # Lo REJANG LETTER RA A93E ; OtherLetter # Lo REJANG LETTER LA A93F ; OtherLetter # Lo REJANG LETTER YA A940 ; OtherLetter # Lo REJANG LETTER WA A941 ; OtherLetter # Lo REJANG LETTER HA A942 ; OtherLetter # Lo REJANG LETTER MBA A943 ; OtherLetter # Lo REJANG LETTER NGGA A944 ; OtherLetter # Lo REJANG LETTER NDA A945 ; OtherLetter # Lo REJANG LETTER NYJA A946 ; OtherLetter # Lo REJANG LETTER A A953 ; Virama # Mc REJANG VIRAMA A984 ; OtherLetter # Lo JAVANESE LETTER A A985 ; OtherLetter # Lo JAVANESE LETTER I KAWI A986 ; OtherLetter # Lo JAVANESE LETTER I A987 ; OtherLetter # Lo JAVANESE LETTER II A988 ; OtherLetter # Lo JAVANESE LETTER U A989 ; OtherLetter # Lo JAVANESE LETTER PA CEREK A98A ; OtherLetter # Lo JAVANESE LETTER NGA LELET A98B ; OtherLetter # Lo JAVANESE LETTER NGA LELET RASWADI A98C ; OtherLetter # Lo JAVANESE LETTER E A98D ; OtherLetter # Lo JAVANESE LETTER AI A98E ; OtherLetter # Lo JAVANESE LETTER O A98F ; OtherLetter # Lo JAVANESE LETTER KA A990 ; OtherLetter # Lo JAVANESE LETTER KA SASAK A991 ; OtherLetter # Lo JAVANESE LETTER KA MURDA A992 ; OtherLetter # Lo JAVANESE LETTER GA A993 ; OtherLetter # Lo JAVANESE LETTER GA MURDA A994 ; OtherLetter # Lo JAVANESE LETTER NGA A995 ; OtherLetter # Lo JAVANESE LETTER CA A996 ; OtherLetter # Lo JAVANESE LETTER CA MURDA A997 ; OtherLetter # Lo JAVANESE LETTER JA A998 ; OtherLetter # Lo JAVANESE LETTER NYA MURDA A999 ; OtherLetter # Lo JAVANESE LETTER JA MAHAPRANA A99A ; OtherLetter # Lo JAVANESE LETTER NYA A99B ; OtherLetter # Lo JAVANESE LETTER TTA A99C ; OtherLetter # Lo JAVANESE LETTER TTA MAHAPRANA A99D ; OtherLetter # Lo JAVANESE LETTER DDA A99E ; OtherLetter # Lo JAVANESE LETTER DDA MAHAPRANA A99F ; OtherLetter # Lo JAVANESE LETTER NA MURDA A9A0 ; OtherLetter # Lo JAVANESE LETTER TA A9A1 ; OtherLetter # Lo JAVANESE LETTER TA MURDA A9A2 ; OtherLetter # Lo JAVANESE LETTER DA A9A3 ; OtherLetter # Lo JAVANESE LETTER DA MAHAPRANA A9A4 ; OtherLetter # Lo JAVANESE LETTER NA A9A5 ; OtherLetter # Lo JAVANESE LETTER PA A9A6 ; OtherLetter # Lo JAVANESE LETTER PA MURDA A9A7 ; OtherLetter # Lo JAVANESE LETTER BA A9A8 ; OtherLetter # Lo JAVANESE LETTER BA MURDA A9A9 ; OtherLetter # Lo JAVANESE LETTER MA A9AA ; OtherLetter # Lo JAVANESE LETTER YA A9AB ; OtherLetter # Lo JAVANESE LETTER RA A9AC ; OtherLetter # Lo JAVANESE LETTER RA AGUNG A9AD ; OtherLetter # Lo JAVANESE LETTER LA A9AE ; OtherLetter # Lo JAVANESE LETTER WA A9AF ; OtherLetter # Lo JAVANESE LETTER SA MURDA A9B0 ; OtherLetter # Lo JAVANESE LETTER SA MAHAPRANA A9B1 ; OtherLetter # Lo JAVANESE LETTER SA A9B2 ; OtherLetter # Lo JAVANESE LETTER HA A9C0 ; Virama # Mc JAVANESE PANGKON A9CF ; OtherLetter # Lm JAVANESE PANGRANGKEP AA60 ; OtherLetter # Lo MYANMAR LETTER KHAMTI GA AA61 ; OtherLetter # Lo MYANMAR LETTER KHAMTI CA AA62 ; OtherLetter # Lo MYANMAR LETTER KHAMTI CHA AA63 ; OtherLetter # Lo MYANMAR LETTER KHAMTI JA AA64 ; OtherLetter # Lo MYANMAR LETTER KHAMTI JHA AA65 ; OtherLetter # Lo MYANMAR LETTER KHAMTI NYA AA66 ; OtherLetter # Lo MYANMAR LETTER KHAMTI TTA AA67 ; OtherLetter # Lo MYANMAR LETTER KHAMTI TTHA AA68 ; OtherLetter # Lo MYANMAR LETTER KHAMTI DDA AA69 ; OtherLetter # Lo MYANMAR LETTER KHAMTI DDHA AA6A ; OtherLetter # Lo MYANMAR LETTER KHAMTI DHA AA6B ; OtherLetter # Lo MYANMAR LETTER KHAMTI NA AA6C ; OtherLetter # Lo MYANMAR LETTER KHAMTI SA AA6D ; OtherLetter # Lo MYANMAR LETTER KHAMTI HA AA6E ; OtherLetter # Lo MYANMAR LETTER KHAMTI HHA AA6F ; OtherLetter # Lo MYANMAR LETTER KHAMTI FA AA70 ; OtherLetter # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION AA71 ; OtherLetter # Lo MYANMAR LETTER KHAMTI XA AA72 ; OtherLetter # Lo MYANMAR LETTER KHAMTI ZA AA73 ; OtherLetter # Lo MYANMAR LETTER KHAMTI RA AA74 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI OAY AA75 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI QN AA76 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI HM AA7A ; OtherLetter # Lo MYANMAR LETTER AITON RA ABC0 ; OtherLetter # Lo MEETEI MAYEK LETTER KOK ABC1 ; OtherLetter # Lo MEETEI MAYEK LETTER SAM ABC2 ; OtherLetter # Lo MEETEI MAYEK LETTER LAI ABC3 ; OtherLetter # Lo MEETEI MAYEK LETTER MIT ABC4 ; OtherLetter # Lo MEETEI MAYEK LETTER PA ABC5 ; OtherLetter # Lo MEETEI MAYEK LETTER NA ABC6 ; OtherLetter # Lo MEETEI MAYEK LETTER CHIL ABC7 ; OtherLetter # Lo MEETEI MAYEK LETTER TIL ABC8 ; OtherLetter # Lo MEETEI MAYEK LETTER KHOU ABC9 ; OtherLetter # Lo MEETEI MAYEK LETTER NGOU ABCA ; OtherLetter # Lo MEETEI MAYEK LETTER THOU ABCB ; OtherLetter # Lo MEETEI MAYEK LETTER WAI ABCC ; OtherLetter # Lo MEETEI MAYEK LETTER YANG ABCD ; OtherLetter # Lo MEETEI MAYEK LETTER HUK ABCE ; OtherLetter # Lo MEETEI MAYEK LETTER UN ABCF ; OtherLetter # Lo MEETEI MAYEK LETTER I ABD0 ; OtherLetter # Lo MEETEI MAYEK LETTER PHAM ABD1 ; OtherLetter # Lo MEETEI MAYEK LETTER ATIYA ABD2 ; OtherLetter # Lo MEETEI MAYEK LETTER GOK ABD3 ; OtherLetter # Lo MEETEI MAYEK LETTER JHAM ABD4 ; OtherLetter # Lo MEETEI MAYEK LETTER RAI ABD5 ; OtherLetter # Lo MEETEI MAYEK LETTER BA ABD6 ; OtherLetter # Lo MEETEI MAYEK LETTER JIL ABD7 ; OtherLetter # Lo MEETEI MAYEK LETTER DIL ABD8 ; OtherLetter # Lo MEETEI MAYEK LETTER GHOU ABD9 ; OtherLetter # Lo MEETEI MAYEK LETTER DHOU ABDA ; OtherLetter # Lo MEETEI MAYEK LETTER BHAM ABDB ; OtherLetter # Lo MEETEI MAYEK LETTER KOK LONSUM ABDC ; OtherLetter # Lo MEETEI MAYEK LETTER LAI LONSUM ABDD ; OtherLetter # Lo MEETEI MAYEK LETTER MIT LONSUM ABDE ; OtherLetter # Lo MEETEI MAYEK LETTER PA LONSUM ABDF ; OtherLetter # Lo MEETEI MAYEK LETTER NA LONSUM ABE0 ; OtherLetter # Lo MEETEI MAYEK LETTER TIL LONSUM ABE1 ; OtherLetter # Lo MEETEI MAYEK LETTER NGOU LONSUM ABE2 ; OtherLetter # Lo MEETEI MAYEK LETTER I LONSUM ABED ; Virama # Mn MEETEI MAYEK APUN IYEK 10A00 ; OtherLetter # Lo KHAROSHTHI LETTER A 10A10 ; OtherLetter # Lo KHAROSHTHI LETTER KA 10A11 ; OtherLetter # Lo KHAROSHTHI LETTER KHA 10A12 ; OtherLetter # Lo KHAROSHTHI LETTER GA 10A13 ; OtherLetter # Lo KHAROSHTHI LETTER GHA 10A15 ; OtherLetter # Lo KHAROSHTHI LETTER CA 10A16 ; OtherLetter # Lo KHAROSHTHI LETTER CHA 10A17 ; OtherLetter # Lo KHAROSHTHI LETTER JA 10A19 ; OtherLetter # Lo KHAROSHTHI LETTER NYA 10A1A ; OtherLetter # Lo KHAROSHTHI LETTER TTA 10A1B ; OtherLetter # Lo KHAROSHTHI LETTER TTHA 10A1C ; OtherLetter # Lo KHAROSHTHI LETTER DDA 10A1D ; OtherLetter # Lo KHAROSHTHI LETTER DDHA 10A1E ; OtherLetter # Lo KHAROSHTHI LETTER NNA 10A1F ; OtherLetter # Lo KHAROSHTHI LETTER TA 10A20 ; OtherLetter # Lo KHAROSHTHI LETTER THA 10A21 ; OtherLetter # Lo KHAROSHTHI LETTER DA 10A22 ; OtherLetter # Lo KHAROSHTHI LETTER DHA 10A23 ; OtherLetter # Lo KHAROSHTHI LETTER NA 10A24 ; OtherLetter # Lo KHAROSHTHI LETTER PA 10A25 ; OtherLetter # Lo KHAROSHTHI LETTER PHA 10A26 ; OtherLetter # Lo KHAROSHTHI LETTER BA 10A27 ; OtherLetter # Lo KHAROSHTHI LETTER BHA 10A28 ; OtherLetter # Lo KHAROSHTHI LETTER MA 10A29 ; OtherLetter # Lo KHAROSHTHI LETTER YA 10A2A ; OtherLetter # Lo KHAROSHTHI LETTER RA 10A2B ; OtherLetter # Lo KHAROSHTHI LETTER LA 10A2C ; OtherLetter # Lo KHAROSHTHI LETTER VA 10A2D ; OtherLetter # Lo KHAROSHTHI LETTER SHA 10A2E ; OtherLetter # Lo KHAROSHTHI LETTER SSA 10A2F ; OtherLetter # Lo KHAROSHTHI LETTER SA 10A30 ; OtherLetter # Lo KHAROSHTHI LETTER ZA 10A31 ; OtherLetter # Lo KHAROSHTHI LETTER HA 10A32 ; OtherLetter # Lo KHAROSHTHI LETTER KKA 10A33 ; OtherLetter # Lo KHAROSHTHI LETTER TTTHA 10A3F ; Virama # Mn KHAROSHTHI VIRAMA 11083 ; OtherLetter # Lo KAITHI LETTER A 11084 ; OtherLetter # Lo KAITHI LETTER AA 11085 ; OtherLetter # Lo KAITHI LETTER I 11086 ; OtherLetter # Lo KAITHI LETTER II 11087 ; OtherLetter # Lo KAITHI LETTER U 11088 ; OtherLetter # Lo KAITHI LETTER UU 11089 ; OtherLetter # Lo KAITHI LETTER E 1108A ; OtherLetter # Lo KAITHI LETTER AI 1108B ; OtherLetter # Lo KAITHI LETTER O 1108C ; OtherLetter # Lo KAITHI LETTER AU 1108D ; OtherLetter # Lo KAITHI LETTER KA 1108E ; OtherLetter # Lo KAITHI LETTER KHA 1108F ; OtherLetter # Lo KAITHI LETTER GA 11090 ; OtherLetter # Lo KAITHI LETTER GHA 11091 ; OtherLetter # Lo KAITHI LETTER NGA 11092 ; OtherLetter # Lo KAITHI LETTER CA 11093 ; OtherLetter # Lo KAITHI LETTER CHA 11094 ; OtherLetter # Lo KAITHI LETTER JA 11095 ; OtherLetter # Lo KAITHI LETTER JHA 11096 ; OtherLetter # Lo KAITHI LETTER NYA 11097 ; OtherLetter # Lo KAITHI LETTER TTA 11098 ; OtherLetter # Lo KAITHI LETTER TTHA 11099 ; OtherLetter # Lo KAITHI LETTER DDA 1109A ; OtherLetter # Lo KAITHI LETTER DDDHA 1109B ; OtherLetter # Lo KAITHI LETTER DDHA 1109C ; OtherLetter # Lo KAITHI LETTER RHA 1109D ; OtherLetter # Lo KAITHI LETTER NNA 1109E ; OtherLetter # Lo KAITHI LETTER TA 1109F ; OtherLetter # Lo KAITHI LETTER THA 110A0 ; OtherLetter # Lo KAITHI LETTER DA 110A1 ; OtherLetter # Lo KAITHI LETTER DHA 110A2 ; OtherLetter # Lo KAITHI LETTER NA 110A3 ; OtherLetter # Lo KAITHI LETTER PA 110A4 ; OtherLetter # Lo KAITHI LETTER PHA 110A5 ; OtherLetter # Lo KAITHI LETTER BA 110A6 ; OtherLetter # Lo KAITHI LETTER BHA 110A7 ; OtherLetter # Lo KAITHI LETTER MA 110A8 ; OtherLetter # Lo KAITHI LETTER YA 110A9 ; OtherLetter # Lo KAITHI LETTER RA 110AA ; OtherLetter # Lo KAITHI LETTER LA 110AB ; OtherLetter # Lo KAITHI LETTER VA 110AC ; OtherLetter # Lo KAITHI LETTER SHA 110AD ; OtherLetter # Lo KAITHI LETTER SSA 110AE ; OtherLetter # Lo KAITHI LETTER SA 110AF ; OtherLetter # Lo KAITHI LETTER HA 110B9 ; Virama # Mn KAITHI SIGN VIRAMA sombok-2.3.1/data/GraphemeBreakProperty-6.1.0.custom0000664000076400007640000021476612221425417017031 000000000000000904 ; OtherLetter # Lo DEVANAGARI LETTER SHORT A 0905 ; OtherLetter # Lo DEVANAGARI LETTER A 0906 ; OtherLetter # Lo DEVANAGARI LETTER AA 0907 ; OtherLetter # Lo DEVANAGARI LETTER I 0908 ; OtherLetter # Lo DEVANAGARI LETTER II 0909 ; OtherLetter # Lo DEVANAGARI LETTER U 090A ; OtherLetter # Lo DEVANAGARI LETTER UU 090B ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC R 090C ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC L 090D ; OtherLetter # Lo DEVANAGARI LETTER CANDRA E 090E ; OtherLetter # Lo DEVANAGARI LETTER SHORT E 090F ; OtherLetter # Lo DEVANAGARI LETTER E 0910 ; OtherLetter # Lo DEVANAGARI LETTER AI 0911 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA O 0912 ; OtherLetter # Lo DEVANAGARI LETTER SHORT O 0913 ; OtherLetter # Lo DEVANAGARI LETTER O 0914 ; OtherLetter # Lo DEVANAGARI LETTER AU 0915 ; OtherLetter # Lo DEVANAGARI LETTER KA 0916 ; OtherLetter # Lo DEVANAGARI LETTER KHA 0917 ; OtherLetter # Lo DEVANAGARI LETTER GA 0918 ; OtherLetter # Lo DEVANAGARI LETTER GHA 0919 ; OtherLetter # Lo DEVANAGARI LETTER NGA 091A ; OtherLetter # Lo DEVANAGARI LETTER CA 091B ; OtherLetter # Lo DEVANAGARI LETTER CHA 091C ; OtherLetter # Lo DEVANAGARI LETTER JA 091D ; OtherLetter # Lo DEVANAGARI LETTER JHA 091E ; OtherLetter # Lo DEVANAGARI LETTER NYA 091F ; OtherLetter # Lo DEVANAGARI LETTER TTA 0920 ; OtherLetter # Lo DEVANAGARI LETTER TTHA 0921 ; OtherLetter # Lo DEVANAGARI LETTER DDA 0922 ; OtherLetter # Lo DEVANAGARI LETTER DDHA 0923 ; OtherLetter # Lo DEVANAGARI LETTER NNA 0924 ; OtherLetter # Lo DEVANAGARI LETTER TA 0925 ; OtherLetter # Lo DEVANAGARI LETTER THA 0926 ; OtherLetter # Lo DEVANAGARI LETTER DA 0927 ; OtherLetter # Lo DEVANAGARI LETTER DHA 0928 ; OtherLetter # Lo DEVANAGARI LETTER NA 0929 ; OtherLetter # Lo DEVANAGARI LETTER NNNA 092A ; OtherLetter # Lo DEVANAGARI LETTER PA 092B ; OtherLetter # Lo DEVANAGARI LETTER PHA 092C ; OtherLetter # Lo DEVANAGARI LETTER BA 092D ; OtherLetter # Lo DEVANAGARI LETTER BHA 092E ; OtherLetter # Lo DEVANAGARI LETTER MA 092F ; OtherLetter # Lo DEVANAGARI LETTER YA 0930 ; OtherLetter # Lo DEVANAGARI LETTER RA 0931 ; OtherLetter # Lo DEVANAGARI LETTER RRA 0932 ; OtherLetter # Lo DEVANAGARI LETTER LA 0933 ; OtherLetter # Lo DEVANAGARI LETTER LLA 0934 ; OtherLetter # Lo DEVANAGARI LETTER LLLA 0935 ; OtherLetter # Lo DEVANAGARI LETTER VA 0936 ; OtherLetter # Lo DEVANAGARI LETTER SHA 0937 ; OtherLetter # Lo DEVANAGARI LETTER SSA 0938 ; OtherLetter # Lo DEVANAGARI LETTER SA 0939 ; OtherLetter # Lo DEVANAGARI LETTER HA 093D ; OtherLetter # Lo DEVANAGARI SIGN AVAGRAHA 094D ; Virama # Mn DEVANAGARI SIGN VIRAMA 0950 ; OtherLetter # Lo DEVANAGARI OM 0958 ; OtherLetter # Lo DEVANAGARI LETTER QA 0959 ; OtherLetter # Lo DEVANAGARI LETTER KHHA 095A ; OtherLetter # Lo DEVANAGARI LETTER GHHA 095B ; OtherLetter # Lo DEVANAGARI LETTER ZA 095C ; OtherLetter # Lo DEVANAGARI LETTER DDDHA 095D ; OtherLetter # Lo DEVANAGARI LETTER RHA 095E ; OtherLetter # Lo DEVANAGARI LETTER FA 095F ; OtherLetter # Lo DEVANAGARI LETTER YYA 0960 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC RR 0961 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC LL 0971 ; OtherLetter # Lm DEVANAGARI SIGN HIGH SPACING DOT 0972 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA A 0973 ; OtherLetter # Lo DEVANAGARI LETTER OE 0974 ; OtherLetter # Lo DEVANAGARI LETTER OOE 0975 ; OtherLetter # Lo DEVANAGARI LETTER AW 0976 ; OtherLetter # Lo DEVANAGARI LETTER UE 0977 ; OtherLetter # Lo DEVANAGARI LETTER UUE 0979 ; OtherLetter # Lo DEVANAGARI LETTER ZHA 097A ; OtherLetter # Lo DEVANAGARI LETTER HEAVY YA 097B ; OtherLetter # Lo DEVANAGARI LETTER GGA 097C ; OtherLetter # Lo DEVANAGARI LETTER JJA 097D ; OtherLetter # Lo DEVANAGARI LETTER GLOTTAL STOP 097E ; OtherLetter # Lo DEVANAGARI LETTER DDDA 097F ; OtherLetter # Lo DEVANAGARI LETTER BBA 0985 ; OtherLetter # Lo BENGALI LETTER A 0986 ; OtherLetter # Lo BENGALI LETTER AA 0987 ; OtherLetter # Lo BENGALI LETTER I 0988 ; OtherLetter # Lo BENGALI LETTER II 0989 ; OtherLetter # Lo BENGALI LETTER U 098A ; OtherLetter # Lo BENGALI LETTER UU 098B ; OtherLetter # Lo BENGALI LETTER VOCALIC R 098C ; OtherLetter # Lo BENGALI LETTER VOCALIC L 098F ; OtherLetter # Lo BENGALI LETTER E 0990 ; OtherLetter # Lo BENGALI LETTER AI 0993 ; OtherLetter # Lo BENGALI LETTER O 0994 ; OtherLetter # Lo BENGALI LETTER AU 0995 ; OtherLetter # Lo BENGALI LETTER KA 0996 ; OtherLetter # Lo BENGALI LETTER KHA 0997 ; OtherLetter # Lo BENGALI LETTER GA 0998 ; OtherLetter # Lo BENGALI LETTER GHA 0999 ; OtherLetter # Lo BENGALI LETTER NGA 099A ; OtherLetter # Lo BENGALI LETTER CA 099B ; OtherLetter # Lo BENGALI LETTER CHA 099C ; OtherLetter # Lo BENGALI LETTER JA 099D ; OtherLetter # Lo BENGALI LETTER JHA 099E ; OtherLetter # Lo BENGALI LETTER NYA 099F ; OtherLetter # Lo BENGALI LETTER TTA 09A0 ; OtherLetter # Lo BENGALI LETTER TTHA 09A1 ; OtherLetter # Lo BENGALI LETTER DDA 09A2 ; OtherLetter # Lo BENGALI LETTER DDHA 09A3 ; OtherLetter # Lo BENGALI LETTER NNA 09A4 ; OtherLetter # Lo BENGALI LETTER TA 09A5 ; OtherLetter # Lo BENGALI LETTER THA 09A6 ; OtherLetter # Lo BENGALI LETTER DA 09A7 ; OtherLetter # Lo BENGALI LETTER DHA 09A8 ; OtherLetter # Lo BENGALI LETTER NA 09AA ; OtherLetter # Lo BENGALI LETTER PA 09AB ; OtherLetter # Lo BENGALI LETTER PHA 09AC ; OtherLetter # Lo BENGALI LETTER BA 09AD ; OtherLetter # Lo BENGALI LETTER BHA 09AE ; OtherLetter # Lo BENGALI LETTER MA 09AF ; OtherLetter # Lo BENGALI LETTER YA 09B0 ; OtherLetter # Lo BENGALI LETTER RA 09B2 ; OtherLetter # Lo BENGALI LETTER LA 09B6 ; OtherLetter # Lo BENGALI LETTER SHA 09B7 ; OtherLetter # Lo BENGALI LETTER SSA 09B8 ; OtherLetter # Lo BENGALI LETTER SA 09B9 ; OtherLetter # Lo BENGALI LETTER HA 09BD ; OtherLetter # Lo BENGALI SIGN AVAGRAHA 09CD ; Virama # Mn BENGALI SIGN VIRAMA 09CE ; OtherLetter # Lo BENGALI LETTER KHANDA TA 09DC ; OtherLetter # Lo BENGALI LETTER RRA 09DD ; OtherLetter # Lo BENGALI LETTER RHA 09DF ; OtherLetter # Lo BENGALI LETTER YYA 09E0 ; OtherLetter # Lo BENGALI LETTER VOCALIC RR 09E1 ; OtherLetter # Lo BENGALI LETTER VOCALIC LL 09F0 ; OtherLetter # Lo BENGALI LETTER RA WITH MIDDLE DIAGONAL 09F1 ; OtherLetter # Lo BENGALI LETTER RA WITH LOWER DIAGONAL 0A05 ; OtherLetter # Lo GURMUKHI LETTER A 0A06 ; OtherLetter # Lo GURMUKHI LETTER AA 0A07 ; OtherLetter # Lo GURMUKHI LETTER I 0A08 ; OtherLetter # Lo GURMUKHI LETTER II 0A09 ; OtherLetter # Lo GURMUKHI LETTER U 0A0A ; OtherLetter # Lo GURMUKHI LETTER UU 0A0F ; OtherLetter # Lo GURMUKHI LETTER EE 0A10 ; OtherLetter # Lo GURMUKHI LETTER AI 0A13 ; OtherLetter # Lo GURMUKHI LETTER OO 0A14 ; OtherLetter # Lo GURMUKHI LETTER AU 0A15 ; OtherLetter # Lo GURMUKHI LETTER KA 0A16 ; OtherLetter # Lo GURMUKHI LETTER KHA 0A17 ; OtherLetter # Lo GURMUKHI LETTER GA 0A18 ; OtherLetter # Lo GURMUKHI LETTER GHA 0A19 ; OtherLetter # Lo GURMUKHI LETTER NGA 0A1A ; OtherLetter # Lo GURMUKHI LETTER CA 0A1B ; OtherLetter # Lo GURMUKHI LETTER CHA 0A1C ; OtherLetter # Lo GURMUKHI LETTER JA 0A1D ; OtherLetter # Lo GURMUKHI LETTER JHA 0A1E ; OtherLetter # Lo GURMUKHI LETTER NYA 0A1F ; OtherLetter # Lo GURMUKHI LETTER TTA 0A20 ; OtherLetter # Lo GURMUKHI LETTER TTHA 0A21 ; OtherLetter # Lo GURMUKHI LETTER DDA 0A22 ; OtherLetter # Lo GURMUKHI LETTER DDHA 0A23 ; OtherLetter # Lo GURMUKHI LETTER NNA 0A24 ; OtherLetter # Lo GURMUKHI LETTER TA 0A25 ; OtherLetter # Lo GURMUKHI LETTER THA 0A26 ; OtherLetter # Lo GURMUKHI LETTER DA 0A27 ; OtherLetter # Lo GURMUKHI LETTER DHA 0A28 ; OtherLetter # Lo GURMUKHI LETTER NA 0A2A ; OtherLetter # Lo GURMUKHI LETTER PA 0A2B ; OtherLetter # Lo GURMUKHI LETTER PHA 0A2C ; OtherLetter # Lo GURMUKHI LETTER BA 0A2D ; OtherLetter # Lo GURMUKHI LETTER BHA 0A2E ; OtherLetter # Lo GURMUKHI LETTER MA 0A2F ; OtherLetter # Lo GURMUKHI LETTER YA 0A30 ; OtherLetter # Lo GURMUKHI LETTER RA 0A32 ; OtherLetter # Lo GURMUKHI LETTER LA 0A33 ; OtherLetter # Lo GURMUKHI LETTER LLA 0A35 ; OtherLetter # Lo GURMUKHI LETTER VA 0A36 ; OtherLetter # Lo GURMUKHI LETTER SHA 0A38 ; OtherLetter # Lo GURMUKHI LETTER SA 0A39 ; OtherLetter # Lo GURMUKHI LETTER HA 0A4D ; Virama # Mn GURMUKHI SIGN VIRAMA 0A59 ; OtherLetter # Lo GURMUKHI LETTER KHHA 0A5A ; OtherLetter # Lo GURMUKHI LETTER GHHA 0A5B ; OtherLetter # Lo GURMUKHI LETTER ZA 0A5C ; OtherLetter # Lo GURMUKHI LETTER RRA 0A5E ; OtherLetter # Lo GURMUKHI LETTER FA 0A72 ; OtherLetter # Lo GURMUKHI IRI 0A73 ; OtherLetter # Lo GURMUKHI URA 0A74 ; OtherLetter # Lo GURMUKHI EK ONKAR 0A85 ; OtherLetter # Lo GUJARATI LETTER A 0A86 ; OtherLetter # Lo GUJARATI LETTER AA 0A87 ; OtherLetter # Lo GUJARATI LETTER I 0A88 ; OtherLetter # Lo GUJARATI LETTER II 0A89 ; OtherLetter # Lo GUJARATI LETTER U 0A8A ; OtherLetter # Lo GUJARATI LETTER UU 0A8B ; OtherLetter # Lo GUJARATI LETTER VOCALIC R 0A8C ; OtherLetter # Lo GUJARATI LETTER VOCALIC L 0A8D ; OtherLetter # Lo GUJARATI VOWEL CANDRA E 0A8F ; OtherLetter # Lo GUJARATI LETTER E 0A90 ; OtherLetter # Lo GUJARATI LETTER AI 0A91 ; OtherLetter # Lo GUJARATI VOWEL CANDRA O 0A93 ; OtherLetter # Lo GUJARATI LETTER O 0A94 ; OtherLetter # Lo GUJARATI LETTER AU 0A95 ; OtherLetter # Lo GUJARATI LETTER KA 0A96 ; OtherLetter # Lo GUJARATI LETTER KHA 0A97 ; OtherLetter # Lo GUJARATI LETTER GA 0A98 ; OtherLetter # Lo GUJARATI LETTER GHA 0A99 ; OtherLetter # Lo GUJARATI LETTER NGA 0A9A ; OtherLetter # Lo GUJARATI LETTER CA 0A9B ; OtherLetter # Lo GUJARATI LETTER CHA 0A9C ; OtherLetter # Lo GUJARATI LETTER JA 0A9D ; OtherLetter # Lo GUJARATI LETTER JHA 0A9E ; OtherLetter # Lo GUJARATI LETTER NYA 0A9F ; OtherLetter # Lo GUJARATI LETTER TTA 0AA0 ; OtherLetter # Lo GUJARATI LETTER TTHA 0AA1 ; OtherLetter # Lo GUJARATI LETTER DDA 0AA2 ; OtherLetter # Lo GUJARATI LETTER DDHA 0AA3 ; OtherLetter # Lo GUJARATI LETTER NNA 0AA4 ; OtherLetter # Lo GUJARATI LETTER TA 0AA5 ; OtherLetter # Lo GUJARATI LETTER THA 0AA6 ; OtherLetter # Lo GUJARATI LETTER DA 0AA7 ; OtherLetter # Lo GUJARATI LETTER DHA 0AA8 ; OtherLetter # Lo GUJARATI LETTER NA 0AAA ; OtherLetter # Lo GUJARATI LETTER PA 0AAB ; OtherLetter # Lo GUJARATI LETTER PHA 0AAC ; OtherLetter # Lo GUJARATI LETTER BA 0AAD ; OtherLetter # Lo GUJARATI LETTER BHA 0AAE ; OtherLetter # Lo GUJARATI LETTER MA 0AAF ; OtherLetter # Lo GUJARATI LETTER YA 0AB0 ; OtherLetter # Lo GUJARATI LETTER RA 0AB2 ; OtherLetter # Lo GUJARATI LETTER LA 0AB3 ; OtherLetter # Lo GUJARATI LETTER LLA 0AB5 ; OtherLetter # Lo GUJARATI LETTER VA 0AB6 ; OtherLetter # Lo GUJARATI LETTER SHA 0AB7 ; OtherLetter # Lo GUJARATI LETTER SSA 0AB8 ; OtherLetter # Lo GUJARATI LETTER SA 0AB9 ; OtherLetter # Lo GUJARATI LETTER HA 0ABD ; OtherLetter # Lo GUJARATI SIGN AVAGRAHA 0ACD ; Virama # Mn GUJARATI SIGN VIRAMA 0AD0 ; OtherLetter # Lo GUJARATI OM 0AE0 ; OtherLetter # Lo GUJARATI LETTER VOCALIC RR 0AE1 ; OtherLetter # Lo GUJARATI LETTER VOCALIC LL 0B05 ; OtherLetter # Lo ORIYA LETTER A 0B06 ; OtherLetter # Lo ORIYA LETTER AA 0B07 ; OtherLetter # Lo ORIYA LETTER I 0B08 ; OtherLetter # Lo ORIYA LETTER II 0B09 ; OtherLetter # Lo ORIYA LETTER U 0B0A ; OtherLetter # Lo ORIYA LETTER UU 0B0B ; OtherLetter # Lo ORIYA LETTER VOCALIC R 0B0C ; OtherLetter # Lo ORIYA LETTER VOCALIC L 0B0F ; OtherLetter # Lo ORIYA LETTER E 0B10 ; OtherLetter # Lo ORIYA LETTER AI 0B13 ; OtherLetter # Lo ORIYA LETTER O 0B14 ; OtherLetter # Lo ORIYA LETTER AU 0B15 ; OtherLetter # Lo ORIYA LETTER KA 0B16 ; OtherLetter # Lo ORIYA LETTER KHA 0B17 ; OtherLetter # Lo ORIYA LETTER GA 0B18 ; OtherLetter # Lo ORIYA LETTER GHA 0B19 ; OtherLetter # Lo ORIYA LETTER NGA 0B1A ; OtherLetter # Lo ORIYA LETTER CA 0B1B ; OtherLetter # Lo ORIYA LETTER CHA 0B1C ; OtherLetter # Lo ORIYA LETTER JA 0B1D ; OtherLetter # Lo ORIYA LETTER JHA 0B1E ; OtherLetter # Lo ORIYA LETTER NYA 0B1F ; OtherLetter # Lo ORIYA LETTER TTA 0B20 ; OtherLetter # Lo ORIYA LETTER TTHA 0B21 ; OtherLetter # Lo ORIYA LETTER DDA 0B22 ; OtherLetter # Lo ORIYA LETTER DDHA 0B23 ; OtherLetter # Lo ORIYA LETTER NNA 0B24 ; OtherLetter # Lo ORIYA LETTER TA 0B25 ; OtherLetter # Lo ORIYA LETTER THA 0B26 ; OtherLetter # Lo ORIYA LETTER DA 0B27 ; OtherLetter # Lo ORIYA LETTER DHA 0B28 ; OtherLetter # Lo ORIYA LETTER NA 0B2A ; OtherLetter # Lo ORIYA LETTER PA 0B2B ; OtherLetter # Lo ORIYA LETTER PHA 0B2C ; OtherLetter # Lo ORIYA LETTER BA 0B2D ; OtherLetter # Lo ORIYA LETTER BHA 0B2E ; OtherLetter # Lo ORIYA LETTER MA 0B2F ; OtherLetter # Lo ORIYA LETTER YA 0B30 ; OtherLetter # Lo ORIYA LETTER RA 0B32 ; OtherLetter # Lo ORIYA LETTER LA 0B33 ; OtherLetter # Lo ORIYA LETTER LLA 0B35 ; OtherLetter # Lo ORIYA LETTER VA 0B36 ; OtherLetter # Lo ORIYA LETTER SHA 0B37 ; OtherLetter # Lo ORIYA LETTER SSA 0B38 ; OtherLetter # Lo ORIYA LETTER SA 0B39 ; OtherLetter # Lo ORIYA LETTER HA 0B3D ; OtherLetter # Lo ORIYA SIGN AVAGRAHA 0B4D ; Virama # Mn ORIYA SIGN VIRAMA 0B5C ; OtherLetter # Lo ORIYA LETTER RRA 0B5D ; OtherLetter # Lo ORIYA LETTER RHA 0B5F ; OtherLetter # Lo ORIYA LETTER YYA 0B60 ; OtherLetter # Lo ORIYA LETTER VOCALIC RR 0B61 ; OtherLetter # Lo ORIYA LETTER VOCALIC LL 0B71 ; OtherLetter # Lo ORIYA LETTER WA 0B83 ; OtherLetter # Lo TAMIL SIGN VISARGA 0B85 ; OtherLetter # Lo TAMIL LETTER A 0B86 ; OtherLetter # Lo TAMIL LETTER AA 0B87 ; OtherLetter # Lo TAMIL LETTER I 0B88 ; OtherLetter # Lo TAMIL LETTER II 0B89 ; OtherLetter # Lo TAMIL LETTER U 0B8A ; OtherLetter # Lo TAMIL LETTER UU 0B8E ; OtherLetter # Lo TAMIL LETTER E 0B8F ; OtherLetter # Lo TAMIL LETTER EE 0B90 ; OtherLetter # Lo TAMIL LETTER AI 0B92 ; OtherLetter # Lo TAMIL LETTER O 0B93 ; OtherLetter # Lo TAMIL LETTER OO 0B94 ; OtherLetter # Lo TAMIL LETTER AU 0B95 ; OtherLetter # Lo TAMIL LETTER KA 0B99 ; OtherLetter # Lo TAMIL LETTER NGA 0B9A ; OtherLetter # Lo TAMIL LETTER CA 0B9C ; OtherLetter # Lo TAMIL LETTER JA 0B9E ; OtherLetter # Lo TAMIL LETTER NYA 0B9F ; OtherLetter # Lo TAMIL LETTER TTA 0BA3 ; OtherLetter # Lo TAMIL LETTER NNA 0BA4 ; OtherLetter # Lo TAMIL LETTER TA 0BA8 ; OtherLetter # Lo TAMIL LETTER NA 0BA9 ; OtherLetter # Lo TAMIL LETTER NNNA 0BAA ; OtherLetter # Lo TAMIL LETTER PA 0BAE ; OtherLetter # Lo TAMIL LETTER MA 0BAF ; OtherLetter # Lo TAMIL LETTER YA 0BB0 ; OtherLetter # Lo TAMIL LETTER RA 0BB1 ; OtherLetter # Lo TAMIL LETTER RRA 0BB2 ; OtherLetter # Lo TAMIL LETTER LA 0BB3 ; OtherLetter # Lo TAMIL LETTER LLA 0BB4 ; OtherLetter # Lo TAMIL LETTER LLLA 0BB5 ; OtherLetter # Lo TAMIL LETTER VA 0BB6 ; OtherLetter # Lo TAMIL LETTER SHA 0BB7 ; OtherLetter # Lo TAMIL LETTER SSA 0BB8 ; OtherLetter # Lo TAMIL LETTER SA 0BB9 ; OtherLetter # Lo TAMIL LETTER HA 0BCD ; Virama # Mn TAMIL SIGN VIRAMA 0BD0 ; OtherLetter # Lo TAMIL OM 0C05 ; OtherLetter # Lo TELUGU LETTER A 0C06 ; OtherLetter # Lo TELUGU LETTER AA 0C07 ; OtherLetter # Lo TELUGU LETTER I 0C08 ; OtherLetter # Lo TELUGU LETTER II 0C09 ; OtherLetter # Lo TELUGU LETTER U 0C0A ; OtherLetter # Lo TELUGU LETTER UU 0C0B ; OtherLetter # Lo TELUGU LETTER VOCALIC R 0C0C ; OtherLetter # Lo TELUGU LETTER VOCALIC L 0C0E ; OtherLetter # Lo TELUGU LETTER E 0C0F ; OtherLetter # Lo TELUGU LETTER EE 0C10 ; OtherLetter # Lo TELUGU LETTER AI 0C12 ; OtherLetter # Lo TELUGU LETTER O 0C13 ; OtherLetter # Lo TELUGU LETTER OO 0C14 ; OtherLetter # Lo TELUGU LETTER AU 0C15 ; OtherLetter # Lo TELUGU LETTER KA 0C16 ; OtherLetter # Lo TELUGU LETTER KHA 0C17 ; OtherLetter # Lo TELUGU LETTER GA 0C18 ; OtherLetter # Lo TELUGU LETTER GHA 0C19 ; OtherLetter # Lo TELUGU LETTER NGA 0C1A ; OtherLetter # Lo TELUGU LETTER CA 0C1B ; OtherLetter # Lo TELUGU LETTER CHA 0C1C ; OtherLetter # Lo TELUGU LETTER JA 0C1D ; OtherLetter # Lo TELUGU LETTER JHA 0C1E ; OtherLetter # Lo TELUGU LETTER NYA 0C1F ; OtherLetter # Lo TELUGU LETTER TTA 0C20 ; OtherLetter # Lo TELUGU LETTER TTHA 0C21 ; OtherLetter # Lo TELUGU LETTER DDA 0C22 ; OtherLetter # Lo TELUGU LETTER DDHA 0C23 ; OtherLetter # Lo TELUGU LETTER NNA 0C24 ; OtherLetter # Lo TELUGU LETTER TA 0C25 ; OtherLetter # Lo TELUGU LETTER THA 0C26 ; OtherLetter # Lo TELUGU LETTER DA 0C27 ; OtherLetter # Lo TELUGU LETTER DHA 0C28 ; OtherLetter # Lo TELUGU LETTER NA 0C2A ; OtherLetter # Lo TELUGU LETTER PA 0C2B ; OtherLetter # Lo TELUGU LETTER PHA 0C2C ; OtherLetter # Lo TELUGU LETTER BA 0C2D ; OtherLetter # Lo TELUGU LETTER BHA 0C2E ; OtherLetter # Lo TELUGU LETTER MA 0C2F ; OtherLetter # Lo TELUGU LETTER YA 0C30 ; OtherLetter # Lo TELUGU LETTER RA 0C31 ; OtherLetter # Lo TELUGU LETTER RRA 0C32 ; OtherLetter # Lo TELUGU LETTER LA 0C33 ; OtherLetter # Lo TELUGU LETTER LLA 0C35 ; OtherLetter # Lo TELUGU LETTER VA 0C36 ; OtherLetter # Lo TELUGU LETTER SHA 0C37 ; OtherLetter # Lo TELUGU LETTER SSA 0C38 ; OtherLetter # Lo TELUGU LETTER SA 0C39 ; OtherLetter # Lo TELUGU LETTER HA 0C3D ; OtherLetter # Lo TELUGU SIGN AVAGRAHA 0C4D ; Virama # Mn TELUGU SIGN VIRAMA 0C58 ; OtherLetter # Lo TELUGU LETTER TSA 0C59 ; OtherLetter # Lo TELUGU LETTER DZA 0C60 ; OtherLetter # Lo TELUGU LETTER VOCALIC RR 0C61 ; OtherLetter # Lo TELUGU LETTER VOCALIC LL 0C85 ; OtherLetter # Lo KANNADA LETTER A 0C86 ; OtherLetter # Lo KANNADA LETTER AA 0C87 ; OtherLetter # Lo KANNADA LETTER I 0C88 ; OtherLetter # Lo KANNADA LETTER II 0C89 ; OtherLetter # Lo KANNADA LETTER U 0C8A ; OtherLetter # Lo KANNADA LETTER UU 0C8B ; OtherLetter # Lo KANNADA LETTER VOCALIC R 0C8C ; OtherLetter # Lo KANNADA LETTER VOCALIC L 0C8E ; OtherLetter # Lo KANNADA LETTER E 0C8F ; OtherLetter # Lo KANNADA LETTER EE 0C90 ; OtherLetter # Lo KANNADA LETTER AI 0C92 ; OtherLetter # Lo KANNADA LETTER O 0C93 ; OtherLetter # Lo KANNADA LETTER OO 0C94 ; OtherLetter # Lo KANNADA LETTER AU 0C95 ; OtherLetter # Lo KANNADA LETTER KA 0C96 ; OtherLetter # Lo KANNADA LETTER KHA 0C97 ; OtherLetter # Lo KANNADA LETTER GA 0C98 ; OtherLetter # Lo KANNADA LETTER GHA 0C99 ; OtherLetter # Lo KANNADA LETTER NGA 0C9A ; OtherLetter # Lo KANNADA LETTER CA 0C9B ; OtherLetter # Lo KANNADA LETTER CHA 0C9C ; OtherLetter # Lo KANNADA LETTER JA 0C9D ; OtherLetter # Lo KANNADA LETTER JHA 0C9E ; OtherLetter # Lo KANNADA LETTER NYA 0C9F ; OtherLetter # Lo KANNADA LETTER TTA 0CA0 ; OtherLetter # Lo KANNADA LETTER TTHA 0CA1 ; OtherLetter # Lo KANNADA LETTER DDA 0CA2 ; OtherLetter # Lo KANNADA LETTER DDHA 0CA3 ; OtherLetter # Lo KANNADA LETTER NNA 0CA4 ; OtherLetter # Lo KANNADA LETTER TA 0CA5 ; OtherLetter # Lo KANNADA LETTER THA 0CA6 ; OtherLetter # Lo KANNADA LETTER DA 0CA7 ; OtherLetter # Lo KANNADA LETTER DHA 0CA8 ; OtherLetter # Lo KANNADA LETTER NA 0CAA ; OtherLetter # Lo KANNADA LETTER PA 0CAB ; OtherLetter # Lo KANNADA LETTER PHA 0CAC ; OtherLetter # Lo KANNADA LETTER BA 0CAD ; OtherLetter # Lo KANNADA LETTER BHA 0CAE ; OtherLetter # Lo KANNADA LETTER MA 0CAF ; OtherLetter # Lo KANNADA LETTER YA 0CB0 ; OtherLetter # Lo KANNADA LETTER RA 0CB1 ; OtherLetter # Lo KANNADA LETTER RRA 0CB2 ; OtherLetter # Lo KANNADA LETTER LA 0CB3 ; OtherLetter # Lo KANNADA LETTER LLA 0CB5 ; OtherLetter # Lo KANNADA LETTER VA 0CB6 ; OtherLetter # Lo KANNADA LETTER SHA 0CB7 ; OtherLetter # Lo KANNADA LETTER SSA 0CB8 ; OtherLetter # Lo KANNADA LETTER SA 0CB9 ; OtherLetter # Lo KANNADA LETTER HA 0CBD ; OtherLetter # Lo KANNADA SIGN AVAGRAHA 0CCD ; Virama # Mn KANNADA SIGN VIRAMA 0CDE ; OtherLetter # Lo KANNADA LETTER FA 0CE0 ; OtherLetter # Lo KANNADA LETTER VOCALIC RR 0CE1 ; OtherLetter # Lo KANNADA LETTER VOCALIC LL 0CF1 ; OtherLetter # Lo KANNADA SIGN JIHVAMULIYA 0CF2 ; OtherLetter # Lo KANNADA SIGN UPADHMANIYA 0D05 ; OtherLetter # Lo MALAYALAM LETTER A 0D06 ; OtherLetter # Lo MALAYALAM LETTER AA 0D07 ; OtherLetter # Lo MALAYALAM LETTER I 0D08 ; OtherLetter # Lo MALAYALAM LETTER II 0D09 ; OtherLetter # Lo MALAYALAM LETTER U 0D0A ; OtherLetter # Lo MALAYALAM LETTER UU 0D0B ; OtherLetter # Lo MALAYALAM LETTER VOCALIC R 0D0C ; OtherLetter # Lo MALAYALAM LETTER VOCALIC L 0D0E ; OtherLetter # Lo MALAYALAM LETTER E 0D0F ; OtherLetter # Lo MALAYALAM LETTER EE 0D10 ; OtherLetter # Lo MALAYALAM LETTER AI 0D12 ; OtherLetter # Lo MALAYALAM LETTER O 0D13 ; OtherLetter # Lo MALAYALAM LETTER OO 0D14 ; OtherLetter # Lo MALAYALAM LETTER AU 0D15 ; OtherLetter # Lo MALAYALAM LETTER KA 0D16 ; OtherLetter # Lo MALAYALAM LETTER KHA 0D17 ; OtherLetter # Lo MALAYALAM LETTER GA 0D18 ; OtherLetter # Lo MALAYALAM LETTER GHA 0D19 ; OtherLetter # Lo MALAYALAM LETTER NGA 0D1A ; OtherLetter # Lo MALAYALAM LETTER CA 0D1B ; OtherLetter # Lo MALAYALAM LETTER CHA 0D1C ; OtherLetter # Lo MALAYALAM LETTER JA 0D1D ; OtherLetter # Lo MALAYALAM LETTER JHA 0D1E ; OtherLetter # Lo MALAYALAM LETTER NYA 0D1F ; OtherLetter # Lo MALAYALAM LETTER TTA 0D20 ; OtherLetter # Lo MALAYALAM LETTER TTHA 0D21 ; OtherLetter # Lo MALAYALAM LETTER DDA 0D22 ; OtherLetter # Lo MALAYALAM LETTER DDHA 0D23 ; OtherLetter # Lo MALAYALAM LETTER NNA 0D24 ; OtherLetter # Lo MALAYALAM LETTER TA 0D25 ; OtherLetter # Lo MALAYALAM LETTER THA 0D26 ; OtherLetter # Lo MALAYALAM LETTER DA 0D27 ; OtherLetter # Lo MALAYALAM LETTER DHA 0D28 ; OtherLetter # Lo MALAYALAM LETTER NA 0D29 ; OtherLetter # Lo MALAYALAM LETTER NNNA 0D2A ; OtherLetter # Lo MALAYALAM LETTER PA 0D2B ; OtherLetter # Lo MALAYALAM LETTER PHA 0D2C ; OtherLetter # Lo MALAYALAM LETTER BA 0D2D ; OtherLetter # Lo MALAYALAM LETTER BHA 0D2E ; OtherLetter # Lo MALAYALAM LETTER MA 0D2F ; OtherLetter # Lo MALAYALAM LETTER YA 0D30 ; OtherLetter # Lo MALAYALAM LETTER RA 0D31 ; OtherLetter # Lo MALAYALAM LETTER RRA 0D32 ; OtherLetter # Lo MALAYALAM LETTER LA 0D33 ; OtherLetter # Lo MALAYALAM LETTER LLA 0D34 ; OtherLetter # Lo MALAYALAM LETTER LLLA 0D35 ; OtherLetter # Lo MALAYALAM LETTER VA 0D36 ; OtherLetter # Lo MALAYALAM LETTER SHA 0D37 ; OtherLetter # Lo MALAYALAM LETTER SSA 0D38 ; OtherLetter # Lo MALAYALAM LETTER SA 0D39 ; OtherLetter # Lo MALAYALAM LETTER HA 0D3A ; OtherLetter # Lo MALAYALAM LETTER TTTA 0D3D ; OtherLetter # Lo MALAYALAM SIGN AVAGRAHA 0D4D ; Virama # Mn MALAYALAM SIGN VIRAMA 0D4E ; OtherLetter # Lo MALAYALAM LETTER DOT REPH 0D60 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC RR 0D61 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC LL 0D7A ; OtherLetter # Lo MALAYALAM LETTER CHILLU NN 0D7B ; OtherLetter # Lo MALAYALAM LETTER CHILLU N 0D7C ; OtherLetter # Lo MALAYALAM LETTER CHILLU RR 0D7D ; OtherLetter # Lo MALAYALAM LETTER CHILLU L 0D7E ; OtherLetter # Lo MALAYALAM LETTER CHILLU LL 0D7F ; OtherLetter # Lo MALAYALAM LETTER CHILLU K 0D85 ; OtherLetter # Lo SINHALA LETTER AYANNA 0D86 ; OtherLetter # Lo SINHALA LETTER AAYANNA 0D87 ; OtherLetter # Lo SINHALA LETTER AEYANNA 0D88 ; OtherLetter # Lo SINHALA LETTER AEEYANNA 0D89 ; OtherLetter # Lo SINHALA LETTER IYANNA 0D8A ; OtherLetter # Lo SINHALA LETTER IIYANNA 0D8B ; OtherLetter # Lo SINHALA LETTER UYANNA 0D8C ; OtherLetter # Lo SINHALA LETTER UUYANNA 0D8D ; OtherLetter # Lo SINHALA LETTER IRUYANNA 0D8E ; OtherLetter # Lo SINHALA LETTER IRUUYANNA 0D8F ; OtherLetter # Lo SINHALA LETTER ILUYANNA 0D90 ; OtherLetter # Lo SINHALA LETTER ILUUYANNA 0D91 ; OtherLetter # Lo SINHALA LETTER EYANNA 0D92 ; OtherLetter # Lo SINHALA LETTER EEYANNA 0D93 ; OtherLetter # Lo SINHALA LETTER AIYANNA 0D94 ; OtherLetter # Lo SINHALA LETTER OYANNA 0D95 ; OtherLetter # Lo SINHALA LETTER OOYANNA 0D96 ; OtherLetter # Lo SINHALA LETTER AUYANNA 0D9A ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA KAYANNA 0D9B ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA KAYANNA 0D9C ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA GAYANNA 0D9D ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA GAYANNA 0D9E ; OtherLetter # Lo SINHALA LETTER KANTAJA NAASIKYAYA 0D9F ; OtherLetter # Lo SINHALA LETTER SANYAKA GAYANNA 0DA0 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA CAYANNA 0DA1 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA CAYANNA 0DA2 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA JAYANNA 0DA3 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA JAYANNA 0DA4 ; OtherLetter # Lo SINHALA LETTER TAALUJA NAASIKYAYA 0DA5 ; OtherLetter # Lo SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA 0DA6 ; OtherLetter # Lo SINHALA LETTER SANYAKA JAYANNA 0DA7 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TTAYANNA 0DA8 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TTAYANNA 0DA9 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DDAYANNA 0DAA ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DDAYANNA 0DAB ; OtherLetter # Lo SINHALA LETTER MUURDHAJA NAYANNA 0DAC ; OtherLetter # Lo SINHALA LETTER SANYAKA DDAYANNA 0DAD ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TAYANNA 0DAE ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TAYANNA 0DAF ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DAYANNA 0DB0 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DAYANNA 0DB1 ; OtherLetter # Lo SINHALA LETTER DANTAJA NAYANNA 0DB3 ; OtherLetter # Lo SINHALA LETTER SANYAKA DAYANNA 0DB4 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA PAYANNA 0DB5 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA PAYANNA 0DB6 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA BAYANNA 0DB7 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA BAYANNA 0DB8 ; OtherLetter # Lo SINHALA LETTER MAYANNA 0DB9 ; OtherLetter # Lo SINHALA LETTER AMBA BAYANNA 0DBA ; OtherLetter # Lo SINHALA LETTER YAYANNA 0DBB ; OtherLetter # Lo SINHALA LETTER RAYANNA 0DBD ; OtherLetter # Lo SINHALA LETTER DANTAJA LAYANNA 0DC0 ; OtherLetter # Lo SINHALA LETTER VAYANNA 0DC1 ; OtherLetter # Lo SINHALA LETTER TAALUJA SAYANNA 0DC2 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA SAYANNA 0DC3 ; OtherLetter # Lo SINHALA LETTER DANTAJA SAYANNA 0DC4 ; OtherLetter # Lo SINHALA LETTER HAYANNA 0DC5 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA LAYANNA 0DC6 ; OtherLetter # Lo SINHALA LETTER FAYANNA 0DCA ; Virama # Mn SINHALA SIGN AL-LAKUNA 0E01 ; OtherLetter # Lo THAI CHARACTER KO KAI 0E02 ; OtherLetter # Lo THAI CHARACTER KHO KHAI 0E03 ; OtherLetter # Lo THAI CHARACTER KHO KHUAT 0E04 ; OtherLetter # Lo THAI CHARACTER KHO KHWAI 0E05 ; OtherLetter # Lo THAI CHARACTER KHO KHON 0E06 ; OtherLetter # Lo THAI CHARACTER KHO RAKHANG 0E07 ; OtherLetter # Lo THAI CHARACTER NGO NGU 0E08 ; OtherLetter # Lo THAI CHARACTER CHO CHAN 0E09 ; OtherLetter # Lo THAI CHARACTER CHO CHING 0E0A ; OtherLetter # Lo THAI CHARACTER CHO CHANG 0E0B ; OtherLetter # Lo THAI CHARACTER SO SO 0E0C ; OtherLetter # Lo THAI CHARACTER CHO CHOE 0E0D ; OtherLetter # Lo THAI CHARACTER YO YING 0E0E ; OtherLetter # Lo THAI CHARACTER DO CHADA 0E0F ; OtherLetter # Lo THAI CHARACTER TO PATAK 0E10 ; OtherLetter # Lo THAI CHARACTER THO THAN 0E11 ; OtherLetter # Lo THAI CHARACTER THO NANGMONTHO 0E12 ; OtherLetter # Lo THAI CHARACTER THO PHUTHAO 0E13 ; OtherLetter # Lo THAI CHARACTER NO NEN 0E14 ; OtherLetter # Lo THAI CHARACTER DO DEK 0E15 ; OtherLetter # Lo THAI CHARACTER TO TAO 0E16 ; OtherLetter # Lo THAI CHARACTER THO THUNG 0E17 ; OtherLetter # Lo THAI CHARACTER THO THAHAN 0E18 ; OtherLetter # Lo THAI CHARACTER THO THONG 0E19 ; OtherLetter # Lo THAI CHARACTER NO NU 0E1A ; OtherLetter # Lo THAI CHARACTER BO BAIMAI 0E1B ; OtherLetter # Lo THAI CHARACTER PO PLA 0E1C ; OtherLetter # Lo THAI CHARACTER PHO PHUNG 0E1D ; OtherLetter # Lo THAI CHARACTER FO FA 0E1E ; OtherLetter # Lo THAI CHARACTER PHO PHAN 0E1F ; OtherLetter # Lo THAI CHARACTER FO FAN 0E20 ; OtherLetter # Lo THAI CHARACTER PHO SAMPHAO 0E21 ; OtherLetter # Lo THAI CHARACTER MO MA 0E22 ; OtherLetter # Lo THAI CHARACTER YO YAK 0E23 ; OtherLetter # Lo THAI CHARACTER RO RUA 0E24 ; OtherLetter # Lo THAI CHARACTER RU 0E25 ; OtherLetter # Lo THAI CHARACTER LO LING 0E26 ; OtherLetter # Lo THAI CHARACTER LU 0E27 ; OtherLetter # Lo THAI CHARACTER WO WAEN 0E28 ; OtherLetter # Lo THAI CHARACTER SO SALA 0E29 ; OtherLetter # Lo THAI CHARACTER SO RUSI 0E2A ; OtherLetter # Lo THAI CHARACTER SO SUA 0E2B ; OtherLetter # Lo THAI CHARACTER HO HIP 0E2C ; OtherLetter # Lo THAI CHARACTER LO CHULA 0E2D ; OtherLetter # Lo THAI CHARACTER O ANG 0E2E ; OtherLetter # Lo THAI CHARACTER HO NOKHUK 0E2F ; OtherLetter # Lo THAI CHARACTER PAIYANNOI 0E30 ; OtherLetter # Lo THAI CHARACTER SARA A 0E32 ; OtherLetter # Lo THAI CHARACTER SARA AA 0E3A ; Virama # Mn THAI CHARACTER PHINTHU 0E40 ; OtherLetter # Lo THAI CHARACTER SARA E 0E41 ; OtherLetter # Lo THAI CHARACTER SARA AE 0E42 ; OtherLetter # Lo THAI CHARACTER SARA O 0E43 ; OtherLetter # Lo THAI CHARACTER SARA AI MAIMUAN 0E44 ; OtherLetter # Lo THAI CHARACTER SARA AI MAIMALAI 0E45 ; OtherLetter # Lo THAI CHARACTER LAKKHANGYAO 0E46 ; OtherLetter # Lm THAI CHARACTER MAIYAMOK 0F00 ; OtherLetter # Lo TIBETAN SYLLABLE OM 0F40 ; OtherLetter # Lo TIBETAN LETTER KA 0F41 ; OtherLetter # Lo TIBETAN LETTER KHA 0F42 ; OtherLetter # Lo TIBETAN LETTER GA 0F43 ; OtherLetter # Lo TIBETAN LETTER GHA 0F44 ; OtherLetter # Lo TIBETAN LETTER NGA 0F45 ; OtherLetter # Lo TIBETAN LETTER CA 0F46 ; OtherLetter # Lo TIBETAN LETTER CHA 0F47 ; OtherLetter # Lo TIBETAN LETTER JA 0F49 ; OtherLetter # Lo TIBETAN LETTER NYA 0F4A ; OtherLetter # Lo TIBETAN LETTER TTA 0F4B ; OtherLetter # Lo TIBETAN LETTER TTHA 0F4C ; OtherLetter # Lo TIBETAN LETTER DDA 0F4D ; OtherLetter # Lo TIBETAN LETTER DDHA 0F4E ; OtherLetter # Lo TIBETAN LETTER NNA 0F4F ; OtherLetter # Lo TIBETAN LETTER TA 0F50 ; OtherLetter # Lo TIBETAN LETTER THA 0F51 ; OtherLetter # Lo TIBETAN LETTER DA 0F52 ; OtherLetter # Lo TIBETAN LETTER DHA 0F53 ; OtherLetter # Lo TIBETAN LETTER NA 0F54 ; OtherLetter # Lo TIBETAN LETTER PA 0F55 ; OtherLetter # Lo TIBETAN LETTER PHA 0F56 ; OtherLetter # Lo TIBETAN LETTER BA 0F57 ; OtherLetter # Lo TIBETAN LETTER BHA 0F58 ; OtherLetter # Lo TIBETAN LETTER MA 0F59 ; OtherLetter # Lo TIBETAN LETTER TSA 0F5A ; OtherLetter # Lo TIBETAN LETTER TSHA 0F5B ; OtherLetter # Lo TIBETAN LETTER DZA 0F5C ; OtherLetter # Lo TIBETAN LETTER DZHA 0F5D ; OtherLetter # Lo TIBETAN LETTER WA 0F5E ; OtherLetter # Lo TIBETAN LETTER ZHA 0F5F ; OtherLetter # Lo TIBETAN LETTER ZA 0F60 ; OtherLetter # Lo TIBETAN LETTER -A 0F61 ; OtherLetter # Lo TIBETAN LETTER YA 0F62 ; OtherLetter # Lo TIBETAN LETTER RA 0F63 ; OtherLetter # Lo TIBETAN LETTER LA 0F64 ; OtherLetter # Lo TIBETAN LETTER SHA 0F65 ; OtherLetter # Lo TIBETAN LETTER SSA 0F66 ; OtherLetter # Lo TIBETAN LETTER SA 0F67 ; OtherLetter # Lo TIBETAN LETTER HA 0F68 ; OtherLetter # Lo TIBETAN LETTER A 0F69 ; OtherLetter # Lo TIBETAN LETTER KSSA 0F6A ; OtherLetter # Lo TIBETAN LETTER FIXED-FORM RA 0F6B ; OtherLetter # Lo TIBETAN LETTER KKA 0F6C ; OtherLetter # Lo TIBETAN LETTER RRA 0F84 ; Virama # Mn TIBETAN MARK HALANTA 0F88 ; OtherLetter # Lo TIBETAN SIGN LCE TSA CAN 0F89 ; OtherLetter # Lo TIBETAN SIGN MCHU CAN 0F8A ; OtherLetter # Lo TIBETAN SIGN GRU CAN RGYINGS 0F8B ; OtherLetter # Lo TIBETAN SIGN GRU MED RGYINGS 0F8C ; OtherLetter # Lo TIBETAN SIGN INVERTED MCHU CAN 1000 ; OtherLetter # Lo MYANMAR LETTER KA 1001 ; OtherLetter # Lo MYANMAR LETTER KHA 1002 ; OtherLetter # Lo MYANMAR LETTER GA 1003 ; OtherLetter # Lo MYANMAR LETTER GHA 1004 ; OtherLetter # Lo MYANMAR LETTER NGA 1005 ; OtherLetter # Lo MYANMAR LETTER CA 1006 ; OtherLetter # Lo MYANMAR LETTER CHA 1007 ; OtherLetter # Lo MYANMAR LETTER JA 1008 ; OtherLetter # Lo MYANMAR LETTER JHA 1009 ; OtherLetter # Lo MYANMAR LETTER NYA 100A ; OtherLetter # Lo MYANMAR LETTER NNYA 100B ; OtherLetter # Lo MYANMAR LETTER TTA 100C ; OtherLetter # Lo MYANMAR LETTER TTHA 100D ; OtherLetter # Lo MYANMAR LETTER DDA 100E ; OtherLetter # Lo MYANMAR LETTER DDHA 100F ; OtherLetter # Lo MYANMAR LETTER NNA 1010 ; OtherLetter # Lo MYANMAR LETTER TA 1011 ; OtherLetter # Lo MYANMAR LETTER THA 1012 ; OtherLetter # Lo MYANMAR LETTER DA 1013 ; OtherLetter # Lo MYANMAR LETTER DHA 1014 ; OtherLetter # Lo MYANMAR LETTER NA 1015 ; OtherLetter # Lo MYANMAR LETTER PA 1016 ; OtherLetter # Lo MYANMAR LETTER PHA 1017 ; OtherLetter # Lo MYANMAR LETTER BA 1018 ; OtherLetter # Lo MYANMAR LETTER BHA 1019 ; OtherLetter # Lo MYANMAR LETTER MA 101A ; OtherLetter # Lo MYANMAR LETTER YA 101B ; OtherLetter # Lo MYANMAR LETTER RA 101C ; OtherLetter # Lo MYANMAR LETTER LA 101D ; OtherLetter # Lo MYANMAR LETTER WA 101E ; OtherLetter # Lo MYANMAR LETTER SA 101F ; OtherLetter # Lo MYANMAR LETTER HA 1020 ; OtherLetter # Lo MYANMAR LETTER LLA 1021 ; OtherLetter # Lo MYANMAR LETTER A 1022 ; OtherLetter # Lo MYANMAR LETTER SHAN A 1023 ; OtherLetter # Lo MYANMAR LETTER I 1024 ; OtherLetter # Lo MYANMAR LETTER II 1025 ; OtherLetter # Lo MYANMAR LETTER U 1026 ; OtherLetter # Lo MYANMAR LETTER UU 1027 ; OtherLetter # Lo MYANMAR LETTER E 1028 ; OtherLetter # Lo MYANMAR LETTER MON E 1029 ; OtherLetter # Lo MYANMAR LETTER O 102A ; OtherLetter # Lo MYANMAR LETTER AU 1039 ; Virama # Mn MYANMAR SIGN VIRAMA 103A ; Virama # Mn MYANMAR SIGN ASAT 103F ; OtherLetter # Lo MYANMAR LETTER GREAT SA 1050 ; OtherLetter # Lo MYANMAR LETTER SHA 1051 ; OtherLetter # Lo MYANMAR LETTER SSA 1052 ; OtherLetter # Lo MYANMAR LETTER VOCALIC R 1053 ; OtherLetter # Lo MYANMAR LETTER VOCALIC RR 1054 ; OtherLetter # Lo MYANMAR LETTER VOCALIC L 1055 ; OtherLetter # Lo MYANMAR LETTER VOCALIC LL 105A ; OtherLetter # Lo MYANMAR LETTER MON NGA 105B ; OtherLetter # Lo MYANMAR LETTER MON JHA 105C ; OtherLetter # Lo MYANMAR LETTER MON BBA 105D ; OtherLetter # Lo MYANMAR LETTER MON BBE 1061 ; OtherLetter # Lo MYANMAR LETTER SGAW KAREN SHA 1065 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN THA 1066 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN PWA 106E ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN NNA 106F ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN YWA 1070 ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN GHWA 1075 ; OtherLetter # Lo MYANMAR LETTER SHAN KA 1076 ; OtherLetter # Lo MYANMAR LETTER SHAN KHA 1077 ; OtherLetter # Lo MYANMAR LETTER SHAN GA 1078 ; OtherLetter # Lo MYANMAR LETTER SHAN CA 1079 ; OtherLetter # Lo MYANMAR LETTER SHAN ZA 107A ; OtherLetter # Lo MYANMAR LETTER SHAN NYA 107B ; OtherLetter # Lo MYANMAR LETTER SHAN DA 107C ; OtherLetter # Lo MYANMAR LETTER SHAN NA 107D ; OtherLetter # Lo MYANMAR LETTER SHAN PHA 107E ; OtherLetter # Lo MYANMAR LETTER SHAN FA 107F ; OtherLetter # Lo MYANMAR LETTER SHAN BA 1080 ; OtherLetter # Lo MYANMAR LETTER SHAN THA 1081 ; OtherLetter # Lo MYANMAR LETTER SHAN HA 108E ; OtherLetter # Lo MYANMAR LETTER RUMAI PALAUNG FA 1700 ; OtherLetter # Lo TAGALOG LETTER A 1701 ; OtherLetter # Lo TAGALOG LETTER I 1702 ; OtherLetter # Lo TAGALOG LETTER U 1703 ; OtherLetter # Lo TAGALOG LETTER KA 1704 ; OtherLetter # Lo TAGALOG LETTER GA 1705 ; OtherLetter # Lo TAGALOG LETTER NGA 1706 ; OtherLetter # Lo TAGALOG LETTER TA 1707 ; OtherLetter # Lo TAGALOG LETTER DA 1708 ; OtherLetter # Lo TAGALOG LETTER NA 1709 ; OtherLetter # Lo TAGALOG LETTER PA 170A ; OtherLetter # Lo TAGALOG LETTER BA 170B ; OtherLetter # Lo TAGALOG LETTER MA 170C ; OtherLetter # Lo TAGALOG LETTER YA 170E ; OtherLetter # Lo TAGALOG LETTER LA 170F ; OtherLetter # Lo TAGALOG LETTER WA 1710 ; OtherLetter # Lo TAGALOG LETTER SA 1711 ; OtherLetter # Lo TAGALOG LETTER HA 1714 ; Virama # Mn TAGALOG SIGN VIRAMA 1720 ; OtherLetter # Lo HANUNOO LETTER A 1721 ; OtherLetter # Lo HANUNOO LETTER I 1722 ; OtherLetter # Lo HANUNOO LETTER U 1723 ; OtherLetter # Lo HANUNOO LETTER KA 1724 ; OtherLetter # Lo HANUNOO LETTER GA 1725 ; OtherLetter # Lo HANUNOO LETTER NGA 1726 ; OtherLetter # Lo HANUNOO LETTER TA 1727 ; OtherLetter # Lo HANUNOO LETTER DA 1728 ; OtherLetter # Lo HANUNOO LETTER NA 1729 ; OtherLetter # Lo HANUNOO LETTER PA 172A ; OtherLetter # Lo HANUNOO LETTER BA 172B ; OtherLetter # Lo HANUNOO LETTER MA 172C ; OtherLetter # Lo HANUNOO LETTER YA 172D ; OtherLetter # Lo HANUNOO LETTER RA 172E ; OtherLetter # Lo HANUNOO LETTER LA 172F ; OtherLetter # Lo HANUNOO LETTER WA 1730 ; OtherLetter # Lo HANUNOO LETTER SA 1731 ; OtherLetter # Lo HANUNOO LETTER HA 1734 ; Virama # Mn HANUNOO SIGN PAMUDPOD 1780 ; OtherLetter # Lo KHMER LETTER KA 1781 ; OtherLetter # Lo KHMER LETTER KHA 1782 ; OtherLetter # Lo KHMER LETTER KO 1783 ; OtherLetter # Lo KHMER LETTER KHO 1784 ; OtherLetter # Lo KHMER LETTER NGO 1785 ; OtherLetter # Lo KHMER LETTER CA 1786 ; OtherLetter # Lo KHMER LETTER CHA 1787 ; OtherLetter # Lo KHMER LETTER CO 1788 ; OtherLetter # Lo KHMER LETTER CHO 1789 ; OtherLetter # Lo KHMER LETTER NYO 178A ; OtherLetter # Lo KHMER LETTER DA 178B ; OtherLetter # Lo KHMER LETTER TTHA 178C ; OtherLetter # Lo KHMER LETTER DO 178D ; OtherLetter # Lo KHMER LETTER TTHO 178E ; OtherLetter # Lo KHMER LETTER NNO 178F ; OtherLetter # Lo KHMER LETTER TA 1790 ; OtherLetter # Lo KHMER LETTER THA 1791 ; OtherLetter # Lo KHMER LETTER TO 1792 ; OtherLetter # Lo KHMER LETTER THO 1793 ; OtherLetter # Lo KHMER LETTER NO 1794 ; OtherLetter # Lo KHMER LETTER BA 1795 ; OtherLetter # Lo KHMER LETTER PHA 1796 ; OtherLetter # Lo KHMER LETTER PO 1797 ; OtherLetter # Lo KHMER LETTER PHO 1798 ; OtherLetter # Lo KHMER LETTER MO 1799 ; OtherLetter # Lo KHMER LETTER YO 179A ; OtherLetter # Lo KHMER LETTER RO 179B ; OtherLetter # Lo KHMER LETTER LO 179C ; OtherLetter # Lo KHMER LETTER VO 179D ; OtherLetter # Lo KHMER LETTER SHA 179E ; OtherLetter # Lo KHMER LETTER SSO 179F ; OtherLetter # Lo KHMER LETTER SA 17A0 ; OtherLetter # Lo KHMER LETTER HA 17A1 ; OtherLetter # Lo KHMER LETTER LA 17A2 ; OtherLetter # Lo KHMER LETTER QA 17A3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAQ 17A4 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAA 17A5 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QI 17A6 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QII 17A7 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QU 17A8 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUK 17A9 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUU 17AA ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUUV 17AB ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RY 17AC ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RYY 17AD ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LY 17AE ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LYY 17AF ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QE 17B0 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAI 17B1 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE ONE 17B2 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE TWO 17B3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAU 17D2 ; Virama # Mn KHMER SIGN COENG 17D7 ; OtherLetter # Lm KHMER SIGN LEK TOO 17DC ; OtherLetter # Lo KHMER SIGN AVAKRAHASANYA 1A20 ; OtherLetter # Lo TAI THAM LETTER HIGH KA 1A21 ; OtherLetter # Lo TAI THAM LETTER HIGH KHA 1A22 ; OtherLetter # Lo TAI THAM LETTER HIGH KXA 1A23 ; OtherLetter # Lo TAI THAM LETTER LOW KA 1A24 ; OtherLetter # Lo TAI THAM LETTER LOW KXA 1A25 ; OtherLetter # Lo TAI THAM LETTER LOW KHA 1A26 ; OtherLetter # Lo TAI THAM LETTER NGA 1A27 ; OtherLetter # Lo TAI THAM LETTER HIGH CA 1A28 ; OtherLetter # Lo TAI THAM LETTER HIGH CHA 1A29 ; OtherLetter # Lo TAI THAM LETTER LOW CA 1A2A ; OtherLetter # Lo TAI THAM LETTER LOW SA 1A2B ; OtherLetter # Lo TAI THAM LETTER LOW CHA 1A2C ; OtherLetter # Lo TAI THAM LETTER NYA 1A2D ; OtherLetter # Lo TAI THAM LETTER RATA 1A2E ; OtherLetter # Lo TAI THAM LETTER HIGH RATHA 1A2F ; OtherLetter # Lo TAI THAM LETTER DA 1A30 ; OtherLetter # Lo TAI THAM LETTER LOW RATHA 1A31 ; OtherLetter # Lo TAI THAM LETTER RANA 1A32 ; OtherLetter # Lo TAI THAM LETTER HIGH TA 1A33 ; OtherLetter # Lo TAI THAM LETTER HIGH THA 1A34 ; OtherLetter # Lo TAI THAM LETTER LOW TA 1A35 ; OtherLetter # Lo TAI THAM LETTER LOW THA 1A36 ; OtherLetter # Lo TAI THAM LETTER NA 1A37 ; OtherLetter # Lo TAI THAM LETTER BA 1A38 ; OtherLetter # Lo TAI THAM LETTER HIGH PA 1A39 ; OtherLetter # Lo TAI THAM LETTER HIGH PHA 1A3A ; OtherLetter # Lo TAI THAM LETTER HIGH FA 1A3B ; OtherLetter # Lo TAI THAM LETTER LOW PA 1A3C ; OtherLetter # Lo TAI THAM LETTER LOW FA 1A3D ; OtherLetter # Lo TAI THAM LETTER LOW PHA 1A3E ; OtherLetter # Lo TAI THAM LETTER MA 1A3F ; OtherLetter # Lo TAI THAM LETTER LOW YA 1A40 ; OtherLetter # Lo TAI THAM LETTER HIGH YA 1A41 ; OtherLetter # Lo TAI THAM LETTER RA 1A42 ; OtherLetter # Lo TAI THAM LETTER RUE 1A43 ; OtherLetter # Lo TAI THAM LETTER LA 1A44 ; OtherLetter # Lo TAI THAM LETTER LUE 1A45 ; OtherLetter # Lo TAI THAM LETTER WA 1A46 ; OtherLetter # Lo TAI THAM LETTER HIGH SHA 1A47 ; OtherLetter # Lo TAI THAM LETTER HIGH SSA 1A48 ; OtherLetter # Lo TAI THAM LETTER HIGH SA 1A49 ; OtherLetter # Lo TAI THAM LETTER HIGH HA 1A4A ; OtherLetter # Lo TAI THAM LETTER LLA 1A4B ; OtherLetter # Lo TAI THAM LETTER A 1A4C ; OtherLetter # Lo TAI THAM LETTER LOW HA 1A4D ; OtherLetter # Lo TAI THAM LETTER I 1A4E ; OtherLetter # Lo TAI THAM LETTER II 1A4F ; OtherLetter # Lo TAI THAM LETTER U 1A50 ; OtherLetter # Lo TAI THAM LETTER UU 1A51 ; OtherLetter # Lo TAI THAM LETTER EE 1A52 ; OtherLetter # Lo TAI THAM LETTER OO 1A53 ; OtherLetter # Lo TAI THAM LETTER LAE 1A54 ; OtherLetter # Lo TAI THAM LETTER GREAT SA 1A60 ; Virama # Mn TAI THAM SIGN SAKOT 1AA7 ; OtherLetter # Lm TAI THAM SIGN MAI YAMOK 1B05 ; OtherLetter # Lo BALINESE LETTER AKARA 1B06 ; OtherLetter # Lo BALINESE LETTER AKARA TEDUNG 1B07 ; OtherLetter # Lo BALINESE LETTER IKARA 1B08 ; OtherLetter # Lo BALINESE LETTER IKARA TEDUNG 1B09 ; OtherLetter # Lo BALINESE LETTER UKARA 1B0A ; OtherLetter # Lo BALINESE LETTER UKARA TEDUNG 1B0B ; OtherLetter # Lo BALINESE LETTER RA REPA 1B0C ; OtherLetter # Lo BALINESE LETTER RA REPA TEDUNG 1B0D ; OtherLetter # Lo BALINESE LETTER LA LENGA 1B0E ; OtherLetter # Lo BALINESE LETTER LA LENGA TEDUNG 1B0F ; OtherLetter # Lo BALINESE LETTER EKARA 1B10 ; OtherLetter # Lo BALINESE LETTER AIKARA 1B11 ; OtherLetter # Lo BALINESE LETTER OKARA 1B12 ; OtherLetter # Lo BALINESE LETTER OKARA TEDUNG 1B13 ; OtherLetter # Lo BALINESE LETTER KA 1B14 ; OtherLetter # Lo BALINESE LETTER KA MAHAPRANA 1B15 ; OtherLetter # Lo BALINESE LETTER GA 1B16 ; OtherLetter # Lo BALINESE LETTER GA GORA 1B17 ; OtherLetter # Lo BALINESE LETTER NGA 1B18 ; OtherLetter # Lo BALINESE LETTER CA 1B19 ; OtherLetter # Lo BALINESE LETTER CA LACA 1B1A ; OtherLetter # Lo BALINESE LETTER JA 1B1B ; OtherLetter # Lo BALINESE LETTER JA JERA 1B1C ; OtherLetter # Lo BALINESE LETTER NYA 1B1D ; OtherLetter # Lo BALINESE LETTER TA LATIK 1B1E ; OtherLetter # Lo BALINESE LETTER TA MURDA MAHAPRANA 1B1F ; OtherLetter # Lo BALINESE LETTER DA MURDA ALPAPRANA 1B20 ; OtherLetter # Lo BALINESE LETTER DA MURDA MAHAPRANA 1B21 ; OtherLetter # Lo BALINESE LETTER NA RAMBAT 1B22 ; OtherLetter # Lo BALINESE LETTER TA 1B23 ; OtherLetter # Lo BALINESE LETTER TA TAWA 1B24 ; OtherLetter # Lo BALINESE LETTER DA 1B25 ; OtherLetter # Lo BALINESE LETTER DA MADU 1B26 ; OtherLetter # Lo BALINESE LETTER NA 1B27 ; OtherLetter # Lo BALINESE LETTER PA 1B28 ; OtherLetter # Lo BALINESE LETTER PA KAPAL 1B29 ; OtherLetter # Lo BALINESE LETTER BA 1B2A ; OtherLetter # Lo BALINESE LETTER BA KEMBANG 1B2B ; OtherLetter # Lo BALINESE LETTER MA 1B2C ; OtherLetter # Lo BALINESE LETTER YA 1B2D ; OtherLetter # Lo BALINESE LETTER RA 1B2E ; OtherLetter # Lo BALINESE LETTER LA 1B2F ; OtherLetter # Lo BALINESE LETTER WA 1B30 ; OtherLetter # Lo BALINESE LETTER SA SAGA 1B31 ; OtherLetter # Lo BALINESE LETTER SA SAPA 1B32 ; OtherLetter # Lo BALINESE LETTER SA 1B33 ; OtherLetter # Lo BALINESE LETTER HA 1B44 ; Virama # Mc BALINESE ADEG ADEG 1B45 ; OtherLetter # Lo BALINESE LETTER KAF SASAK 1B46 ; OtherLetter # Lo BALINESE LETTER KHOT SASAK 1B47 ; OtherLetter # Lo BALINESE LETTER TZIR SASAK 1B48 ; OtherLetter # Lo BALINESE LETTER EF SASAK 1B49 ; OtherLetter # Lo BALINESE LETTER VE SASAK 1B4A ; OtherLetter # Lo BALINESE LETTER ZAL SASAK 1B4B ; OtherLetter # Lo BALINESE LETTER ASYURA SASAK 1B83 ; OtherLetter # Lo SUNDANESE LETTER A 1B84 ; OtherLetter # Lo SUNDANESE LETTER I 1B85 ; OtherLetter # Lo SUNDANESE LETTER U 1B86 ; OtherLetter # Lo SUNDANESE LETTER AE 1B87 ; OtherLetter # Lo SUNDANESE LETTER O 1B88 ; OtherLetter # Lo SUNDANESE LETTER E 1B89 ; OtherLetter # Lo SUNDANESE LETTER EU 1B8A ; OtherLetter # Lo SUNDANESE LETTER KA 1B8B ; OtherLetter # Lo SUNDANESE LETTER QA 1B8C ; OtherLetter # Lo SUNDANESE LETTER GA 1B8D ; OtherLetter # Lo SUNDANESE LETTER NGA 1B8E ; OtherLetter # Lo SUNDANESE LETTER CA 1B8F ; OtherLetter # Lo SUNDANESE LETTER JA 1B90 ; OtherLetter # Lo SUNDANESE LETTER ZA 1B91 ; OtherLetter # Lo SUNDANESE LETTER NYA 1B92 ; OtherLetter # Lo SUNDANESE LETTER TA 1B93 ; OtherLetter # Lo SUNDANESE LETTER DA 1B94 ; OtherLetter # Lo SUNDANESE LETTER NA 1B95 ; OtherLetter # Lo SUNDANESE LETTER PA 1B96 ; OtherLetter # Lo SUNDANESE LETTER FA 1B97 ; OtherLetter # Lo SUNDANESE LETTER VA 1B98 ; OtherLetter # Lo SUNDANESE LETTER BA 1B99 ; OtherLetter # Lo SUNDANESE LETTER MA 1B9A ; OtherLetter # Lo SUNDANESE LETTER YA 1B9B ; OtherLetter # Lo SUNDANESE LETTER RA 1B9C ; OtherLetter # Lo SUNDANESE LETTER LA 1B9D ; OtherLetter # Lo SUNDANESE LETTER WA 1B9E ; OtherLetter # Lo SUNDANESE LETTER SA 1B9F ; OtherLetter # Lo SUNDANESE LETTER XA 1BA0 ; OtherLetter # Lo SUNDANESE LETTER HA 1BAA ; Virama # Mc SUNDANESE SIGN PAMAAEH 1BAB ; Virama # Mn SUNDANESE SIGN VIRAMA 1BAE ; OtherLetter # Lo SUNDANESE LETTER KHA 1BAF ; OtherLetter # Lo SUNDANESE LETTER SYA 1BBA ; OtherLetter # Lo SUNDANESE AVAGRAHA 1BBB ; OtherLetter # Lo SUNDANESE LETTER REU 1BBC ; OtherLetter # Lo SUNDANESE LETTER LEU 1BBD ; OtherLetter # Lo SUNDANESE LETTER BHA 1BBE ; OtherLetter # Lo SUNDANESE LETTER FINAL K 1BBF ; OtherLetter # Lo SUNDANESE LETTER FINAL M 1BC0 ; OtherLetter # Lo BATAK LETTER A 1BC1 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN A 1BC2 ; OtherLetter # Lo BATAK LETTER HA 1BC3 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN HA 1BC4 ; OtherLetter # Lo BATAK LETTER MANDAILING HA 1BC5 ; OtherLetter # Lo BATAK LETTER BA 1BC6 ; OtherLetter # Lo BATAK LETTER KARO BA 1BC7 ; OtherLetter # Lo BATAK LETTER PA 1BC8 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN PA 1BC9 ; OtherLetter # Lo BATAK LETTER NA 1BCA ; OtherLetter # Lo BATAK LETTER MANDAILING NA 1BCB ; OtherLetter # Lo BATAK LETTER WA 1BCC ; OtherLetter # Lo BATAK LETTER SIMALUNGUN WA 1BCD ; OtherLetter # Lo BATAK LETTER PAKPAK WA 1BCE ; OtherLetter # Lo BATAK LETTER GA 1BCF ; OtherLetter # Lo BATAK LETTER SIMALUNGUN GA 1BD0 ; OtherLetter # Lo BATAK LETTER JA 1BD1 ; OtherLetter # Lo BATAK LETTER DA 1BD2 ; OtherLetter # Lo BATAK LETTER RA 1BD3 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN RA 1BD4 ; OtherLetter # Lo BATAK LETTER MA 1BD5 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN MA 1BD6 ; OtherLetter # Lo BATAK LETTER SOUTHERN TA 1BD7 ; OtherLetter # Lo BATAK LETTER NORTHERN TA 1BD8 ; OtherLetter # Lo BATAK LETTER SA 1BD9 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN SA 1BDA ; OtherLetter # Lo BATAK LETTER MANDAILING SA 1BDB ; OtherLetter # Lo BATAK LETTER YA 1BDC ; OtherLetter # Lo BATAK LETTER SIMALUNGUN YA 1BDD ; OtherLetter # Lo BATAK LETTER NGA 1BDE ; OtherLetter # Lo BATAK LETTER LA 1BDF ; OtherLetter # Lo BATAK LETTER SIMALUNGUN LA 1BE0 ; OtherLetter # Lo BATAK LETTER NYA 1BE1 ; OtherLetter # Lo BATAK LETTER CA 1BE2 ; OtherLetter # Lo BATAK LETTER NDA 1BE3 ; OtherLetter # Lo BATAK LETTER MBA 1BE4 ; OtherLetter # Lo BATAK LETTER I 1BE5 ; OtherLetter # Lo BATAK LETTER U 1BF2 ; Virama # Mc BATAK PANGOLAT 1BF3 ; Virama # Mc BATAK PANONGONAN 2D30 ; OtherLetter # Lo TIFINAGH LETTER YA 2D31 ; OtherLetter # Lo TIFINAGH LETTER YAB 2D32 ; OtherLetter # Lo TIFINAGH LETTER YABH 2D33 ; OtherLetter # Lo TIFINAGH LETTER YAG 2D34 ; OtherLetter # Lo TIFINAGH LETTER YAGHH 2D35 ; OtherLetter # Lo TIFINAGH LETTER BERBER ACADEMY YAJ 2D36 ; OtherLetter # Lo TIFINAGH LETTER YAJ 2D37 ; OtherLetter # Lo TIFINAGH LETTER YAD 2D38 ; OtherLetter # Lo TIFINAGH LETTER YADH 2D39 ; OtherLetter # Lo TIFINAGH LETTER YADD 2D3A ; OtherLetter # Lo TIFINAGH LETTER YADDH 2D3B ; OtherLetter # Lo TIFINAGH LETTER YEY 2D3C ; OtherLetter # Lo TIFINAGH LETTER YAF 2D3D ; OtherLetter # Lo TIFINAGH LETTER YAK 2D3E ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAK 2D3F ; OtherLetter # Lo TIFINAGH LETTER YAKHH 2D40 ; OtherLetter # Lo TIFINAGH LETTER YAH 2D41 ; OtherLetter # Lo TIFINAGH LETTER BERBER ACADEMY YAH 2D42 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAH 2D43 ; OtherLetter # Lo TIFINAGH LETTER YAHH 2D44 ; OtherLetter # Lo TIFINAGH LETTER YAA 2D45 ; OtherLetter # Lo TIFINAGH LETTER YAKH 2D46 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAKH 2D47 ; OtherLetter # Lo TIFINAGH LETTER YAQ 2D48 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAQ 2D49 ; OtherLetter # Lo TIFINAGH LETTER YI 2D4A ; OtherLetter # Lo TIFINAGH LETTER YAZH 2D4B ; OtherLetter # Lo TIFINAGH LETTER AHAGGAR YAZH 2D4C ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAZH 2D4D ; OtherLetter # Lo TIFINAGH LETTER YAL 2D4E ; OtherLetter # Lo TIFINAGH LETTER YAM 2D4F ; OtherLetter # Lo TIFINAGH LETTER YAN 2D50 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAGN 2D51 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YANG 2D52 ; OtherLetter # Lo TIFINAGH LETTER YAP 2D53 ; OtherLetter # Lo TIFINAGH LETTER YU 2D54 ; OtherLetter # Lo TIFINAGH LETTER YAR 2D55 ; OtherLetter # Lo TIFINAGH LETTER YARR 2D56 ; OtherLetter # Lo TIFINAGH LETTER YAGH 2D57 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAGH 2D58 ; OtherLetter # Lo TIFINAGH LETTER AYER YAGH 2D59 ; OtherLetter # Lo TIFINAGH LETTER YAS 2D5A ; OtherLetter # Lo TIFINAGH LETTER YASS 2D5B ; OtherLetter # Lo TIFINAGH LETTER YASH 2D5C ; OtherLetter # Lo TIFINAGH LETTER YAT 2D5D ; OtherLetter # Lo TIFINAGH LETTER YATH 2D5E ; OtherLetter # Lo TIFINAGH LETTER YACH 2D5F ; OtherLetter # Lo TIFINAGH LETTER YATT 2D60 ; OtherLetter # Lo TIFINAGH LETTER YAV 2D61 ; OtherLetter # Lo TIFINAGH LETTER YAW 2D62 ; OtherLetter # Lo TIFINAGH LETTER YAY 2D63 ; OtherLetter # Lo TIFINAGH LETTER YAZ 2D64 ; OtherLetter # Lo TIFINAGH LETTER TAWELLEMET YAZ 2D65 ; OtherLetter # Lo TIFINAGH LETTER YAZZ 2D66 ; OtherLetter # Lo TIFINAGH LETTER YE 2D67 ; OtherLetter # Lo TIFINAGH LETTER YO 2D6F ; OtherLetter # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK 2D7F ; Virama # Mn TIFINAGH CONSONANT JOINER A800 ; OtherLetter # Lo SYLOTI NAGRI LETTER A A801 ; OtherLetter # Lo SYLOTI NAGRI LETTER I A803 ; OtherLetter # Lo SYLOTI NAGRI LETTER U A804 ; OtherLetter # Lo SYLOTI NAGRI LETTER E A805 ; OtherLetter # Lo SYLOTI NAGRI LETTER O A806 ; Virama # Mn SYLOTI NAGRI SIGN HASANTA A807 ; OtherLetter # Lo SYLOTI NAGRI LETTER KO A808 ; OtherLetter # Lo SYLOTI NAGRI LETTER KHO A809 ; OtherLetter # Lo SYLOTI NAGRI LETTER GO A80A ; OtherLetter # Lo SYLOTI NAGRI LETTER GHO A80C ; OtherLetter # Lo SYLOTI NAGRI LETTER CO A80D ; OtherLetter # Lo SYLOTI NAGRI LETTER CHO A80E ; OtherLetter # Lo SYLOTI NAGRI LETTER JO A80F ; OtherLetter # Lo SYLOTI NAGRI LETTER JHO A810 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTO A811 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTHO A812 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDO A813 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDHO A814 ; OtherLetter # Lo SYLOTI NAGRI LETTER TO A815 ; OtherLetter # Lo SYLOTI NAGRI LETTER THO A816 ; OtherLetter # Lo SYLOTI NAGRI LETTER DO A817 ; OtherLetter # Lo SYLOTI NAGRI LETTER DHO A818 ; OtherLetter # Lo SYLOTI NAGRI LETTER NO A819 ; OtherLetter # Lo SYLOTI NAGRI LETTER PO A81A ; OtherLetter # Lo SYLOTI NAGRI LETTER PHO A81B ; OtherLetter # Lo SYLOTI NAGRI LETTER BO A81C ; OtherLetter # Lo SYLOTI NAGRI LETTER BHO A81D ; OtherLetter # Lo SYLOTI NAGRI LETTER MO A81E ; OtherLetter # Lo SYLOTI NAGRI LETTER RO A81F ; OtherLetter # Lo SYLOTI NAGRI LETTER LO A820 ; OtherLetter # Lo SYLOTI NAGRI LETTER RRO A821 ; OtherLetter # Lo SYLOTI NAGRI LETTER SO A822 ; OtherLetter # Lo SYLOTI NAGRI LETTER HO A882 ; OtherLetter # Lo SAURASHTRA LETTER A A883 ; OtherLetter # Lo SAURASHTRA LETTER AA A884 ; OtherLetter # Lo SAURASHTRA LETTER I A885 ; OtherLetter # Lo SAURASHTRA LETTER II A886 ; OtherLetter # Lo SAURASHTRA LETTER U A887 ; OtherLetter # Lo SAURASHTRA LETTER UU A888 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC R A889 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC RR A88A ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC L A88B ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC LL A88C ; OtherLetter # Lo SAURASHTRA LETTER E A88D ; OtherLetter # Lo SAURASHTRA LETTER EE A88E ; OtherLetter # Lo SAURASHTRA LETTER AI A88F ; OtherLetter # Lo SAURASHTRA LETTER O A890 ; OtherLetter # Lo SAURASHTRA LETTER OO A891 ; OtherLetter # Lo SAURASHTRA LETTER AU A892 ; OtherLetter # Lo SAURASHTRA LETTER KA A893 ; OtherLetter # Lo SAURASHTRA LETTER KHA A894 ; OtherLetter # Lo SAURASHTRA LETTER GA A895 ; OtherLetter # Lo SAURASHTRA LETTER GHA A896 ; OtherLetter # Lo SAURASHTRA LETTER NGA A897 ; OtherLetter # Lo SAURASHTRA LETTER CA A898 ; OtherLetter # Lo SAURASHTRA LETTER CHA A899 ; OtherLetter # Lo SAURASHTRA LETTER JA A89A ; OtherLetter # Lo SAURASHTRA LETTER JHA A89B ; OtherLetter # Lo SAURASHTRA LETTER NYA A89C ; OtherLetter # Lo SAURASHTRA LETTER TTA A89D ; OtherLetter # Lo SAURASHTRA LETTER TTHA A89E ; OtherLetter # Lo SAURASHTRA LETTER DDA A89F ; OtherLetter # Lo SAURASHTRA LETTER DDHA A8A0 ; OtherLetter # Lo SAURASHTRA LETTER NNA A8A1 ; OtherLetter # Lo SAURASHTRA LETTER TA A8A2 ; OtherLetter # Lo SAURASHTRA LETTER THA A8A3 ; OtherLetter # Lo SAURASHTRA LETTER DA A8A4 ; OtherLetter # Lo SAURASHTRA LETTER DHA A8A5 ; OtherLetter # Lo SAURASHTRA LETTER NA A8A6 ; OtherLetter # Lo SAURASHTRA LETTER PA A8A7 ; OtherLetter # Lo SAURASHTRA LETTER PHA A8A8 ; OtherLetter # Lo SAURASHTRA LETTER BA A8A9 ; OtherLetter # Lo SAURASHTRA LETTER BHA A8AA ; OtherLetter # Lo SAURASHTRA LETTER MA A8AB ; OtherLetter # Lo SAURASHTRA LETTER YA A8AC ; OtherLetter # Lo SAURASHTRA LETTER RA A8AD ; OtherLetter # Lo SAURASHTRA LETTER LA A8AE ; OtherLetter # Lo SAURASHTRA LETTER VA A8AF ; OtherLetter # Lo SAURASHTRA LETTER SHA A8B0 ; OtherLetter # Lo SAURASHTRA LETTER SSA A8B1 ; OtherLetter # Lo SAURASHTRA LETTER SA A8B2 ; OtherLetter # Lo SAURASHTRA LETTER HA A8B3 ; OtherLetter # Lo SAURASHTRA LETTER LLA A8C4 ; Virama # Mn SAURASHTRA SIGN VIRAMA A8F2 ; OtherLetter # Lo DEVANAGARI SIGN SPACING CANDRABINDU A8F3 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU VIRAMA A8F4 ; OtherLetter # Lo DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA A8F5 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU TWO A8F6 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU THREE A8F7 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU AVAGRAHA A8FB ; OtherLetter # Lo DEVANAGARI HEADSTROKE A930 ; OtherLetter # Lo REJANG LETTER KA A931 ; OtherLetter # Lo REJANG LETTER GA A932 ; OtherLetter # Lo REJANG LETTER NGA A933 ; OtherLetter # Lo REJANG LETTER TA A934 ; OtherLetter # Lo REJANG LETTER DA A935 ; OtherLetter # Lo REJANG LETTER NA A936 ; OtherLetter # Lo REJANG LETTER PA A937 ; OtherLetter # Lo REJANG LETTER BA A938 ; OtherLetter # Lo REJANG LETTER MA A939 ; OtherLetter # Lo REJANG LETTER CA A93A ; OtherLetter # Lo REJANG LETTER JA A93B ; OtherLetter # Lo REJANG LETTER NYA A93C ; OtherLetter # Lo REJANG LETTER SA A93D ; OtherLetter # Lo REJANG LETTER RA A93E ; OtherLetter # Lo REJANG LETTER LA A93F ; OtherLetter # Lo REJANG LETTER YA A940 ; OtherLetter # Lo REJANG LETTER WA A941 ; OtherLetter # Lo REJANG LETTER HA A942 ; OtherLetter # Lo REJANG LETTER MBA A943 ; OtherLetter # Lo REJANG LETTER NGGA A944 ; OtherLetter # Lo REJANG LETTER NDA A945 ; OtherLetter # Lo REJANG LETTER NYJA A946 ; OtherLetter # Lo REJANG LETTER A A953 ; Virama # Mc REJANG VIRAMA A984 ; OtherLetter # Lo JAVANESE LETTER A A985 ; OtherLetter # Lo JAVANESE LETTER I KAWI A986 ; OtherLetter # Lo JAVANESE LETTER I A987 ; OtherLetter # Lo JAVANESE LETTER II A988 ; OtherLetter # Lo JAVANESE LETTER U A989 ; OtherLetter # Lo JAVANESE LETTER PA CEREK A98A ; OtherLetter # Lo JAVANESE LETTER NGA LELET A98B ; OtherLetter # Lo JAVANESE LETTER NGA LELET RASWADI A98C ; OtherLetter # Lo JAVANESE LETTER E A98D ; OtherLetter # Lo JAVANESE LETTER AI A98E ; OtherLetter # Lo JAVANESE LETTER O A98F ; OtherLetter # Lo JAVANESE LETTER KA A990 ; OtherLetter # Lo JAVANESE LETTER KA SASAK A991 ; OtherLetter # Lo JAVANESE LETTER KA MURDA A992 ; OtherLetter # Lo JAVANESE LETTER GA A993 ; OtherLetter # Lo JAVANESE LETTER GA MURDA A994 ; OtherLetter # Lo JAVANESE LETTER NGA A995 ; OtherLetter # Lo JAVANESE LETTER CA A996 ; OtherLetter # Lo JAVANESE LETTER CA MURDA A997 ; OtherLetter # Lo JAVANESE LETTER JA A998 ; OtherLetter # Lo JAVANESE LETTER NYA MURDA A999 ; OtherLetter # Lo JAVANESE LETTER JA MAHAPRANA A99A ; OtherLetter # Lo JAVANESE LETTER NYA A99B ; OtherLetter # Lo JAVANESE LETTER TTA A99C ; OtherLetter # Lo JAVANESE LETTER TTA MAHAPRANA A99D ; OtherLetter # Lo JAVANESE LETTER DDA A99E ; OtherLetter # Lo JAVANESE LETTER DDA MAHAPRANA A99F ; OtherLetter # Lo JAVANESE LETTER NA MURDA A9A0 ; OtherLetter # Lo JAVANESE LETTER TA A9A1 ; OtherLetter # Lo JAVANESE LETTER TA MURDA A9A2 ; OtherLetter # Lo JAVANESE LETTER DA A9A3 ; OtherLetter # Lo JAVANESE LETTER DA MAHAPRANA A9A4 ; OtherLetter # Lo JAVANESE LETTER NA A9A5 ; OtherLetter # Lo JAVANESE LETTER PA A9A6 ; OtherLetter # Lo JAVANESE LETTER PA MURDA A9A7 ; OtherLetter # Lo JAVANESE LETTER BA A9A8 ; OtherLetter # Lo JAVANESE LETTER BA MURDA A9A9 ; OtherLetter # Lo JAVANESE LETTER MA A9AA ; OtherLetter # Lo JAVANESE LETTER YA A9AB ; OtherLetter # Lo JAVANESE LETTER RA A9AC ; OtherLetter # Lo JAVANESE LETTER RA AGUNG A9AD ; OtherLetter # Lo JAVANESE LETTER LA A9AE ; OtherLetter # Lo JAVANESE LETTER WA A9AF ; OtherLetter # Lo JAVANESE LETTER SA MURDA A9B0 ; OtherLetter # Lo JAVANESE LETTER SA MAHAPRANA A9B1 ; OtherLetter # Lo JAVANESE LETTER SA A9B2 ; OtherLetter # Lo JAVANESE LETTER HA A9C0 ; Virama # Mc JAVANESE PANGKON A9CF ; OtherLetter # Lm JAVANESE PANGRANGKEP AA60 ; OtherLetter # Lo MYANMAR LETTER KHAMTI GA AA61 ; OtherLetter # Lo MYANMAR LETTER KHAMTI CA AA62 ; OtherLetter # Lo MYANMAR LETTER KHAMTI CHA AA63 ; OtherLetter # Lo MYANMAR LETTER KHAMTI JA AA64 ; OtherLetter # Lo MYANMAR LETTER KHAMTI JHA AA65 ; OtherLetter # Lo MYANMAR LETTER KHAMTI NYA AA66 ; OtherLetter # Lo MYANMAR LETTER KHAMTI TTA AA67 ; OtherLetter # Lo MYANMAR LETTER KHAMTI TTHA AA68 ; OtherLetter # Lo MYANMAR LETTER KHAMTI DDA AA69 ; OtherLetter # Lo MYANMAR LETTER KHAMTI DDHA AA6A ; OtherLetter # Lo MYANMAR LETTER KHAMTI DHA AA6B ; OtherLetter # Lo MYANMAR LETTER KHAMTI NA AA6C ; OtherLetter # Lo MYANMAR LETTER KHAMTI SA AA6D ; OtherLetter # Lo MYANMAR LETTER KHAMTI HA AA6E ; OtherLetter # Lo MYANMAR LETTER KHAMTI HHA AA6F ; OtherLetter # Lo MYANMAR LETTER KHAMTI FA AA70 ; OtherLetter # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION AA71 ; OtherLetter # Lo MYANMAR LETTER KHAMTI XA AA72 ; OtherLetter # Lo MYANMAR LETTER KHAMTI ZA AA73 ; OtherLetter # Lo MYANMAR LETTER KHAMTI RA AA74 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI OAY AA75 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI QN AA76 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI HM AA7A ; OtherLetter # Lo MYANMAR LETTER AITON RA AAE0 ; OtherLetter # Lo MEETEI MAYEK LETTER E AAE1 ; OtherLetter # Lo MEETEI MAYEK LETTER O AAE2 ; OtherLetter # Lo MEETEI MAYEK LETTER CHA AAE3 ; OtherLetter # Lo MEETEI MAYEK LETTER NYA AAE4 ; OtherLetter # Lo MEETEI MAYEK LETTER TTA AAE5 ; OtherLetter # Lo MEETEI MAYEK LETTER TTHA AAE6 ; OtherLetter # Lo MEETEI MAYEK LETTER DDA AAE7 ; OtherLetter # Lo MEETEI MAYEK LETTER DDHA AAE8 ; OtherLetter # Lo MEETEI MAYEK LETTER NNA AAE9 ; OtherLetter # Lo MEETEI MAYEK LETTER SHA AAEA ; OtherLetter # Lo MEETEI MAYEK LETTER SSA AAF2 ; OtherLetter # Lo MEETEI MAYEK ANJI AAF3 ; OtherLetter # Lm MEETEI MAYEK SYLLABLE REPETITION MARK AAF4 ; OtherLetter # Lm MEETEI MAYEK WORD REPETITION MARK AAF6 ; Virama # Mn MEETEI MAYEK VIRAMA ABC0 ; OtherLetter # Lo MEETEI MAYEK LETTER KOK ABC1 ; OtherLetter # Lo MEETEI MAYEK LETTER SAM ABC2 ; OtherLetter # Lo MEETEI MAYEK LETTER LAI ABC3 ; OtherLetter # Lo MEETEI MAYEK LETTER MIT ABC4 ; OtherLetter # Lo MEETEI MAYEK LETTER PA ABC5 ; OtherLetter # Lo MEETEI MAYEK LETTER NA ABC6 ; OtherLetter # Lo MEETEI MAYEK LETTER CHIL ABC7 ; OtherLetter # Lo MEETEI MAYEK LETTER TIL ABC8 ; OtherLetter # Lo MEETEI MAYEK LETTER KHOU ABC9 ; OtherLetter # Lo MEETEI MAYEK LETTER NGOU ABCA ; OtherLetter # Lo MEETEI MAYEK LETTER THOU ABCB ; OtherLetter # Lo MEETEI MAYEK LETTER WAI ABCC ; OtherLetter # Lo MEETEI MAYEK LETTER YANG ABCD ; OtherLetter # Lo MEETEI MAYEK LETTER HUK ABCE ; OtherLetter # Lo MEETEI MAYEK LETTER UN ABCF ; OtherLetter # Lo MEETEI MAYEK LETTER I ABD0 ; OtherLetter # Lo MEETEI MAYEK LETTER PHAM ABD1 ; OtherLetter # Lo MEETEI MAYEK LETTER ATIYA ABD2 ; OtherLetter # Lo MEETEI MAYEK LETTER GOK ABD3 ; OtherLetter # Lo MEETEI MAYEK LETTER JHAM ABD4 ; OtherLetter # Lo MEETEI MAYEK LETTER RAI ABD5 ; OtherLetter # Lo MEETEI MAYEK LETTER BA ABD6 ; OtherLetter # Lo MEETEI MAYEK LETTER JIL ABD7 ; OtherLetter # Lo MEETEI MAYEK LETTER DIL ABD8 ; OtherLetter # Lo MEETEI MAYEK LETTER GHOU ABD9 ; OtherLetter # Lo MEETEI MAYEK LETTER DHOU ABDA ; OtherLetter # Lo MEETEI MAYEK LETTER BHAM ABDB ; OtherLetter # Lo MEETEI MAYEK LETTER KOK LONSUM ABDC ; OtherLetter # Lo MEETEI MAYEK LETTER LAI LONSUM ABDD ; OtherLetter # Lo MEETEI MAYEK LETTER MIT LONSUM ABDE ; OtherLetter # Lo MEETEI MAYEK LETTER PA LONSUM ABDF ; OtherLetter # Lo MEETEI MAYEK LETTER NA LONSUM ABE0 ; OtherLetter # Lo MEETEI MAYEK LETTER TIL LONSUM ABE1 ; OtherLetter # Lo MEETEI MAYEK LETTER NGOU LONSUM ABE2 ; OtherLetter # Lo MEETEI MAYEK LETTER I LONSUM ABED ; Virama # Mn MEETEI MAYEK APUN IYEK 10A00 ; OtherLetter # Lo KHAROSHTHI LETTER A 10A10 ; OtherLetter # Lo KHAROSHTHI LETTER KA 10A11 ; OtherLetter # Lo KHAROSHTHI LETTER KHA 10A12 ; OtherLetter # Lo KHAROSHTHI LETTER GA 10A13 ; OtherLetter # Lo KHAROSHTHI LETTER GHA 10A15 ; OtherLetter # Lo KHAROSHTHI LETTER CA 10A16 ; OtherLetter # Lo KHAROSHTHI LETTER CHA 10A17 ; OtherLetter # Lo KHAROSHTHI LETTER JA 10A19 ; OtherLetter # Lo KHAROSHTHI LETTER NYA 10A1A ; OtherLetter # Lo KHAROSHTHI LETTER TTA 10A1B ; OtherLetter # Lo KHAROSHTHI LETTER TTHA 10A1C ; OtherLetter # Lo KHAROSHTHI LETTER DDA 10A1D ; OtherLetter # Lo KHAROSHTHI LETTER DDHA 10A1E ; OtherLetter # Lo KHAROSHTHI LETTER NNA 10A1F ; OtherLetter # Lo KHAROSHTHI LETTER TA 10A20 ; OtherLetter # Lo KHAROSHTHI LETTER THA 10A21 ; OtherLetter # Lo KHAROSHTHI LETTER DA 10A22 ; OtherLetter # Lo KHAROSHTHI LETTER DHA 10A23 ; OtherLetter # Lo KHAROSHTHI LETTER NA 10A24 ; OtherLetter # Lo KHAROSHTHI LETTER PA 10A25 ; OtherLetter # Lo KHAROSHTHI LETTER PHA 10A26 ; OtherLetter # Lo KHAROSHTHI LETTER BA 10A27 ; OtherLetter # Lo KHAROSHTHI LETTER BHA 10A28 ; OtherLetter # Lo KHAROSHTHI LETTER MA 10A29 ; OtherLetter # Lo KHAROSHTHI LETTER YA 10A2A ; OtherLetter # Lo KHAROSHTHI LETTER RA 10A2B ; OtherLetter # Lo KHAROSHTHI LETTER LA 10A2C ; OtherLetter # Lo KHAROSHTHI LETTER VA 10A2D ; OtherLetter # Lo KHAROSHTHI LETTER SHA 10A2E ; OtherLetter # Lo KHAROSHTHI LETTER SSA 10A2F ; OtherLetter # Lo KHAROSHTHI LETTER SA 10A30 ; OtherLetter # Lo KHAROSHTHI LETTER ZA 10A31 ; OtherLetter # Lo KHAROSHTHI LETTER HA 10A32 ; OtherLetter # Lo KHAROSHTHI LETTER KKA 10A33 ; OtherLetter # Lo KHAROSHTHI LETTER TTTHA 10A3F ; Virama # Mn KHAROSHTHI VIRAMA 11003 ; OtherLetter # Lo BRAHMI SIGN JIHVAMULIYA 11004 ; OtherLetter # Lo BRAHMI SIGN UPADHMANIYA 11005 ; OtherLetter # Lo BRAHMI LETTER A 11006 ; OtherLetter # Lo BRAHMI LETTER AA 11007 ; OtherLetter # Lo BRAHMI LETTER I 11008 ; OtherLetter # Lo BRAHMI LETTER II 11009 ; OtherLetter # Lo BRAHMI LETTER U 1100A ; OtherLetter # Lo BRAHMI LETTER UU 1100B ; OtherLetter # Lo BRAHMI LETTER VOCALIC R 1100C ; OtherLetter # Lo BRAHMI LETTER VOCALIC RR 1100D ; OtherLetter # Lo BRAHMI LETTER VOCALIC L 1100E ; OtherLetter # Lo BRAHMI LETTER VOCALIC LL 1100F ; OtherLetter # Lo BRAHMI LETTER E 11010 ; OtherLetter # Lo BRAHMI LETTER AI 11011 ; OtherLetter # Lo BRAHMI LETTER O 11012 ; OtherLetter # Lo BRAHMI LETTER AU 11013 ; OtherLetter # Lo BRAHMI LETTER KA 11014 ; OtherLetter # Lo BRAHMI LETTER KHA 11015 ; OtherLetter # Lo BRAHMI LETTER GA 11016 ; OtherLetter # Lo BRAHMI LETTER GHA 11017 ; OtherLetter # Lo BRAHMI LETTER NGA 11018 ; OtherLetter # Lo BRAHMI LETTER CA 11019 ; OtherLetter # Lo BRAHMI LETTER CHA 1101A ; OtherLetter # Lo BRAHMI LETTER JA 1101B ; OtherLetter # Lo BRAHMI LETTER JHA 1101C ; OtherLetter # Lo BRAHMI LETTER NYA 1101D ; OtherLetter # Lo BRAHMI LETTER TTA 1101E ; OtherLetter # Lo BRAHMI LETTER TTHA 1101F ; OtherLetter # Lo BRAHMI LETTER DDA 11020 ; OtherLetter # Lo BRAHMI LETTER DDHA 11021 ; OtherLetter # Lo BRAHMI LETTER NNA 11022 ; OtherLetter # Lo BRAHMI LETTER TA 11023 ; OtherLetter # Lo BRAHMI LETTER THA 11024 ; OtherLetter # Lo BRAHMI LETTER DA 11025 ; OtherLetter # Lo BRAHMI LETTER DHA 11026 ; OtherLetter # Lo BRAHMI LETTER NA 11027 ; OtherLetter # Lo BRAHMI LETTER PA 11028 ; OtherLetter # Lo BRAHMI LETTER PHA 11029 ; OtherLetter # Lo BRAHMI LETTER BA 1102A ; OtherLetter # Lo BRAHMI LETTER BHA 1102B ; OtherLetter # Lo BRAHMI LETTER MA 1102C ; OtherLetter # Lo BRAHMI LETTER YA 1102D ; OtherLetter # Lo BRAHMI LETTER RA 1102E ; OtherLetter # Lo BRAHMI LETTER LA 1102F ; OtherLetter # Lo BRAHMI LETTER VA 11030 ; OtherLetter # Lo BRAHMI LETTER SHA 11031 ; OtherLetter # Lo BRAHMI LETTER SSA 11032 ; OtherLetter # Lo BRAHMI LETTER SA 11033 ; OtherLetter # Lo BRAHMI LETTER HA 11034 ; OtherLetter # Lo BRAHMI LETTER LLA 11035 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL LLLA 11036 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL RRA 11037 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL NNNA 11046 ; Virama # Mn BRAHMI VIRAMA 11083 ; OtherLetter # Lo KAITHI LETTER A 11084 ; OtherLetter # Lo KAITHI LETTER AA 11085 ; OtherLetter # Lo KAITHI LETTER I 11086 ; OtherLetter # Lo KAITHI LETTER II 11087 ; OtherLetter # Lo KAITHI LETTER U 11088 ; OtherLetter # Lo KAITHI LETTER UU 11089 ; OtherLetter # Lo KAITHI LETTER E 1108A ; OtherLetter # Lo KAITHI LETTER AI 1108B ; OtherLetter # Lo KAITHI LETTER O 1108C ; OtherLetter # Lo KAITHI LETTER AU 1108D ; OtherLetter # Lo KAITHI LETTER KA 1108E ; OtherLetter # Lo KAITHI LETTER KHA 1108F ; OtherLetter # Lo KAITHI LETTER GA 11090 ; OtherLetter # Lo KAITHI LETTER GHA 11091 ; OtherLetter # Lo KAITHI LETTER NGA 11092 ; OtherLetter # Lo KAITHI LETTER CA 11093 ; OtherLetter # Lo KAITHI LETTER CHA 11094 ; OtherLetter # Lo KAITHI LETTER JA 11095 ; OtherLetter # Lo KAITHI LETTER JHA 11096 ; OtherLetter # Lo KAITHI LETTER NYA 11097 ; OtherLetter # Lo KAITHI LETTER TTA 11098 ; OtherLetter # Lo KAITHI LETTER TTHA 11099 ; OtherLetter # Lo KAITHI LETTER DDA 1109A ; OtherLetter # Lo KAITHI LETTER DDDHA 1109B ; OtherLetter # Lo KAITHI LETTER DDHA 1109C ; OtherLetter # Lo KAITHI LETTER RHA 1109D ; OtherLetter # Lo KAITHI LETTER NNA 1109E ; OtherLetter # Lo KAITHI LETTER TA 1109F ; OtherLetter # Lo KAITHI LETTER THA 110A0 ; OtherLetter # Lo KAITHI LETTER DA 110A1 ; OtherLetter # Lo KAITHI LETTER DHA 110A2 ; OtherLetter # Lo KAITHI LETTER NA 110A3 ; OtherLetter # Lo KAITHI LETTER PA 110A4 ; OtherLetter # Lo KAITHI LETTER PHA 110A5 ; OtherLetter # Lo KAITHI LETTER BA 110A6 ; OtherLetter # Lo KAITHI LETTER BHA 110A7 ; OtherLetter # Lo KAITHI LETTER MA 110A8 ; OtherLetter # Lo KAITHI LETTER YA 110A9 ; OtherLetter # Lo KAITHI LETTER RA 110AA ; OtherLetter # Lo KAITHI LETTER LA 110AB ; OtherLetter # Lo KAITHI LETTER VA 110AC ; OtherLetter # Lo KAITHI LETTER SHA 110AD ; OtherLetter # Lo KAITHI LETTER SSA 110AE ; OtherLetter # Lo KAITHI LETTER SA 110AF ; OtherLetter # Lo KAITHI LETTER HA 110B9 ; Virama # Mn KAITHI SIGN VIRAMA 11103 ; OtherLetter # Lo CHAKMA LETTER AA 11104 ; OtherLetter # Lo CHAKMA LETTER I 11105 ; OtherLetter # Lo CHAKMA LETTER U 11106 ; OtherLetter # Lo CHAKMA LETTER E 11107 ; OtherLetter # Lo CHAKMA LETTER KAA 11108 ; OtherLetter # Lo CHAKMA LETTER KHAA 11109 ; OtherLetter # Lo CHAKMA LETTER GAA 1110A ; OtherLetter # Lo CHAKMA LETTER GHAA 1110B ; OtherLetter # Lo CHAKMA LETTER NGAA 1110C ; OtherLetter # Lo CHAKMA LETTER CAA 1110D ; OtherLetter # Lo CHAKMA LETTER CHAA 1110E ; OtherLetter # Lo CHAKMA LETTER JAA 1110F ; OtherLetter # Lo CHAKMA LETTER JHAA 11110 ; OtherLetter # Lo CHAKMA LETTER NYAA 11111 ; OtherLetter # Lo CHAKMA LETTER TTAA 11112 ; OtherLetter # Lo CHAKMA LETTER TTHAA 11113 ; OtherLetter # Lo CHAKMA LETTER DDAA 11114 ; OtherLetter # Lo CHAKMA LETTER DDHAA 11115 ; OtherLetter # Lo CHAKMA LETTER NNAA 11116 ; OtherLetter # Lo CHAKMA LETTER TAA 11117 ; OtherLetter # Lo CHAKMA LETTER THAA 11118 ; OtherLetter # Lo CHAKMA LETTER DAA 11119 ; OtherLetter # Lo CHAKMA LETTER DHAA 1111A ; OtherLetter # Lo CHAKMA LETTER NAA 1111B ; OtherLetter # Lo CHAKMA LETTER PAA 1111C ; OtherLetter # Lo CHAKMA LETTER PHAA 1111D ; OtherLetter # Lo CHAKMA LETTER BAA 1111E ; OtherLetter # Lo CHAKMA LETTER BHAA 1111F ; OtherLetter # Lo CHAKMA LETTER MAA 11120 ; OtherLetter # Lo CHAKMA LETTER YYAA 11121 ; OtherLetter # Lo CHAKMA LETTER YAA 11122 ; OtherLetter # Lo CHAKMA LETTER RAA 11123 ; OtherLetter # Lo CHAKMA LETTER LAA 11124 ; OtherLetter # Lo CHAKMA LETTER WAA 11125 ; OtherLetter # Lo CHAKMA LETTER SAA 11126 ; OtherLetter # Lo CHAKMA LETTER HAA 11133 ; Virama # Mn CHAKMA VIRAMA 11134 ; Virama # Mn CHAKMA MAAYYAA 11183 ; OtherLetter # Lo SHARADA LETTER A 11184 ; OtherLetter # Lo SHARADA LETTER AA 11185 ; OtherLetter # Lo SHARADA LETTER I 11186 ; OtherLetter # Lo SHARADA LETTER II 11187 ; OtherLetter # Lo SHARADA LETTER U 11188 ; OtherLetter # Lo SHARADA LETTER UU 11189 ; OtherLetter # Lo SHARADA LETTER VOCALIC R 1118A ; OtherLetter # Lo SHARADA LETTER VOCALIC RR 1118B ; OtherLetter # Lo SHARADA LETTER VOCALIC L 1118C ; OtherLetter # Lo SHARADA LETTER VOCALIC LL 1118D ; OtherLetter # Lo SHARADA LETTER E 1118E ; OtherLetter # Lo SHARADA LETTER AI 1118F ; OtherLetter # Lo SHARADA LETTER O 11190 ; OtherLetter # Lo SHARADA LETTER AU 11191 ; OtherLetter # Lo SHARADA LETTER KA 11192 ; OtherLetter # Lo SHARADA LETTER KHA 11193 ; OtherLetter # Lo SHARADA LETTER GA 11194 ; OtherLetter # Lo SHARADA LETTER GHA 11195 ; OtherLetter # Lo SHARADA LETTER NGA 11196 ; OtherLetter # Lo SHARADA LETTER CA 11197 ; OtherLetter # Lo SHARADA LETTER CHA 11198 ; OtherLetter # Lo SHARADA LETTER JA 11199 ; OtherLetter # Lo SHARADA LETTER JHA 1119A ; OtherLetter # Lo SHARADA LETTER NYA 1119B ; OtherLetter # Lo SHARADA LETTER TTA 1119C ; OtherLetter # Lo SHARADA LETTER TTHA 1119D ; OtherLetter # Lo SHARADA LETTER DDA 1119E ; OtherLetter # Lo SHARADA LETTER DDHA 1119F ; OtherLetter # Lo SHARADA LETTER NNA 111A0 ; OtherLetter # Lo SHARADA LETTER TA 111A1 ; OtherLetter # Lo SHARADA LETTER THA 111A2 ; OtherLetter # Lo SHARADA LETTER DA 111A3 ; OtherLetter # Lo SHARADA LETTER DHA 111A4 ; OtherLetter # Lo SHARADA LETTER NA 111A5 ; OtherLetter # Lo SHARADA LETTER PA 111A6 ; OtherLetter # Lo SHARADA LETTER PHA 111A7 ; OtherLetter # Lo SHARADA LETTER BA 111A8 ; OtherLetter # Lo SHARADA LETTER BHA 111A9 ; OtherLetter # Lo SHARADA LETTER MA 111AA ; OtherLetter # Lo SHARADA LETTER YA 111AB ; OtherLetter # Lo SHARADA LETTER RA 111AC ; OtherLetter # Lo SHARADA LETTER LA 111AD ; OtherLetter # Lo SHARADA LETTER LLA 111AE ; OtherLetter # Lo SHARADA LETTER VA 111AF ; OtherLetter # Lo SHARADA LETTER SHA 111B0 ; OtherLetter # Lo SHARADA LETTER SSA 111B1 ; OtherLetter # Lo SHARADA LETTER SA 111B2 ; OtherLetter # Lo SHARADA LETTER HA 111C0 ; Virama # Mc SHARADA SIGN VIRAMA 111C1 ; OtherLetter # Lo SHARADA SIGN AVAGRAHA 111C2 ; OtherLetter # Lo SHARADA SIGN JIHVAMULIYA 111C3 ; OtherLetter # Lo SHARADA SIGN UPADHMANIYA 111C4 ; OtherLetter # Lo SHARADA OM 11680 ; OtherLetter # Lo TAKRI LETTER A 11681 ; OtherLetter # Lo TAKRI LETTER AA 11682 ; OtherLetter # Lo TAKRI LETTER I 11683 ; OtherLetter # Lo TAKRI LETTER II 11684 ; OtherLetter # Lo TAKRI LETTER U 11685 ; OtherLetter # Lo TAKRI LETTER UU 11686 ; OtherLetter # Lo TAKRI LETTER E 11687 ; OtherLetter # Lo TAKRI LETTER AI 11688 ; OtherLetter # Lo TAKRI LETTER O 11689 ; OtherLetter # Lo TAKRI LETTER AU 1168A ; OtherLetter # Lo TAKRI LETTER KA 1168B ; OtherLetter # Lo TAKRI LETTER KHA 1168C ; OtherLetter # Lo TAKRI LETTER GA 1168D ; OtherLetter # Lo TAKRI LETTER GHA 1168E ; OtherLetter # Lo TAKRI LETTER NGA 1168F ; OtherLetter # Lo TAKRI LETTER CA 11690 ; OtherLetter # Lo TAKRI LETTER CHA 11691 ; OtherLetter # Lo TAKRI LETTER JA 11692 ; OtherLetter # Lo TAKRI LETTER JHA 11693 ; OtherLetter # Lo TAKRI LETTER NYA 11694 ; OtherLetter # Lo TAKRI LETTER TTA 11695 ; OtherLetter # Lo TAKRI LETTER TTHA 11696 ; OtherLetter # Lo TAKRI LETTER DDA 11697 ; OtherLetter # Lo TAKRI LETTER DDHA 11698 ; OtherLetter # Lo TAKRI LETTER NNA 11699 ; OtherLetter # Lo TAKRI LETTER TA 1169A ; OtherLetter # Lo TAKRI LETTER THA 1169B ; OtherLetter # Lo TAKRI LETTER DA 1169C ; OtherLetter # Lo TAKRI LETTER DHA 1169D ; OtherLetter # Lo TAKRI LETTER NA 1169E ; OtherLetter # Lo TAKRI LETTER PA 1169F ; OtherLetter # Lo TAKRI LETTER PHA 116A0 ; OtherLetter # Lo TAKRI LETTER BA 116A1 ; OtherLetter # Lo TAKRI LETTER BHA 116A2 ; OtherLetter # Lo TAKRI LETTER MA 116A3 ; OtherLetter # Lo TAKRI LETTER YA 116A4 ; OtherLetter # Lo TAKRI LETTER RA 116A5 ; OtherLetter # Lo TAKRI LETTER LA 116A6 ; OtherLetter # Lo TAKRI LETTER VA 116A7 ; OtherLetter # Lo TAKRI LETTER SHA 116A8 ; OtherLetter # Lo TAKRI LETTER SA 116A9 ; OtherLetter # Lo TAKRI LETTER HA 116AA ; OtherLetter # Lo TAKRI LETTER RRA 116B6 ; Virama # Mc TAKRI SIGN VIRAMA sombok-2.3.1/data/LineBreak-6.2.0.custom0000664000076400007640000000014212221425420014373 00000000000000## SA characters may be categorized by their Grapheme_Cluster_Break properties. ## See [UAX #29]. sombok-2.3.1/data/Rules-6.3.0.txt0000664000076400007640000000363512213267546013167 00000000000000#### Rules for Unicode Line Breaking Algorithm. #### Based on Unicode Standard Annex #14 (UAX#14), Revision 30 (2012-09-14) #### by Asmus Freytag. http://www.unicode.org/reports/tr14/tr14-30.html ### 1 Non-tailorable Line Breaking Rules ## Resolve line breaking classes: # LB1 Assign a line breaking class to each code point of the input. ## Start and end of text: # LB2 sot × # LB3 ! eot ## Mandatory breaks: # LB4 BK ! # LB5 CR × LF CR ! LF ! NL ! # LB6 × ( BK | CR | LF | NL ) ## Explicit breaks and non-breaks: # LB7 × SP × ZW # LB8 ZW SP* ÷ ## Combining marks: # LB9 Treat X CM* as if it were X. where X is any line break class except BK, CR, LF, NL, SP, or ZW. # LB10 Treat any remaining CM as it if were AL. ## Word joiner: # LB11 × WJ WJ × ## Non-breaking characters: # LB12 GL × ### 2 Tailorable Line Breaking Rules ## Non-breaking characters: # LB12a [^SP BA HY] × GL ## Opening and closing: # LB13 × CL × CP × EX × IS × SY # LB14 OP SP* × # LB15 QU SP* × OP # LB16 CL SP* × NS CP SP* × NS # LB17 B2 SP* × B2 ## Spaces: # LB18 SP ÷ ## Special case rules: # LB19 × QU QU × # LB20 ÷ CB CB ÷ # LB21 × BA × HY × NS BB × # LB21a HL (HY | BA) × # LB22 (AL | HL) × IN ID × IN IN × IN NU × IN ## Numbers: # LB23 ID × PO (AL | HL) × NU NU × (AL | HL) # LB24 PR × ID PR × (AL | HL) PO × (AL | HL) # LB25 #CL × PO #CP × PO #CL × PR #CP × PR #NU × PO #NU × PR #PO × OP #PO × NU #PR × OP #PR × NU #HY × NU #IS × NU #NU × NU #SY × NU ## Korean syllable blocks # LB26 JL × (JL | JV | H2 | H3) (JV | H2) × (JV | JT) (JT | H3) × JT # LB27 (JL | JV | JT | H2 | H3) × IN (JL | JV | JT | H2 | H3) × PO PR × (JL | JV | JT | H2 | H3) ## Finally, join alphabetic letters into words and break everything else. # LB28 (AL | HL) × (AL | HL) # LB29 IS × (AL | HL) # LB30 (AL | HL | NU) × OP CP × (AL | HL | NU) # LB30a RI × RI # LB31 ALL ÷ ÷ ALL sombok-2.3.1/data/EastAsianWidth-6.2.0.custom0000664000076400007640000014404612221425420015423 000000000000000000;Z # 0001;Z # 0002;Z # 0003;Z # 0004;Z # 0005;Z # 0006;Z # 0007;Z # 0008;Z # 0009;Z # 000A;Z # 000B;Z # 000C;Z # 000D;Z # 000E;Z # 000F;Z # 0010;Z # 0011;Z # 0012;Z # 0013;Z # 0014;Z # 0015;Z # 0016;Z # 0017;Z # 0018;Z # 0019;Z # 001A;Z # 001B;Z # 001C;Z # 001D;Z # 001E;Z # 001F;Z # 007F;Z # 0080;Z # 0081;Z # 0082;Z # 0083;Z # 0084;Z # 0085;Z # 0086;Z # 0087;Z # 0088;Z # 0089;Z # 008A;Z # 008B;Z # 008C;Z # 008D;Z # 008E;Z # 008F;Z # 0090;Z # 0091;Z # 0092;Z # 0093;Z # 0094;Z # 0095;Z # 0096;Z # 0097;Z # 0098;Z # 0099;Z # 009A;Z # 009B;Z # 009C;Z # 009D;Z # 009E;Z # 009F;Z # 00AD;ZA # SOFT HYPHEN 0300;ZA # COMBINING GRAVE ACCENT 0301;ZA # COMBINING ACUTE ACCENT 0302;ZA # COMBINING CIRCUMFLEX ACCENT 0303;ZA # COMBINING TILDE 0304;ZA # COMBINING MACRON 0305;ZA # COMBINING OVERLINE 0306;ZA # COMBINING BREVE 0307;ZA # COMBINING DOT ABOVE 0308;ZA # COMBINING DIAERESIS 0309;ZA # COMBINING HOOK ABOVE 030A;ZA # COMBINING RING ABOVE 030B;ZA # COMBINING DOUBLE ACUTE ACCENT 030C;ZA # COMBINING CARON 030D;ZA # COMBINING VERTICAL LINE ABOVE 030E;ZA # COMBINING DOUBLE VERTICAL LINE ABOVE 030F;ZA # COMBINING DOUBLE GRAVE ACCENT 0310;ZA # COMBINING CANDRABINDU 0311;ZA # COMBINING INVERTED BREVE 0312;ZA # COMBINING TURNED COMMA ABOVE 0313;ZA # COMBINING COMMA ABOVE 0314;ZA # COMBINING REVERSED COMMA ABOVE 0315;ZA # COMBINING COMMA ABOVE RIGHT 0316;ZA # COMBINING GRAVE ACCENT BELOW 0317;ZA # COMBINING ACUTE ACCENT BELOW 0318;ZA # COMBINING LEFT TACK BELOW 0319;ZA # COMBINING RIGHT TACK BELOW 031A;ZA # COMBINING LEFT ANGLE ABOVE 031B;ZA # COMBINING HORN 031C;ZA # COMBINING LEFT HALF RING BELOW 031D;ZA # COMBINING UP TACK BELOW 031E;ZA # COMBINING DOWN TACK BELOW 031F;ZA # COMBINING PLUS SIGN BELOW 0320;ZA # COMBINING MINUS SIGN BELOW 0321;ZA # COMBINING PALATALIZED HOOK BELOW 0322;ZA # COMBINING RETROFLEX HOOK BELOW 0323;ZA # COMBINING DOT BELOW 0324;ZA # COMBINING DIAERESIS BELOW 0325;ZA # COMBINING RING BELOW 0326;ZA # COMBINING COMMA BELOW 0327;ZA # COMBINING CEDILLA 0328;ZA # COMBINING OGONEK 0329;ZA # COMBINING VERTICAL LINE BELOW 032A;ZA # COMBINING BRIDGE BELOW 032B;ZA # COMBINING INVERTED DOUBLE ARCH BELOW 032C;ZA # COMBINING CARON BELOW 032D;ZA # COMBINING CIRCUMFLEX ACCENT BELOW 032E;ZA # COMBINING BREVE BELOW 032F;ZA # COMBINING INVERTED BREVE BELOW 0330;ZA # COMBINING TILDE BELOW 0331;ZA # COMBINING MACRON BELOW 0332;ZA # COMBINING LOW LINE 0333;ZA # COMBINING DOUBLE LOW LINE 0334;ZA # COMBINING TILDE OVERLAY 0335;ZA # COMBINING SHORT STROKE OVERLAY 0336;ZA # COMBINING LONG STROKE OVERLAY 0337;ZA # COMBINING SHORT SOLIDUS OVERLAY 0338;ZA # COMBINING LONG SOLIDUS OVERLAY 0339;ZA # COMBINING RIGHT HALF RING BELOW 033A;ZA # COMBINING INVERTED BRIDGE BELOW 033B;ZA # COMBINING SQUARE BELOW 033C;ZA # COMBINING SEAGULL BELOW 033D;ZA # COMBINING X ABOVE 033E;ZA # COMBINING VERTICAL TILDE 033F;ZA # COMBINING DOUBLE OVERLINE 0340;ZA # COMBINING GRAVE TONE MARK 0341;ZA # COMBINING ACUTE TONE MARK 0342;ZA # COMBINING GREEK PERISPOMENI 0343;ZA # COMBINING GREEK KORONIS 0344;ZA # COMBINING GREEK DIALYTIKA TONOS 0345;ZA # COMBINING GREEK YPOGEGRAMMENI 0346;ZA # COMBINING BRIDGE ABOVE 0347;ZA # COMBINING EQUALS SIGN BELOW 0348;ZA # COMBINING DOUBLE VERTICAL LINE BELOW 0349;ZA # COMBINING LEFT ANGLE BELOW 034A;ZA # COMBINING NOT TILDE ABOVE 034B;ZA # COMBINING HOMOTHETIC ABOVE 034C;ZA # COMBINING ALMOST EQUAL TO ABOVE 034D;ZA # COMBINING LEFT RIGHT ARROW BELOW 034E;ZA # COMBINING UPWARDS ARROW BELOW 034F;ZA # COMBINING GRAPHEME JOINER 0350;ZA # COMBINING RIGHT ARROWHEAD ABOVE 0351;ZA # COMBINING LEFT HALF RING ABOVE 0352;ZA # COMBINING FERMATA 0353;ZA # COMBINING X BELOW 0354;ZA # COMBINING LEFT ARROWHEAD BELOW 0355;ZA # COMBINING RIGHT ARROWHEAD BELOW 0356;ZA # COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW 0357;ZA # COMBINING RIGHT HALF RING ABOVE 0358;ZA # COMBINING DOT ABOVE RIGHT 0359;ZA # COMBINING ASTERISK BELOW 035A;ZA # COMBINING DOUBLE RING BELOW 035B;ZA # COMBINING ZIGZAG ABOVE 035C;ZA # COMBINING DOUBLE BREVE BELOW 035D;ZA # COMBINING DOUBLE BREVE 035E;ZA # COMBINING DOUBLE MACRON 035F;ZA # COMBINING DOUBLE MACRON BELOW 0360;ZA # COMBINING DOUBLE TILDE 0361;ZA # COMBINING DOUBLE INVERTED BREVE 0362;ZA # COMBINING DOUBLE RIGHTWARDS ARROW BELOW 0363;ZA # COMBINING LATIN SMALL LETTER A 0364;ZA # COMBINING LATIN SMALL LETTER E 0365;ZA # COMBINING LATIN SMALL LETTER I 0366;ZA # COMBINING LATIN SMALL LETTER O 0367;ZA # COMBINING LATIN SMALL LETTER U 0368;ZA # COMBINING LATIN SMALL LETTER C 0369;ZA # COMBINING LATIN SMALL LETTER D 036A;ZA # COMBINING LATIN SMALL LETTER H 036B;ZA # COMBINING LATIN SMALL LETTER M 036C;ZA # COMBINING LATIN SMALL LETTER R 036D;ZA # COMBINING LATIN SMALL LETTER T 036E;ZA # COMBINING LATIN SMALL LETTER V 036F;ZA # COMBINING LATIN SMALL LETTER X 0483;Z # COMBINING CYRILLIC TITLO 0484;Z # COMBINING CYRILLIC PALATALIZATION 0485;Z # COMBINING CYRILLIC DASIA PNEUMATA 0486;Z # COMBINING CYRILLIC PSILI PNEUMATA 0487;Z # COMBINING CYRILLIC POKRYTIE 0488;Z # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN 0489;Z # COMBINING CYRILLIC MILLIONS SIGN 0591;Z # HEBREW ACCENT ETNAHTA 0592;Z # HEBREW ACCENT SEGOL 0593;Z # HEBREW ACCENT SHALSHELET 0594;Z # HEBREW ACCENT ZAQEF QATAN 0595;Z # HEBREW ACCENT ZAQEF GADOL 0596;Z # HEBREW ACCENT TIPEHA 0597;Z # HEBREW ACCENT REVIA 0598;Z # HEBREW ACCENT ZARQA 0599;Z # HEBREW ACCENT PASHTA 059A;Z # HEBREW ACCENT YETIV 059B;Z # HEBREW ACCENT TEVIR 059C;Z # HEBREW ACCENT GERESH 059D;Z # HEBREW ACCENT GERESH MUQDAM 059E;Z # HEBREW ACCENT GERSHAYIM 059F;Z # HEBREW ACCENT QARNEY PARA 05A0;Z # HEBREW ACCENT TELISHA GEDOLA 05A1;Z # HEBREW ACCENT PAZER 05A2;Z # HEBREW ACCENT ATNAH HAFUKH 05A3;Z # HEBREW ACCENT MUNAH 05A4;Z # HEBREW ACCENT MAHAPAKH 05A5;Z # HEBREW ACCENT MERKHA 05A6;Z # HEBREW ACCENT MERKHA KEFULA 05A7;Z # HEBREW ACCENT DARGA 05A8;Z # HEBREW ACCENT QADMA 05A9;Z # HEBREW ACCENT TELISHA QETANA 05AA;Z # HEBREW ACCENT YERAH BEN YOMO 05AB;Z # HEBREW ACCENT OLE 05AC;Z # HEBREW ACCENT ILUY 05AD;Z # HEBREW ACCENT DEHI 05AE;Z # HEBREW ACCENT ZINOR 05AF;Z # HEBREW MARK MASORA CIRCLE 05B0;Z # HEBREW POINT SHEVA 05B1;Z # HEBREW POINT HATAF SEGOL 05B2;Z # HEBREW POINT HATAF PATAH 05B3;Z # HEBREW POINT HATAF QAMATS 05B4;Z # HEBREW POINT HIRIQ 05B5;Z # HEBREW POINT TSERE 05B6;Z # HEBREW POINT SEGOL 05B7;Z # HEBREW POINT PATAH 05B8;Z # HEBREW POINT QAMATS 05B9;Z # HEBREW POINT HOLAM 05BA;Z # HEBREW POINT HOLAM HASER FOR VAV 05BB;Z # HEBREW POINT QUBUTS 05BC;Z # HEBREW POINT DAGESH OR MAPIQ 05BD;Z # HEBREW POINT METEG 05BF;Z # HEBREW POINT RAFE 05C1;Z # HEBREW POINT SHIN DOT 05C2;Z # HEBREW POINT SIN DOT 05C4;Z # HEBREW MARK UPPER DOT 05C5;Z # HEBREW MARK LOWER DOT 05C7;Z # HEBREW POINT QAMATS QATAN 0600;Z # ARABIC NUMBER SIGN 0601;Z # ARABIC SIGN SANAH 0602;Z # ARABIC FOOTNOTE MARKER 0603;Z # ARABIC SIGN SAFHA 0604;Z # ARABIC SIGN SAMVAT 0610;Z # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM 0611;Z # ARABIC SIGN ALAYHE ASSALLAM 0612;Z # ARABIC SIGN RAHMATULLAH ALAYHE 0613;Z # ARABIC SIGN RADI ALLAHOU ANHU 0614;Z # ARABIC SIGN TAKHALLUS 0615;Z # ARABIC SMALL HIGH TAH 0616;Z # ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH 0617;Z # ARABIC SMALL HIGH ZAIN 0618;Z # ARABIC SMALL FATHA 0619;Z # ARABIC SMALL DAMMA 061A;Z # ARABIC SMALL KASRA 064B;Z # ARABIC FATHATAN 064C;Z # ARABIC DAMMATAN 064D;Z # ARABIC KASRATAN 064E;Z # ARABIC FATHA 064F;Z # ARABIC DAMMA 0650;Z # ARABIC KASRA 0651;Z # ARABIC SHADDA 0652;Z # ARABIC SUKUN 0653;Z # ARABIC MADDAH ABOVE 0654;Z # ARABIC HAMZA ABOVE 0655;Z # ARABIC HAMZA BELOW 0656;Z # ARABIC SUBSCRIPT ALEF 0657;Z # ARABIC INVERTED DAMMA 0658;Z # ARABIC MARK NOON GHUNNA 0659;Z # ARABIC ZWARAKAY 065A;Z # ARABIC VOWEL SIGN SMALL V ABOVE 065B;Z # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE 065C;Z # ARABIC VOWEL SIGN DOT BELOW 065D;Z # ARABIC REVERSED DAMMA 065E;Z # ARABIC FATHA WITH TWO DOTS 065F;Z # ARABIC WAVY HAMZA BELOW 0670;Z # ARABIC LETTER SUPERSCRIPT ALEF 06D6;Z # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA 06D7;Z # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA 06D8;Z # ARABIC SMALL HIGH MEEM INITIAL FORM 06D9;Z # ARABIC SMALL HIGH LAM ALEF 06DA;Z # ARABIC SMALL HIGH JEEM 06DB;Z # ARABIC SMALL HIGH THREE DOTS 06DC;Z # ARABIC SMALL HIGH SEEN 06DD;Z # ARABIC END OF AYAH 06DF;Z # ARABIC SMALL HIGH ROUNDED ZERO 06E0;Z # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO 06E1;Z # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH 06E2;Z # ARABIC SMALL HIGH MEEM ISOLATED FORM 06E3;Z # ARABIC SMALL LOW SEEN 06E4;Z # ARABIC SMALL HIGH MADDA 06E7;Z # ARABIC SMALL HIGH YEH 06E8;Z # ARABIC SMALL HIGH NOON 06EA;Z # ARABIC EMPTY CENTRE LOW STOP 06EB;Z # ARABIC EMPTY CENTRE HIGH STOP 06EC;Z # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE 06ED;Z # ARABIC SMALL LOW MEEM 070F;Z # SYRIAC ABBREVIATION MARK 0711;Z # SYRIAC LETTER SUPERSCRIPT ALAPH 0730;Z # SYRIAC PTHAHA ABOVE 0731;Z # SYRIAC PTHAHA BELOW 0732;Z # SYRIAC PTHAHA DOTTED 0733;Z # SYRIAC ZQAPHA ABOVE 0734;Z # SYRIAC ZQAPHA BELOW 0735;Z # SYRIAC ZQAPHA DOTTED 0736;Z # SYRIAC RBASA ABOVE 0737;Z # SYRIAC RBASA BELOW 0738;Z # SYRIAC DOTTED ZLAMA HORIZONTAL 0739;Z # SYRIAC DOTTED ZLAMA ANGULAR 073A;Z # SYRIAC HBASA ABOVE 073B;Z # SYRIAC HBASA BELOW 073C;Z # SYRIAC HBASA-ESASA DOTTED 073D;Z # SYRIAC ESASA ABOVE 073E;Z # SYRIAC ESASA BELOW 073F;Z # SYRIAC RWAHA 0740;Z # SYRIAC FEMININE DOT 0741;Z # SYRIAC QUSHSHAYA 0742;Z # SYRIAC RUKKAKHA 0743;Z # SYRIAC TWO VERTICAL DOTS ABOVE 0744;Z # SYRIAC TWO VERTICAL DOTS BELOW 0745;Z # SYRIAC THREE DOTS ABOVE 0746;Z # SYRIAC THREE DOTS BELOW 0747;Z # SYRIAC OBLIQUE LINE ABOVE 0748;Z # SYRIAC OBLIQUE LINE BELOW 0749;Z # SYRIAC MUSIC 074A;Z # SYRIAC BARREKH 07A6;Z # THAANA ABAFILI 07A7;Z # THAANA AABAAFILI 07A8;Z # THAANA IBIFILI 07A9;Z # THAANA EEBEEFILI 07AA;Z # THAANA UBUFILI 07AB;Z # THAANA OOBOOFILI 07AC;Z # THAANA EBEFILI 07AD;Z # THAANA EYBEYFILI 07AE;Z # THAANA OBOFILI 07AF;Z # THAANA OABOAFILI 07B0;Z # THAANA SUKUN 07EB;Z # NKO COMBINING SHORT HIGH TONE 07EC;Z # NKO COMBINING SHORT LOW TONE 07ED;Z # NKO COMBINING SHORT RISING TONE 07EE;Z # NKO COMBINING LONG DESCENDING TONE 07EF;Z # NKO COMBINING LONG HIGH TONE 07F0;Z # NKO COMBINING LONG LOW TONE 07F1;Z # NKO COMBINING LONG RISING TONE 07F2;Z # NKO COMBINING NASALIZATION MARK 07F3;Z # NKO COMBINING DOUBLE DOT ABOVE 0816;Z # SAMARITAN MARK IN 0817;Z # SAMARITAN MARK IN-ALAF 0818;Z # SAMARITAN MARK OCCLUSION 0819;Z # SAMARITAN MARK DAGESH 081B;Z # SAMARITAN MARK EPENTHETIC YUT 081C;Z # SAMARITAN VOWEL SIGN LONG E 081D;Z # SAMARITAN VOWEL SIGN E 081E;Z # SAMARITAN VOWEL SIGN OVERLONG AA 081F;Z # SAMARITAN VOWEL SIGN LONG AA 0820;Z # SAMARITAN VOWEL SIGN AA 0821;Z # SAMARITAN VOWEL SIGN OVERLONG A 0822;Z # SAMARITAN VOWEL SIGN LONG A 0823;Z # SAMARITAN VOWEL SIGN A 0825;Z # SAMARITAN VOWEL SIGN SHORT A 0826;Z # SAMARITAN VOWEL SIGN LONG U 0827;Z # SAMARITAN VOWEL SIGN U 0829;Z # SAMARITAN VOWEL SIGN LONG I 082A;Z # SAMARITAN VOWEL SIGN I 082B;Z # SAMARITAN VOWEL SIGN O 082C;Z # SAMARITAN VOWEL SIGN SUKUN 082D;Z # SAMARITAN MARK NEQUDAA 0859;Z # MANDAIC AFFRICATION MARK 085A;Z # MANDAIC VOCALIZATION MARK 085B;Z # MANDAIC GEMINATION MARK 08E4;Z # ARABIC CURLY FATHA 08E5;Z # ARABIC CURLY DAMMA 08E6;Z # ARABIC CURLY KASRA 08E7;Z # ARABIC CURLY FATHATAN 08E8;Z # ARABIC CURLY DAMMATAN 08E9;Z # ARABIC CURLY KASRATAN 08EA;Z # ARABIC TONE ONE DOT ABOVE 08EB;Z # ARABIC TONE TWO DOTS ABOVE 08EC;Z # ARABIC TONE LOOP ABOVE 08ED;Z # ARABIC TONE ONE DOT BELOW 08EE;Z # ARABIC TONE TWO DOTS BELOW 08EF;Z # ARABIC TONE LOOP BELOW 08F0;Z # ARABIC OPEN FATHATAN 08F1;Z # ARABIC OPEN DAMMATAN 08F2;Z # ARABIC OPEN KASRATAN 08F3;Z # ARABIC SMALL HIGH WAW 08F4;Z # ARABIC FATHA WITH RING 08F5;Z # ARABIC FATHA WITH DOT ABOVE 08F6;Z # ARABIC KASRA WITH DOT BELOW 08F7;Z # ARABIC LEFT ARROWHEAD ABOVE 08F8;Z # ARABIC RIGHT ARROWHEAD ABOVE 08F9;Z # ARABIC LEFT ARROWHEAD BELOW 08FA;Z # ARABIC RIGHT ARROWHEAD BELOW 08FB;Z # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE 08FC;Z # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT 08FD;Z # ARABIC RIGHT ARROWHEAD ABOVE WITH DOT 08FE;Z # ARABIC DAMMA WITH DOT 0900;Z # DEVANAGARI SIGN INVERTED CANDRABINDU 0901;Z # DEVANAGARI SIGN CANDRABINDU 0902;Z # DEVANAGARI SIGN ANUSVARA 093A;Z # DEVANAGARI VOWEL SIGN OE 093C;Z # DEVANAGARI SIGN NUKTA 0941;Z # DEVANAGARI VOWEL SIGN U 0942;Z # DEVANAGARI VOWEL SIGN UU 0943;Z # DEVANAGARI VOWEL SIGN VOCALIC R 0944;Z # DEVANAGARI VOWEL SIGN VOCALIC RR 0945;Z # DEVANAGARI VOWEL SIGN CANDRA E 0946;Z # DEVANAGARI VOWEL SIGN SHORT E 0947;Z # DEVANAGARI VOWEL SIGN E 0948;Z # DEVANAGARI VOWEL SIGN AI 094D;Z # DEVANAGARI SIGN VIRAMA 0951;Z # DEVANAGARI STRESS SIGN UDATTA 0952;Z # DEVANAGARI STRESS SIGN ANUDATTA 0953;Z # DEVANAGARI GRAVE ACCENT 0954;Z # DEVANAGARI ACUTE ACCENT 0955;Z # DEVANAGARI VOWEL SIGN CANDRA LONG E 0956;Z # DEVANAGARI VOWEL SIGN UE 0957;Z # DEVANAGARI VOWEL SIGN UUE 0962;Z # DEVANAGARI VOWEL SIGN VOCALIC L 0963;Z # DEVANAGARI VOWEL SIGN VOCALIC LL 0981;Z # BENGALI SIGN CANDRABINDU 09BC;Z # BENGALI SIGN NUKTA 09C1;Z # BENGALI VOWEL SIGN U 09C2;Z # BENGALI VOWEL SIGN UU 09C3;Z # BENGALI VOWEL SIGN VOCALIC R 09C4;Z # BENGALI VOWEL SIGN VOCALIC RR 09CD;Z # BENGALI SIGN VIRAMA 09E2;Z # BENGALI VOWEL SIGN VOCALIC L 09E3;Z # BENGALI VOWEL SIGN VOCALIC LL 0A01;Z # GURMUKHI SIGN ADAK BINDI 0A02;Z # GURMUKHI SIGN BINDI 0A3C;Z # GURMUKHI SIGN NUKTA 0A41;Z # GURMUKHI VOWEL SIGN U 0A42;Z # GURMUKHI VOWEL SIGN UU 0A47;Z # GURMUKHI VOWEL SIGN EE 0A48;Z # GURMUKHI VOWEL SIGN AI 0A4B;Z # GURMUKHI VOWEL SIGN OO 0A4C;Z # GURMUKHI VOWEL SIGN AU 0A4D;Z # GURMUKHI SIGN VIRAMA 0A51;Z # GURMUKHI SIGN UDAAT 0A70;Z # GURMUKHI TIPPI 0A71;Z # GURMUKHI ADDAK 0A75;Z # GURMUKHI SIGN YAKASH 0A81;Z # GUJARATI SIGN CANDRABINDU 0A82;Z # GUJARATI SIGN ANUSVARA 0ABC;Z # GUJARATI SIGN NUKTA 0AC1;Z # GUJARATI VOWEL SIGN U 0AC2;Z # GUJARATI VOWEL SIGN UU 0AC3;Z # GUJARATI VOWEL SIGN VOCALIC R 0AC4;Z # GUJARATI VOWEL SIGN VOCALIC RR 0AC5;Z # GUJARATI VOWEL SIGN CANDRA E 0AC7;Z # GUJARATI VOWEL SIGN E 0AC8;Z # GUJARATI VOWEL SIGN AI 0ACD;Z # GUJARATI SIGN VIRAMA 0AE2;Z # GUJARATI VOWEL SIGN VOCALIC L 0AE3;Z # GUJARATI VOWEL SIGN VOCALIC LL 0B01;Z # ORIYA SIGN CANDRABINDU 0B3C;Z # ORIYA SIGN NUKTA 0B3F;Z # ORIYA VOWEL SIGN I 0B41;Z # ORIYA VOWEL SIGN U 0B42;Z # ORIYA VOWEL SIGN UU 0B43;Z # ORIYA VOWEL SIGN VOCALIC R 0B44;Z # ORIYA VOWEL SIGN VOCALIC RR 0B4D;Z # ORIYA SIGN VIRAMA 0B56;Z # ORIYA AI LENGTH MARK 0B62;Z # ORIYA VOWEL SIGN VOCALIC L 0B63;Z # ORIYA VOWEL SIGN VOCALIC LL 0B82;Z # TAMIL SIGN ANUSVARA 0BC0;Z # TAMIL VOWEL SIGN II 0BCD;Z # TAMIL SIGN VIRAMA 0C3E;Z # TELUGU VOWEL SIGN AA 0C3F;Z # TELUGU VOWEL SIGN I 0C40;Z # TELUGU VOWEL SIGN II 0C46;Z # TELUGU VOWEL SIGN E 0C47;Z # TELUGU VOWEL SIGN EE 0C48;Z # TELUGU VOWEL SIGN AI 0C4A;Z # TELUGU VOWEL SIGN O 0C4B;Z # TELUGU VOWEL SIGN OO 0C4C;Z # TELUGU VOWEL SIGN AU 0C4D;Z # TELUGU SIGN VIRAMA 0C55;Z # TELUGU LENGTH MARK 0C56;Z # TELUGU AI LENGTH MARK 0C62;Z # TELUGU VOWEL SIGN VOCALIC L 0C63;Z # TELUGU VOWEL SIGN VOCALIC LL 0CBC;Z # KANNADA SIGN NUKTA 0CBF;Z # KANNADA VOWEL SIGN I 0CC6;Z # KANNADA VOWEL SIGN E 0CCC;Z # KANNADA VOWEL SIGN AU 0CCD;Z # KANNADA SIGN VIRAMA 0CE2;Z # KANNADA VOWEL SIGN VOCALIC L 0CE3;Z # KANNADA VOWEL SIGN VOCALIC LL 0D41;Z # MALAYALAM VOWEL SIGN U 0D42;Z # MALAYALAM VOWEL SIGN UU 0D43;Z # MALAYALAM VOWEL SIGN VOCALIC R 0D44;Z # MALAYALAM VOWEL SIGN VOCALIC RR 0D4D;Z # MALAYALAM SIGN VIRAMA 0D62;Z # MALAYALAM VOWEL SIGN VOCALIC L 0D63;Z # MALAYALAM VOWEL SIGN VOCALIC LL 0DCA;Z # SINHALA SIGN AL-LAKUNA 0DD2;Z # SINHALA VOWEL SIGN KETTI IS-PILLA 0DD3;Z # SINHALA VOWEL SIGN DIGA IS-PILLA 0DD4;Z # SINHALA VOWEL SIGN KETTI PAA-PILLA 0DD6;Z # SINHALA VOWEL SIGN DIGA PAA-PILLA 0E31;Z # THAI CHARACTER MAI HAN-AKAT 0E34;Z # THAI CHARACTER SARA I 0E35;Z # THAI CHARACTER SARA II 0E36;Z # THAI CHARACTER SARA UE 0E37;Z # THAI CHARACTER SARA UEE 0E38;Z # THAI CHARACTER SARA U 0E39;Z # THAI CHARACTER SARA UU 0E3A;Z # THAI CHARACTER PHINTHU 0E47;Z # THAI CHARACTER MAITAIKHU 0E48;Z # THAI CHARACTER MAI EK 0E49;Z # THAI CHARACTER MAI THO 0E4A;Z # THAI CHARACTER MAI TRI 0E4B;Z # THAI CHARACTER MAI CHATTAWA 0E4C;Z # THAI CHARACTER THANTHAKHAT 0E4D;Z # THAI CHARACTER NIKHAHIT 0E4E;Z # THAI CHARACTER YAMAKKAN 0EB1;Z # LAO VOWEL SIGN MAI KAN 0EB4;Z # LAO VOWEL SIGN I 0EB5;Z # LAO VOWEL SIGN II 0EB6;Z # LAO VOWEL SIGN Y 0EB7;Z # LAO VOWEL SIGN YY 0EB8;Z # LAO VOWEL SIGN U 0EB9;Z # LAO VOWEL SIGN UU 0EBB;Z # LAO VOWEL SIGN MAI KON 0EBC;Z # LAO SEMIVOWEL SIGN LO 0EC8;Z # LAO TONE MAI EK 0EC9;Z # LAO TONE MAI THO 0ECA;Z # LAO TONE MAI TI 0ECB;Z # LAO TONE MAI CATAWA 0ECC;Z # LAO CANCELLATION MARK 0ECD;Z # LAO NIGGAHITA 0F18;Z # TIBETAN ASTROLOGICAL SIGN -KHYUD PA 0F19;Z # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS 0F35;Z # TIBETAN MARK NGAS BZUNG NYI ZLA 0F37;Z # TIBETAN MARK NGAS BZUNG SGOR RTAGS 0F39;Z # TIBETAN MARK TSA -PHRU 0F71;Z # TIBETAN VOWEL SIGN AA 0F72;Z # TIBETAN VOWEL SIGN I 0F73;Z # TIBETAN VOWEL SIGN II 0F74;Z # TIBETAN VOWEL SIGN U 0F75;Z # TIBETAN VOWEL SIGN UU 0F76;Z # TIBETAN VOWEL SIGN VOCALIC R 0F77;Z # TIBETAN VOWEL SIGN VOCALIC RR 0F78;Z # TIBETAN VOWEL SIGN VOCALIC L 0F79;Z # TIBETAN VOWEL SIGN VOCALIC LL 0F7A;Z # TIBETAN VOWEL SIGN E 0F7B;Z # TIBETAN VOWEL SIGN EE 0F7C;Z # TIBETAN VOWEL SIGN O 0F7D;Z # TIBETAN VOWEL SIGN OO 0F7E;Z # TIBETAN SIGN RJES SU NGA RO 0F80;Z # TIBETAN VOWEL SIGN REVERSED I 0F81;Z # TIBETAN VOWEL SIGN REVERSED II 0F82;Z # TIBETAN SIGN NYI ZLA NAA DA 0F83;Z # TIBETAN SIGN SNA LDAN 0F84;Z # TIBETAN MARK HALANTA 0F86;Z # TIBETAN SIGN LCI RTAGS 0F87;Z # TIBETAN SIGN YANG RTAGS 0F8D;Z # TIBETAN SUBJOINED SIGN LCE TSA CAN 0F8E;Z # TIBETAN SUBJOINED SIGN MCHU CAN 0F8F;Z # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN 0F90;Z # TIBETAN SUBJOINED LETTER KA 0F91;Z # TIBETAN SUBJOINED LETTER KHA 0F92;Z # TIBETAN SUBJOINED LETTER GA 0F93;Z # TIBETAN SUBJOINED LETTER GHA 0F94;Z # TIBETAN SUBJOINED LETTER NGA 0F95;Z # TIBETAN SUBJOINED LETTER CA 0F96;Z # TIBETAN SUBJOINED LETTER CHA 0F97;Z # TIBETAN SUBJOINED LETTER JA 0F99;Z # TIBETAN SUBJOINED LETTER NYA 0F9A;Z # TIBETAN SUBJOINED LETTER TTA 0F9B;Z # TIBETAN SUBJOINED LETTER TTHA 0F9C;Z # TIBETAN SUBJOINED LETTER DDA 0F9D;Z # TIBETAN SUBJOINED LETTER DDHA 0F9E;Z # TIBETAN SUBJOINED LETTER NNA 0F9F;Z # TIBETAN SUBJOINED LETTER TA 0FA0;Z # TIBETAN SUBJOINED LETTER THA 0FA1;Z # TIBETAN SUBJOINED LETTER DA 0FA2;Z # TIBETAN SUBJOINED LETTER DHA 0FA3;Z # TIBETAN SUBJOINED LETTER NA 0FA4;Z # TIBETAN SUBJOINED LETTER PA 0FA5;Z # TIBETAN SUBJOINED LETTER PHA 0FA6;Z # TIBETAN SUBJOINED LETTER BA 0FA7;Z # TIBETAN SUBJOINED LETTER BHA 0FA8;Z # TIBETAN SUBJOINED LETTER MA 0FA9;Z # TIBETAN SUBJOINED LETTER TSA 0FAA;Z # TIBETAN SUBJOINED LETTER TSHA 0FAB;Z # TIBETAN SUBJOINED LETTER DZA 0FAC;Z # TIBETAN SUBJOINED LETTER DZHA 0FAD;Z # TIBETAN SUBJOINED LETTER WA 0FAE;Z # TIBETAN SUBJOINED LETTER ZHA 0FAF;Z # TIBETAN SUBJOINED LETTER ZA 0FB0;Z # TIBETAN SUBJOINED LETTER -A 0FB1;Z # TIBETAN SUBJOINED LETTER YA 0FB2;Z # TIBETAN SUBJOINED LETTER RA 0FB3;Z # TIBETAN SUBJOINED LETTER LA 0FB4;Z # TIBETAN SUBJOINED LETTER SHA 0FB5;Z # TIBETAN SUBJOINED LETTER SSA 0FB6;Z # TIBETAN SUBJOINED LETTER SA 0FB7;Z # TIBETAN SUBJOINED LETTER HA 0FB8;Z # TIBETAN SUBJOINED LETTER A 0FB9;Z # TIBETAN SUBJOINED LETTER KSSA 0FBA;Z # TIBETAN SUBJOINED LETTER FIXED-FORM WA 0FBB;Z # TIBETAN SUBJOINED LETTER FIXED-FORM YA 0FBC;Z # TIBETAN SUBJOINED LETTER FIXED-FORM RA 0FC6;Z # TIBETAN SYMBOL PADMA GDAN 102D;Z # MYANMAR VOWEL SIGN I 102E;Z # MYANMAR VOWEL SIGN II 102F;Z # MYANMAR VOWEL SIGN U 1030;Z # MYANMAR VOWEL SIGN UU 1032;Z # MYANMAR VOWEL SIGN AI 1033;Z # MYANMAR VOWEL SIGN MON II 1034;Z # MYANMAR VOWEL SIGN MON O 1035;Z # MYANMAR VOWEL SIGN E ABOVE 1036;Z # MYANMAR SIGN ANUSVARA 1037;Z # MYANMAR SIGN DOT BELOW 1039;Z # MYANMAR SIGN VIRAMA 103A;Z # MYANMAR SIGN ASAT 103D;Z # MYANMAR CONSONANT SIGN MEDIAL WA 103E;Z # MYANMAR CONSONANT SIGN MEDIAL HA 1058;Z # MYANMAR VOWEL SIGN VOCALIC L 1059;Z # MYANMAR VOWEL SIGN VOCALIC LL 105E;Z # MYANMAR CONSONANT SIGN MON MEDIAL NA 105F;Z # MYANMAR CONSONANT SIGN MON MEDIAL MA 1060;Z # MYANMAR CONSONANT SIGN MON MEDIAL LA 1071;Z # MYANMAR VOWEL SIGN GEBA KAREN I 1072;Z # MYANMAR VOWEL SIGN KAYAH OE 1073;Z # MYANMAR VOWEL SIGN KAYAH U 1074;Z # MYANMAR VOWEL SIGN KAYAH EE 1082;Z # MYANMAR CONSONANT SIGN SHAN MEDIAL WA 1085;Z # MYANMAR VOWEL SIGN SHAN E ABOVE 1086;Z # MYANMAR VOWEL SIGN SHAN FINAL Y 108D;Z # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE 109D;Z # MYANMAR VOWEL SIGN AITON AI 135D;Z # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK 135E;Z # ETHIOPIC COMBINING VOWEL LENGTH MARK 135F;Z # ETHIOPIC COMBINING GEMINATION MARK 1712;Z # TAGALOG VOWEL SIGN I 1713;Z # TAGALOG VOWEL SIGN U 1714;Z # TAGALOG SIGN VIRAMA 1732;Z # HANUNOO VOWEL SIGN I 1733;Z # HANUNOO VOWEL SIGN U 1734;Z # HANUNOO SIGN PAMUDPOD 1752;Z # BUHID VOWEL SIGN I 1753;Z # BUHID VOWEL SIGN U 1772;Z # TAGBANWA VOWEL SIGN I 1773;Z # TAGBANWA VOWEL SIGN U 17B4;Z # KHMER VOWEL INHERENT AQ 17B5;Z # KHMER VOWEL INHERENT AA 17B7;Z # KHMER VOWEL SIGN I 17B8;Z # KHMER VOWEL SIGN II 17B9;Z # KHMER VOWEL SIGN Y 17BA;Z # KHMER VOWEL SIGN YY 17BB;Z # KHMER VOWEL SIGN U 17BC;Z # KHMER VOWEL SIGN UU 17BD;Z # KHMER VOWEL SIGN UA 17C6;Z # KHMER SIGN NIKAHIT 17C9;Z # KHMER SIGN MUUSIKATOAN 17CA;Z # KHMER SIGN TRIISAP 17CB;Z # KHMER SIGN BANTOC 17CC;Z # KHMER SIGN ROBAT 17CD;Z # KHMER SIGN TOANDAKHIAT 17CE;Z # KHMER SIGN KAKABAT 17CF;Z # KHMER SIGN AHSDA 17D0;Z # KHMER SIGN SAMYOK SANNYA 17D1;Z # KHMER SIGN VIRIAM 17D2;Z # KHMER SIGN COENG 17D3;Z # KHMER SIGN BATHAMASAT 17DD;Z # KHMER SIGN ATTHACAN 180B;Z # MONGOLIAN FREE VARIATION SELECTOR ONE 180C;Z # MONGOLIAN FREE VARIATION SELECTOR TWO 180D;Z # MONGOLIAN FREE VARIATION SELECTOR THREE 18A9;Z # MONGOLIAN LETTER ALI GALI DAGALGA 1920;Z # LIMBU VOWEL SIGN A 1921;Z # LIMBU VOWEL SIGN I 1922;Z # LIMBU VOWEL SIGN U 1927;Z # LIMBU VOWEL SIGN E 1928;Z # LIMBU VOWEL SIGN O 1932;Z # LIMBU SMALL LETTER ANUSVARA 1939;Z # LIMBU SIGN MUKPHRENG 193A;Z # LIMBU SIGN KEMPHRENG 193B;Z # LIMBU SIGN SA-I 1A17;Z # BUGINESE VOWEL SIGN I 1A18;Z # BUGINESE VOWEL SIGN U 1A56;Z # TAI THAM CONSONANT SIGN MEDIAL LA 1A58;Z # TAI THAM SIGN MAI KANG LAI 1A59;Z # TAI THAM CONSONANT SIGN FINAL NGA 1A5A;Z # TAI THAM CONSONANT SIGN LOW PA 1A5B;Z # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA 1A5C;Z # TAI THAM CONSONANT SIGN MA 1A5D;Z # TAI THAM CONSONANT SIGN BA 1A5E;Z # TAI THAM CONSONANT SIGN SA 1A60;Z # TAI THAM SIGN SAKOT 1A62;Z # TAI THAM VOWEL SIGN MAI SAT 1A65;Z # TAI THAM VOWEL SIGN I 1A66;Z # TAI THAM VOWEL SIGN II 1A67;Z # TAI THAM VOWEL SIGN UE 1A68;Z # TAI THAM VOWEL SIGN UUE 1A69;Z # TAI THAM VOWEL SIGN U 1A6A;Z # TAI THAM VOWEL SIGN UU 1A6B;Z # TAI THAM VOWEL SIGN O 1A6C;Z # TAI THAM VOWEL SIGN OA BELOW 1A73;Z # TAI THAM VOWEL SIGN OA ABOVE 1A74;Z # TAI THAM SIGN MAI KANG 1A75;Z # TAI THAM SIGN TONE-1 1A76;Z # TAI THAM SIGN TONE-2 1A77;Z # TAI THAM SIGN KHUEN TONE-3 1A78;Z # TAI THAM SIGN KHUEN TONE-4 1A79;Z # TAI THAM SIGN KHUEN TONE-5 1A7A;Z # TAI THAM SIGN RA HAAM 1A7B;Z # TAI THAM SIGN MAI SAM 1A7C;Z # TAI THAM SIGN KHUEN-LUE KARAN 1A7F;Z # TAI THAM COMBINING CRYPTOGRAMMIC DOT 1B00;Z # BALINESE SIGN ULU RICEM 1B01;Z # BALINESE SIGN ULU CANDRA 1B02;Z # BALINESE SIGN CECEK 1B03;Z # BALINESE SIGN SURANG 1B34;Z # BALINESE SIGN REREKAN 1B36;Z # BALINESE VOWEL SIGN ULU 1B37;Z # BALINESE VOWEL SIGN ULU SARI 1B38;Z # BALINESE VOWEL SIGN SUKU 1B39;Z # BALINESE VOWEL SIGN SUKU ILUT 1B3A;Z # BALINESE VOWEL SIGN RA REPA 1B3C;Z # BALINESE VOWEL SIGN LA LENGA 1B42;Z # BALINESE VOWEL SIGN PEPET 1B6B;Z # BALINESE MUSICAL SYMBOL COMBINING TEGEH 1B6C;Z # BALINESE MUSICAL SYMBOL COMBINING ENDEP 1B6D;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL 1B6E;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI 1B6F;Z # BALINESE MUSICAL SYMBOL COMBINING JEGOGAN 1B70;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN 1B71;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN 1B72;Z # BALINESE MUSICAL SYMBOL COMBINING BENDE 1B73;Z # BALINESE MUSICAL SYMBOL COMBINING GONG 1B80;Z # SUNDANESE SIGN PANYECEK 1B81;Z # SUNDANESE SIGN PANGLAYAR 1BA2;Z # SUNDANESE CONSONANT SIGN PANYAKRA 1BA3;Z # SUNDANESE CONSONANT SIGN PANYIKU 1BA4;Z # SUNDANESE VOWEL SIGN PANGHULU 1BA5;Z # SUNDANESE VOWEL SIGN PANYUKU 1BA8;Z # SUNDANESE VOWEL SIGN PAMEPET 1BA9;Z # SUNDANESE VOWEL SIGN PANEULEUNG 1BAB;Z # SUNDANESE SIGN VIRAMA 1BE6;Z # BATAK SIGN TOMPI 1BE8;Z # BATAK VOWEL SIGN PAKPAK E 1BE9;Z # BATAK VOWEL SIGN EE 1BED;Z # BATAK VOWEL SIGN KARO O 1BEF;Z # BATAK VOWEL SIGN U FOR SIMALUNGUN SA 1BF0;Z # BATAK CONSONANT SIGN NG 1BF1;Z # BATAK CONSONANT SIGN H 1C2C;Z # LEPCHA VOWEL SIGN E 1C2D;Z # LEPCHA CONSONANT SIGN K 1C2E;Z # LEPCHA CONSONANT SIGN M 1C2F;Z # LEPCHA CONSONANT SIGN L 1C30;Z # LEPCHA CONSONANT SIGN N 1C31;Z # LEPCHA CONSONANT SIGN P 1C32;Z # LEPCHA CONSONANT SIGN R 1C33;Z # LEPCHA CONSONANT SIGN T 1C36;Z # LEPCHA SIGN RAN 1C37;Z # LEPCHA SIGN NUKTA 1CD0;Z # VEDIC TONE KARSHANA 1CD1;Z # VEDIC TONE SHARA 1CD2;Z # VEDIC TONE PRENKHA 1CD4;Z # VEDIC SIGN YAJURVEDIC MIDLINE SVARITA 1CD5;Z # VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA 1CD6;Z # VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA 1CD7;Z # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA 1CD8;Z # VEDIC TONE CANDRA BELOW 1CD9;Z # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER 1CDA;Z # VEDIC TONE DOUBLE SVARITA 1CDB;Z # VEDIC TONE TRIPLE SVARITA 1CDC;Z # VEDIC TONE KATHAKA ANUDATTA 1CDD;Z # VEDIC TONE DOT BELOW 1CDE;Z # VEDIC TONE TWO DOTS BELOW 1CDF;Z # VEDIC TONE THREE DOTS BELOW 1CE0;Z # VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA 1CE2;Z # VEDIC SIGN VISARGA SVARITA 1CE3;Z # VEDIC SIGN VISARGA UDATTA 1CE4;Z # VEDIC SIGN REVERSED VISARGA UDATTA 1CE5;Z # VEDIC SIGN VISARGA ANUDATTA 1CE6;Z # VEDIC SIGN REVERSED VISARGA ANUDATTA 1CE7;Z # VEDIC SIGN VISARGA UDATTA WITH TAIL 1CE8;Z # VEDIC SIGN VISARGA ANUDATTA WITH TAIL 1CED;Z # VEDIC SIGN TIRYAK 1CF4;Z # VEDIC TONE CANDRA ABOVE 1DC0;Z # COMBINING DOTTED GRAVE ACCENT 1DC1;Z # COMBINING DOTTED ACUTE ACCENT 1DC2;Z # COMBINING SNAKE BELOW 1DC3;Z # COMBINING SUSPENSION MARK 1DC4;Z # COMBINING MACRON-ACUTE 1DC5;Z # COMBINING GRAVE-MACRON 1DC6;Z # COMBINING MACRON-GRAVE 1DC7;Z # COMBINING ACUTE-MACRON 1DC8;Z # COMBINING GRAVE-ACUTE-GRAVE 1DC9;Z # COMBINING ACUTE-GRAVE-ACUTE 1DCA;Z # COMBINING LATIN SMALL LETTER R BELOW 1DCB;Z # COMBINING BREVE-MACRON 1DCC;Z # COMBINING MACRON-BREVE 1DCD;Z # COMBINING DOUBLE CIRCUMFLEX ABOVE 1DCE;Z # COMBINING OGONEK ABOVE 1DCF;Z # COMBINING ZIGZAG BELOW 1DD0;Z # COMBINING IS BELOW 1DD1;Z # COMBINING UR ABOVE 1DD2;Z # COMBINING US ABOVE 1DD3;Z # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE 1DD4;Z # COMBINING LATIN SMALL LETTER AE 1DD5;Z # COMBINING LATIN SMALL LETTER AO 1DD6;Z # COMBINING LATIN SMALL LETTER AV 1DD7;Z # COMBINING LATIN SMALL LETTER C CEDILLA 1DD8;Z # COMBINING LATIN SMALL LETTER INSULAR D 1DD9;Z # COMBINING LATIN SMALL LETTER ETH 1DDA;Z # COMBINING LATIN SMALL LETTER G 1DDB;Z # COMBINING LATIN LETTER SMALL CAPITAL G 1DDC;Z # COMBINING LATIN SMALL LETTER K 1DDD;Z # COMBINING LATIN SMALL LETTER L 1DDE;Z # COMBINING LATIN LETTER SMALL CAPITAL L 1DDF;Z # COMBINING LATIN LETTER SMALL CAPITAL M 1DE0;Z # COMBINING LATIN SMALL LETTER N 1DE1;Z # COMBINING LATIN LETTER SMALL CAPITAL N 1DE2;Z # COMBINING LATIN LETTER SMALL CAPITAL R 1DE3;Z # COMBINING LATIN SMALL LETTER R ROTUNDA 1DE4;Z # COMBINING LATIN SMALL LETTER S 1DE5;Z # COMBINING LATIN SMALL LETTER LONG S 1DE6;Z # COMBINING LATIN SMALL LETTER Z 1DFC;Z # COMBINING DOUBLE INVERTED BREVE BELOW 1DFD;Z # COMBINING ALMOST EQUAL TO BELOW 1DFE;Z # COMBINING LEFT ARROWHEAD ABOVE 1DFF;Z # COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW 200B;Z # ZERO WIDTH SPACE 200C;Z # ZERO WIDTH NON-JOINER 200D;Z # ZERO WIDTH JOINER 200E;Z # LEFT-TO-RIGHT MARK 200F;Z # RIGHT-TO-LEFT MARK 2028;Z # LINE SEPARATOR 2029;Z # PARAGRAPH SEPARATOR 202A;Z # LEFT-TO-RIGHT EMBEDDING 202B;Z # RIGHT-TO-LEFT EMBEDDING 202C;Z # POP DIRECTIONAL FORMATTING 202D;Z # LEFT-TO-RIGHT OVERRIDE 202E;Z # RIGHT-TO-LEFT OVERRIDE 2060;Z # WORD JOINER 2061;Z # FUNCTION APPLICATION 2062;Z # INVISIBLE TIMES 2063;Z # INVISIBLE SEPARATOR 2064;Z # INVISIBLE PLUS 206A;Z # INHIBIT SYMMETRIC SWAPPING 206B;Z # ACTIVATE SYMMETRIC SWAPPING 206C;Z # INHIBIT ARABIC FORM SHAPING 206D;Z # ACTIVATE ARABIC FORM SHAPING 206E;Z # NATIONAL DIGIT SHAPES 206F;Z # NOMINAL DIGIT SHAPES 20D0;Z # COMBINING LEFT HARPOON ABOVE 20D1;Z # COMBINING RIGHT HARPOON ABOVE 20D2;Z # COMBINING LONG VERTICAL LINE OVERLAY 20D3;Z # COMBINING SHORT VERTICAL LINE OVERLAY 20D4;Z # COMBINING ANTICLOCKWISE ARROW ABOVE 20D5;Z # COMBINING CLOCKWISE ARROW ABOVE 20D6;Z # COMBINING LEFT ARROW ABOVE 20D7;Z # COMBINING RIGHT ARROW ABOVE 20D8;Z # COMBINING RING OVERLAY 20D9;Z # COMBINING CLOCKWISE RING OVERLAY 20DA;Z # COMBINING ANTICLOCKWISE RING OVERLAY 20DB;Z # COMBINING THREE DOTS ABOVE 20DC;Z # COMBINING FOUR DOTS ABOVE 20DD;Z # COMBINING ENCLOSING CIRCLE 20DE;Z # COMBINING ENCLOSING SQUARE 20DF;Z # COMBINING ENCLOSING DIAMOND 20E0;Z # COMBINING ENCLOSING CIRCLE BACKSLASH 20E1;Z # COMBINING LEFT RIGHT ARROW ABOVE 20E2;Z # COMBINING ENCLOSING SCREEN 20E3;Z # COMBINING ENCLOSING KEYCAP 20E4;Z # COMBINING ENCLOSING UPWARD POINTING TRIANGLE 20E5;Z # COMBINING REVERSE SOLIDUS OVERLAY 20E6;Z # COMBINING DOUBLE VERTICAL STROKE OVERLAY 20E7;Z # COMBINING ANNUITY SYMBOL 20E8;Z # COMBINING TRIPLE UNDERDOT 20E9;Z # COMBINING WIDE BRIDGE ABOVE 20EA;Z # COMBINING LEFTWARDS ARROW OVERLAY 20EB;Z # COMBINING LONG DOUBLE SOLIDUS OVERLAY 20EC;Z # COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS 20ED;Z # COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS 20EE;Z # COMBINING LEFT ARROW BELOW 20EF;Z # COMBINING RIGHT ARROW BELOW 20F0;Z # COMBINING ASTERISK ABOVE 2CEF;Z # COPTIC COMBINING NI ABOVE 2CF0;Z # COPTIC COMBINING SPIRITUS ASPER 2CF1;Z # COPTIC COMBINING SPIRITUS LENIS 2D7F;Z # TIFINAGH CONSONANT JOINER 2DE0;Z # COMBINING CYRILLIC LETTER BE 2DE1;Z # COMBINING CYRILLIC LETTER VE 2DE2;Z # COMBINING CYRILLIC LETTER GHE 2DE3;Z # COMBINING CYRILLIC LETTER DE 2DE4;Z # COMBINING CYRILLIC LETTER ZHE 2DE5;Z # COMBINING CYRILLIC LETTER ZE 2DE6;Z # COMBINING CYRILLIC LETTER KA 2DE7;Z # COMBINING CYRILLIC LETTER EL 2DE8;Z # COMBINING CYRILLIC LETTER EM 2DE9;Z # COMBINING CYRILLIC LETTER EN 2DEA;Z # COMBINING CYRILLIC LETTER O 2DEB;Z # COMBINING CYRILLIC LETTER PE 2DEC;Z # COMBINING CYRILLIC LETTER ER 2DED;Z # COMBINING CYRILLIC LETTER ES 2DEE;Z # COMBINING CYRILLIC LETTER TE 2DEF;Z # COMBINING CYRILLIC LETTER HA 2DF0;Z # COMBINING CYRILLIC LETTER TSE 2DF1;Z # COMBINING CYRILLIC LETTER CHE 2DF2;Z # COMBINING CYRILLIC LETTER SHA 2DF3;Z # COMBINING CYRILLIC LETTER SHCHA 2DF4;Z # COMBINING CYRILLIC LETTER FITA 2DF5;Z # COMBINING CYRILLIC LETTER ES-TE 2DF6;Z # COMBINING CYRILLIC LETTER A 2DF7;Z # COMBINING CYRILLIC LETTER IE 2DF8;Z # COMBINING CYRILLIC LETTER DJERV 2DF9;Z # COMBINING CYRILLIC LETTER MONOGRAPH UK 2DFA;Z # COMBINING CYRILLIC LETTER YAT 2DFB;Z # COMBINING CYRILLIC LETTER YU 2DFC;Z # COMBINING CYRILLIC LETTER IOTIFIED A 2DFD;Z # COMBINING CYRILLIC LETTER LITTLE YUS 2DFE;Z # COMBINING CYRILLIC LETTER BIG YUS 2DFF;Z # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS 302A;ZW # IDEOGRAPHIC LEVEL TONE MARK 302B;ZW # IDEOGRAPHIC RISING TONE MARK 302C;ZW # IDEOGRAPHIC DEPARTING TONE MARK 302D;ZW # IDEOGRAPHIC ENTERING TONE MARK 3099;ZW # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK 309A;ZW # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK A66F;Z # COMBINING CYRILLIC VZMET A670;Z # COMBINING CYRILLIC TEN MILLIONS SIGN A671;Z # COMBINING CYRILLIC HUNDRED MILLIONS SIGN A672;Z # COMBINING CYRILLIC THOUSAND MILLIONS SIGN A674;Z # COMBINING CYRILLIC LETTER UKRAINIAN IE A675;Z # COMBINING CYRILLIC LETTER I A676;Z # COMBINING CYRILLIC LETTER YI A677;Z # COMBINING CYRILLIC LETTER U A678;Z # COMBINING CYRILLIC LETTER HARD SIGN A679;Z # COMBINING CYRILLIC LETTER YERU A67A;Z # COMBINING CYRILLIC LETTER SOFT SIGN A67B;Z # COMBINING CYRILLIC LETTER OMEGA A67C;Z # COMBINING CYRILLIC KAVYKA A67D;Z # COMBINING CYRILLIC PAYEROK A69F;Z # COMBINING CYRILLIC LETTER IOTIFIED E A6F0;Z # BAMUM COMBINING MARK KOQNDON A6F1;Z # BAMUM COMBINING MARK TUKWENTIS A802;Z # SYLOTI NAGRI SIGN DVISVARA A806;Z # SYLOTI NAGRI SIGN HASANTA A80B;Z # SYLOTI NAGRI SIGN ANUSVARA A825;Z # SYLOTI NAGRI VOWEL SIGN U A826;Z # SYLOTI NAGRI VOWEL SIGN E A8C4;Z # SAURASHTRA SIGN VIRAMA A8E0;Z # COMBINING DEVANAGARI DIGIT ZERO A8E1;Z # COMBINING DEVANAGARI DIGIT ONE A8E2;Z # COMBINING DEVANAGARI DIGIT TWO A8E3;Z # COMBINING DEVANAGARI DIGIT THREE A8E4;Z # COMBINING DEVANAGARI DIGIT FOUR A8E5;Z # COMBINING DEVANAGARI DIGIT FIVE A8E6;Z # COMBINING DEVANAGARI DIGIT SIX A8E7;Z # COMBINING DEVANAGARI DIGIT SEVEN A8E8;Z # COMBINING DEVANAGARI DIGIT EIGHT A8E9;Z # COMBINING DEVANAGARI DIGIT NINE A8EA;Z # COMBINING DEVANAGARI LETTER A A8EB;Z # COMBINING DEVANAGARI LETTER U A8EC;Z # COMBINING DEVANAGARI LETTER KA A8ED;Z # COMBINING DEVANAGARI LETTER NA A8EE;Z # COMBINING DEVANAGARI LETTER PA A8EF;Z # COMBINING DEVANAGARI LETTER RA A8F0;Z # COMBINING DEVANAGARI LETTER VI A8F1;Z # COMBINING DEVANAGARI SIGN AVAGRAHA A926;Z # KAYAH LI VOWEL UE A927;Z # KAYAH LI VOWEL E A928;Z # KAYAH LI VOWEL U A929;Z # KAYAH LI VOWEL EE A92A;Z # KAYAH LI VOWEL O A92B;Z # KAYAH LI TONE PLOPHU A92C;Z # KAYAH LI TONE CALYA A92D;Z # KAYAH LI TONE CALYA PLOPHU A947;Z # REJANG VOWEL SIGN I A948;Z # REJANG VOWEL SIGN U A949;Z # REJANG VOWEL SIGN E A94A;Z # REJANG VOWEL SIGN AI A94B;Z # REJANG VOWEL SIGN O A94C;Z # REJANG VOWEL SIGN AU A94D;Z # REJANG VOWEL SIGN EU A94E;Z # REJANG VOWEL SIGN EA A94F;Z # REJANG CONSONANT SIGN NG A950;Z # REJANG CONSONANT SIGN N A951;Z # REJANG CONSONANT SIGN R A980;Z # JAVANESE SIGN PANYANGGA A981;Z # JAVANESE SIGN CECAK A982;Z # JAVANESE SIGN LAYAR A9B3;Z # JAVANESE SIGN CECAK TELU A9B6;Z # JAVANESE VOWEL SIGN WULU A9B7;Z # JAVANESE VOWEL SIGN WULU MELIK A9B8;Z # JAVANESE VOWEL SIGN SUKU A9B9;Z # JAVANESE VOWEL SIGN SUKU MENDUT A9BC;Z # JAVANESE VOWEL SIGN PEPET AA29;Z # CHAM VOWEL SIGN AA AA2A;Z # CHAM VOWEL SIGN I AA2B;Z # CHAM VOWEL SIGN II AA2C;Z # CHAM VOWEL SIGN EI AA2D;Z # CHAM VOWEL SIGN U AA2E;Z # CHAM VOWEL SIGN OE AA31;Z # CHAM VOWEL SIGN AU AA32;Z # CHAM VOWEL SIGN UE AA35;Z # CHAM CONSONANT SIGN LA AA36;Z # CHAM CONSONANT SIGN WA AA43;Z # CHAM CONSONANT SIGN FINAL NG AA4C;Z # CHAM CONSONANT SIGN FINAL M AAB0;Z # TAI VIET MAI KANG AAB2;Z # TAI VIET VOWEL I AAB3;Z # TAI VIET VOWEL UE AAB4;Z # TAI VIET VOWEL U AAB7;Z # TAI VIET MAI KHIT AAB8;Z # TAI VIET VOWEL IA AABE;Z # TAI VIET VOWEL AM AABF;Z # TAI VIET TONE MAI EK AAC1;Z # TAI VIET TONE MAI THO AAEC;Z # MEETEI MAYEK VOWEL SIGN UU AAED;Z # MEETEI MAYEK VOWEL SIGN AAI AAF6;Z # MEETEI MAYEK VIRAMA ABE5;Z # MEETEI MAYEK VOWEL SIGN ANAP ABE8;Z # MEETEI MAYEK VOWEL SIGN UNAP ABED;Z # MEETEI MAYEK APUN IYEK FB1E;Z # HEBREW POINT JUDEO-SPANISH VARIKA FE00;ZA # VARIATION SELECTOR-1 FE01;ZA # VARIATION SELECTOR-2 FE02;ZA # VARIATION SELECTOR-3 FE03;ZA # VARIATION SELECTOR-4 FE04;ZA # VARIATION SELECTOR-5 FE05;ZA # VARIATION SELECTOR-6 FE06;ZA # VARIATION SELECTOR-7 FE07;ZA # VARIATION SELECTOR-8 FE08;ZA # VARIATION SELECTOR-9 FE09;ZA # VARIATION SELECTOR-10 FE0A;ZA # VARIATION SELECTOR-11 FE0B;ZA # VARIATION SELECTOR-12 FE0C;ZA # VARIATION SELECTOR-13 FE0D;ZA # VARIATION SELECTOR-14 FE0E;ZA # VARIATION SELECTOR-15 FE0F;ZA # VARIATION SELECTOR-16 FE20;Z # COMBINING LIGATURE LEFT HALF FE21;Z # COMBINING LIGATURE RIGHT HALF FE22;Z # COMBINING DOUBLE TILDE LEFT HALF FE23;Z # COMBINING DOUBLE TILDE RIGHT HALF FE24;Z # COMBINING MACRON LEFT HALF FE25;Z # COMBINING MACRON RIGHT HALF FE26;Z # COMBINING CONJOINING MACRON FEFF;Z # ZERO WIDTH NO-BREAK SPACE FFF9;Z # INTERLINEAR ANNOTATION ANCHOR FFFA;Z # INTERLINEAR ANNOTATION SEPARATOR FFFB;Z # INTERLINEAR ANNOTATION TERMINATOR 101FD;Z # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE 10A01;Z # KHAROSHTHI VOWEL SIGN I 10A02;Z # KHAROSHTHI VOWEL SIGN U 10A03;Z # KHAROSHTHI VOWEL SIGN VOCALIC R 10A05;Z # KHAROSHTHI VOWEL SIGN E 10A06;Z # KHAROSHTHI VOWEL SIGN O 10A0C;Z # KHAROSHTHI VOWEL LENGTH MARK 10A0D;Z # KHAROSHTHI SIGN DOUBLE RING BELOW 10A0E;Z # KHAROSHTHI SIGN ANUSVARA 10A0F;Z # KHAROSHTHI SIGN VISARGA 10A38;Z # KHAROSHTHI SIGN BAR ABOVE 10A39;Z # KHAROSHTHI SIGN CAUDA 10A3A;Z # KHAROSHTHI SIGN DOT BELOW 10A3F;Z # KHAROSHTHI VIRAMA 11001;Z # BRAHMI SIGN ANUSVARA 11038;Z # BRAHMI VOWEL SIGN AA 11039;Z # BRAHMI VOWEL SIGN BHATTIPROLU AA 1103A;Z # BRAHMI VOWEL SIGN I 1103B;Z # BRAHMI VOWEL SIGN II 1103C;Z # BRAHMI VOWEL SIGN U 1103D;Z # BRAHMI VOWEL SIGN UU 1103E;Z # BRAHMI VOWEL SIGN VOCALIC R 1103F;Z # BRAHMI VOWEL SIGN VOCALIC RR 11040;Z # BRAHMI VOWEL SIGN VOCALIC L 11041;Z # BRAHMI VOWEL SIGN VOCALIC LL 11042;Z # BRAHMI VOWEL SIGN E 11043;Z # BRAHMI VOWEL SIGN AI 11044;Z # BRAHMI VOWEL SIGN O 11045;Z # BRAHMI VOWEL SIGN AU 11046;Z # BRAHMI VIRAMA 11080;Z # KAITHI SIGN CANDRABINDU 11081;Z # KAITHI SIGN ANUSVARA 110B3;Z # KAITHI VOWEL SIGN U 110B4;Z # KAITHI VOWEL SIGN UU 110B5;Z # KAITHI VOWEL SIGN E 110B6;Z # KAITHI VOWEL SIGN AI 110B9;Z # KAITHI SIGN VIRAMA 110BA;Z # KAITHI SIGN NUKTA 110BD;Z # KAITHI NUMBER SIGN 11100;Z # CHAKMA SIGN CANDRABINDU 11101;Z # CHAKMA SIGN ANUSVARA 11102;Z # CHAKMA SIGN VISARGA 11127;Z # CHAKMA VOWEL SIGN A 11128;Z # CHAKMA VOWEL SIGN I 11129;Z # CHAKMA VOWEL SIGN II 1112A;Z # CHAKMA VOWEL SIGN U 1112B;Z # CHAKMA VOWEL SIGN UU 1112D;Z # CHAKMA VOWEL SIGN AI 1112E;Z # CHAKMA VOWEL SIGN O 1112F;Z # CHAKMA VOWEL SIGN AU 11130;Z # CHAKMA VOWEL SIGN OI 11131;Z # CHAKMA O MARK 11132;Z # CHAKMA AU MARK 11133;Z # CHAKMA VIRAMA 11134;Z # CHAKMA MAAYYAA 11180;Z # SHARADA SIGN CANDRABINDU 11181;Z # SHARADA SIGN ANUSVARA 111B6;Z # SHARADA VOWEL SIGN U 111B7;Z # SHARADA VOWEL SIGN UU 111B8;Z # SHARADA VOWEL SIGN VOCALIC R 111B9;Z # SHARADA VOWEL SIGN VOCALIC RR 111BA;Z # SHARADA VOWEL SIGN VOCALIC L 111BB;Z # SHARADA VOWEL SIGN VOCALIC LL 111BC;Z # SHARADA VOWEL SIGN E 111BD;Z # SHARADA VOWEL SIGN AI 111BE;Z # SHARADA VOWEL SIGN O 116AB;Z # TAKRI SIGN ANUSVARA 116AD;Z # TAKRI VOWEL SIGN AA 116B0;Z # TAKRI VOWEL SIGN U 116B1;Z # TAKRI VOWEL SIGN UU 116B2;Z # TAKRI VOWEL SIGN E 116B3;Z # TAKRI VOWEL SIGN AI 116B4;Z # TAKRI VOWEL SIGN O 116B5;Z # TAKRI VOWEL SIGN AU 116B7;Z # TAKRI SIGN NUKTA 16F8F;Z # MIAO TONE RIGHT 16F90;Z # MIAO TONE TOP RIGHT 16F91;Z # MIAO TONE ABOVE 16F92;Z # MIAO TONE BELOW 1D167;Z # MUSICAL SYMBOL COMBINING TREMOLO-1 1D168;Z # MUSICAL SYMBOL COMBINING TREMOLO-2 1D169;Z # MUSICAL SYMBOL COMBINING TREMOLO-3 1D173;Z # MUSICAL SYMBOL BEGIN BEAM 1D174;Z # MUSICAL SYMBOL END BEAM 1D175;Z # MUSICAL SYMBOL BEGIN TIE 1D176;Z # MUSICAL SYMBOL END TIE 1D177;Z # MUSICAL SYMBOL BEGIN SLUR 1D178;Z # MUSICAL SYMBOL END SLUR 1D179;Z # MUSICAL SYMBOL BEGIN PHRASE 1D17A;Z # MUSICAL SYMBOL END PHRASE 1D17B;Z # MUSICAL SYMBOL COMBINING ACCENT 1D17C;Z # MUSICAL SYMBOL COMBINING STACCATO 1D17D;Z # MUSICAL SYMBOL COMBINING TENUTO 1D17E;Z # MUSICAL SYMBOL COMBINING STACCATISSIMO 1D17F;Z # MUSICAL SYMBOL COMBINING MARCATO 1D180;Z # MUSICAL SYMBOL COMBINING MARCATO-STACCATO 1D181;Z # MUSICAL SYMBOL COMBINING ACCENT-STACCATO 1D182;Z # MUSICAL SYMBOL COMBINING LOURE 1D185;Z # MUSICAL SYMBOL COMBINING DOIT 1D186;Z # MUSICAL SYMBOL COMBINING RIP 1D187;Z # MUSICAL SYMBOL COMBINING FLIP 1D188;Z # MUSICAL SYMBOL COMBINING SMEAR 1D189;Z # MUSICAL SYMBOL COMBINING BEND 1D18A;Z # MUSICAL SYMBOL COMBINING DOUBLE TONGUE 1D18B;Z # MUSICAL SYMBOL COMBINING TRIPLE TONGUE 1D1AA;Z # MUSICAL SYMBOL COMBINING DOWN BOW 1D1AB;Z # MUSICAL SYMBOL COMBINING UP BOW 1D1AC;Z # MUSICAL SYMBOL COMBINING HARMONIC 1D1AD;Z # MUSICAL SYMBOL COMBINING SNAP PIZZICATO 1D242;Z # COMBINING GREEK MUSICAL TRISEME 1D243;Z # COMBINING GREEK MUSICAL TETRASEME 1D244;Z # COMBINING GREEK MUSICAL PENTASEME E0001;Z # LANGUAGE TAG E0020;Z # TAG SPACE E0021;Z # TAG EXCLAMATION MARK E0022;Z # TAG QUOTATION MARK E0023;Z # TAG NUMBER SIGN E0024;Z # TAG DOLLAR SIGN E0025;Z # TAG PERCENT SIGN E0026;Z # TAG AMPERSAND E0027;Z # TAG APOSTROPHE E0028;Z # TAG LEFT PARENTHESIS E0029;Z # TAG RIGHT PARENTHESIS E002A;Z # TAG ASTERISK E002B;Z # TAG PLUS SIGN E002C;Z # TAG COMMA E002D;Z # TAG HYPHEN-MINUS E002E;Z # TAG FULL STOP E002F;Z # TAG SOLIDUS E0030;Z # TAG DIGIT ZERO E0031;Z # TAG DIGIT ONE E0032;Z # TAG DIGIT TWO E0033;Z # TAG DIGIT THREE E0034;Z # TAG DIGIT FOUR E0035;Z # TAG DIGIT FIVE E0036;Z # TAG DIGIT SIX E0037;Z # TAG DIGIT SEVEN E0038;Z # TAG DIGIT EIGHT E0039;Z # TAG DIGIT NINE E003A;Z # TAG COLON E003B;Z # TAG SEMICOLON E003C;Z # TAG LESS-THAN SIGN E003D;Z # TAG EQUALS SIGN E003E;Z # TAG GREATER-THAN SIGN E003F;Z # TAG QUESTION MARK E0040;Z # TAG COMMERCIAL AT E0041;Z # TAG LATIN CAPITAL LETTER A E0042;Z # TAG LATIN CAPITAL LETTER B E0043;Z # TAG LATIN CAPITAL LETTER C E0044;Z # TAG LATIN CAPITAL LETTER D E0045;Z # TAG LATIN CAPITAL LETTER E E0046;Z # TAG LATIN CAPITAL LETTER F E0047;Z # TAG LATIN CAPITAL LETTER G E0048;Z # TAG LATIN CAPITAL LETTER H E0049;Z # TAG LATIN CAPITAL LETTER I E004A;Z # TAG LATIN CAPITAL LETTER J E004B;Z # TAG LATIN CAPITAL LETTER K E004C;Z # TAG LATIN CAPITAL LETTER L E004D;Z # TAG LATIN CAPITAL LETTER M E004E;Z # TAG LATIN CAPITAL LETTER N E004F;Z # TAG LATIN CAPITAL LETTER O E0050;Z # TAG LATIN CAPITAL LETTER P E0051;Z # TAG LATIN CAPITAL LETTER Q E0052;Z # TAG LATIN CAPITAL LETTER R E0053;Z # TAG LATIN CAPITAL LETTER S E0054;Z # TAG LATIN CAPITAL LETTER T E0055;Z # TAG LATIN CAPITAL LETTER U E0056;Z # TAG LATIN CAPITAL LETTER V E0057;Z # TAG LATIN CAPITAL LETTER W E0058;Z # TAG LATIN CAPITAL LETTER X E0059;Z # TAG LATIN CAPITAL LETTER Y E005A;Z # TAG LATIN CAPITAL LETTER Z E005B;Z # TAG LEFT SQUARE BRACKET E005C;Z # TAG REVERSE SOLIDUS E005D;Z # TAG RIGHT SQUARE BRACKET E005E;Z # TAG CIRCUMFLEX ACCENT E005F;Z # TAG LOW LINE E0060;Z # TAG GRAVE ACCENT E0061;Z # TAG LATIN SMALL LETTER A E0062;Z # TAG LATIN SMALL LETTER B E0063;Z # TAG LATIN SMALL LETTER C E0064;Z # TAG LATIN SMALL LETTER D E0065;Z # TAG LATIN SMALL LETTER E E0066;Z # TAG LATIN SMALL LETTER F E0067;Z # TAG LATIN SMALL LETTER G E0068;Z # TAG LATIN SMALL LETTER H E0069;Z # TAG LATIN SMALL LETTER I E006A;Z # TAG LATIN SMALL LETTER J E006B;Z # TAG LATIN SMALL LETTER K E006C;Z # TAG LATIN SMALL LETTER L E006D;Z # TAG LATIN SMALL LETTER M E006E;Z # TAG LATIN SMALL LETTER N E006F;Z # TAG LATIN SMALL LETTER O E0070;Z # TAG LATIN SMALL LETTER P E0071;Z # TAG LATIN SMALL LETTER Q E0072;Z # TAG LATIN SMALL LETTER R E0073;Z # TAG LATIN SMALL LETTER S E0074;Z # TAG LATIN SMALL LETTER T E0075;Z # TAG LATIN SMALL LETTER U E0076;Z # TAG LATIN SMALL LETTER V E0077;Z # TAG LATIN SMALL LETTER W E0078;Z # TAG LATIN SMALL LETTER X E0079;Z # TAG LATIN SMALL LETTER Y E007A;Z # TAG LATIN SMALL LETTER Z E007B;Z # TAG LEFT CURLY BRACKET E007C;Z # TAG VERTICAL LINE E007D;Z # TAG RIGHT CURLY BRACKET E007E;Z # TAG TILDE E007F;Z # CANCEL TAG E0100;ZA # VARIATION SELECTOR-17 E0101;ZA # VARIATION SELECTOR-18 E0102;ZA # VARIATION SELECTOR-19 E0103;ZA # VARIATION SELECTOR-20 E0104;ZA # VARIATION SELECTOR-21 E0105;ZA # VARIATION SELECTOR-22 E0106;ZA # VARIATION SELECTOR-23 E0107;ZA # VARIATION SELECTOR-24 E0108;ZA # VARIATION SELECTOR-25 E0109;ZA # VARIATION SELECTOR-26 E010A;ZA # VARIATION SELECTOR-27 E010B;ZA # VARIATION SELECTOR-28 E010C;ZA # VARIATION SELECTOR-29 E010D;ZA # VARIATION SELECTOR-30 E010E;ZA # VARIATION SELECTOR-31 E010F;ZA # VARIATION SELECTOR-32 E0110;ZA # VARIATION SELECTOR-33 E0111;ZA # VARIATION SELECTOR-34 E0112;ZA # VARIATION SELECTOR-35 E0113;ZA # VARIATION SELECTOR-36 E0114;ZA # VARIATION SELECTOR-37 E0115;ZA # VARIATION SELECTOR-38 E0116;ZA # VARIATION SELECTOR-39 E0117;ZA # VARIATION SELECTOR-40 E0118;ZA # VARIATION SELECTOR-41 E0119;ZA # VARIATION SELECTOR-42 E011A;ZA # VARIATION SELECTOR-43 E011B;ZA # VARIATION SELECTOR-44 E011C;ZA # VARIATION SELECTOR-45 E011D;ZA # VARIATION SELECTOR-46 E011E;ZA # VARIATION SELECTOR-47 E011F;ZA # VARIATION SELECTOR-48 E0120;ZA # VARIATION SELECTOR-49 E0121;ZA # VARIATION SELECTOR-50 E0122;ZA # VARIATION SELECTOR-51 E0123;ZA # VARIATION SELECTOR-52 E0124;ZA # VARIATION SELECTOR-53 E0125;ZA # VARIATION SELECTOR-54 E0126;ZA # VARIATION SELECTOR-55 E0127;ZA # VARIATION SELECTOR-56 E0128;ZA # VARIATION SELECTOR-57 E0129;ZA # VARIATION SELECTOR-58 E012A;ZA # VARIATION SELECTOR-59 E012B;ZA # VARIATION SELECTOR-60 E012C;ZA # VARIATION SELECTOR-61 E012D;ZA # VARIATION SELECTOR-62 E012E;ZA # VARIATION SELECTOR-63 E012F;ZA # VARIATION SELECTOR-64 E0130;ZA # VARIATION SELECTOR-65 E0131;ZA # VARIATION SELECTOR-66 E0132;ZA # VARIATION SELECTOR-67 E0133;ZA # VARIATION SELECTOR-68 E0134;ZA # VARIATION SELECTOR-69 E0135;ZA # VARIATION SELECTOR-70 E0136;ZA # VARIATION SELECTOR-71 E0137;ZA # VARIATION SELECTOR-72 E0138;ZA # VARIATION SELECTOR-73 E0139;ZA # VARIATION SELECTOR-74 E013A;ZA # VARIATION SELECTOR-75 E013B;ZA # VARIATION SELECTOR-76 E013C;ZA # VARIATION SELECTOR-77 E013D;ZA # VARIATION SELECTOR-78 E013E;ZA # VARIATION SELECTOR-79 E013F;ZA # VARIATION SELECTOR-80 E0140;ZA # VARIATION SELECTOR-81 E0141;ZA # VARIATION SELECTOR-82 E0142;ZA # VARIATION SELECTOR-83 E0143;ZA # VARIATION SELECTOR-84 E0144;ZA # VARIATION SELECTOR-85 E0145;ZA # VARIATION SELECTOR-86 E0146;ZA # VARIATION SELECTOR-87 E0147;ZA # VARIATION SELECTOR-88 E0148;ZA # VARIATION SELECTOR-89 E0149;ZA # VARIATION SELECTOR-90 E014A;ZA # VARIATION SELECTOR-91 E014B;ZA # VARIATION SELECTOR-92 E014C;ZA # VARIATION SELECTOR-93 E014D;ZA # VARIATION SELECTOR-94 E014E;ZA # VARIATION SELECTOR-95 E014F;ZA # VARIATION SELECTOR-96 E0150;ZA # VARIATION SELECTOR-97 E0151;ZA # VARIATION SELECTOR-98 E0152;ZA # VARIATION SELECTOR-99 E0153;ZA # VARIATION SELECTOR-100 E0154;ZA # VARIATION SELECTOR-101 E0155;ZA # VARIATION SELECTOR-102 E0156;ZA # VARIATION SELECTOR-103 E0157;ZA # VARIATION SELECTOR-104 E0158;ZA # VARIATION SELECTOR-105 E0159;ZA # VARIATION SELECTOR-106 E015A;ZA # VARIATION SELECTOR-107 E015B;ZA # VARIATION SELECTOR-108 E015C;ZA # VARIATION SELECTOR-109 E015D;ZA # VARIATION SELECTOR-110 E015E;ZA # VARIATION SELECTOR-111 E015F;ZA # VARIATION SELECTOR-112 E0160;ZA # VARIATION SELECTOR-113 E0161;ZA # VARIATION SELECTOR-114 E0162;ZA # VARIATION SELECTOR-115 E0163;ZA # VARIATION SELECTOR-116 E0164;ZA # VARIATION SELECTOR-117 E0165;ZA # VARIATION SELECTOR-118 E0166;ZA # VARIATION SELECTOR-119 E0167;ZA # VARIATION SELECTOR-120 E0168;ZA # VARIATION SELECTOR-121 E0169;ZA # VARIATION SELECTOR-122 E016A;ZA # VARIATION SELECTOR-123 E016B;ZA # VARIATION SELECTOR-124 E016C;ZA # VARIATION SELECTOR-125 E016D;ZA # VARIATION SELECTOR-126 E016E;ZA # VARIATION SELECTOR-127 E016F;ZA # VARIATION SELECTOR-128 E0170;ZA # VARIATION SELECTOR-129 E0171;ZA # VARIATION SELECTOR-130 E0172;ZA # VARIATION SELECTOR-131 E0173;ZA # VARIATION SELECTOR-132 E0174;ZA # VARIATION SELECTOR-133 E0175;ZA # VARIATION SELECTOR-134 E0176;ZA # VARIATION SELECTOR-135 E0177;ZA # VARIATION SELECTOR-136 E0178;ZA # VARIATION SELECTOR-137 E0179;ZA # VARIATION SELECTOR-138 E017A;ZA # VARIATION SELECTOR-139 E017B;ZA # VARIATION SELECTOR-140 E017C;ZA # VARIATION SELECTOR-141 E017D;ZA # VARIATION SELECTOR-142 E017E;ZA # VARIATION SELECTOR-143 E017F;ZA # VARIATION SELECTOR-144 E0180;ZA # VARIATION SELECTOR-145 E0181;ZA # VARIATION SELECTOR-146 E0182;ZA # VARIATION SELECTOR-147 E0183;ZA # VARIATION SELECTOR-148 E0184;ZA # VARIATION SELECTOR-149 E0185;ZA # VARIATION SELECTOR-150 E0186;ZA # VARIATION SELECTOR-151 E0187;ZA # VARIATION SELECTOR-152 E0188;ZA # VARIATION SELECTOR-153 E0189;ZA # VARIATION SELECTOR-154 E018A;ZA # VARIATION SELECTOR-155 E018B;ZA # VARIATION SELECTOR-156 E018C;ZA # VARIATION SELECTOR-157 E018D;ZA # VARIATION SELECTOR-158 E018E;ZA # VARIATION SELECTOR-159 E018F;ZA # VARIATION SELECTOR-160 E0190;ZA # VARIATION SELECTOR-161 E0191;ZA # VARIATION SELECTOR-162 E0192;ZA # VARIATION SELECTOR-163 E0193;ZA # VARIATION SELECTOR-164 E0194;ZA # VARIATION SELECTOR-165 E0195;ZA # VARIATION SELECTOR-166 E0196;ZA # VARIATION SELECTOR-167 E0197;ZA # VARIATION SELECTOR-168 E0198;ZA # VARIATION SELECTOR-169 E0199;ZA # VARIATION SELECTOR-170 E019A;ZA # VARIATION SELECTOR-171 E019B;ZA # VARIATION SELECTOR-172 E019C;ZA # VARIATION SELECTOR-173 E019D;ZA # VARIATION SELECTOR-174 E019E;ZA # VARIATION SELECTOR-175 E019F;ZA # VARIATION SELECTOR-176 E01A0;ZA # VARIATION SELECTOR-177 E01A1;ZA # VARIATION SELECTOR-178 E01A2;ZA # VARIATION SELECTOR-179 E01A3;ZA # VARIATION SELECTOR-180 E01A4;ZA # VARIATION SELECTOR-181 E01A5;ZA # VARIATION SELECTOR-182 E01A6;ZA # VARIATION SELECTOR-183 E01A7;ZA # VARIATION SELECTOR-184 E01A8;ZA # VARIATION SELECTOR-185 E01A9;ZA # VARIATION SELECTOR-186 E01AA;ZA # VARIATION SELECTOR-187 E01AB;ZA # VARIATION SELECTOR-188 E01AC;ZA # VARIATION SELECTOR-189 E01AD;ZA # VARIATION SELECTOR-190 E01AE;ZA # VARIATION SELECTOR-191 E01AF;ZA # VARIATION SELECTOR-192 E01B0;ZA # VARIATION SELECTOR-193 E01B1;ZA # VARIATION SELECTOR-194 E01B2;ZA # VARIATION SELECTOR-195 E01B3;ZA # VARIATION SELECTOR-196 E01B4;ZA # VARIATION SELECTOR-197 E01B5;ZA # VARIATION SELECTOR-198 E01B6;ZA # VARIATION SELECTOR-199 E01B7;ZA # VARIATION SELECTOR-200 E01B8;ZA # VARIATION SELECTOR-201 E01B9;ZA # VARIATION SELECTOR-202 E01BA;ZA # VARIATION SELECTOR-203 E01BB;ZA # VARIATION SELECTOR-204 E01BC;ZA # VARIATION SELECTOR-205 E01BD;ZA # VARIATION SELECTOR-206 E01BE;ZA # VARIATION SELECTOR-207 E01BF;ZA # VARIATION SELECTOR-208 E01C0;ZA # VARIATION SELECTOR-209 E01C1;ZA # VARIATION SELECTOR-210 E01C2;ZA # VARIATION SELECTOR-211 E01C3;ZA # VARIATION SELECTOR-212 E01C4;ZA # VARIATION SELECTOR-213 E01C5;ZA # VARIATION SELECTOR-214 E01C6;ZA # VARIATION SELECTOR-215 E01C7;ZA # VARIATION SELECTOR-216 E01C8;ZA # VARIATION SELECTOR-217 E01C9;ZA # VARIATION SELECTOR-218 E01CA;ZA # VARIATION SELECTOR-219 E01CB;ZA # VARIATION SELECTOR-220 E01CC;ZA # VARIATION SELECTOR-221 E01CD;ZA # VARIATION SELECTOR-222 E01CE;ZA # VARIATION SELECTOR-223 E01CF;ZA # VARIATION SELECTOR-224 E01D0;ZA # VARIATION SELECTOR-225 E01D1;ZA # VARIATION SELECTOR-226 E01D2;ZA # VARIATION SELECTOR-227 E01D3;ZA # VARIATION SELECTOR-228 E01D4;ZA # VARIATION SELECTOR-229 E01D5;ZA # VARIATION SELECTOR-230 E01D6;ZA # VARIATION SELECTOR-231 E01D7;ZA # VARIATION SELECTOR-232 E01D8;ZA # VARIATION SELECTOR-233 E01D9;ZA # VARIATION SELECTOR-234 E01DA;ZA # VARIATION SELECTOR-235 E01DB;ZA # VARIATION SELECTOR-236 E01DC;ZA # VARIATION SELECTOR-237 E01DD;ZA # VARIATION SELECTOR-238 E01DE;ZA # VARIATION SELECTOR-239 E01DF;ZA # VARIATION SELECTOR-240 E01E0;ZA # VARIATION SELECTOR-241 E01E1;ZA # VARIATION SELECTOR-242 E01E2;ZA # VARIATION SELECTOR-243 E01E3;ZA # VARIATION SELECTOR-244 E01E4;ZA # VARIATION SELECTOR-245 E01E5;ZA # VARIATION SELECTOR-246 E01E6;ZA # VARIATION SELECTOR-247 E01E7;ZA # VARIATION SELECTOR-248 E01E8;ZA # VARIATION SELECTOR-249 E01E9;ZA # VARIATION SELECTOR-250 E01EA;ZA # VARIATION SELECTOR-251 E01EB;ZA # VARIATION SELECTOR-252 E01EC;ZA # VARIATION SELECTOR-253 E01ED;ZA # VARIATION SELECTOR-254 E01EE;ZA # VARIATION SELECTOR-255 E01EF;ZA # VARIATION SELECTOR-256 sombok-2.3.1/data/LineBreak-5.1.0.custom0000664000076400007640000000014212221425411014371 00000000000000## SA characters may be categorized by their Grapheme_Cluster_Break properties. ## See [UAX #29]. sombok-2.3.1/data/EastAsianWidth-6.1.0.custom0000664000076400007640000014404612221425417015430 000000000000000000;Z # 0001;Z # 0002;Z # 0003;Z # 0004;Z # 0005;Z # 0006;Z # 0007;Z # 0008;Z # 0009;Z # 000A;Z # 000B;Z # 000C;Z # 000D;Z # 000E;Z # 000F;Z # 0010;Z # 0011;Z # 0012;Z # 0013;Z # 0014;Z # 0015;Z # 0016;Z # 0017;Z # 0018;Z # 0019;Z # 001A;Z # 001B;Z # 001C;Z # 001D;Z # 001E;Z # 001F;Z # 007F;Z # 0080;Z # 0081;Z # 0082;Z # 0083;Z # 0084;Z # 0085;Z # 0086;Z # 0087;Z # 0088;Z # 0089;Z # 008A;Z # 008B;Z # 008C;Z # 008D;Z # 008E;Z # 008F;Z # 0090;Z # 0091;Z # 0092;Z # 0093;Z # 0094;Z # 0095;Z # 0096;Z # 0097;Z # 0098;Z # 0099;Z # 009A;Z # 009B;Z # 009C;Z # 009D;Z # 009E;Z # 009F;Z # 00AD;ZA # SOFT HYPHEN 0300;ZA # COMBINING GRAVE ACCENT 0301;ZA # COMBINING ACUTE ACCENT 0302;ZA # COMBINING CIRCUMFLEX ACCENT 0303;ZA # COMBINING TILDE 0304;ZA # COMBINING MACRON 0305;ZA # COMBINING OVERLINE 0306;ZA # COMBINING BREVE 0307;ZA # COMBINING DOT ABOVE 0308;ZA # COMBINING DIAERESIS 0309;ZA # COMBINING HOOK ABOVE 030A;ZA # COMBINING RING ABOVE 030B;ZA # COMBINING DOUBLE ACUTE ACCENT 030C;ZA # COMBINING CARON 030D;ZA # COMBINING VERTICAL LINE ABOVE 030E;ZA # COMBINING DOUBLE VERTICAL LINE ABOVE 030F;ZA # COMBINING DOUBLE GRAVE ACCENT 0310;ZA # COMBINING CANDRABINDU 0311;ZA # COMBINING INVERTED BREVE 0312;ZA # COMBINING TURNED COMMA ABOVE 0313;ZA # COMBINING COMMA ABOVE 0314;ZA # COMBINING REVERSED COMMA ABOVE 0315;ZA # COMBINING COMMA ABOVE RIGHT 0316;ZA # COMBINING GRAVE ACCENT BELOW 0317;ZA # COMBINING ACUTE ACCENT BELOW 0318;ZA # COMBINING LEFT TACK BELOW 0319;ZA # COMBINING RIGHT TACK BELOW 031A;ZA # COMBINING LEFT ANGLE ABOVE 031B;ZA # COMBINING HORN 031C;ZA # COMBINING LEFT HALF RING BELOW 031D;ZA # COMBINING UP TACK BELOW 031E;ZA # COMBINING DOWN TACK BELOW 031F;ZA # COMBINING PLUS SIGN BELOW 0320;ZA # COMBINING MINUS SIGN BELOW 0321;ZA # COMBINING PALATALIZED HOOK BELOW 0322;ZA # COMBINING RETROFLEX HOOK BELOW 0323;ZA # COMBINING DOT BELOW 0324;ZA # COMBINING DIAERESIS BELOW 0325;ZA # COMBINING RING BELOW 0326;ZA # COMBINING COMMA BELOW 0327;ZA # COMBINING CEDILLA 0328;ZA # COMBINING OGONEK 0329;ZA # COMBINING VERTICAL LINE BELOW 032A;ZA # COMBINING BRIDGE BELOW 032B;ZA # COMBINING INVERTED DOUBLE ARCH BELOW 032C;ZA # COMBINING CARON BELOW 032D;ZA # COMBINING CIRCUMFLEX ACCENT BELOW 032E;ZA # COMBINING BREVE BELOW 032F;ZA # COMBINING INVERTED BREVE BELOW 0330;ZA # COMBINING TILDE BELOW 0331;ZA # COMBINING MACRON BELOW 0332;ZA # COMBINING LOW LINE 0333;ZA # COMBINING DOUBLE LOW LINE 0334;ZA # COMBINING TILDE OVERLAY 0335;ZA # COMBINING SHORT STROKE OVERLAY 0336;ZA # COMBINING LONG STROKE OVERLAY 0337;ZA # COMBINING SHORT SOLIDUS OVERLAY 0338;ZA # COMBINING LONG SOLIDUS OVERLAY 0339;ZA # COMBINING RIGHT HALF RING BELOW 033A;ZA # COMBINING INVERTED BRIDGE BELOW 033B;ZA # COMBINING SQUARE BELOW 033C;ZA # COMBINING SEAGULL BELOW 033D;ZA # COMBINING X ABOVE 033E;ZA # COMBINING VERTICAL TILDE 033F;ZA # COMBINING DOUBLE OVERLINE 0340;ZA # COMBINING GRAVE TONE MARK 0341;ZA # COMBINING ACUTE TONE MARK 0342;ZA # COMBINING GREEK PERISPOMENI 0343;ZA # COMBINING GREEK KORONIS 0344;ZA # COMBINING GREEK DIALYTIKA TONOS 0345;ZA # COMBINING GREEK YPOGEGRAMMENI 0346;ZA # COMBINING BRIDGE ABOVE 0347;ZA # COMBINING EQUALS SIGN BELOW 0348;ZA # COMBINING DOUBLE VERTICAL LINE BELOW 0349;ZA # COMBINING LEFT ANGLE BELOW 034A;ZA # COMBINING NOT TILDE ABOVE 034B;ZA # COMBINING HOMOTHETIC ABOVE 034C;ZA # COMBINING ALMOST EQUAL TO ABOVE 034D;ZA # COMBINING LEFT RIGHT ARROW BELOW 034E;ZA # COMBINING UPWARDS ARROW BELOW 034F;ZA # COMBINING GRAPHEME JOINER 0350;ZA # COMBINING RIGHT ARROWHEAD ABOVE 0351;ZA # COMBINING LEFT HALF RING ABOVE 0352;ZA # COMBINING FERMATA 0353;ZA # COMBINING X BELOW 0354;ZA # COMBINING LEFT ARROWHEAD BELOW 0355;ZA # COMBINING RIGHT ARROWHEAD BELOW 0356;ZA # COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW 0357;ZA # COMBINING RIGHT HALF RING ABOVE 0358;ZA # COMBINING DOT ABOVE RIGHT 0359;ZA # COMBINING ASTERISK BELOW 035A;ZA # COMBINING DOUBLE RING BELOW 035B;ZA # COMBINING ZIGZAG ABOVE 035C;ZA # COMBINING DOUBLE BREVE BELOW 035D;ZA # COMBINING DOUBLE BREVE 035E;ZA # COMBINING DOUBLE MACRON 035F;ZA # COMBINING DOUBLE MACRON BELOW 0360;ZA # COMBINING DOUBLE TILDE 0361;ZA # COMBINING DOUBLE INVERTED BREVE 0362;ZA # COMBINING DOUBLE RIGHTWARDS ARROW BELOW 0363;ZA # COMBINING LATIN SMALL LETTER A 0364;ZA # COMBINING LATIN SMALL LETTER E 0365;ZA # COMBINING LATIN SMALL LETTER I 0366;ZA # COMBINING LATIN SMALL LETTER O 0367;ZA # COMBINING LATIN SMALL LETTER U 0368;ZA # COMBINING LATIN SMALL LETTER C 0369;ZA # COMBINING LATIN SMALL LETTER D 036A;ZA # COMBINING LATIN SMALL LETTER H 036B;ZA # COMBINING LATIN SMALL LETTER M 036C;ZA # COMBINING LATIN SMALL LETTER R 036D;ZA # COMBINING LATIN SMALL LETTER T 036E;ZA # COMBINING LATIN SMALL LETTER V 036F;ZA # COMBINING LATIN SMALL LETTER X 0483;Z # COMBINING CYRILLIC TITLO 0484;Z # COMBINING CYRILLIC PALATALIZATION 0485;Z # COMBINING CYRILLIC DASIA PNEUMATA 0486;Z # COMBINING CYRILLIC PSILI PNEUMATA 0487;Z # COMBINING CYRILLIC POKRYTIE 0488;Z # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN 0489;Z # COMBINING CYRILLIC MILLIONS SIGN 0591;Z # HEBREW ACCENT ETNAHTA 0592;Z # HEBREW ACCENT SEGOL 0593;Z # HEBREW ACCENT SHALSHELET 0594;Z # HEBREW ACCENT ZAQEF QATAN 0595;Z # HEBREW ACCENT ZAQEF GADOL 0596;Z # HEBREW ACCENT TIPEHA 0597;Z # HEBREW ACCENT REVIA 0598;Z # HEBREW ACCENT ZARQA 0599;Z # HEBREW ACCENT PASHTA 059A;Z # HEBREW ACCENT YETIV 059B;Z # HEBREW ACCENT TEVIR 059C;Z # HEBREW ACCENT GERESH 059D;Z # HEBREW ACCENT GERESH MUQDAM 059E;Z # HEBREW ACCENT GERSHAYIM 059F;Z # HEBREW ACCENT QARNEY PARA 05A0;Z # HEBREW ACCENT TELISHA GEDOLA 05A1;Z # HEBREW ACCENT PAZER 05A2;Z # HEBREW ACCENT ATNAH HAFUKH 05A3;Z # HEBREW ACCENT MUNAH 05A4;Z # HEBREW ACCENT MAHAPAKH 05A5;Z # HEBREW ACCENT MERKHA 05A6;Z # HEBREW ACCENT MERKHA KEFULA 05A7;Z # HEBREW ACCENT DARGA 05A8;Z # HEBREW ACCENT QADMA 05A9;Z # HEBREW ACCENT TELISHA QETANA 05AA;Z # HEBREW ACCENT YERAH BEN YOMO 05AB;Z # HEBREW ACCENT OLE 05AC;Z # HEBREW ACCENT ILUY 05AD;Z # HEBREW ACCENT DEHI 05AE;Z # HEBREW ACCENT ZINOR 05AF;Z # HEBREW MARK MASORA CIRCLE 05B0;Z # HEBREW POINT SHEVA 05B1;Z # HEBREW POINT HATAF SEGOL 05B2;Z # HEBREW POINT HATAF PATAH 05B3;Z # HEBREW POINT HATAF QAMATS 05B4;Z # HEBREW POINT HIRIQ 05B5;Z # HEBREW POINT TSERE 05B6;Z # HEBREW POINT SEGOL 05B7;Z # HEBREW POINT PATAH 05B8;Z # HEBREW POINT QAMATS 05B9;Z # HEBREW POINT HOLAM 05BA;Z # HEBREW POINT HOLAM HASER FOR VAV 05BB;Z # HEBREW POINT QUBUTS 05BC;Z # HEBREW POINT DAGESH OR MAPIQ 05BD;Z # HEBREW POINT METEG 05BF;Z # HEBREW POINT RAFE 05C1;Z # HEBREW POINT SHIN DOT 05C2;Z # HEBREW POINT SIN DOT 05C4;Z # HEBREW MARK UPPER DOT 05C5;Z # HEBREW MARK LOWER DOT 05C7;Z # HEBREW POINT QAMATS QATAN 0600;Z # ARABIC NUMBER SIGN 0601;Z # ARABIC SIGN SANAH 0602;Z # ARABIC FOOTNOTE MARKER 0603;Z # ARABIC SIGN SAFHA 0604;Z # ARABIC SIGN SAMVAT 0610;Z # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM 0611;Z # ARABIC SIGN ALAYHE ASSALLAM 0612;Z # ARABIC SIGN RAHMATULLAH ALAYHE 0613;Z # ARABIC SIGN RADI ALLAHOU ANHU 0614;Z # ARABIC SIGN TAKHALLUS 0615;Z # ARABIC SMALL HIGH TAH 0616;Z # ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH 0617;Z # ARABIC SMALL HIGH ZAIN 0618;Z # ARABIC SMALL FATHA 0619;Z # ARABIC SMALL DAMMA 061A;Z # ARABIC SMALL KASRA 064B;Z # ARABIC FATHATAN 064C;Z # ARABIC DAMMATAN 064D;Z # ARABIC KASRATAN 064E;Z # ARABIC FATHA 064F;Z # ARABIC DAMMA 0650;Z # ARABIC KASRA 0651;Z # ARABIC SHADDA 0652;Z # ARABIC SUKUN 0653;Z # ARABIC MADDAH ABOVE 0654;Z # ARABIC HAMZA ABOVE 0655;Z # ARABIC HAMZA BELOW 0656;Z # ARABIC SUBSCRIPT ALEF 0657;Z # ARABIC INVERTED DAMMA 0658;Z # ARABIC MARK NOON GHUNNA 0659;Z # ARABIC ZWARAKAY 065A;Z # ARABIC VOWEL SIGN SMALL V ABOVE 065B;Z # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE 065C;Z # ARABIC VOWEL SIGN DOT BELOW 065D;Z # ARABIC REVERSED DAMMA 065E;Z # ARABIC FATHA WITH TWO DOTS 065F;Z # ARABIC WAVY HAMZA BELOW 0670;Z # ARABIC LETTER SUPERSCRIPT ALEF 06D6;Z # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA 06D7;Z # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA 06D8;Z # ARABIC SMALL HIGH MEEM INITIAL FORM 06D9;Z # ARABIC SMALL HIGH LAM ALEF 06DA;Z # ARABIC SMALL HIGH JEEM 06DB;Z # ARABIC SMALL HIGH THREE DOTS 06DC;Z # ARABIC SMALL HIGH SEEN 06DD;Z # ARABIC END OF AYAH 06DF;Z # ARABIC SMALL HIGH ROUNDED ZERO 06E0;Z # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO 06E1;Z # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH 06E2;Z # ARABIC SMALL HIGH MEEM ISOLATED FORM 06E3;Z # ARABIC SMALL LOW SEEN 06E4;Z # ARABIC SMALL HIGH MADDA 06E7;Z # ARABIC SMALL HIGH YEH 06E8;Z # ARABIC SMALL HIGH NOON 06EA;Z # ARABIC EMPTY CENTRE LOW STOP 06EB;Z # ARABIC EMPTY CENTRE HIGH STOP 06EC;Z # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE 06ED;Z # ARABIC SMALL LOW MEEM 070F;Z # SYRIAC ABBREVIATION MARK 0711;Z # SYRIAC LETTER SUPERSCRIPT ALAPH 0730;Z # SYRIAC PTHAHA ABOVE 0731;Z # SYRIAC PTHAHA BELOW 0732;Z # SYRIAC PTHAHA DOTTED 0733;Z # SYRIAC ZQAPHA ABOVE 0734;Z # SYRIAC ZQAPHA BELOW 0735;Z # SYRIAC ZQAPHA DOTTED 0736;Z # SYRIAC RBASA ABOVE 0737;Z # SYRIAC RBASA BELOW 0738;Z # SYRIAC DOTTED ZLAMA HORIZONTAL 0739;Z # SYRIAC DOTTED ZLAMA ANGULAR 073A;Z # SYRIAC HBASA ABOVE 073B;Z # SYRIAC HBASA BELOW 073C;Z # SYRIAC HBASA-ESASA DOTTED 073D;Z # SYRIAC ESASA ABOVE 073E;Z # SYRIAC ESASA BELOW 073F;Z # SYRIAC RWAHA 0740;Z # SYRIAC FEMININE DOT 0741;Z # SYRIAC QUSHSHAYA 0742;Z # SYRIAC RUKKAKHA 0743;Z # SYRIAC TWO VERTICAL DOTS ABOVE 0744;Z # SYRIAC TWO VERTICAL DOTS BELOW 0745;Z # SYRIAC THREE DOTS ABOVE 0746;Z # SYRIAC THREE DOTS BELOW 0747;Z # SYRIAC OBLIQUE LINE ABOVE 0748;Z # SYRIAC OBLIQUE LINE BELOW 0749;Z # SYRIAC MUSIC 074A;Z # SYRIAC BARREKH 07A6;Z # THAANA ABAFILI 07A7;Z # THAANA AABAAFILI 07A8;Z # THAANA IBIFILI 07A9;Z # THAANA EEBEEFILI 07AA;Z # THAANA UBUFILI 07AB;Z # THAANA OOBOOFILI 07AC;Z # THAANA EBEFILI 07AD;Z # THAANA EYBEYFILI 07AE;Z # THAANA OBOFILI 07AF;Z # THAANA OABOAFILI 07B0;Z # THAANA SUKUN 07EB;Z # NKO COMBINING SHORT HIGH TONE 07EC;Z # NKO COMBINING SHORT LOW TONE 07ED;Z # NKO COMBINING SHORT RISING TONE 07EE;Z # NKO COMBINING LONG DESCENDING TONE 07EF;Z # NKO COMBINING LONG HIGH TONE 07F0;Z # NKO COMBINING LONG LOW TONE 07F1;Z # NKO COMBINING LONG RISING TONE 07F2;Z # NKO COMBINING NASALIZATION MARK 07F3;Z # NKO COMBINING DOUBLE DOT ABOVE 0816;Z # SAMARITAN MARK IN 0817;Z # SAMARITAN MARK IN-ALAF 0818;Z # SAMARITAN MARK OCCLUSION 0819;Z # SAMARITAN MARK DAGESH 081B;Z # SAMARITAN MARK EPENTHETIC YUT 081C;Z # SAMARITAN VOWEL SIGN LONG E 081D;Z # SAMARITAN VOWEL SIGN E 081E;Z # SAMARITAN VOWEL SIGN OVERLONG AA 081F;Z # SAMARITAN VOWEL SIGN LONG AA 0820;Z # SAMARITAN VOWEL SIGN AA 0821;Z # SAMARITAN VOWEL SIGN OVERLONG A 0822;Z # SAMARITAN VOWEL SIGN LONG A 0823;Z # SAMARITAN VOWEL SIGN A 0825;Z # SAMARITAN VOWEL SIGN SHORT A 0826;Z # SAMARITAN VOWEL SIGN LONG U 0827;Z # SAMARITAN VOWEL SIGN U 0829;Z # SAMARITAN VOWEL SIGN LONG I 082A;Z # SAMARITAN VOWEL SIGN I 082B;Z # SAMARITAN VOWEL SIGN O 082C;Z # SAMARITAN VOWEL SIGN SUKUN 082D;Z # SAMARITAN MARK NEQUDAA 0859;Z # MANDAIC AFFRICATION MARK 085A;Z # MANDAIC VOCALIZATION MARK 085B;Z # MANDAIC GEMINATION MARK 08E4;Z # ARABIC CURLY FATHA 08E5;Z # ARABIC CURLY DAMMA 08E6;Z # ARABIC CURLY KASRA 08E7;Z # ARABIC CURLY FATHATAN 08E8;Z # ARABIC CURLY DAMMATAN 08E9;Z # ARABIC CURLY KASRATAN 08EA;Z # ARABIC TONE ONE DOT ABOVE 08EB;Z # ARABIC TONE TWO DOTS ABOVE 08EC;Z # ARABIC TONE LOOP ABOVE 08ED;Z # ARABIC TONE ONE DOT BELOW 08EE;Z # ARABIC TONE TWO DOTS BELOW 08EF;Z # ARABIC TONE LOOP BELOW 08F0;Z # ARABIC OPEN FATHATAN 08F1;Z # ARABIC OPEN DAMMATAN 08F2;Z # ARABIC OPEN KASRATAN 08F3;Z # ARABIC SMALL HIGH WAW 08F4;Z # ARABIC FATHA WITH RING 08F5;Z # ARABIC FATHA WITH DOT ABOVE 08F6;Z # ARABIC KASRA WITH DOT BELOW 08F7;Z # ARABIC LEFT ARROWHEAD ABOVE 08F8;Z # ARABIC RIGHT ARROWHEAD ABOVE 08F9;Z # ARABIC LEFT ARROWHEAD BELOW 08FA;Z # ARABIC RIGHT ARROWHEAD BELOW 08FB;Z # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE 08FC;Z # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT 08FD;Z # ARABIC RIGHT ARROWHEAD ABOVE WITH DOT 08FE;Z # ARABIC DAMMA WITH DOT 0900;Z # DEVANAGARI SIGN INVERTED CANDRABINDU 0901;Z # DEVANAGARI SIGN CANDRABINDU 0902;Z # DEVANAGARI SIGN ANUSVARA 093A;Z # DEVANAGARI VOWEL SIGN OE 093C;Z # DEVANAGARI SIGN NUKTA 0941;Z # DEVANAGARI VOWEL SIGN U 0942;Z # DEVANAGARI VOWEL SIGN UU 0943;Z # DEVANAGARI VOWEL SIGN VOCALIC R 0944;Z # DEVANAGARI VOWEL SIGN VOCALIC RR 0945;Z # DEVANAGARI VOWEL SIGN CANDRA E 0946;Z # DEVANAGARI VOWEL SIGN SHORT E 0947;Z # DEVANAGARI VOWEL SIGN E 0948;Z # DEVANAGARI VOWEL SIGN AI 094D;Z # DEVANAGARI SIGN VIRAMA 0951;Z # DEVANAGARI STRESS SIGN UDATTA 0952;Z # DEVANAGARI STRESS SIGN ANUDATTA 0953;Z # DEVANAGARI GRAVE ACCENT 0954;Z # DEVANAGARI ACUTE ACCENT 0955;Z # DEVANAGARI VOWEL SIGN CANDRA LONG E 0956;Z # DEVANAGARI VOWEL SIGN UE 0957;Z # DEVANAGARI VOWEL SIGN UUE 0962;Z # DEVANAGARI VOWEL SIGN VOCALIC L 0963;Z # DEVANAGARI VOWEL SIGN VOCALIC LL 0981;Z # BENGALI SIGN CANDRABINDU 09BC;Z # BENGALI SIGN NUKTA 09C1;Z # BENGALI VOWEL SIGN U 09C2;Z # BENGALI VOWEL SIGN UU 09C3;Z # BENGALI VOWEL SIGN VOCALIC R 09C4;Z # BENGALI VOWEL SIGN VOCALIC RR 09CD;Z # BENGALI SIGN VIRAMA 09E2;Z # BENGALI VOWEL SIGN VOCALIC L 09E3;Z # BENGALI VOWEL SIGN VOCALIC LL 0A01;Z # GURMUKHI SIGN ADAK BINDI 0A02;Z # GURMUKHI SIGN BINDI 0A3C;Z # GURMUKHI SIGN NUKTA 0A41;Z # GURMUKHI VOWEL SIGN U 0A42;Z # GURMUKHI VOWEL SIGN UU 0A47;Z # GURMUKHI VOWEL SIGN EE 0A48;Z # GURMUKHI VOWEL SIGN AI 0A4B;Z # GURMUKHI VOWEL SIGN OO 0A4C;Z # GURMUKHI VOWEL SIGN AU 0A4D;Z # GURMUKHI SIGN VIRAMA 0A51;Z # GURMUKHI SIGN UDAAT 0A70;Z # GURMUKHI TIPPI 0A71;Z # GURMUKHI ADDAK 0A75;Z # GURMUKHI SIGN YAKASH 0A81;Z # GUJARATI SIGN CANDRABINDU 0A82;Z # GUJARATI SIGN ANUSVARA 0ABC;Z # GUJARATI SIGN NUKTA 0AC1;Z # GUJARATI VOWEL SIGN U 0AC2;Z # GUJARATI VOWEL SIGN UU 0AC3;Z # GUJARATI VOWEL SIGN VOCALIC R 0AC4;Z # GUJARATI VOWEL SIGN VOCALIC RR 0AC5;Z # GUJARATI VOWEL SIGN CANDRA E 0AC7;Z # GUJARATI VOWEL SIGN E 0AC8;Z # GUJARATI VOWEL SIGN AI 0ACD;Z # GUJARATI SIGN VIRAMA 0AE2;Z # GUJARATI VOWEL SIGN VOCALIC L 0AE3;Z # GUJARATI VOWEL SIGN VOCALIC LL 0B01;Z # ORIYA SIGN CANDRABINDU 0B3C;Z # ORIYA SIGN NUKTA 0B3F;Z # ORIYA VOWEL SIGN I 0B41;Z # ORIYA VOWEL SIGN U 0B42;Z # ORIYA VOWEL SIGN UU 0B43;Z # ORIYA VOWEL SIGN VOCALIC R 0B44;Z # ORIYA VOWEL SIGN VOCALIC RR 0B4D;Z # ORIYA SIGN VIRAMA 0B56;Z # ORIYA AI LENGTH MARK 0B62;Z # ORIYA VOWEL SIGN VOCALIC L 0B63;Z # ORIYA VOWEL SIGN VOCALIC LL 0B82;Z # TAMIL SIGN ANUSVARA 0BC0;Z # TAMIL VOWEL SIGN II 0BCD;Z # TAMIL SIGN VIRAMA 0C3E;Z # TELUGU VOWEL SIGN AA 0C3F;Z # TELUGU VOWEL SIGN I 0C40;Z # TELUGU VOWEL SIGN II 0C46;Z # TELUGU VOWEL SIGN E 0C47;Z # TELUGU VOWEL SIGN EE 0C48;Z # TELUGU VOWEL SIGN AI 0C4A;Z # TELUGU VOWEL SIGN O 0C4B;Z # TELUGU VOWEL SIGN OO 0C4C;Z # TELUGU VOWEL SIGN AU 0C4D;Z # TELUGU SIGN VIRAMA 0C55;Z # TELUGU LENGTH MARK 0C56;Z # TELUGU AI LENGTH MARK 0C62;Z # TELUGU VOWEL SIGN VOCALIC L 0C63;Z # TELUGU VOWEL SIGN VOCALIC LL 0CBC;Z # KANNADA SIGN NUKTA 0CBF;Z # KANNADA VOWEL SIGN I 0CC6;Z # KANNADA VOWEL SIGN E 0CCC;Z # KANNADA VOWEL SIGN AU 0CCD;Z # KANNADA SIGN VIRAMA 0CE2;Z # KANNADA VOWEL SIGN VOCALIC L 0CE3;Z # KANNADA VOWEL SIGN VOCALIC LL 0D41;Z # MALAYALAM VOWEL SIGN U 0D42;Z # MALAYALAM VOWEL SIGN UU 0D43;Z # MALAYALAM VOWEL SIGN VOCALIC R 0D44;Z # MALAYALAM VOWEL SIGN VOCALIC RR 0D4D;Z # MALAYALAM SIGN VIRAMA 0D62;Z # MALAYALAM VOWEL SIGN VOCALIC L 0D63;Z # MALAYALAM VOWEL SIGN VOCALIC LL 0DCA;Z # SINHALA SIGN AL-LAKUNA 0DD2;Z # SINHALA VOWEL SIGN KETTI IS-PILLA 0DD3;Z # SINHALA VOWEL SIGN DIGA IS-PILLA 0DD4;Z # SINHALA VOWEL SIGN KETTI PAA-PILLA 0DD6;Z # SINHALA VOWEL SIGN DIGA PAA-PILLA 0E31;Z # THAI CHARACTER MAI HAN-AKAT 0E34;Z # THAI CHARACTER SARA I 0E35;Z # THAI CHARACTER SARA II 0E36;Z # THAI CHARACTER SARA UE 0E37;Z # THAI CHARACTER SARA UEE 0E38;Z # THAI CHARACTER SARA U 0E39;Z # THAI CHARACTER SARA UU 0E3A;Z # THAI CHARACTER PHINTHU 0E47;Z # THAI CHARACTER MAITAIKHU 0E48;Z # THAI CHARACTER MAI EK 0E49;Z # THAI CHARACTER MAI THO 0E4A;Z # THAI CHARACTER MAI TRI 0E4B;Z # THAI CHARACTER MAI CHATTAWA 0E4C;Z # THAI CHARACTER THANTHAKHAT 0E4D;Z # THAI CHARACTER NIKHAHIT 0E4E;Z # THAI CHARACTER YAMAKKAN 0EB1;Z # LAO VOWEL SIGN MAI KAN 0EB4;Z # LAO VOWEL SIGN I 0EB5;Z # LAO VOWEL SIGN II 0EB6;Z # LAO VOWEL SIGN Y 0EB7;Z # LAO VOWEL SIGN YY 0EB8;Z # LAO VOWEL SIGN U 0EB9;Z # LAO VOWEL SIGN UU 0EBB;Z # LAO VOWEL SIGN MAI KON 0EBC;Z # LAO SEMIVOWEL SIGN LO 0EC8;Z # LAO TONE MAI EK 0EC9;Z # LAO TONE MAI THO 0ECA;Z # LAO TONE MAI TI 0ECB;Z # LAO TONE MAI CATAWA 0ECC;Z # LAO CANCELLATION MARK 0ECD;Z # LAO NIGGAHITA 0F18;Z # TIBETAN ASTROLOGICAL SIGN -KHYUD PA 0F19;Z # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS 0F35;Z # TIBETAN MARK NGAS BZUNG NYI ZLA 0F37;Z # TIBETAN MARK NGAS BZUNG SGOR RTAGS 0F39;Z # TIBETAN MARK TSA -PHRU 0F71;Z # TIBETAN VOWEL SIGN AA 0F72;Z # TIBETAN VOWEL SIGN I 0F73;Z # TIBETAN VOWEL SIGN II 0F74;Z # TIBETAN VOWEL SIGN U 0F75;Z # TIBETAN VOWEL SIGN UU 0F76;Z # TIBETAN VOWEL SIGN VOCALIC R 0F77;Z # TIBETAN VOWEL SIGN VOCALIC RR 0F78;Z # TIBETAN VOWEL SIGN VOCALIC L 0F79;Z # TIBETAN VOWEL SIGN VOCALIC LL 0F7A;Z # TIBETAN VOWEL SIGN E 0F7B;Z # TIBETAN VOWEL SIGN EE 0F7C;Z # TIBETAN VOWEL SIGN O 0F7D;Z # TIBETAN VOWEL SIGN OO 0F7E;Z # TIBETAN SIGN RJES SU NGA RO 0F80;Z # TIBETAN VOWEL SIGN REVERSED I 0F81;Z # TIBETAN VOWEL SIGN REVERSED II 0F82;Z # TIBETAN SIGN NYI ZLA NAA DA 0F83;Z # TIBETAN SIGN SNA LDAN 0F84;Z # TIBETAN MARK HALANTA 0F86;Z # TIBETAN SIGN LCI RTAGS 0F87;Z # TIBETAN SIGN YANG RTAGS 0F8D;Z # TIBETAN SUBJOINED SIGN LCE TSA CAN 0F8E;Z # TIBETAN SUBJOINED SIGN MCHU CAN 0F8F;Z # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN 0F90;Z # TIBETAN SUBJOINED LETTER KA 0F91;Z # TIBETAN SUBJOINED LETTER KHA 0F92;Z # TIBETAN SUBJOINED LETTER GA 0F93;Z # TIBETAN SUBJOINED LETTER GHA 0F94;Z # TIBETAN SUBJOINED LETTER NGA 0F95;Z # TIBETAN SUBJOINED LETTER CA 0F96;Z # TIBETAN SUBJOINED LETTER CHA 0F97;Z # TIBETAN SUBJOINED LETTER JA 0F99;Z # TIBETAN SUBJOINED LETTER NYA 0F9A;Z # TIBETAN SUBJOINED LETTER TTA 0F9B;Z # TIBETAN SUBJOINED LETTER TTHA 0F9C;Z # TIBETAN SUBJOINED LETTER DDA 0F9D;Z # TIBETAN SUBJOINED LETTER DDHA 0F9E;Z # TIBETAN SUBJOINED LETTER NNA 0F9F;Z # TIBETAN SUBJOINED LETTER TA 0FA0;Z # TIBETAN SUBJOINED LETTER THA 0FA1;Z # TIBETAN SUBJOINED LETTER DA 0FA2;Z # TIBETAN SUBJOINED LETTER DHA 0FA3;Z # TIBETAN SUBJOINED LETTER NA 0FA4;Z # TIBETAN SUBJOINED LETTER PA 0FA5;Z # TIBETAN SUBJOINED LETTER PHA 0FA6;Z # TIBETAN SUBJOINED LETTER BA 0FA7;Z # TIBETAN SUBJOINED LETTER BHA 0FA8;Z # TIBETAN SUBJOINED LETTER MA 0FA9;Z # TIBETAN SUBJOINED LETTER TSA 0FAA;Z # TIBETAN SUBJOINED LETTER TSHA 0FAB;Z # TIBETAN SUBJOINED LETTER DZA 0FAC;Z # TIBETAN SUBJOINED LETTER DZHA 0FAD;Z # TIBETAN SUBJOINED LETTER WA 0FAE;Z # TIBETAN SUBJOINED LETTER ZHA 0FAF;Z # TIBETAN SUBJOINED LETTER ZA 0FB0;Z # TIBETAN SUBJOINED LETTER -A 0FB1;Z # TIBETAN SUBJOINED LETTER YA 0FB2;Z # TIBETAN SUBJOINED LETTER RA 0FB3;Z # TIBETAN SUBJOINED LETTER LA 0FB4;Z # TIBETAN SUBJOINED LETTER SHA 0FB5;Z # TIBETAN SUBJOINED LETTER SSA 0FB6;Z # TIBETAN SUBJOINED LETTER SA 0FB7;Z # TIBETAN SUBJOINED LETTER HA 0FB8;Z # TIBETAN SUBJOINED LETTER A 0FB9;Z # TIBETAN SUBJOINED LETTER KSSA 0FBA;Z # TIBETAN SUBJOINED LETTER FIXED-FORM WA 0FBB;Z # TIBETAN SUBJOINED LETTER FIXED-FORM YA 0FBC;Z # TIBETAN SUBJOINED LETTER FIXED-FORM RA 0FC6;Z # TIBETAN SYMBOL PADMA GDAN 102D;Z # MYANMAR VOWEL SIGN I 102E;Z # MYANMAR VOWEL SIGN II 102F;Z # MYANMAR VOWEL SIGN U 1030;Z # MYANMAR VOWEL SIGN UU 1032;Z # MYANMAR VOWEL SIGN AI 1033;Z # MYANMAR VOWEL SIGN MON II 1034;Z # MYANMAR VOWEL SIGN MON O 1035;Z # MYANMAR VOWEL SIGN E ABOVE 1036;Z # MYANMAR SIGN ANUSVARA 1037;Z # MYANMAR SIGN DOT BELOW 1039;Z # MYANMAR SIGN VIRAMA 103A;Z # MYANMAR SIGN ASAT 103D;Z # MYANMAR CONSONANT SIGN MEDIAL WA 103E;Z # MYANMAR CONSONANT SIGN MEDIAL HA 1058;Z # MYANMAR VOWEL SIGN VOCALIC L 1059;Z # MYANMAR VOWEL SIGN VOCALIC LL 105E;Z # MYANMAR CONSONANT SIGN MON MEDIAL NA 105F;Z # MYANMAR CONSONANT SIGN MON MEDIAL MA 1060;Z # MYANMAR CONSONANT SIGN MON MEDIAL LA 1071;Z # MYANMAR VOWEL SIGN GEBA KAREN I 1072;Z # MYANMAR VOWEL SIGN KAYAH OE 1073;Z # MYANMAR VOWEL SIGN KAYAH U 1074;Z # MYANMAR VOWEL SIGN KAYAH EE 1082;Z # MYANMAR CONSONANT SIGN SHAN MEDIAL WA 1085;Z # MYANMAR VOWEL SIGN SHAN E ABOVE 1086;Z # MYANMAR VOWEL SIGN SHAN FINAL Y 108D;Z # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE 109D;Z # MYANMAR VOWEL SIGN AITON AI 135D;Z # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK 135E;Z # ETHIOPIC COMBINING VOWEL LENGTH MARK 135F;Z # ETHIOPIC COMBINING GEMINATION MARK 1712;Z # TAGALOG VOWEL SIGN I 1713;Z # TAGALOG VOWEL SIGN U 1714;Z # TAGALOG SIGN VIRAMA 1732;Z # HANUNOO VOWEL SIGN I 1733;Z # HANUNOO VOWEL SIGN U 1734;Z # HANUNOO SIGN PAMUDPOD 1752;Z # BUHID VOWEL SIGN I 1753;Z # BUHID VOWEL SIGN U 1772;Z # TAGBANWA VOWEL SIGN I 1773;Z # TAGBANWA VOWEL SIGN U 17B4;Z # KHMER VOWEL INHERENT AQ 17B5;Z # KHMER VOWEL INHERENT AA 17B7;Z # KHMER VOWEL SIGN I 17B8;Z # KHMER VOWEL SIGN II 17B9;Z # KHMER VOWEL SIGN Y 17BA;Z # KHMER VOWEL SIGN YY 17BB;Z # KHMER VOWEL SIGN U 17BC;Z # KHMER VOWEL SIGN UU 17BD;Z # KHMER VOWEL SIGN UA 17C6;Z # KHMER SIGN NIKAHIT 17C9;Z # KHMER SIGN MUUSIKATOAN 17CA;Z # KHMER SIGN TRIISAP 17CB;Z # KHMER SIGN BANTOC 17CC;Z # KHMER SIGN ROBAT 17CD;Z # KHMER SIGN TOANDAKHIAT 17CE;Z # KHMER SIGN KAKABAT 17CF;Z # KHMER SIGN AHSDA 17D0;Z # KHMER SIGN SAMYOK SANNYA 17D1;Z # KHMER SIGN VIRIAM 17D2;Z # KHMER SIGN COENG 17D3;Z # KHMER SIGN BATHAMASAT 17DD;Z # KHMER SIGN ATTHACAN 180B;Z # MONGOLIAN FREE VARIATION SELECTOR ONE 180C;Z # MONGOLIAN FREE VARIATION SELECTOR TWO 180D;Z # MONGOLIAN FREE VARIATION SELECTOR THREE 18A9;Z # MONGOLIAN LETTER ALI GALI DAGALGA 1920;Z # LIMBU VOWEL SIGN A 1921;Z # LIMBU VOWEL SIGN I 1922;Z # LIMBU VOWEL SIGN U 1927;Z # LIMBU VOWEL SIGN E 1928;Z # LIMBU VOWEL SIGN O 1932;Z # LIMBU SMALL LETTER ANUSVARA 1939;Z # LIMBU SIGN MUKPHRENG 193A;Z # LIMBU SIGN KEMPHRENG 193B;Z # LIMBU SIGN SA-I 1A17;Z # BUGINESE VOWEL SIGN I 1A18;Z # BUGINESE VOWEL SIGN U 1A56;Z # TAI THAM CONSONANT SIGN MEDIAL LA 1A58;Z # TAI THAM SIGN MAI KANG LAI 1A59;Z # TAI THAM CONSONANT SIGN FINAL NGA 1A5A;Z # TAI THAM CONSONANT SIGN LOW PA 1A5B;Z # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA 1A5C;Z # TAI THAM CONSONANT SIGN MA 1A5D;Z # TAI THAM CONSONANT SIGN BA 1A5E;Z # TAI THAM CONSONANT SIGN SA 1A60;Z # TAI THAM SIGN SAKOT 1A62;Z # TAI THAM VOWEL SIGN MAI SAT 1A65;Z # TAI THAM VOWEL SIGN I 1A66;Z # TAI THAM VOWEL SIGN II 1A67;Z # TAI THAM VOWEL SIGN UE 1A68;Z # TAI THAM VOWEL SIGN UUE 1A69;Z # TAI THAM VOWEL SIGN U 1A6A;Z # TAI THAM VOWEL SIGN UU 1A6B;Z # TAI THAM VOWEL SIGN O 1A6C;Z # TAI THAM VOWEL SIGN OA BELOW 1A73;Z # TAI THAM VOWEL SIGN OA ABOVE 1A74;Z # TAI THAM SIGN MAI KANG 1A75;Z # TAI THAM SIGN TONE-1 1A76;Z # TAI THAM SIGN TONE-2 1A77;Z # TAI THAM SIGN KHUEN TONE-3 1A78;Z # TAI THAM SIGN KHUEN TONE-4 1A79;Z # TAI THAM SIGN KHUEN TONE-5 1A7A;Z # TAI THAM SIGN RA HAAM 1A7B;Z # TAI THAM SIGN MAI SAM 1A7C;Z # TAI THAM SIGN KHUEN-LUE KARAN 1A7F;Z # TAI THAM COMBINING CRYPTOGRAMMIC DOT 1B00;Z # BALINESE SIGN ULU RICEM 1B01;Z # BALINESE SIGN ULU CANDRA 1B02;Z # BALINESE SIGN CECEK 1B03;Z # BALINESE SIGN SURANG 1B34;Z # BALINESE SIGN REREKAN 1B36;Z # BALINESE VOWEL SIGN ULU 1B37;Z # BALINESE VOWEL SIGN ULU SARI 1B38;Z # BALINESE VOWEL SIGN SUKU 1B39;Z # BALINESE VOWEL SIGN SUKU ILUT 1B3A;Z # BALINESE VOWEL SIGN RA REPA 1B3C;Z # BALINESE VOWEL SIGN LA LENGA 1B42;Z # BALINESE VOWEL SIGN PEPET 1B6B;Z # BALINESE MUSICAL SYMBOL COMBINING TEGEH 1B6C;Z # BALINESE MUSICAL SYMBOL COMBINING ENDEP 1B6D;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL 1B6E;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI 1B6F;Z # BALINESE MUSICAL SYMBOL COMBINING JEGOGAN 1B70;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN 1B71;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN 1B72;Z # BALINESE MUSICAL SYMBOL COMBINING BENDE 1B73;Z # BALINESE MUSICAL SYMBOL COMBINING GONG 1B80;Z # SUNDANESE SIGN PANYECEK 1B81;Z # SUNDANESE SIGN PANGLAYAR 1BA2;Z # SUNDANESE CONSONANT SIGN PANYAKRA 1BA3;Z # SUNDANESE CONSONANT SIGN PANYIKU 1BA4;Z # SUNDANESE VOWEL SIGN PANGHULU 1BA5;Z # SUNDANESE VOWEL SIGN PANYUKU 1BA8;Z # SUNDANESE VOWEL SIGN PAMEPET 1BA9;Z # SUNDANESE VOWEL SIGN PANEULEUNG 1BAB;Z # SUNDANESE SIGN VIRAMA 1BE6;Z # BATAK SIGN TOMPI 1BE8;Z # BATAK VOWEL SIGN PAKPAK E 1BE9;Z # BATAK VOWEL SIGN EE 1BED;Z # BATAK VOWEL SIGN KARO O 1BEF;Z # BATAK VOWEL SIGN U FOR SIMALUNGUN SA 1BF0;Z # BATAK CONSONANT SIGN NG 1BF1;Z # BATAK CONSONANT SIGN H 1C2C;Z # LEPCHA VOWEL SIGN E 1C2D;Z # LEPCHA CONSONANT SIGN K 1C2E;Z # LEPCHA CONSONANT SIGN M 1C2F;Z # LEPCHA CONSONANT SIGN L 1C30;Z # LEPCHA CONSONANT SIGN N 1C31;Z # LEPCHA CONSONANT SIGN P 1C32;Z # LEPCHA CONSONANT SIGN R 1C33;Z # LEPCHA CONSONANT SIGN T 1C36;Z # LEPCHA SIGN RAN 1C37;Z # LEPCHA SIGN NUKTA 1CD0;Z # VEDIC TONE KARSHANA 1CD1;Z # VEDIC TONE SHARA 1CD2;Z # VEDIC TONE PRENKHA 1CD4;Z # VEDIC SIGN YAJURVEDIC MIDLINE SVARITA 1CD5;Z # VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA 1CD6;Z # VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA 1CD7;Z # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA 1CD8;Z # VEDIC TONE CANDRA BELOW 1CD9;Z # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER 1CDA;Z # VEDIC TONE DOUBLE SVARITA 1CDB;Z # VEDIC TONE TRIPLE SVARITA 1CDC;Z # VEDIC TONE KATHAKA ANUDATTA 1CDD;Z # VEDIC TONE DOT BELOW 1CDE;Z # VEDIC TONE TWO DOTS BELOW 1CDF;Z # VEDIC TONE THREE DOTS BELOW 1CE0;Z # VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA 1CE2;Z # VEDIC SIGN VISARGA SVARITA 1CE3;Z # VEDIC SIGN VISARGA UDATTA 1CE4;Z # VEDIC SIGN REVERSED VISARGA UDATTA 1CE5;Z # VEDIC SIGN VISARGA ANUDATTA 1CE6;Z # VEDIC SIGN REVERSED VISARGA ANUDATTA 1CE7;Z # VEDIC SIGN VISARGA UDATTA WITH TAIL 1CE8;Z # VEDIC SIGN VISARGA ANUDATTA WITH TAIL 1CED;Z # VEDIC SIGN TIRYAK 1CF4;Z # VEDIC TONE CANDRA ABOVE 1DC0;Z # COMBINING DOTTED GRAVE ACCENT 1DC1;Z # COMBINING DOTTED ACUTE ACCENT 1DC2;Z # COMBINING SNAKE BELOW 1DC3;Z # COMBINING SUSPENSION MARK 1DC4;Z # COMBINING MACRON-ACUTE 1DC5;Z # COMBINING GRAVE-MACRON 1DC6;Z # COMBINING MACRON-GRAVE 1DC7;Z # COMBINING ACUTE-MACRON 1DC8;Z # COMBINING GRAVE-ACUTE-GRAVE 1DC9;Z # COMBINING ACUTE-GRAVE-ACUTE 1DCA;Z # COMBINING LATIN SMALL LETTER R BELOW 1DCB;Z # COMBINING BREVE-MACRON 1DCC;Z # COMBINING MACRON-BREVE 1DCD;Z # COMBINING DOUBLE CIRCUMFLEX ABOVE 1DCE;Z # COMBINING OGONEK ABOVE 1DCF;Z # COMBINING ZIGZAG BELOW 1DD0;Z # COMBINING IS BELOW 1DD1;Z # COMBINING UR ABOVE 1DD2;Z # COMBINING US ABOVE 1DD3;Z # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE 1DD4;Z # COMBINING LATIN SMALL LETTER AE 1DD5;Z # COMBINING LATIN SMALL LETTER AO 1DD6;Z # COMBINING LATIN SMALL LETTER AV 1DD7;Z # COMBINING LATIN SMALL LETTER C CEDILLA 1DD8;Z # COMBINING LATIN SMALL LETTER INSULAR D 1DD9;Z # COMBINING LATIN SMALL LETTER ETH 1DDA;Z # COMBINING LATIN SMALL LETTER G 1DDB;Z # COMBINING LATIN LETTER SMALL CAPITAL G 1DDC;Z # COMBINING LATIN SMALL LETTER K 1DDD;Z # COMBINING LATIN SMALL LETTER L 1DDE;Z # COMBINING LATIN LETTER SMALL CAPITAL L 1DDF;Z # COMBINING LATIN LETTER SMALL CAPITAL M 1DE0;Z # COMBINING LATIN SMALL LETTER N 1DE1;Z # COMBINING LATIN LETTER SMALL CAPITAL N 1DE2;Z # COMBINING LATIN LETTER SMALL CAPITAL R 1DE3;Z # COMBINING LATIN SMALL LETTER R ROTUNDA 1DE4;Z # COMBINING LATIN SMALL LETTER S 1DE5;Z # COMBINING LATIN SMALL LETTER LONG S 1DE6;Z # COMBINING LATIN SMALL LETTER Z 1DFC;Z # COMBINING DOUBLE INVERTED BREVE BELOW 1DFD;Z # COMBINING ALMOST EQUAL TO BELOW 1DFE;Z # COMBINING LEFT ARROWHEAD ABOVE 1DFF;Z # COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW 200B;Z # ZERO WIDTH SPACE 200C;Z # ZERO WIDTH NON-JOINER 200D;Z # ZERO WIDTH JOINER 200E;Z # LEFT-TO-RIGHT MARK 200F;Z # RIGHT-TO-LEFT MARK 2028;Z # LINE SEPARATOR 2029;Z # PARAGRAPH SEPARATOR 202A;Z # LEFT-TO-RIGHT EMBEDDING 202B;Z # RIGHT-TO-LEFT EMBEDDING 202C;Z # POP DIRECTIONAL FORMATTING 202D;Z # LEFT-TO-RIGHT OVERRIDE 202E;Z # RIGHT-TO-LEFT OVERRIDE 2060;Z # WORD JOINER 2061;Z # FUNCTION APPLICATION 2062;Z # INVISIBLE TIMES 2063;Z # INVISIBLE SEPARATOR 2064;Z # INVISIBLE PLUS 206A;Z # INHIBIT SYMMETRIC SWAPPING 206B;Z # ACTIVATE SYMMETRIC SWAPPING 206C;Z # INHIBIT ARABIC FORM SHAPING 206D;Z # ACTIVATE ARABIC FORM SHAPING 206E;Z # NATIONAL DIGIT SHAPES 206F;Z # NOMINAL DIGIT SHAPES 20D0;Z # COMBINING LEFT HARPOON ABOVE 20D1;Z # COMBINING RIGHT HARPOON ABOVE 20D2;Z # COMBINING LONG VERTICAL LINE OVERLAY 20D3;Z # COMBINING SHORT VERTICAL LINE OVERLAY 20D4;Z # COMBINING ANTICLOCKWISE ARROW ABOVE 20D5;Z # COMBINING CLOCKWISE ARROW ABOVE 20D6;Z # COMBINING LEFT ARROW ABOVE 20D7;Z # COMBINING RIGHT ARROW ABOVE 20D8;Z # COMBINING RING OVERLAY 20D9;Z # COMBINING CLOCKWISE RING OVERLAY 20DA;Z # COMBINING ANTICLOCKWISE RING OVERLAY 20DB;Z # COMBINING THREE DOTS ABOVE 20DC;Z # COMBINING FOUR DOTS ABOVE 20DD;Z # COMBINING ENCLOSING CIRCLE 20DE;Z # COMBINING ENCLOSING SQUARE 20DF;Z # COMBINING ENCLOSING DIAMOND 20E0;Z # COMBINING ENCLOSING CIRCLE BACKSLASH 20E1;Z # COMBINING LEFT RIGHT ARROW ABOVE 20E2;Z # COMBINING ENCLOSING SCREEN 20E3;Z # COMBINING ENCLOSING KEYCAP 20E4;Z # COMBINING ENCLOSING UPWARD POINTING TRIANGLE 20E5;Z # COMBINING REVERSE SOLIDUS OVERLAY 20E6;Z # COMBINING DOUBLE VERTICAL STROKE OVERLAY 20E7;Z # COMBINING ANNUITY SYMBOL 20E8;Z # COMBINING TRIPLE UNDERDOT 20E9;Z # COMBINING WIDE BRIDGE ABOVE 20EA;Z # COMBINING LEFTWARDS ARROW OVERLAY 20EB;Z # COMBINING LONG DOUBLE SOLIDUS OVERLAY 20EC;Z # COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS 20ED;Z # COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS 20EE;Z # COMBINING LEFT ARROW BELOW 20EF;Z # COMBINING RIGHT ARROW BELOW 20F0;Z # COMBINING ASTERISK ABOVE 2CEF;Z # COPTIC COMBINING NI ABOVE 2CF0;Z # COPTIC COMBINING SPIRITUS ASPER 2CF1;Z # COPTIC COMBINING SPIRITUS LENIS 2D7F;Z # TIFINAGH CONSONANT JOINER 2DE0;Z # COMBINING CYRILLIC LETTER BE 2DE1;Z # COMBINING CYRILLIC LETTER VE 2DE2;Z # COMBINING CYRILLIC LETTER GHE 2DE3;Z # COMBINING CYRILLIC LETTER DE 2DE4;Z # COMBINING CYRILLIC LETTER ZHE 2DE5;Z # COMBINING CYRILLIC LETTER ZE 2DE6;Z # COMBINING CYRILLIC LETTER KA 2DE7;Z # COMBINING CYRILLIC LETTER EL 2DE8;Z # COMBINING CYRILLIC LETTER EM 2DE9;Z # COMBINING CYRILLIC LETTER EN 2DEA;Z # COMBINING CYRILLIC LETTER O 2DEB;Z # COMBINING CYRILLIC LETTER PE 2DEC;Z # COMBINING CYRILLIC LETTER ER 2DED;Z # COMBINING CYRILLIC LETTER ES 2DEE;Z # COMBINING CYRILLIC LETTER TE 2DEF;Z # COMBINING CYRILLIC LETTER HA 2DF0;Z # COMBINING CYRILLIC LETTER TSE 2DF1;Z # COMBINING CYRILLIC LETTER CHE 2DF2;Z # COMBINING CYRILLIC LETTER SHA 2DF3;Z # COMBINING CYRILLIC LETTER SHCHA 2DF4;Z # COMBINING CYRILLIC LETTER FITA 2DF5;Z # COMBINING CYRILLIC LETTER ES-TE 2DF6;Z # COMBINING CYRILLIC LETTER A 2DF7;Z # COMBINING CYRILLIC LETTER IE 2DF8;Z # COMBINING CYRILLIC LETTER DJERV 2DF9;Z # COMBINING CYRILLIC LETTER MONOGRAPH UK 2DFA;Z # COMBINING CYRILLIC LETTER YAT 2DFB;Z # COMBINING CYRILLIC LETTER YU 2DFC;Z # COMBINING CYRILLIC LETTER IOTIFIED A 2DFD;Z # COMBINING CYRILLIC LETTER LITTLE YUS 2DFE;Z # COMBINING CYRILLIC LETTER BIG YUS 2DFF;Z # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS 302A;ZW # IDEOGRAPHIC LEVEL TONE MARK 302B;ZW # IDEOGRAPHIC RISING TONE MARK 302C;ZW # IDEOGRAPHIC DEPARTING TONE MARK 302D;ZW # IDEOGRAPHIC ENTERING TONE MARK 3099;ZW # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK 309A;ZW # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK A66F;Z # COMBINING CYRILLIC VZMET A670;Z # COMBINING CYRILLIC TEN MILLIONS SIGN A671;Z # COMBINING CYRILLIC HUNDRED MILLIONS SIGN A672;Z # COMBINING CYRILLIC THOUSAND MILLIONS SIGN A674;Z # COMBINING CYRILLIC LETTER UKRAINIAN IE A675;Z # COMBINING CYRILLIC LETTER I A676;Z # COMBINING CYRILLIC LETTER YI A677;Z # COMBINING CYRILLIC LETTER U A678;Z # COMBINING CYRILLIC LETTER HARD SIGN A679;Z # COMBINING CYRILLIC LETTER YERU A67A;Z # COMBINING CYRILLIC LETTER SOFT SIGN A67B;Z # COMBINING CYRILLIC LETTER OMEGA A67C;Z # COMBINING CYRILLIC KAVYKA A67D;Z # COMBINING CYRILLIC PAYEROK A69F;Z # COMBINING CYRILLIC LETTER IOTIFIED E A6F0;Z # BAMUM COMBINING MARK KOQNDON A6F1;Z # BAMUM COMBINING MARK TUKWENTIS A802;Z # SYLOTI NAGRI SIGN DVISVARA A806;Z # SYLOTI NAGRI SIGN HASANTA A80B;Z # SYLOTI NAGRI SIGN ANUSVARA A825;Z # SYLOTI NAGRI VOWEL SIGN U A826;Z # SYLOTI NAGRI VOWEL SIGN E A8C4;Z # SAURASHTRA SIGN VIRAMA A8E0;Z # COMBINING DEVANAGARI DIGIT ZERO A8E1;Z # COMBINING DEVANAGARI DIGIT ONE A8E2;Z # COMBINING DEVANAGARI DIGIT TWO A8E3;Z # COMBINING DEVANAGARI DIGIT THREE A8E4;Z # COMBINING DEVANAGARI DIGIT FOUR A8E5;Z # COMBINING DEVANAGARI DIGIT FIVE A8E6;Z # COMBINING DEVANAGARI DIGIT SIX A8E7;Z # COMBINING DEVANAGARI DIGIT SEVEN A8E8;Z # COMBINING DEVANAGARI DIGIT EIGHT A8E9;Z # COMBINING DEVANAGARI DIGIT NINE A8EA;Z # COMBINING DEVANAGARI LETTER A A8EB;Z # COMBINING DEVANAGARI LETTER U A8EC;Z # COMBINING DEVANAGARI LETTER KA A8ED;Z # COMBINING DEVANAGARI LETTER NA A8EE;Z # COMBINING DEVANAGARI LETTER PA A8EF;Z # COMBINING DEVANAGARI LETTER RA A8F0;Z # COMBINING DEVANAGARI LETTER VI A8F1;Z # COMBINING DEVANAGARI SIGN AVAGRAHA A926;Z # KAYAH LI VOWEL UE A927;Z # KAYAH LI VOWEL E A928;Z # KAYAH LI VOWEL U A929;Z # KAYAH LI VOWEL EE A92A;Z # KAYAH LI VOWEL O A92B;Z # KAYAH LI TONE PLOPHU A92C;Z # KAYAH LI TONE CALYA A92D;Z # KAYAH LI TONE CALYA PLOPHU A947;Z # REJANG VOWEL SIGN I A948;Z # REJANG VOWEL SIGN U A949;Z # REJANG VOWEL SIGN E A94A;Z # REJANG VOWEL SIGN AI A94B;Z # REJANG VOWEL SIGN O A94C;Z # REJANG VOWEL SIGN AU A94D;Z # REJANG VOWEL SIGN EU A94E;Z # REJANG VOWEL SIGN EA A94F;Z # REJANG CONSONANT SIGN NG A950;Z # REJANG CONSONANT SIGN N A951;Z # REJANG CONSONANT SIGN R A980;Z # JAVANESE SIGN PANYANGGA A981;Z # JAVANESE SIGN CECAK A982;Z # JAVANESE SIGN LAYAR A9B3;Z # JAVANESE SIGN CECAK TELU A9B6;Z # JAVANESE VOWEL SIGN WULU A9B7;Z # JAVANESE VOWEL SIGN WULU MELIK A9B8;Z # JAVANESE VOWEL SIGN SUKU A9B9;Z # JAVANESE VOWEL SIGN SUKU MENDUT A9BC;Z # JAVANESE VOWEL SIGN PEPET AA29;Z # CHAM VOWEL SIGN AA AA2A;Z # CHAM VOWEL SIGN I AA2B;Z # CHAM VOWEL SIGN II AA2C;Z # CHAM VOWEL SIGN EI AA2D;Z # CHAM VOWEL SIGN U AA2E;Z # CHAM VOWEL SIGN OE AA31;Z # CHAM VOWEL SIGN AU AA32;Z # CHAM VOWEL SIGN UE AA35;Z # CHAM CONSONANT SIGN LA AA36;Z # CHAM CONSONANT SIGN WA AA43;Z # CHAM CONSONANT SIGN FINAL NG AA4C;Z # CHAM CONSONANT SIGN FINAL M AAB0;Z # TAI VIET MAI KANG AAB2;Z # TAI VIET VOWEL I AAB3;Z # TAI VIET VOWEL UE AAB4;Z # TAI VIET VOWEL U AAB7;Z # TAI VIET MAI KHIT AAB8;Z # TAI VIET VOWEL IA AABE;Z # TAI VIET VOWEL AM AABF;Z # TAI VIET TONE MAI EK AAC1;Z # TAI VIET TONE MAI THO AAEC;Z # MEETEI MAYEK VOWEL SIGN UU AAED;Z # MEETEI MAYEK VOWEL SIGN AAI AAF6;Z # MEETEI MAYEK VIRAMA ABE5;Z # MEETEI MAYEK VOWEL SIGN ANAP ABE8;Z # MEETEI MAYEK VOWEL SIGN UNAP ABED;Z # MEETEI MAYEK APUN IYEK FB1E;Z # HEBREW POINT JUDEO-SPANISH VARIKA FE00;ZA # VARIATION SELECTOR-1 FE01;ZA # VARIATION SELECTOR-2 FE02;ZA # VARIATION SELECTOR-3 FE03;ZA # VARIATION SELECTOR-4 FE04;ZA # VARIATION SELECTOR-5 FE05;ZA # VARIATION SELECTOR-6 FE06;ZA # VARIATION SELECTOR-7 FE07;ZA # VARIATION SELECTOR-8 FE08;ZA # VARIATION SELECTOR-9 FE09;ZA # VARIATION SELECTOR-10 FE0A;ZA # VARIATION SELECTOR-11 FE0B;ZA # VARIATION SELECTOR-12 FE0C;ZA # VARIATION SELECTOR-13 FE0D;ZA # VARIATION SELECTOR-14 FE0E;ZA # VARIATION SELECTOR-15 FE0F;ZA # VARIATION SELECTOR-16 FE20;Z # COMBINING LIGATURE LEFT HALF FE21;Z # COMBINING LIGATURE RIGHT HALF FE22;Z # COMBINING DOUBLE TILDE LEFT HALF FE23;Z # COMBINING DOUBLE TILDE RIGHT HALF FE24;Z # COMBINING MACRON LEFT HALF FE25;Z # COMBINING MACRON RIGHT HALF FE26;Z # COMBINING CONJOINING MACRON FEFF;Z # ZERO WIDTH NO-BREAK SPACE FFF9;Z # INTERLINEAR ANNOTATION ANCHOR FFFA;Z # INTERLINEAR ANNOTATION SEPARATOR FFFB;Z # INTERLINEAR ANNOTATION TERMINATOR 101FD;Z # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE 10A01;Z # KHAROSHTHI VOWEL SIGN I 10A02;Z # KHAROSHTHI VOWEL SIGN U 10A03;Z # KHAROSHTHI VOWEL SIGN VOCALIC R 10A05;Z # KHAROSHTHI VOWEL SIGN E 10A06;Z # KHAROSHTHI VOWEL SIGN O 10A0C;Z # KHAROSHTHI VOWEL LENGTH MARK 10A0D;Z # KHAROSHTHI SIGN DOUBLE RING BELOW 10A0E;Z # KHAROSHTHI SIGN ANUSVARA 10A0F;Z # KHAROSHTHI SIGN VISARGA 10A38;Z # KHAROSHTHI SIGN BAR ABOVE 10A39;Z # KHAROSHTHI SIGN CAUDA 10A3A;Z # KHAROSHTHI SIGN DOT BELOW 10A3F;Z # KHAROSHTHI VIRAMA 11001;Z # BRAHMI SIGN ANUSVARA 11038;Z # BRAHMI VOWEL SIGN AA 11039;Z # BRAHMI VOWEL SIGN BHATTIPROLU AA 1103A;Z # BRAHMI VOWEL SIGN I 1103B;Z # BRAHMI VOWEL SIGN II 1103C;Z # BRAHMI VOWEL SIGN U 1103D;Z # BRAHMI VOWEL SIGN UU 1103E;Z # BRAHMI VOWEL SIGN VOCALIC R 1103F;Z # BRAHMI VOWEL SIGN VOCALIC RR 11040;Z # BRAHMI VOWEL SIGN VOCALIC L 11041;Z # BRAHMI VOWEL SIGN VOCALIC LL 11042;Z # BRAHMI VOWEL SIGN E 11043;Z # BRAHMI VOWEL SIGN AI 11044;Z # BRAHMI VOWEL SIGN O 11045;Z # BRAHMI VOWEL SIGN AU 11046;Z # BRAHMI VIRAMA 11080;Z # KAITHI SIGN CANDRABINDU 11081;Z # KAITHI SIGN ANUSVARA 110B3;Z # KAITHI VOWEL SIGN U 110B4;Z # KAITHI VOWEL SIGN UU 110B5;Z # KAITHI VOWEL SIGN E 110B6;Z # KAITHI VOWEL SIGN AI 110B9;Z # KAITHI SIGN VIRAMA 110BA;Z # KAITHI SIGN NUKTA 110BD;Z # KAITHI NUMBER SIGN 11100;Z # CHAKMA SIGN CANDRABINDU 11101;Z # CHAKMA SIGN ANUSVARA 11102;Z # CHAKMA SIGN VISARGA 11127;Z # CHAKMA VOWEL SIGN A 11128;Z # CHAKMA VOWEL SIGN I 11129;Z # CHAKMA VOWEL SIGN II 1112A;Z # CHAKMA VOWEL SIGN U 1112B;Z # CHAKMA VOWEL SIGN UU 1112D;Z # CHAKMA VOWEL SIGN AI 1112E;Z # CHAKMA VOWEL SIGN O 1112F;Z # CHAKMA VOWEL SIGN AU 11130;Z # CHAKMA VOWEL SIGN OI 11131;Z # CHAKMA O MARK 11132;Z # CHAKMA AU MARK 11133;Z # CHAKMA VIRAMA 11134;Z # CHAKMA MAAYYAA 11180;Z # SHARADA SIGN CANDRABINDU 11181;Z # SHARADA SIGN ANUSVARA 111B6;Z # SHARADA VOWEL SIGN U 111B7;Z # SHARADA VOWEL SIGN UU 111B8;Z # SHARADA VOWEL SIGN VOCALIC R 111B9;Z # SHARADA VOWEL SIGN VOCALIC RR 111BA;Z # SHARADA VOWEL SIGN VOCALIC L 111BB;Z # SHARADA VOWEL SIGN VOCALIC LL 111BC;Z # SHARADA VOWEL SIGN E 111BD;Z # SHARADA VOWEL SIGN AI 111BE;Z # SHARADA VOWEL SIGN O 116AB;Z # TAKRI SIGN ANUSVARA 116AD;Z # TAKRI VOWEL SIGN AA 116B0;Z # TAKRI VOWEL SIGN U 116B1;Z # TAKRI VOWEL SIGN UU 116B2;Z # TAKRI VOWEL SIGN E 116B3;Z # TAKRI VOWEL SIGN AI 116B4;Z # TAKRI VOWEL SIGN O 116B5;Z # TAKRI VOWEL SIGN AU 116B7;Z # TAKRI SIGN NUKTA 16F8F;Z # MIAO TONE RIGHT 16F90;Z # MIAO TONE TOP RIGHT 16F91;Z # MIAO TONE ABOVE 16F92;Z # MIAO TONE BELOW 1D167;Z # MUSICAL SYMBOL COMBINING TREMOLO-1 1D168;Z # MUSICAL SYMBOL COMBINING TREMOLO-2 1D169;Z # MUSICAL SYMBOL COMBINING TREMOLO-3 1D173;Z # MUSICAL SYMBOL BEGIN BEAM 1D174;Z # MUSICAL SYMBOL END BEAM 1D175;Z # MUSICAL SYMBOL BEGIN TIE 1D176;Z # MUSICAL SYMBOL END TIE 1D177;Z # MUSICAL SYMBOL BEGIN SLUR 1D178;Z # MUSICAL SYMBOL END SLUR 1D179;Z # MUSICAL SYMBOL BEGIN PHRASE 1D17A;Z # MUSICAL SYMBOL END PHRASE 1D17B;Z # MUSICAL SYMBOL COMBINING ACCENT 1D17C;Z # MUSICAL SYMBOL COMBINING STACCATO 1D17D;Z # MUSICAL SYMBOL COMBINING TENUTO 1D17E;Z # MUSICAL SYMBOL COMBINING STACCATISSIMO 1D17F;Z # MUSICAL SYMBOL COMBINING MARCATO 1D180;Z # MUSICAL SYMBOL COMBINING MARCATO-STACCATO 1D181;Z # MUSICAL SYMBOL COMBINING ACCENT-STACCATO 1D182;Z # MUSICAL SYMBOL COMBINING LOURE 1D185;Z # MUSICAL SYMBOL COMBINING DOIT 1D186;Z # MUSICAL SYMBOL COMBINING RIP 1D187;Z # MUSICAL SYMBOL COMBINING FLIP 1D188;Z # MUSICAL SYMBOL COMBINING SMEAR 1D189;Z # MUSICAL SYMBOL COMBINING BEND 1D18A;Z # MUSICAL SYMBOL COMBINING DOUBLE TONGUE 1D18B;Z # MUSICAL SYMBOL COMBINING TRIPLE TONGUE 1D1AA;Z # MUSICAL SYMBOL COMBINING DOWN BOW 1D1AB;Z # MUSICAL SYMBOL COMBINING UP BOW 1D1AC;Z # MUSICAL SYMBOL COMBINING HARMONIC 1D1AD;Z # MUSICAL SYMBOL COMBINING SNAP PIZZICATO 1D242;Z # COMBINING GREEK MUSICAL TRISEME 1D243;Z # COMBINING GREEK MUSICAL TETRASEME 1D244;Z # COMBINING GREEK MUSICAL PENTASEME E0001;Z # LANGUAGE TAG E0020;Z # TAG SPACE E0021;Z # TAG EXCLAMATION MARK E0022;Z # TAG QUOTATION MARK E0023;Z # TAG NUMBER SIGN E0024;Z # TAG DOLLAR SIGN E0025;Z # TAG PERCENT SIGN E0026;Z # TAG AMPERSAND E0027;Z # TAG APOSTROPHE E0028;Z # TAG LEFT PARENTHESIS E0029;Z # TAG RIGHT PARENTHESIS E002A;Z # TAG ASTERISK E002B;Z # TAG PLUS SIGN E002C;Z # TAG COMMA E002D;Z # TAG HYPHEN-MINUS E002E;Z # TAG FULL STOP E002F;Z # TAG SOLIDUS E0030;Z # TAG DIGIT ZERO E0031;Z # TAG DIGIT ONE E0032;Z # TAG DIGIT TWO E0033;Z # TAG DIGIT THREE E0034;Z # TAG DIGIT FOUR E0035;Z # TAG DIGIT FIVE E0036;Z # TAG DIGIT SIX E0037;Z # TAG DIGIT SEVEN E0038;Z # TAG DIGIT EIGHT E0039;Z # TAG DIGIT NINE E003A;Z # TAG COLON E003B;Z # TAG SEMICOLON E003C;Z # TAG LESS-THAN SIGN E003D;Z # TAG EQUALS SIGN E003E;Z # TAG GREATER-THAN SIGN E003F;Z # TAG QUESTION MARK E0040;Z # TAG COMMERCIAL AT E0041;Z # TAG LATIN CAPITAL LETTER A E0042;Z # TAG LATIN CAPITAL LETTER B E0043;Z # TAG LATIN CAPITAL LETTER C E0044;Z # TAG LATIN CAPITAL LETTER D E0045;Z # TAG LATIN CAPITAL LETTER E E0046;Z # TAG LATIN CAPITAL LETTER F E0047;Z # TAG LATIN CAPITAL LETTER G E0048;Z # TAG LATIN CAPITAL LETTER H E0049;Z # TAG LATIN CAPITAL LETTER I E004A;Z # TAG LATIN CAPITAL LETTER J E004B;Z # TAG LATIN CAPITAL LETTER K E004C;Z # TAG LATIN CAPITAL LETTER L E004D;Z # TAG LATIN CAPITAL LETTER M E004E;Z # TAG LATIN CAPITAL LETTER N E004F;Z # TAG LATIN CAPITAL LETTER O E0050;Z # TAG LATIN CAPITAL LETTER P E0051;Z # TAG LATIN CAPITAL LETTER Q E0052;Z # TAG LATIN CAPITAL LETTER R E0053;Z # TAG LATIN CAPITAL LETTER S E0054;Z # TAG LATIN CAPITAL LETTER T E0055;Z # TAG LATIN CAPITAL LETTER U E0056;Z # TAG LATIN CAPITAL LETTER V E0057;Z # TAG LATIN CAPITAL LETTER W E0058;Z # TAG LATIN CAPITAL LETTER X E0059;Z # TAG LATIN CAPITAL LETTER Y E005A;Z # TAG LATIN CAPITAL LETTER Z E005B;Z # TAG LEFT SQUARE BRACKET E005C;Z # TAG REVERSE SOLIDUS E005D;Z # TAG RIGHT SQUARE BRACKET E005E;Z # TAG CIRCUMFLEX ACCENT E005F;Z # TAG LOW LINE E0060;Z # TAG GRAVE ACCENT E0061;Z # TAG LATIN SMALL LETTER A E0062;Z # TAG LATIN SMALL LETTER B E0063;Z # TAG LATIN SMALL LETTER C E0064;Z # TAG LATIN SMALL LETTER D E0065;Z # TAG LATIN SMALL LETTER E E0066;Z # TAG LATIN SMALL LETTER F E0067;Z # TAG LATIN SMALL LETTER G E0068;Z # TAG LATIN SMALL LETTER H E0069;Z # TAG LATIN SMALL LETTER I E006A;Z # TAG LATIN SMALL LETTER J E006B;Z # TAG LATIN SMALL LETTER K E006C;Z # TAG LATIN SMALL LETTER L E006D;Z # TAG LATIN SMALL LETTER M E006E;Z # TAG LATIN SMALL LETTER N E006F;Z # TAG LATIN SMALL LETTER O E0070;Z # TAG LATIN SMALL LETTER P E0071;Z # TAG LATIN SMALL LETTER Q E0072;Z # TAG LATIN SMALL LETTER R E0073;Z # TAG LATIN SMALL LETTER S E0074;Z # TAG LATIN SMALL LETTER T E0075;Z # TAG LATIN SMALL LETTER U E0076;Z # TAG LATIN SMALL LETTER V E0077;Z # TAG LATIN SMALL LETTER W E0078;Z # TAG LATIN SMALL LETTER X E0079;Z # TAG LATIN SMALL LETTER Y E007A;Z # TAG LATIN SMALL LETTER Z E007B;Z # TAG LEFT CURLY BRACKET E007C;Z # TAG VERTICAL LINE E007D;Z # TAG RIGHT CURLY BRACKET E007E;Z # TAG TILDE E007F;Z # CANCEL TAG E0100;ZA # VARIATION SELECTOR-17 E0101;ZA # VARIATION SELECTOR-18 E0102;ZA # VARIATION SELECTOR-19 E0103;ZA # VARIATION SELECTOR-20 E0104;ZA # VARIATION SELECTOR-21 E0105;ZA # VARIATION SELECTOR-22 E0106;ZA # VARIATION SELECTOR-23 E0107;ZA # VARIATION SELECTOR-24 E0108;ZA # VARIATION SELECTOR-25 E0109;ZA # VARIATION SELECTOR-26 E010A;ZA # VARIATION SELECTOR-27 E010B;ZA # VARIATION SELECTOR-28 E010C;ZA # VARIATION SELECTOR-29 E010D;ZA # VARIATION SELECTOR-30 E010E;ZA # VARIATION SELECTOR-31 E010F;ZA # VARIATION SELECTOR-32 E0110;ZA # VARIATION SELECTOR-33 E0111;ZA # VARIATION SELECTOR-34 E0112;ZA # VARIATION SELECTOR-35 E0113;ZA # VARIATION SELECTOR-36 E0114;ZA # VARIATION SELECTOR-37 E0115;ZA # VARIATION SELECTOR-38 E0116;ZA # VARIATION SELECTOR-39 E0117;ZA # VARIATION SELECTOR-40 E0118;ZA # VARIATION SELECTOR-41 E0119;ZA # VARIATION SELECTOR-42 E011A;ZA # VARIATION SELECTOR-43 E011B;ZA # VARIATION SELECTOR-44 E011C;ZA # VARIATION SELECTOR-45 E011D;ZA # VARIATION SELECTOR-46 E011E;ZA # VARIATION SELECTOR-47 E011F;ZA # VARIATION SELECTOR-48 E0120;ZA # VARIATION SELECTOR-49 E0121;ZA # VARIATION SELECTOR-50 E0122;ZA # VARIATION SELECTOR-51 E0123;ZA # VARIATION SELECTOR-52 E0124;ZA # VARIATION SELECTOR-53 E0125;ZA # VARIATION SELECTOR-54 E0126;ZA # VARIATION SELECTOR-55 E0127;ZA # VARIATION SELECTOR-56 E0128;ZA # VARIATION SELECTOR-57 E0129;ZA # VARIATION SELECTOR-58 E012A;ZA # VARIATION SELECTOR-59 E012B;ZA # VARIATION SELECTOR-60 E012C;ZA # VARIATION SELECTOR-61 E012D;ZA # VARIATION SELECTOR-62 E012E;ZA # VARIATION SELECTOR-63 E012F;ZA # VARIATION SELECTOR-64 E0130;ZA # VARIATION SELECTOR-65 E0131;ZA # VARIATION SELECTOR-66 E0132;ZA # VARIATION SELECTOR-67 E0133;ZA # VARIATION SELECTOR-68 E0134;ZA # VARIATION SELECTOR-69 E0135;ZA # VARIATION SELECTOR-70 E0136;ZA # VARIATION SELECTOR-71 E0137;ZA # VARIATION SELECTOR-72 E0138;ZA # VARIATION SELECTOR-73 E0139;ZA # VARIATION SELECTOR-74 E013A;ZA # VARIATION SELECTOR-75 E013B;ZA # VARIATION SELECTOR-76 E013C;ZA # VARIATION SELECTOR-77 E013D;ZA # VARIATION SELECTOR-78 E013E;ZA # VARIATION SELECTOR-79 E013F;ZA # VARIATION SELECTOR-80 E0140;ZA # VARIATION SELECTOR-81 E0141;ZA # VARIATION SELECTOR-82 E0142;ZA # VARIATION SELECTOR-83 E0143;ZA # VARIATION SELECTOR-84 E0144;ZA # VARIATION SELECTOR-85 E0145;ZA # VARIATION SELECTOR-86 E0146;ZA # VARIATION SELECTOR-87 E0147;ZA # VARIATION SELECTOR-88 E0148;ZA # VARIATION SELECTOR-89 E0149;ZA # VARIATION SELECTOR-90 E014A;ZA # VARIATION SELECTOR-91 E014B;ZA # VARIATION SELECTOR-92 E014C;ZA # VARIATION SELECTOR-93 E014D;ZA # VARIATION SELECTOR-94 E014E;ZA # VARIATION SELECTOR-95 E014F;ZA # VARIATION SELECTOR-96 E0150;ZA # VARIATION SELECTOR-97 E0151;ZA # VARIATION SELECTOR-98 E0152;ZA # VARIATION SELECTOR-99 E0153;ZA # VARIATION SELECTOR-100 E0154;ZA # VARIATION SELECTOR-101 E0155;ZA # VARIATION SELECTOR-102 E0156;ZA # VARIATION SELECTOR-103 E0157;ZA # VARIATION SELECTOR-104 E0158;ZA # VARIATION SELECTOR-105 E0159;ZA # VARIATION SELECTOR-106 E015A;ZA # VARIATION SELECTOR-107 E015B;ZA # VARIATION SELECTOR-108 E015C;ZA # VARIATION SELECTOR-109 E015D;ZA # VARIATION SELECTOR-110 E015E;ZA # VARIATION SELECTOR-111 E015F;ZA # VARIATION SELECTOR-112 E0160;ZA # VARIATION SELECTOR-113 E0161;ZA # VARIATION SELECTOR-114 E0162;ZA # VARIATION SELECTOR-115 E0163;ZA # VARIATION SELECTOR-116 E0164;ZA # VARIATION SELECTOR-117 E0165;ZA # VARIATION SELECTOR-118 E0166;ZA # VARIATION SELECTOR-119 E0167;ZA # VARIATION SELECTOR-120 E0168;ZA # VARIATION SELECTOR-121 E0169;ZA # VARIATION SELECTOR-122 E016A;ZA # VARIATION SELECTOR-123 E016B;ZA # VARIATION SELECTOR-124 E016C;ZA # VARIATION SELECTOR-125 E016D;ZA # VARIATION SELECTOR-126 E016E;ZA # VARIATION SELECTOR-127 E016F;ZA # VARIATION SELECTOR-128 E0170;ZA # VARIATION SELECTOR-129 E0171;ZA # VARIATION SELECTOR-130 E0172;ZA # VARIATION SELECTOR-131 E0173;ZA # VARIATION SELECTOR-132 E0174;ZA # VARIATION SELECTOR-133 E0175;ZA # VARIATION SELECTOR-134 E0176;ZA # VARIATION SELECTOR-135 E0177;ZA # VARIATION SELECTOR-136 E0178;ZA # VARIATION SELECTOR-137 E0179;ZA # VARIATION SELECTOR-138 E017A;ZA # VARIATION SELECTOR-139 E017B;ZA # VARIATION SELECTOR-140 E017C;ZA # VARIATION SELECTOR-141 E017D;ZA # VARIATION SELECTOR-142 E017E;ZA # VARIATION SELECTOR-143 E017F;ZA # VARIATION SELECTOR-144 E0180;ZA # VARIATION SELECTOR-145 E0181;ZA # VARIATION SELECTOR-146 E0182;ZA # VARIATION SELECTOR-147 E0183;ZA # VARIATION SELECTOR-148 E0184;ZA # VARIATION SELECTOR-149 E0185;ZA # VARIATION SELECTOR-150 E0186;ZA # VARIATION SELECTOR-151 E0187;ZA # VARIATION SELECTOR-152 E0188;ZA # VARIATION SELECTOR-153 E0189;ZA # VARIATION SELECTOR-154 E018A;ZA # VARIATION SELECTOR-155 E018B;ZA # VARIATION SELECTOR-156 E018C;ZA # VARIATION SELECTOR-157 E018D;ZA # VARIATION SELECTOR-158 E018E;ZA # VARIATION SELECTOR-159 E018F;ZA # VARIATION SELECTOR-160 E0190;ZA # VARIATION SELECTOR-161 E0191;ZA # VARIATION SELECTOR-162 E0192;ZA # VARIATION SELECTOR-163 E0193;ZA # VARIATION SELECTOR-164 E0194;ZA # VARIATION SELECTOR-165 E0195;ZA # VARIATION SELECTOR-166 E0196;ZA # VARIATION SELECTOR-167 E0197;ZA # VARIATION SELECTOR-168 E0198;ZA # VARIATION SELECTOR-169 E0199;ZA # VARIATION SELECTOR-170 E019A;ZA # VARIATION SELECTOR-171 E019B;ZA # VARIATION SELECTOR-172 E019C;ZA # VARIATION SELECTOR-173 E019D;ZA # VARIATION SELECTOR-174 E019E;ZA # VARIATION SELECTOR-175 E019F;ZA # VARIATION SELECTOR-176 E01A0;ZA # VARIATION SELECTOR-177 E01A1;ZA # VARIATION SELECTOR-178 E01A2;ZA # VARIATION SELECTOR-179 E01A3;ZA # VARIATION SELECTOR-180 E01A4;ZA # VARIATION SELECTOR-181 E01A5;ZA # VARIATION SELECTOR-182 E01A6;ZA # VARIATION SELECTOR-183 E01A7;ZA # VARIATION SELECTOR-184 E01A8;ZA # VARIATION SELECTOR-185 E01A9;ZA # VARIATION SELECTOR-186 E01AA;ZA # VARIATION SELECTOR-187 E01AB;ZA # VARIATION SELECTOR-188 E01AC;ZA # VARIATION SELECTOR-189 E01AD;ZA # VARIATION SELECTOR-190 E01AE;ZA # VARIATION SELECTOR-191 E01AF;ZA # VARIATION SELECTOR-192 E01B0;ZA # VARIATION SELECTOR-193 E01B1;ZA # VARIATION SELECTOR-194 E01B2;ZA # VARIATION SELECTOR-195 E01B3;ZA # VARIATION SELECTOR-196 E01B4;ZA # VARIATION SELECTOR-197 E01B5;ZA # VARIATION SELECTOR-198 E01B6;ZA # VARIATION SELECTOR-199 E01B7;ZA # VARIATION SELECTOR-200 E01B8;ZA # VARIATION SELECTOR-201 E01B9;ZA # VARIATION SELECTOR-202 E01BA;ZA # VARIATION SELECTOR-203 E01BB;ZA # VARIATION SELECTOR-204 E01BC;ZA # VARIATION SELECTOR-205 E01BD;ZA # VARIATION SELECTOR-206 E01BE;ZA # VARIATION SELECTOR-207 E01BF;ZA # VARIATION SELECTOR-208 E01C0;ZA # VARIATION SELECTOR-209 E01C1;ZA # VARIATION SELECTOR-210 E01C2;ZA # VARIATION SELECTOR-211 E01C3;ZA # VARIATION SELECTOR-212 E01C4;ZA # VARIATION SELECTOR-213 E01C5;ZA # VARIATION SELECTOR-214 E01C6;ZA # VARIATION SELECTOR-215 E01C7;ZA # VARIATION SELECTOR-216 E01C8;ZA # VARIATION SELECTOR-217 E01C9;ZA # VARIATION SELECTOR-218 E01CA;ZA # VARIATION SELECTOR-219 E01CB;ZA # VARIATION SELECTOR-220 E01CC;ZA # VARIATION SELECTOR-221 E01CD;ZA # VARIATION SELECTOR-222 E01CE;ZA # VARIATION SELECTOR-223 E01CF;ZA # VARIATION SELECTOR-224 E01D0;ZA # VARIATION SELECTOR-225 E01D1;ZA # VARIATION SELECTOR-226 E01D2;ZA # VARIATION SELECTOR-227 E01D3;ZA # VARIATION SELECTOR-228 E01D4;ZA # VARIATION SELECTOR-229 E01D5;ZA # VARIATION SELECTOR-230 E01D6;ZA # VARIATION SELECTOR-231 E01D7;ZA # VARIATION SELECTOR-232 E01D8;ZA # VARIATION SELECTOR-233 E01D9;ZA # VARIATION SELECTOR-234 E01DA;ZA # VARIATION SELECTOR-235 E01DB;ZA # VARIATION SELECTOR-236 E01DC;ZA # VARIATION SELECTOR-237 E01DD;ZA # VARIATION SELECTOR-238 E01DE;ZA # VARIATION SELECTOR-239 E01DF;ZA # VARIATION SELECTOR-240 E01E0;ZA # VARIATION SELECTOR-241 E01E1;ZA # VARIATION SELECTOR-242 E01E2;ZA # VARIATION SELECTOR-243 E01E3;ZA # VARIATION SELECTOR-244 E01E4;ZA # VARIATION SELECTOR-245 E01E5;ZA # VARIATION SELECTOR-246 E01E6;ZA # VARIATION SELECTOR-247 E01E7;ZA # VARIATION SELECTOR-248 E01E8;ZA # VARIATION SELECTOR-249 E01E9;ZA # VARIATION SELECTOR-250 E01EA;ZA # VARIATION SELECTOR-251 E01EB;ZA # VARIATION SELECTOR-252 E01EC;ZA # VARIATION SELECTOR-253 E01ED;ZA # VARIATION SELECTOR-254 E01EE;ZA # VARIATION SELECTOR-255 E01EF;ZA # VARIATION SELECTOR-256 sombok-2.3.1/data/Rules-7.0.0d11.txt0000664000076400007640000000363512124033516013460 00000000000000#### Rules for Unicode Line Breaking Algorithm. #### Based on Unicode Standard Annex #14 (UAX#14), Revision 30 (2012-09-14) #### by Asmus Freytag. http://www.unicode.org/reports/tr14/tr14-30.html ### 1 Non-tailorable Line Breaking Rules ## Resolve line breaking classes: # LB1 Assign a line breaking class to each code point of the input. ## Start and end of text: # LB2 sot × # LB3 ! eot ## Mandatory breaks: # LB4 BK ! # LB5 CR × LF CR ! LF ! NL ! # LB6 × ( BK | CR | LF | NL ) ## Explicit breaks and non-breaks: # LB7 × SP × ZW # LB8 ZW SP* ÷ ## Combining marks: # LB9 Treat X CM* as if it were X. where X is any line break class except BK, CR, LF, NL, SP, or ZW. # LB10 Treat any remaining CM as it if were AL. ## Word joiner: # LB11 × WJ WJ × ## Non-breaking characters: # LB12 GL × ### 2 Tailorable Line Breaking Rules ## Non-breaking characters: # LB12a [^SP BA HY] × GL ## Opening and closing: # LB13 × CL × CP × EX × IS × SY # LB14 OP SP* × # LB15 QU SP* × OP # LB16 CL SP* × NS CP SP* × NS # LB17 B2 SP* × B2 ## Spaces: # LB18 SP ÷ ## Special case rules: # LB19 × QU QU × # LB20 ÷ CB CB ÷ # LB21 × BA × HY × NS BB × # LB21a HL (HY | BA) × # LB22 (AL | HL) × IN ID × IN IN × IN NU × IN ## Numbers: # LB23 ID × PO (AL | HL) × NU NU × (AL | HL) # LB24 PR × ID PR × (AL | HL) PO × (AL | HL) # LB25 #CL × PO #CP × PO #CL × PR #CP × PR #NU × PO #NU × PR #PO × OP #PO × NU #PR × OP #PR × NU #HY × NU #IS × NU #NU × NU #SY × NU ## Korean syllable blocks # LB26 JL × (JL | JV | H2 | H3) (JV | H2) × (JV | JT) (JT | H3) × JT # LB27 (JL | JV | JT | H2 | H3) × IN (JL | JV | JT | H2 | H3) × PO PR × (JL | JV | JT | H2 | H3) ## Finally, join alphabetic letters into words and break everything else. # LB28 (AL | HL) × (AL | HL) # LB29 IS × (AL | HL) # LB30 (AL | HL | NU) × OP CP × (AL | HL | NU) # LB30a RI × RI # LB31 ALL ÷ ÷ ALL sombok-2.3.1/data/makefile0000664000076400007640000000505012213270026012346 00000000000000#-*- Makefile -*- UNICODE_VERSIONS = 5.1.0 5.2.0 6.0.0 6.1.0 6.2.0 6.3.0 CURRENT_UNICODE_VERSION = 6.3.0 UNICODE_VERSION ?= $(CURRENT_UNICODE_VERSION) WGET = wget UCD_BASE = ftp://www.unicode.org/Public/`echo $(UNICODE_VERSION)|sed -e 's/[^.0-9].*//g'`/ucd/ UNICODEDATA = UnicodeData-$(UNICODE_VERSION).txt LINEBREAK = LineBreak-$(UNICODE_VERSION).txt EASTASIANWIDTH = EastAsianWidth-$(UNICODE_VERSION).txt GRAPHEMEBREAK = GraphemeBreakProperty-$(UNICODE_VERSION).txt GRAPHEMEBREAK_CUSTOM = GraphemeBreakProperty-$(UNICODE_VERSION).custom RULES = Rules-$(UNICODE_VERSION).txt EASTASIANWIDTH_CUSTOM = EastAsianWidth-$(UNICODE_VERSION).custom LINEBREAK_CUSTOM = LineBreak-$(UNICODE_VERSION).custom SCRIPTS = Scripts-$(UNICODE_VERSION).txt #SCRIPTS_CUSTOM = Scripts-$(UNICODE_VERSION).custom SCRIPTS_CUSTOM = DATA_C = ../lib/$(UNICODE_VERSION).c CONSTANTS_H = ../include/sombok_constants.h CONFIGURE_IN = ../configure.ac CONFIG_UNICODE = ../UNICODE all: $(CONSTANTS_H) $(CONFIG_UNICODE) if [ -e UnicodeData-$(UNICODE_VERSION).txt ]; then \ $(MAKE) data || exit 1; \ fi data: $(DATA_C) $(DATA_C): $(RULES) $(EASTASIANWIDTH) $(LINEBREAK) $(SCRIPTS) $(EASTASIANWIDTH_CUSTOM) $(LINEBREAK_CUSTOM) $(GRAPHEMEBREAK_CUSTOM) data.pl LBCLASSES perl data.pl lb,ea,gb,sc $(UNICODE_VERSION) $(CONSTANTS_H) LBCLASSES: makefile constants.pl perl constants.pl lb,ea,gb,sc $(UNICODE_VERSIONS) $(CONFIG_UNICODE): makefile echo "$(CURRENT_UNICODE_VERSION)" > $(CONFIG_UNICODE) touch $(CONFIGURE_IN) custom-data: $(UNICODEDATA) $(LINEBREAK) $(EASTASIANWIDTH) $(GRAPHEMEBREAK) $(SCRIPTS) custom.pl for f in $(EASTASIANWIDTH_CUSTOM) $(LINEBREAK_CUSTOM) $(GRAPHEMEBREAK_CUSTOM) $(SCRIPTS_CUSTOM); do \ if [ -e $$f ]; then mv $$f $$f.old; fi; done perl custom.pl ea $(UNICODE_VERSION) > $(EASTASIANWIDTH_CUSTOM) perl custom.pl lb $(UNICODE_VERSION) > $(LINEBREAK_CUSTOM) perl custom.pl gb $(UNICODE_VERSION) > $(GRAPHEMEBREAK_CUSTOM) custom: for v in $(UNICODE_VERSIONS); do \ $(MAKE) custom-data UNICODE_VERSION=$$v; \ done unicodedata-data: $(WGET) -O $(UNICODEDATA) $(UCD_BASE)UnicodeData\*.txt $(WGET) -O $(LINEBREAK) $(UCD_BASE)LineBreak\*.txt $(WGET) -O $(EASTASIANWIDTH) $(UCD_BASE)EastAsianWidth\*.txt $(WGET) -O $(GRAPHEMEBREAK) $(UCD_BASE)auxiliary/GraphemeBreakProperty\*.txt $(WGET) -O $(SCRIPTS) $(UCD_BASE)Scripts\*.txt unicodedata: for v in $(UNICODE_VERSIONS); do \ $(MAKE) unicodedata-data UNICODE_VERSION=$$v; \ done clean-data: rm -f $(DATA_C) clean: rm -f $(CONSTANTS_H) for v in $(UNICODE_VERSIONS); do \ $(MAKE) clean-data UNICODE_VERSION=$$v; \ done sombok-2.3.1/data/EastAsianWidth-6.0.0.custom0000664000076400007640000013671012221425415015424 000000000000000000;Z # 0001;Z # 0002;Z # 0003;Z # 0004;Z # 0005;Z # 0006;Z # 0007;Z # 0008;Z # 0009;Z # 000A;Z # 000B;Z # 000C;Z # 000D;Z # 000E;Z # 000F;Z # 0010;Z # 0011;Z # 0012;Z # 0013;Z # 0014;Z # 0015;Z # 0016;Z # 0017;Z # 0018;Z # 0019;Z # 001A;Z # 001B;Z # 001C;Z # 001D;Z # 001E;Z # 001F;Z # 007F;Z # 0080;Z # 0081;Z # 0082;Z # 0083;Z # 0084;Z # 0085;Z # 0086;Z # 0087;Z # 0088;Z # 0089;Z # 008A;Z # 008B;Z # 008C;Z # 008D;Z # 008E;Z # 008F;Z # 0090;Z # 0091;Z # 0092;Z # 0093;Z # 0094;Z # 0095;Z # 0096;Z # 0097;Z # 0098;Z # 0099;Z # 009A;Z # 009B;Z # 009C;Z # 009D;Z # 009E;Z # 009F;Z # 00AD;ZA # SOFT HYPHEN 0300;ZA # COMBINING GRAVE ACCENT 0301;ZA # COMBINING ACUTE ACCENT 0302;ZA # COMBINING CIRCUMFLEX ACCENT 0303;ZA # COMBINING TILDE 0304;ZA # COMBINING MACRON 0305;ZA # COMBINING OVERLINE 0306;ZA # COMBINING BREVE 0307;ZA # COMBINING DOT ABOVE 0308;ZA # COMBINING DIAERESIS 0309;ZA # COMBINING HOOK ABOVE 030A;ZA # COMBINING RING ABOVE 030B;ZA # COMBINING DOUBLE ACUTE ACCENT 030C;ZA # COMBINING CARON 030D;ZA # COMBINING VERTICAL LINE ABOVE 030E;ZA # COMBINING DOUBLE VERTICAL LINE ABOVE 030F;ZA # COMBINING DOUBLE GRAVE ACCENT 0310;ZA # COMBINING CANDRABINDU 0311;ZA # COMBINING INVERTED BREVE 0312;ZA # COMBINING TURNED COMMA ABOVE 0313;ZA # COMBINING COMMA ABOVE 0314;ZA # COMBINING REVERSED COMMA ABOVE 0315;ZA # COMBINING COMMA ABOVE RIGHT 0316;ZA # COMBINING GRAVE ACCENT BELOW 0317;ZA # COMBINING ACUTE ACCENT BELOW 0318;ZA # COMBINING LEFT TACK BELOW 0319;ZA # COMBINING RIGHT TACK BELOW 031A;ZA # COMBINING LEFT ANGLE ABOVE 031B;ZA # COMBINING HORN 031C;ZA # COMBINING LEFT HALF RING BELOW 031D;ZA # COMBINING UP TACK BELOW 031E;ZA # COMBINING DOWN TACK BELOW 031F;ZA # COMBINING PLUS SIGN BELOW 0320;ZA # COMBINING MINUS SIGN BELOW 0321;ZA # COMBINING PALATALIZED HOOK BELOW 0322;ZA # COMBINING RETROFLEX HOOK BELOW 0323;ZA # COMBINING DOT BELOW 0324;ZA # COMBINING DIAERESIS BELOW 0325;ZA # COMBINING RING BELOW 0326;ZA # COMBINING COMMA BELOW 0327;ZA # COMBINING CEDILLA 0328;ZA # COMBINING OGONEK 0329;ZA # COMBINING VERTICAL LINE BELOW 032A;ZA # COMBINING BRIDGE BELOW 032B;ZA # COMBINING INVERTED DOUBLE ARCH BELOW 032C;ZA # COMBINING CARON BELOW 032D;ZA # COMBINING CIRCUMFLEX ACCENT BELOW 032E;ZA # COMBINING BREVE BELOW 032F;ZA # COMBINING INVERTED BREVE BELOW 0330;ZA # COMBINING TILDE BELOW 0331;ZA # COMBINING MACRON BELOW 0332;ZA # COMBINING LOW LINE 0333;ZA # COMBINING DOUBLE LOW LINE 0334;ZA # COMBINING TILDE OVERLAY 0335;ZA # COMBINING SHORT STROKE OVERLAY 0336;ZA # COMBINING LONG STROKE OVERLAY 0337;ZA # COMBINING SHORT SOLIDUS OVERLAY 0338;ZA # COMBINING LONG SOLIDUS OVERLAY 0339;ZA # COMBINING RIGHT HALF RING BELOW 033A;ZA # COMBINING INVERTED BRIDGE BELOW 033B;ZA # COMBINING SQUARE BELOW 033C;ZA # COMBINING SEAGULL BELOW 033D;ZA # COMBINING X ABOVE 033E;ZA # COMBINING VERTICAL TILDE 033F;ZA # COMBINING DOUBLE OVERLINE 0340;ZA # COMBINING GRAVE TONE MARK 0341;ZA # COMBINING ACUTE TONE MARK 0342;ZA # COMBINING GREEK PERISPOMENI 0343;ZA # COMBINING GREEK KORONIS 0344;ZA # COMBINING GREEK DIALYTIKA TONOS 0345;ZA # COMBINING GREEK YPOGEGRAMMENI 0346;ZA # COMBINING BRIDGE ABOVE 0347;ZA # COMBINING EQUALS SIGN BELOW 0348;ZA # COMBINING DOUBLE VERTICAL LINE BELOW 0349;ZA # COMBINING LEFT ANGLE BELOW 034A;ZA # COMBINING NOT TILDE ABOVE 034B;ZA # COMBINING HOMOTHETIC ABOVE 034C;ZA # COMBINING ALMOST EQUAL TO ABOVE 034D;ZA # COMBINING LEFT RIGHT ARROW BELOW 034E;ZA # COMBINING UPWARDS ARROW BELOW 034F;ZA # COMBINING GRAPHEME JOINER 0350;ZA # COMBINING RIGHT ARROWHEAD ABOVE 0351;ZA # COMBINING LEFT HALF RING ABOVE 0352;ZA # COMBINING FERMATA 0353;ZA # COMBINING X BELOW 0354;ZA # COMBINING LEFT ARROWHEAD BELOW 0355;ZA # COMBINING RIGHT ARROWHEAD BELOW 0356;ZA # COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW 0357;ZA # COMBINING RIGHT HALF RING ABOVE 0358;ZA # COMBINING DOT ABOVE RIGHT 0359;ZA # COMBINING ASTERISK BELOW 035A;ZA # COMBINING DOUBLE RING BELOW 035B;ZA # COMBINING ZIGZAG ABOVE 035C;ZA # COMBINING DOUBLE BREVE BELOW 035D;ZA # COMBINING DOUBLE BREVE 035E;ZA # COMBINING DOUBLE MACRON 035F;ZA # COMBINING DOUBLE MACRON BELOW 0360;ZA # COMBINING DOUBLE TILDE 0361;ZA # COMBINING DOUBLE INVERTED BREVE 0362;ZA # COMBINING DOUBLE RIGHTWARDS ARROW BELOW 0363;ZA # COMBINING LATIN SMALL LETTER A 0364;ZA # COMBINING LATIN SMALL LETTER E 0365;ZA # COMBINING LATIN SMALL LETTER I 0366;ZA # COMBINING LATIN SMALL LETTER O 0367;ZA # COMBINING LATIN SMALL LETTER U 0368;ZA # COMBINING LATIN SMALL LETTER C 0369;ZA # COMBINING LATIN SMALL LETTER D 036A;ZA # COMBINING LATIN SMALL LETTER H 036B;ZA # COMBINING LATIN SMALL LETTER M 036C;ZA # COMBINING LATIN SMALL LETTER R 036D;ZA # COMBINING LATIN SMALL LETTER T 036E;ZA # COMBINING LATIN SMALL LETTER V 036F;ZA # COMBINING LATIN SMALL LETTER X 0483;Z # COMBINING CYRILLIC TITLO 0484;Z # COMBINING CYRILLIC PALATALIZATION 0485;Z # COMBINING CYRILLIC DASIA PNEUMATA 0486;Z # COMBINING CYRILLIC PSILI PNEUMATA 0487;Z # COMBINING CYRILLIC POKRYTIE 0488;Z # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN 0489;Z # COMBINING CYRILLIC MILLIONS SIGN 0591;Z # HEBREW ACCENT ETNAHTA 0592;Z # HEBREW ACCENT SEGOL 0593;Z # HEBREW ACCENT SHALSHELET 0594;Z # HEBREW ACCENT ZAQEF QATAN 0595;Z # HEBREW ACCENT ZAQEF GADOL 0596;Z # HEBREW ACCENT TIPEHA 0597;Z # HEBREW ACCENT REVIA 0598;Z # HEBREW ACCENT ZARQA 0599;Z # HEBREW ACCENT PASHTA 059A;Z # HEBREW ACCENT YETIV 059B;Z # HEBREW ACCENT TEVIR 059C;Z # HEBREW ACCENT GERESH 059D;Z # HEBREW ACCENT GERESH MUQDAM 059E;Z # HEBREW ACCENT GERSHAYIM 059F;Z # HEBREW ACCENT QARNEY PARA 05A0;Z # HEBREW ACCENT TELISHA GEDOLA 05A1;Z # HEBREW ACCENT PAZER 05A2;Z # HEBREW ACCENT ATNAH HAFUKH 05A3;Z # HEBREW ACCENT MUNAH 05A4;Z # HEBREW ACCENT MAHAPAKH 05A5;Z # HEBREW ACCENT MERKHA 05A6;Z # HEBREW ACCENT MERKHA KEFULA 05A7;Z # HEBREW ACCENT DARGA 05A8;Z # HEBREW ACCENT QADMA 05A9;Z # HEBREW ACCENT TELISHA QETANA 05AA;Z # HEBREW ACCENT YERAH BEN YOMO 05AB;Z # HEBREW ACCENT OLE 05AC;Z # HEBREW ACCENT ILUY 05AD;Z # HEBREW ACCENT DEHI 05AE;Z # HEBREW ACCENT ZINOR 05AF;Z # HEBREW MARK MASORA CIRCLE 05B0;Z # HEBREW POINT SHEVA 05B1;Z # HEBREW POINT HATAF SEGOL 05B2;Z # HEBREW POINT HATAF PATAH 05B3;Z # HEBREW POINT HATAF QAMATS 05B4;Z # HEBREW POINT HIRIQ 05B5;Z # HEBREW POINT TSERE 05B6;Z # HEBREW POINT SEGOL 05B7;Z # HEBREW POINT PATAH 05B8;Z # HEBREW POINT QAMATS 05B9;Z # HEBREW POINT HOLAM 05BA;Z # HEBREW POINT HOLAM HASER FOR VAV 05BB;Z # HEBREW POINT QUBUTS 05BC;Z # HEBREW POINT DAGESH OR MAPIQ 05BD;Z # HEBREW POINT METEG 05BF;Z # HEBREW POINT RAFE 05C1;Z # HEBREW POINT SHIN DOT 05C2;Z # HEBREW POINT SIN DOT 05C4;Z # HEBREW MARK UPPER DOT 05C5;Z # HEBREW MARK LOWER DOT 05C7;Z # HEBREW POINT QAMATS QATAN 0600;Z # ARABIC NUMBER SIGN 0601;Z # ARABIC SIGN SANAH 0602;Z # ARABIC FOOTNOTE MARKER 0603;Z # ARABIC SIGN SAFHA 0610;Z # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM 0611;Z # ARABIC SIGN ALAYHE ASSALLAM 0612;Z # ARABIC SIGN RAHMATULLAH ALAYHE 0613;Z # ARABIC SIGN RADI ALLAHOU ANHU 0614;Z # ARABIC SIGN TAKHALLUS 0615;Z # ARABIC SMALL HIGH TAH 0616;Z # ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH 0617;Z # ARABIC SMALL HIGH ZAIN 0618;Z # ARABIC SMALL FATHA 0619;Z # ARABIC SMALL DAMMA 061A;Z # ARABIC SMALL KASRA 064B;Z # ARABIC FATHATAN 064C;Z # ARABIC DAMMATAN 064D;Z # ARABIC KASRATAN 064E;Z # ARABIC FATHA 064F;Z # ARABIC DAMMA 0650;Z # ARABIC KASRA 0651;Z # ARABIC SHADDA 0652;Z # ARABIC SUKUN 0653;Z # ARABIC MADDAH ABOVE 0654;Z # ARABIC HAMZA ABOVE 0655;Z # ARABIC HAMZA BELOW 0656;Z # ARABIC SUBSCRIPT ALEF 0657;Z # ARABIC INVERTED DAMMA 0658;Z # ARABIC MARK NOON GHUNNA 0659;Z # ARABIC ZWARAKAY 065A;Z # ARABIC VOWEL SIGN SMALL V ABOVE 065B;Z # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE 065C;Z # ARABIC VOWEL SIGN DOT BELOW 065D;Z # ARABIC REVERSED DAMMA 065E;Z # ARABIC FATHA WITH TWO DOTS 065F;Z # ARABIC WAVY HAMZA BELOW 0670;Z # ARABIC LETTER SUPERSCRIPT ALEF 06D6;Z # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA 06D7;Z # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA 06D8;Z # ARABIC SMALL HIGH MEEM INITIAL FORM 06D9;Z # ARABIC SMALL HIGH LAM ALEF 06DA;Z # ARABIC SMALL HIGH JEEM 06DB;Z # ARABIC SMALL HIGH THREE DOTS 06DC;Z # ARABIC SMALL HIGH SEEN 06DD;Z # ARABIC END OF AYAH 06DF;Z # ARABIC SMALL HIGH ROUNDED ZERO 06E0;Z # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO 06E1;Z # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH 06E2;Z # ARABIC SMALL HIGH MEEM ISOLATED FORM 06E3;Z # ARABIC SMALL LOW SEEN 06E4;Z # ARABIC SMALL HIGH MADDA 06E7;Z # ARABIC SMALL HIGH YEH 06E8;Z # ARABIC SMALL HIGH NOON 06EA;Z # ARABIC EMPTY CENTRE LOW STOP 06EB;Z # ARABIC EMPTY CENTRE HIGH STOP 06EC;Z # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE 06ED;Z # ARABIC SMALL LOW MEEM 070F;Z # SYRIAC ABBREVIATION MARK 0711;Z # SYRIAC LETTER SUPERSCRIPT ALAPH 0730;Z # SYRIAC PTHAHA ABOVE 0731;Z # SYRIAC PTHAHA BELOW 0732;Z # SYRIAC PTHAHA DOTTED 0733;Z # SYRIAC ZQAPHA ABOVE 0734;Z # SYRIAC ZQAPHA BELOW 0735;Z # SYRIAC ZQAPHA DOTTED 0736;Z # SYRIAC RBASA ABOVE 0737;Z # SYRIAC RBASA BELOW 0738;Z # SYRIAC DOTTED ZLAMA HORIZONTAL 0739;Z # SYRIAC DOTTED ZLAMA ANGULAR 073A;Z # SYRIAC HBASA ABOVE 073B;Z # SYRIAC HBASA BELOW 073C;Z # SYRIAC HBASA-ESASA DOTTED 073D;Z # SYRIAC ESASA ABOVE 073E;Z # SYRIAC ESASA BELOW 073F;Z # SYRIAC RWAHA 0740;Z # SYRIAC FEMININE DOT 0741;Z # SYRIAC QUSHSHAYA 0742;Z # SYRIAC RUKKAKHA 0743;Z # SYRIAC TWO VERTICAL DOTS ABOVE 0744;Z # SYRIAC TWO VERTICAL DOTS BELOW 0745;Z # SYRIAC THREE DOTS ABOVE 0746;Z # SYRIAC THREE DOTS BELOW 0747;Z # SYRIAC OBLIQUE LINE ABOVE 0748;Z # SYRIAC OBLIQUE LINE BELOW 0749;Z # SYRIAC MUSIC 074A;Z # SYRIAC BARREKH 07A6;Z # THAANA ABAFILI 07A7;Z # THAANA AABAAFILI 07A8;Z # THAANA IBIFILI 07A9;Z # THAANA EEBEEFILI 07AA;Z # THAANA UBUFILI 07AB;Z # THAANA OOBOOFILI 07AC;Z # THAANA EBEFILI 07AD;Z # THAANA EYBEYFILI 07AE;Z # THAANA OBOFILI 07AF;Z # THAANA OABOAFILI 07B0;Z # THAANA SUKUN 07EB;Z # NKO COMBINING SHORT HIGH TONE 07EC;Z # NKO COMBINING SHORT LOW TONE 07ED;Z # NKO COMBINING SHORT RISING TONE 07EE;Z # NKO COMBINING LONG DESCENDING TONE 07EF;Z # NKO COMBINING LONG HIGH TONE 07F0;Z # NKO COMBINING LONG LOW TONE 07F1;Z # NKO COMBINING LONG RISING TONE 07F2;Z # NKO COMBINING NASALIZATION MARK 07F3;Z # NKO COMBINING DOUBLE DOT ABOVE 0816;Z # SAMARITAN MARK IN 0817;Z # SAMARITAN MARK IN-ALAF 0818;Z # SAMARITAN MARK OCCLUSION 0819;Z # SAMARITAN MARK DAGESH 081B;Z # SAMARITAN MARK EPENTHETIC YUT 081C;Z # SAMARITAN VOWEL SIGN LONG E 081D;Z # SAMARITAN VOWEL SIGN E 081E;Z # SAMARITAN VOWEL SIGN OVERLONG AA 081F;Z # SAMARITAN VOWEL SIGN LONG AA 0820;Z # SAMARITAN VOWEL SIGN AA 0821;Z # SAMARITAN VOWEL SIGN OVERLONG A 0822;Z # SAMARITAN VOWEL SIGN LONG A 0823;Z # SAMARITAN VOWEL SIGN A 0825;Z # SAMARITAN VOWEL SIGN SHORT A 0826;Z # SAMARITAN VOWEL SIGN LONG U 0827;Z # SAMARITAN VOWEL SIGN U 0829;Z # SAMARITAN VOWEL SIGN LONG I 082A;Z # SAMARITAN VOWEL SIGN I 082B;Z # SAMARITAN VOWEL SIGN O 082C;Z # SAMARITAN VOWEL SIGN SUKUN 082D;Z # SAMARITAN MARK NEQUDAA 0859;Z # MANDAIC AFFRICATION MARK 085A;Z # MANDAIC VOCALIZATION MARK 085B;Z # MANDAIC GEMINATION MARK 0900;Z # DEVANAGARI SIGN INVERTED CANDRABINDU 0901;Z # DEVANAGARI SIGN CANDRABINDU 0902;Z # DEVANAGARI SIGN ANUSVARA 093A;Z # DEVANAGARI VOWEL SIGN OE 093C;Z # DEVANAGARI SIGN NUKTA 0941;Z # DEVANAGARI VOWEL SIGN U 0942;Z # DEVANAGARI VOWEL SIGN UU 0943;Z # DEVANAGARI VOWEL SIGN VOCALIC R 0944;Z # DEVANAGARI VOWEL SIGN VOCALIC RR 0945;Z # DEVANAGARI VOWEL SIGN CANDRA E 0946;Z # DEVANAGARI VOWEL SIGN SHORT E 0947;Z # DEVANAGARI VOWEL SIGN E 0948;Z # DEVANAGARI VOWEL SIGN AI 094D;Z # DEVANAGARI SIGN VIRAMA 0951;Z # DEVANAGARI STRESS SIGN UDATTA 0952;Z # DEVANAGARI STRESS SIGN ANUDATTA 0953;Z # DEVANAGARI GRAVE ACCENT 0954;Z # DEVANAGARI ACUTE ACCENT 0955;Z # DEVANAGARI VOWEL SIGN CANDRA LONG E 0956;Z # DEVANAGARI VOWEL SIGN UE 0957;Z # DEVANAGARI VOWEL SIGN UUE 0962;Z # DEVANAGARI VOWEL SIGN VOCALIC L 0963;Z # DEVANAGARI VOWEL SIGN VOCALIC LL 0981;Z # BENGALI SIGN CANDRABINDU 09BC;Z # BENGALI SIGN NUKTA 09C1;Z # BENGALI VOWEL SIGN U 09C2;Z # BENGALI VOWEL SIGN UU 09C3;Z # BENGALI VOWEL SIGN VOCALIC R 09C4;Z # BENGALI VOWEL SIGN VOCALIC RR 09CD;Z # BENGALI SIGN VIRAMA 09E2;Z # BENGALI VOWEL SIGN VOCALIC L 09E3;Z # BENGALI VOWEL SIGN VOCALIC LL 0A01;Z # GURMUKHI SIGN ADAK BINDI 0A02;Z # GURMUKHI SIGN BINDI 0A3C;Z # GURMUKHI SIGN NUKTA 0A41;Z # GURMUKHI VOWEL SIGN U 0A42;Z # GURMUKHI VOWEL SIGN UU 0A47;Z # GURMUKHI VOWEL SIGN EE 0A48;Z # GURMUKHI VOWEL SIGN AI 0A4B;Z # GURMUKHI VOWEL SIGN OO 0A4C;Z # GURMUKHI VOWEL SIGN AU 0A4D;Z # GURMUKHI SIGN VIRAMA 0A51;Z # GURMUKHI SIGN UDAAT 0A70;Z # GURMUKHI TIPPI 0A71;Z # GURMUKHI ADDAK 0A75;Z # GURMUKHI SIGN YAKASH 0A81;Z # GUJARATI SIGN CANDRABINDU 0A82;Z # GUJARATI SIGN ANUSVARA 0ABC;Z # GUJARATI SIGN NUKTA 0AC1;Z # GUJARATI VOWEL SIGN U 0AC2;Z # GUJARATI VOWEL SIGN UU 0AC3;Z # GUJARATI VOWEL SIGN VOCALIC R 0AC4;Z # GUJARATI VOWEL SIGN VOCALIC RR 0AC5;Z # GUJARATI VOWEL SIGN CANDRA E 0AC7;Z # GUJARATI VOWEL SIGN E 0AC8;Z # GUJARATI VOWEL SIGN AI 0ACD;Z # GUJARATI SIGN VIRAMA 0AE2;Z # GUJARATI VOWEL SIGN VOCALIC L 0AE3;Z # GUJARATI VOWEL SIGN VOCALIC LL 0B01;Z # ORIYA SIGN CANDRABINDU 0B3C;Z # ORIYA SIGN NUKTA 0B3F;Z # ORIYA VOWEL SIGN I 0B41;Z # ORIYA VOWEL SIGN U 0B42;Z # ORIYA VOWEL SIGN UU 0B43;Z # ORIYA VOWEL SIGN VOCALIC R 0B44;Z # ORIYA VOWEL SIGN VOCALIC RR 0B4D;Z # ORIYA SIGN VIRAMA 0B56;Z # ORIYA AI LENGTH MARK 0B62;Z # ORIYA VOWEL SIGN VOCALIC L 0B63;Z # ORIYA VOWEL SIGN VOCALIC LL 0B82;Z # TAMIL SIGN ANUSVARA 0BC0;Z # TAMIL VOWEL SIGN II 0BCD;Z # TAMIL SIGN VIRAMA 0C3E;Z # TELUGU VOWEL SIGN AA 0C3F;Z # TELUGU VOWEL SIGN I 0C40;Z # TELUGU VOWEL SIGN II 0C46;Z # TELUGU VOWEL SIGN E 0C47;Z # TELUGU VOWEL SIGN EE 0C48;Z # TELUGU VOWEL SIGN AI 0C4A;Z # TELUGU VOWEL SIGN O 0C4B;Z # TELUGU VOWEL SIGN OO 0C4C;Z # TELUGU VOWEL SIGN AU 0C4D;Z # TELUGU SIGN VIRAMA 0C55;Z # TELUGU LENGTH MARK 0C56;Z # TELUGU AI LENGTH MARK 0C62;Z # TELUGU VOWEL SIGN VOCALIC L 0C63;Z # TELUGU VOWEL SIGN VOCALIC LL 0CBC;Z # KANNADA SIGN NUKTA 0CBF;Z # KANNADA VOWEL SIGN I 0CC6;Z # KANNADA VOWEL SIGN E 0CCC;Z # KANNADA VOWEL SIGN AU 0CCD;Z # KANNADA SIGN VIRAMA 0CE2;Z # KANNADA VOWEL SIGN VOCALIC L 0CE3;Z # KANNADA VOWEL SIGN VOCALIC LL 0D41;Z # MALAYALAM VOWEL SIGN U 0D42;Z # MALAYALAM VOWEL SIGN UU 0D43;Z # MALAYALAM VOWEL SIGN VOCALIC R 0D44;Z # MALAYALAM VOWEL SIGN VOCALIC RR 0D4D;Z # MALAYALAM SIGN VIRAMA 0D62;Z # MALAYALAM VOWEL SIGN VOCALIC L 0D63;Z # MALAYALAM VOWEL SIGN VOCALIC LL 0DCA;Z # SINHALA SIGN AL-LAKUNA 0DD2;Z # SINHALA VOWEL SIGN KETTI IS-PILLA 0DD3;Z # SINHALA VOWEL SIGN DIGA IS-PILLA 0DD4;Z # SINHALA VOWEL SIGN KETTI PAA-PILLA 0DD6;Z # SINHALA VOWEL SIGN DIGA PAA-PILLA 0E31;Z # THAI CHARACTER MAI HAN-AKAT 0E34;Z # THAI CHARACTER SARA I 0E35;Z # THAI CHARACTER SARA II 0E36;Z # THAI CHARACTER SARA UE 0E37;Z # THAI CHARACTER SARA UEE 0E38;Z # THAI CHARACTER SARA U 0E39;Z # THAI CHARACTER SARA UU 0E3A;Z # THAI CHARACTER PHINTHU 0E47;Z # THAI CHARACTER MAITAIKHU 0E48;Z # THAI CHARACTER MAI EK 0E49;Z # THAI CHARACTER MAI THO 0E4A;Z # THAI CHARACTER MAI TRI 0E4B;Z # THAI CHARACTER MAI CHATTAWA 0E4C;Z # THAI CHARACTER THANTHAKHAT 0E4D;Z # THAI CHARACTER NIKHAHIT 0E4E;Z # THAI CHARACTER YAMAKKAN 0EB1;Z # LAO VOWEL SIGN MAI KAN 0EB4;Z # LAO VOWEL SIGN I 0EB5;Z # LAO VOWEL SIGN II 0EB6;Z # LAO VOWEL SIGN Y 0EB7;Z # LAO VOWEL SIGN YY 0EB8;Z # LAO VOWEL SIGN U 0EB9;Z # LAO VOWEL SIGN UU 0EBB;Z # LAO VOWEL SIGN MAI KON 0EBC;Z # LAO SEMIVOWEL SIGN LO 0EC8;Z # LAO TONE MAI EK 0EC9;Z # LAO TONE MAI THO 0ECA;Z # LAO TONE MAI TI 0ECB;Z # LAO TONE MAI CATAWA 0ECC;Z # LAO CANCELLATION MARK 0ECD;Z # LAO NIGGAHITA 0F18;Z # TIBETAN ASTROLOGICAL SIGN -KHYUD PA 0F19;Z # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS 0F35;Z # TIBETAN MARK NGAS BZUNG NYI ZLA 0F37;Z # TIBETAN MARK NGAS BZUNG SGOR RTAGS 0F39;Z # TIBETAN MARK TSA -PHRU 0F71;Z # TIBETAN VOWEL SIGN AA 0F72;Z # TIBETAN VOWEL SIGN I 0F73;Z # TIBETAN VOWEL SIGN II 0F74;Z # TIBETAN VOWEL SIGN U 0F75;Z # TIBETAN VOWEL SIGN UU 0F76;Z # TIBETAN VOWEL SIGN VOCALIC R 0F77;Z # TIBETAN VOWEL SIGN VOCALIC RR 0F78;Z # TIBETAN VOWEL SIGN VOCALIC L 0F79;Z # TIBETAN VOWEL SIGN VOCALIC LL 0F7A;Z # TIBETAN VOWEL SIGN E 0F7B;Z # TIBETAN VOWEL SIGN EE 0F7C;Z # TIBETAN VOWEL SIGN O 0F7D;Z # TIBETAN VOWEL SIGN OO 0F7E;Z # TIBETAN SIGN RJES SU NGA RO 0F80;Z # TIBETAN VOWEL SIGN REVERSED I 0F81;Z # TIBETAN VOWEL SIGN REVERSED II 0F82;Z # TIBETAN SIGN NYI ZLA NAA DA 0F83;Z # TIBETAN SIGN SNA LDAN 0F84;Z # TIBETAN MARK HALANTA 0F86;Z # TIBETAN SIGN LCI RTAGS 0F87;Z # TIBETAN SIGN YANG RTAGS 0F8D;Z # TIBETAN SUBJOINED SIGN LCE TSA CAN 0F8E;Z # TIBETAN SUBJOINED SIGN MCHU CAN 0F8F;Z # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN 0F90;Z # TIBETAN SUBJOINED LETTER KA 0F91;Z # TIBETAN SUBJOINED LETTER KHA 0F92;Z # TIBETAN SUBJOINED LETTER GA 0F93;Z # TIBETAN SUBJOINED LETTER GHA 0F94;Z # TIBETAN SUBJOINED LETTER NGA 0F95;Z # TIBETAN SUBJOINED LETTER CA 0F96;Z # TIBETAN SUBJOINED LETTER CHA 0F97;Z # TIBETAN SUBJOINED LETTER JA 0F99;Z # TIBETAN SUBJOINED LETTER NYA 0F9A;Z # TIBETAN SUBJOINED LETTER TTA 0F9B;Z # TIBETAN SUBJOINED LETTER TTHA 0F9C;Z # TIBETAN SUBJOINED LETTER DDA 0F9D;Z # TIBETAN SUBJOINED LETTER DDHA 0F9E;Z # TIBETAN SUBJOINED LETTER NNA 0F9F;Z # TIBETAN SUBJOINED LETTER TA 0FA0;Z # TIBETAN SUBJOINED LETTER THA 0FA1;Z # TIBETAN SUBJOINED LETTER DA 0FA2;Z # TIBETAN SUBJOINED LETTER DHA 0FA3;Z # TIBETAN SUBJOINED LETTER NA 0FA4;Z # TIBETAN SUBJOINED LETTER PA 0FA5;Z # TIBETAN SUBJOINED LETTER PHA 0FA6;Z # TIBETAN SUBJOINED LETTER BA 0FA7;Z # TIBETAN SUBJOINED LETTER BHA 0FA8;Z # TIBETAN SUBJOINED LETTER MA 0FA9;Z # TIBETAN SUBJOINED LETTER TSA 0FAA;Z # TIBETAN SUBJOINED LETTER TSHA 0FAB;Z # TIBETAN SUBJOINED LETTER DZA 0FAC;Z # TIBETAN SUBJOINED LETTER DZHA 0FAD;Z # TIBETAN SUBJOINED LETTER WA 0FAE;Z # TIBETAN SUBJOINED LETTER ZHA 0FAF;Z # TIBETAN SUBJOINED LETTER ZA 0FB0;Z # TIBETAN SUBJOINED LETTER -A 0FB1;Z # TIBETAN SUBJOINED LETTER YA 0FB2;Z # TIBETAN SUBJOINED LETTER RA 0FB3;Z # TIBETAN SUBJOINED LETTER LA 0FB4;Z # TIBETAN SUBJOINED LETTER SHA 0FB5;Z # TIBETAN SUBJOINED LETTER SSA 0FB6;Z # TIBETAN SUBJOINED LETTER SA 0FB7;Z # TIBETAN SUBJOINED LETTER HA 0FB8;Z # TIBETAN SUBJOINED LETTER A 0FB9;Z # TIBETAN SUBJOINED LETTER KSSA 0FBA;Z # TIBETAN SUBJOINED LETTER FIXED-FORM WA 0FBB;Z # TIBETAN SUBJOINED LETTER FIXED-FORM YA 0FBC;Z # TIBETAN SUBJOINED LETTER FIXED-FORM RA 0FC6;Z # TIBETAN SYMBOL PADMA GDAN 102D;Z # MYANMAR VOWEL SIGN I 102E;Z # MYANMAR VOWEL SIGN II 102F;Z # MYANMAR VOWEL SIGN U 1030;Z # MYANMAR VOWEL SIGN UU 1032;Z # MYANMAR VOWEL SIGN AI 1033;Z # MYANMAR VOWEL SIGN MON II 1034;Z # MYANMAR VOWEL SIGN MON O 1035;Z # MYANMAR VOWEL SIGN E ABOVE 1036;Z # MYANMAR SIGN ANUSVARA 1037;Z # MYANMAR SIGN DOT BELOW 1039;Z # MYANMAR SIGN VIRAMA 103A;Z # MYANMAR SIGN ASAT 103D;Z # MYANMAR CONSONANT SIGN MEDIAL WA 103E;Z # MYANMAR CONSONANT SIGN MEDIAL HA 1058;Z # MYANMAR VOWEL SIGN VOCALIC L 1059;Z # MYANMAR VOWEL SIGN VOCALIC LL 105E;Z # MYANMAR CONSONANT SIGN MON MEDIAL NA 105F;Z # MYANMAR CONSONANT SIGN MON MEDIAL MA 1060;Z # MYANMAR CONSONANT SIGN MON MEDIAL LA 1071;Z # MYANMAR VOWEL SIGN GEBA KAREN I 1072;Z # MYANMAR VOWEL SIGN KAYAH OE 1073;Z # MYANMAR VOWEL SIGN KAYAH U 1074;Z # MYANMAR VOWEL SIGN KAYAH EE 1082;Z # MYANMAR CONSONANT SIGN SHAN MEDIAL WA 1085;Z # MYANMAR VOWEL SIGN SHAN E ABOVE 1086;Z # MYANMAR VOWEL SIGN SHAN FINAL Y 108D;Z # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE 109D;Z # MYANMAR VOWEL SIGN AITON AI 135D;Z # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK 135E;Z # ETHIOPIC COMBINING VOWEL LENGTH MARK 135F;Z # ETHIOPIC COMBINING GEMINATION MARK 1712;Z # TAGALOG VOWEL SIGN I 1713;Z # TAGALOG VOWEL SIGN U 1714;Z # TAGALOG SIGN VIRAMA 1732;Z # HANUNOO VOWEL SIGN I 1733;Z # HANUNOO VOWEL SIGN U 1734;Z # HANUNOO SIGN PAMUDPOD 1752;Z # BUHID VOWEL SIGN I 1753;Z # BUHID VOWEL SIGN U 1772;Z # TAGBANWA VOWEL SIGN I 1773;Z # TAGBANWA VOWEL SIGN U 17B4;Z # KHMER VOWEL INHERENT AQ 17B5;Z # KHMER VOWEL INHERENT AA 17B7;Z # KHMER VOWEL SIGN I 17B8;Z # KHMER VOWEL SIGN II 17B9;Z # KHMER VOWEL SIGN Y 17BA;Z # KHMER VOWEL SIGN YY 17BB;Z # KHMER VOWEL SIGN U 17BC;Z # KHMER VOWEL SIGN UU 17BD;Z # KHMER VOWEL SIGN UA 17C6;Z # KHMER SIGN NIKAHIT 17C9;Z # KHMER SIGN MUUSIKATOAN 17CA;Z # KHMER SIGN TRIISAP 17CB;Z # KHMER SIGN BANTOC 17CC;Z # KHMER SIGN ROBAT 17CD;Z # KHMER SIGN TOANDAKHIAT 17CE;Z # KHMER SIGN KAKABAT 17CF;Z # KHMER SIGN AHSDA 17D0;Z # KHMER SIGN SAMYOK SANNYA 17D1;Z # KHMER SIGN VIRIAM 17D2;Z # KHMER SIGN COENG 17D3;Z # KHMER SIGN BATHAMASAT 17DD;Z # KHMER SIGN ATTHACAN 180B;Z # MONGOLIAN FREE VARIATION SELECTOR ONE 180C;Z # MONGOLIAN FREE VARIATION SELECTOR TWO 180D;Z # MONGOLIAN FREE VARIATION SELECTOR THREE 18A9;Z # MONGOLIAN LETTER ALI GALI DAGALGA 1920;Z # LIMBU VOWEL SIGN A 1921;Z # LIMBU VOWEL SIGN I 1922;Z # LIMBU VOWEL SIGN U 1927;Z # LIMBU VOWEL SIGN E 1928;Z # LIMBU VOWEL SIGN O 1932;Z # LIMBU SMALL LETTER ANUSVARA 1939;Z # LIMBU SIGN MUKPHRENG 193A;Z # LIMBU SIGN KEMPHRENG 193B;Z # LIMBU SIGN SA-I 1A17;Z # BUGINESE VOWEL SIGN I 1A18;Z # BUGINESE VOWEL SIGN U 1A56;Z # TAI THAM CONSONANT SIGN MEDIAL LA 1A58;Z # TAI THAM SIGN MAI KANG LAI 1A59;Z # TAI THAM CONSONANT SIGN FINAL NGA 1A5A;Z # TAI THAM CONSONANT SIGN LOW PA 1A5B;Z # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA 1A5C;Z # TAI THAM CONSONANT SIGN MA 1A5D;Z # TAI THAM CONSONANT SIGN BA 1A5E;Z # TAI THAM CONSONANT SIGN SA 1A60;Z # TAI THAM SIGN SAKOT 1A62;Z # TAI THAM VOWEL SIGN MAI SAT 1A65;Z # TAI THAM VOWEL SIGN I 1A66;Z # TAI THAM VOWEL SIGN II 1A67;Z # TAI THAM VOWEL SIGN UE 1A68;Z # TAI THAM VOWEL SIGN UUE 1A69;Z # TAI THAM VOWEL SIGN U 1A6A;Z # TAI THAM VOWEL SIGN UU 1A6B;Z # TAI THAM VOWEL SIGN O 1A6C;Z # TAI THAM VOWEL SIGN OA BELOW 1A73;Z # TAI THAM VOWEL SIGN OA ABOVE 1A74;Z # TAI THAM SIGN MAI KANG 1A75;Z # TAI THAM SIGN TONE-1 1A76;Z # TAI THAM SIGN TONE-2 1A77;Z # TAI THAM SIGN KHUEN TONE-3 1A78;Z # TAI THAM SIGN KHUEN TONE-4 1A79;Z # TAI THAM SIGN KHUEN TONE-5 1A7A;Z # TAI THAM SIGN RA HAAM 1A7B;Z # TAI THAM SIGN MAI SAM 1A7C;Z # TAI THAM SIGN KHUEN-LUE KARAN 1A7F;Z # TAI THAM COMBINING CRYPTOGRAMMIC DOT 1B00;Z # BALINESE SIGN ULU RICEM 1B01;Z # BALINESE SIGN ULU CANDRA 1B02;Z # BALINESE SIGN CECEK 1B03;Z # BALINESE SIGN SURANG 1B34;Z # BALINESE SIGN REREKAN 1B36;Z # BALINESE VOWEL SIGN ULU 1B37;Z # BALINESE VOWEL SIGN ULU SARI 1B38;Z # BALINESE VOWEL SIGN SUKU 1B39;Z # BALINESE VOWEL SIGN SUKU ILUT 1B3A;Z # BALINESE VOWEL SIGN RA REPA 1B3C;Z # BALINESE VOWEL SIGN LA LENGA 1B42;Z # BALINESE VOWEL SIGN PEPET 1B6B;Z # BALINESE MUSICAL SYMBOL COMBINING TEGEH 1B6C;Z # BALINESE MUSICAL SYMBOL COMBINING ENDEP 1B6D;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL 1B6E;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI 1B6F;Z # BALINESE MUSICAL SYMBOL COMBINING JEGOGAN 1B70;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN 1B71;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN 1B72;Z # BALINESE MUSICAL SYMBOL COMBINING BENDE 1B73;Z # BALINESE MUSICAL SYMBOL COMBINING GONG 1B80;Z # SUNDANESE SIGN PANYECEK 1B81;Z # SUNDANESE SIGN PANGLAYAR 1BA2;Z # SUNDANESE CONSONANT SIGN PANYAKRA 1BA3;Z # SUNDANESE CONSONANT SIGN PANYIKU 1BA4;Z # SUNDANESE VOWEL SIGN PANGHULU 1BA5;Z # SUNDANESE VOWEL SIGN PANYUKU 1BA8;Z # SUNDANESE VOWEL SIGN PAMEPET 1BA9;Z # SUNDANESE VOWEL SIGN PANEULEUNG 1BE6;Z # BATAK SIGN TOMPI 1BE8;Z # BATAK VOWEL SIGN PAKPAK E 1BE9;Z # BATAK VOWEL SIGN EE 1BED;Z # BATAK VOWEL SIGN KARO O 1BEF;Z # BATAK VOWEL SIGN U FOR SIMALUNGUN SA 1BF0;Z # BATAK CONSONANT SIGN NG 1BF1;Z # BATAK CONSONANT SIGN H 1C2C;Z # LEPCHA VOWEL SIGN E 1C2D;Z # LEPCHA CONSONANT SIGN K 1C2E;Z # LEPCHA CONSONANT SIGN M 1C2F;Z # LEPCHA CONSONANT SIGN L 1C30;Z # LEPCHA CONSONANT SIGN N 1C31;Z # LEPCHA CONSONANT SIGN P 1C32;Z # LEPCHA CONSONANT SIGN R 1C33;Z # LEPCHA CONSONANT SIGN T 1C36;Z # LEPCHA SIGN RAN 1C37;Z # LEPCHA SIGN NUKTA 1CD0;Z # VEDIC TONE KARSHANA 1CD1;Z # VEDIC TONE SHARA 1CD2;Z # VEDIC TONE PRENKHA 1CD4;Z # VEDIC SIGN YAJURVEDIC MIDLINE SVARITA 1CD5;Z # VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA 1CD6;Z # VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA 1CD7;Z # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA 1CD8;Z # VEDIC TONE CANDRA BELOW 1CD9;Z # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER 1CDA;Z # VEDIC TONE DOUBLE SVARITA 1CDB;Z # VEDIC TONE TRIPLE SVARITA 1CDC;Z # VEDIC TONE KATHAKA ANUDATTA 1CDD;Z # VEDIC TONE DOT BELOW 1CDE;Z # VEDIC TONE TWO DOTS BELOW 1CDF;Z # VEDIC TONE THREE DOTS BELOW 1CE0;Z # VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA 1CE2;Z # VEDIC SIGN VISARGA SVARITA 1CE3;Z # VEDIC SIGN VISARGA UDATTA 1CE4;Z # VEDIC SIGN REVERSED VISARGA UDATTA 1CE5;Z # VEDIC SIGN VISARGA ANUDATTA 1CE6;Z # VEDIC SIGN REVERSED VISARGA ANUDATTA 1CE7;Z # VEDIC SIGN VISARGA UDATTA WITH TAIL 1CE8;Z # VEDIC SIGN VISARGA ANUDATTA WITH TAIL 1CED;Z # VEDIC SIGN TIRYAK 1DC0;Z # COMBINING DOTTED GRAVE ACCENT 1DC1;Z # COMBINING DOTTED ACUTE ACCENT 1DC2;Z # COMBINING SNAKE BELOW 1DC3;Z # COMBINING SUSPENSION MARK 1DC4;Z # COMBINING MACRON-ACUTE 1DC5;Z # COMBINING GRAVE-MACRON 1DC6;Z # COMBINING MACRON-GRAVE 1DC7;Z # COMBINING ACUTE-MACRON 1DC8;Z # COMBINING GRAVE-ACUTE-GRAVE 1DC9;Z # COMBINING ACUTE-GRAVE-ACUTE 1DCA;Z # COMBINING LATIN SMALL LETTER R BELOW 1DCB;Z # COMBINING BREVE-MACRON 1DCC;Z # COMBINING MACRON-BREVE 1DCD;Z # COMBINING DOUBLE CIRCUMFLEX ABOVE 1DCE;Z # COMBINING OGONEK ABOVE 1DCF;Z # COMBINING ZIGZAG BELOW 1DD0;Z # COMBINING IS BELOW 1DD1;Z # COMBINING UR ABOVE 1DD2;Z # COMBINING US ABOVE 1DD3;Z # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE 1DD4;Z # COMBINING LATIN SMALL LETTER AE 1DD5;Z # COMBINING LATIN SMALL LETTER AO 1DD6;Z # COMBINING LATIN SMALL LETTER AV 1DD7;Z # COMBINING LATIN SMALL LETTER C CEDILLA 1DD8;Z # COMBINING LATIN SMALL LETTER INSULAR D 1DD9;Z # COMBINING LATIN SMALL LETTER ETH 1DDA;Z # COMBINING LATIN SMALL LETTER G 1DDB;Z # COMBINING LATIN LETTER SMALL CAPITAL G 1DDC;Z # COMBINING LATIN SMALL LETTER K 1DDD;Z # COMBINING LATIN SMALL LETTER L 1DDE;Z # COMBINING LATIN LETTER SMALL CAPITAL L 1DDF;Z # COMBINING LATIN LETTER SMALL CAPITAL M 1DE0;Z # COMBINING LATIN SMALL LETTER N 1DE1;Z # COMBINING LATIN LETTER SMALL CAPITAL N 1DE2;Z # COMBINING LATIN LETTER SMALL CAPITAL R 1DE3;Z # COMBINING LATIN SMALL LETTER R ROTUNDA 1DE4;Z # COMBINING LATIN SMALL LETTER S 1DE5;Z # COMBINING LATIN SMALL LETTER LONG S 1DE6;Z # COMBINING LATIN SMALL LETTER Z 1DFC;Z # COMBINING DOUBLE INVERTED BREVE BELOW 1DFD;Z # COMBINING ALMOST EQUAL TO BELOW 1DFE;Z # COMBINING LEFT ARROWHEAD ABOVE 1DFF;Z # COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW 200B;Z # ZERO WIDTH SPACE 200C;Z # ZERO WIDTH NON-JOINER 200D;Z # ZERO WIDTH JOINER 200E;Z # LEFT-TO-RIGHT MARK 200F;Z # RIGHT-TO-LEFT MARK 2028;Z # LINE SEPARATOR 2029;Z # PARAGRAPH SEPARATOR 202A;Z # LEFT-TO-RIGHT EMBEDDING 202B;Z # RIGHT-TO-LEFT EMBEDDING 202C;Z # POP DIRECTIONAL FORMATTING 202D;Z # LEFT-TO-RIGHT OVERRIDE 202E;Z # RIGHT-TO-LEFT OVERRIDE 2060;Z # WORD JOINER 2061;Z # FUNCTION APPLICATION 2062;Z # INVISIBLE TIMES 2063;Z # INVISIBLE SEPARATOR 2064;Z # INVISIBLE PLUS 206A;Z # INHIBIT SYMMETRIC SWAPPING 206B;Z # ACTIVATE SYMMETRIC SWAPPING 206C;Z # INHIBIT ARABIC FORM SHAPING 206D;Z # ACTIVATE ARABIC FORM SHAPING 206E;Z # NATIONAL DIGIT SHAPES 206F;Z # NOMINAL DIGIT SHAPES 20D0;Z # COMBINING LEFT HARPOON ABOVE 20D1;Z # COMBINING RIGHT HARPOON ABOVE 20D2;Z # COMBINING LONG VERTICAL LINE OVERLAY 20D3;Z # COMBINING SHORT VERTICAL LINE OVERLAY 20D4;Z # COMBINING ANTICLOCKWISE ARROW ABOVE 20D5;Z # COMBINING CLOCKWISE ARROW ABOVE 20D6;Z # COMBINING LEFT ARROW ABOVE 20D7;Z # COMBINING RIGHT ARROW ABOVE 20D8;Z # COMBINING RING OVERLAY 20D9;Z # COMBINING CLOCKWISE RING OVERLAY 20DA;Z # COMBINING ANTICLOCKWISE RING OVERLAY 20DB;Z # COMBINING THREE DOTS ABOVE 20DC;Z # COMBINING FOUR DOTS ABOVE 20DD;Z # COMBINING ENCLOSING CIRCLE 20DE;Z # COMBINING ENCLOSING SQUARE 20DF;Z # COMBINING ENCLOSING DIAMOND 20E0;Z # COMBINING ENCLOSING CIRCLE BACKSLASH 20E1;Z # COMBINING LEFT RIGHT ARROW ABOVE 20E2;Z # COMBINING ENCLOSING SCREEN 20E3;Z # COMBINING ENCLOSING KEYCAP 20E4;Z # COMBINING ENCLOSING UPWARD POINTING TRIANGLE 20E5;Z # COMBINING REVERSE SOLIDUS OVERLAY 20E6;Z # COMBINING DOUBLE VERTICAL STROKE OVERLAY 20E7;Z # COMBINING ANNUITY SYMBOL 20E8;Z # COMBINING TRIPLE UNDERDOT 20E9;Z # COMBINING WIDE BRIDGE ABOVE 20EA;Z # COMBINING LEFTWARDS ARROW OVERLAY 20EB;Z # COMBINING LONG DOUBLE SOLIDUS OVERLAY 20EC;Z # COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS 20ED;Z # COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS 20EE;Z # COMBINING LEFT ARROW BELOW 20EF;Z # COMBINING RIGHT ARROW BELOW 20F0;Z # COMBINING ASTERISK ABOVE 2CEF;Z # COPTIC COMBINING NI ABOVE 2CF0;Z # COPTIC COMBINING SPIRITUS ASPER 2CF1;Z # COPTIC COMBINING SPIRITUS LENIS 2D7F;Z # TIFINAGH CONSONANT JOINER 2DE0;Z # COMBINING CYRILLIC LETTER BE 2DE1;Z # COMBINING CYRILLIC LETTER VE 2DE2;Z # COMBINING CYRILLIC LETTER GHE 2DE3;Z # COMBINING CYRILLIC LETTER DE 2DE4;Z # COMBINING CYRILLIC LETTER ZHE 2DE5;Z # COMBINING CYRILLIC LETTER ZE 2DE6;Z # COMBINING CYRILLIC LETTER KA 2DE7;Z # COMBINING CYRILLIC LETTER EL 2DE8;Z # COMBINING CYRILLIC LETTER EM 2DE9;Z # COMBINING CYRILLIC LETTER EN 2DEA;Z # COMBINING CYRILLIC LETTER O 2DEB;Z # COMBINING CYRILLIC LETTER PE 2DEC;Z # COMBINING CYRILLIC LETTER ER 2DED;Z # COMBINING CYRILLIC LETTER ES 2DEE;Z # COMBINING CYRILLIC LETTER TE 2DEF;Z # COMBINING CYRILLIC LETTER HA 2DF0;Z # COMBINING CYRILLIC LETTER TSE 2DF1;Z # COMBINING CYRILLIC LETTER CHE 2DF2;Z # COMBINING CYRILLIC LETTER SHA 2DF3;Z # COMBINING CYRILLIC LETTER SHCHA 2DF4;Z # COMBINING CYRILLIC LETTER FITA 2DF5;Z # COMBINING CYRILLIC LETTER ES-TE 2DF6;Z # COMBINING CYRILLIC LETTER A 2DF7;Z # COMBINING CYRILLIC LETTER IE 2DF8;Z # COMBINING CYRILLIC LETTER DJERV 2DF9;Z # COMBINING CYRILLIC LETTER MONOGRAPH UK 2DFA;Z # COMBINING CYRILLIC LETTER YAT 2DFB;Z # COMBINING CYRILLIC LETTER YU 2DFC;Z # COMBINING CYRILLIC LETTER IOTIFIED A 2DFD;Z # COMBINING CYRILLIC LETTER LITTLE YUS 2DFE;Z # COMBINING CYRILLIC LETTER BIG YUS 2DFF;Z # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS 302A;ZW # IDEOGRAPHIC LEVEL TONE MARK 302B;ZW # IDEOGRAPHIC RISING TONE MARK 302C;ZW # IDEOGRAPHIC DEPARTING TONE MARK 302D;ZW # IDEOGRAPHIC ENTERING TONE MARK 302E;ZW # HANGUL SINGLE DOT TONE MARK 302F;ZW # HANGUL DOUBLE DOT TONE MARK 3099;ZW # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK 309A;ZW # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK A66F;Z # COMBINING CYRILLIC VZMET A670;Z # COMBINING CYRILLIC TEN MILLIONS SIGN A671;Z # COMBINING CYRILLIC HUNDRED MILLIONS SIGN A672;Z # COMBINING CYRILLIC THOUSAND MILLIONS SIGN A67C;Z # COMBINING CYRILLIC KAVYKA A67D;Z # COMBINING CYRILLIC PAYEROK A6F0;Z # BAMUM COMBINING MARK KOQNDON A6F1;Z # BAMUM COMBINING MARK TUKWENTIS A802;Z # SYLOTI NAGRI SIGN DVISVARA A806;Z # SYLOTI NAGRI SIGN HASANTA A80B;Z # SYLOTI NAGRI SIGN ANUSVARA A825;Z # SYLOTI NAGRI VOWEL SIGN U A826;Z # SYLOTI NAGRI VOWEL SIGN E A8C4;Z # SAURASHTRA SIGN VIRAMA A8E0;Z # COMBINING DEVANAGARI DIGIT ZERO A8E1;Z # COMBINING DEVANAGARI DIGIT ONE A8E2;Z # COMBINING DEVANAGARI DIGIT TWO A8E3;Z # COMBINING DEVANAGARI DIGIT THREE A8E4;Z # COMBINING DEVANAGARI DIGIT FOUR A8E5;Z # COMBINING DEVANAGARI DIGIT FIVE A8E6;Z # COMBINING DEVANAGARI DIGIT SIX A8E7;Z # COMBINING DEVANAGARI DIGIT SEVEN A8E8;Z # COMBINING DEVANAGARI DIGIT EIGHT A8E9;Z # COMBINING DEVANAGARI DIGIT NINE A8EA;Z # COMBINING DEVANAGARI LETTER A A8EB;Z # COMBINING DEVANAGARI LETTER U A8EC;Z # COMBINING DEVANAGARI LETTER KA A8ED;Z # COMBINING DEVANAGARI LETTER NA A8EE;Z # COMBINING DEVANAGARI LETTER PA A8EF;Z # COMBINING DEVANAGARI LETTER RA A8F0;Z # COMBINING DEVANAGARI LETTER VI A8F1;Z # COMBINING DEVANAGARI SIGN AVAGRAHA A926;Z # KAYAH LI VOWEL UE A927;Z # KAYAH LI VOWEL E A928;Z # KAYAH LI VOWEL U A929;Z # KAYAH LI VOWEL EE A92A;Z # KAYAH LI VOWEL O A92B;Z # KAYAH LI TONE PLOPHU A92C;Z # KAYAH LI TONE CALYA A92D;Z # KAYAH LI TONE CALYA PLOPHU A947;Z # REJANG VOWEL SIGN I A948;Z # REJANG VOWEL SIGN U A949;Z # REJANG VOWEL SIGN E A94A;Z # REJANG VOWEL SIGN AI A94B;Z # REJANG VOWEL SIGN O A94C;Z # REJANG VOWEL SIGN AU A94D;Z # REJANG VOWEL SIGN EU A94E;Z # REJANG VOWEL SIGN EA A94F;Z # REJANG CONSONANT SIGN NG A950;Z # REJANG CONSONANT SIGN N A951;Z # REJANG CONSONANT SIGN R A980;Z # JAVANESE SIGN PANYANGGA A981;Z # JAVANESE SIGN CECAK A982;Z # JAVANESE SIGN LAYAR A9B3;Z # JAVANESE SIGN CECAK TELU A9B6;Z # JAVANESE VOWEL SIGN WULU A9B7;Z # JAVANESE VOWEL SIGN WULU MELIK A9B8;Z # JAVANESE VOWEL SIGN SUKU A9B9;Z # JAVANESE VOWEL SIGN SUKU MENDUT A9BC;Z # JAVANESE VOWEL SIGN PEPET AA29;Z # CHAM VOWEL SIGN AA AA2A;Z # CHAM VOWEL SIGN I AA2B;Z # CHAM VOWEL SIGN II AA2C;Z # CHAM VOWEL SIGN EI AA2D;Z # CHAM VOWEL SIGN U AA2E;Z # CHAM VOWEL SIGN OE AA31;Z # CHAM VOWEL SIGN AU AA32;Z # CHAM VOWEL SIGN UE AA35;Z # CHAM CONSONANT SIGN LA AA36;Z # CHAM CONSONANT SIGN WA AA43;Z # CHAM CONSONANT SIGN FINAL NG AA4C;Z # CHAM CONSONANT SIGN FINAL M AAB0;Z # TAI VIET MAI KANG AAB2;Z # TAI VIET VOWEL I AAB3;Z # TAI VIET VOWEL UE AAB4;Z # TAI VIET VOWEL U AAB7;Z # TAI VIET MAI KHIT AAB8;Z # TAI VIET VOWEL IA AABE;Z # TAI VIET VOWEL AM AABF;Z # TAI VIET TONE MAI EK AAC1;Z # TAI VIET TONE MAI THO ABE5;Z # MEETEI MAYEK VOWEL SIGN ANAP ABE8;Z # MEETEI MAYEK VOWEL SIGN UNAP ABED;Z # MEETEI MAYEK APUN IYEK FB1E;Z # HEBREW POINT JUDEO-SPANISH VARIKA FE00;ZA # VARIATION SELECTOR-1 FE01;ZA # VARIATION SELECTOR-2 FE02;ZA # VARIATION SELECTOR-3 FE03;ZA # VARIATION SELECTOR-4 FE04;ZA # VARIATION SELECTOR-5 FE05;ZA # VARIATION SELECTOR-6 FE06;ZA # VARIATION SELECTOR-7 FE07;ZA # VARIATION SELECTOR-8 FE08;ZA # VARIATION SELECTOR-9 FE09;ZA # VARIATION SELECTOR-10 FE0A;ZA # VARIATION SELECTOR-11 FE0B;ZA # VARIATION SELECTOR-12 FE0C;ZA # VARIATION SELECTOR-13 FE0D;ZA # VARIATION SELECTOR-14 FE0E;ZA # VARIATION SELECTOR-15 FE0F;ZA # VARIATION SELECTOR-16 FE20;Z # COMBINING LIGATURE LEFT HALF FE21;Z # COMBINING LIGATURE RIGHT HALF FE22;Z # COMBINING DOUBLE TILDE LEFT HALF FE23;Z # COMBINING DOUBLE TILDE RIGHT HALF FE24;Z # COMBINING MACRON LEFT HALF FE25;Z # COMBINING MACRON RIGHT HALF FE26;Z # COMBINING CONJOINING MACRON FEFF;Z # ZERO WIDTH NO-BREAK SPACE FFF9;Z # INTERLINEAR ANNOTATION ANCHOR FFFA;Z # INTERLINEAR ANNOTATION SEPARATOR FFFB;Z # INTERLINEAR ANNOTATION TERMINATOR 101FD;Z # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE 10A01;Z # KHAROSHTHI VOWEL SIGN I 10A02;Z # KHAROSHTHI VOWEL SIGN U 10A03;Z # KHAROSHTHI VOWEL SIGN VOCALIC R 10A05;Z # KHAROSHTHI VOWEL SIGN E 10A06;Z # KHAROSHTHI VOWEL SIGN O 10A0C;Z # KHAROSHTHI VOWEL LENGTH MARK 10A0D;Z # KHAROSHTHI SIGN DOUBLE RING BELOW 10A0E;Z # KHAROSHTHI SIGN ANUSVARA 10A0F;Z # KHAROSHTHI SIGN VISARGA 10A38;Z # KHAROSHTHI SIGN BAR ABOVE 10A39;Z # KHAROSHTHI SIGN CAUDA 10A3A;Z # KHAROSHTHI SIGN DOT BELOW 10A3F;Z # KHAROSHTHI VIRAMA 11001;Z # BRAHMI SIGN ANUSVARA 11038;Z # BRAHMI VOWEL SIGN AA 11039;Z # BRAHMI VOWEL SIGN BHATTIPROLU AA 1103A;Z # BRAHMI VOWEL SIGN I 1103B;Z # BRAHMI VOWEL SIGN II 1103C;Z # BRAHMI VOWEL SIGN U 1103D;Z # BRAHMI VOWEL SIGN UU 1103E;Z # BRAHMI VOWEL SIGN VOCALIC R 1103F;Z # BRAHMI VOWEL SIGN VOCALIC RR 11040;Z # BRAHMI VOWEL SIGN VOCALIC L 11041;Z # BRAHMI VOWEL SIGN VOCALIC LL 11042;Z # BRAHMI VOWEL SIGN E 11043;Z # BRAHMI VOWEL SIGN AI 11044;Z # BRAHMI VOWEL SIGN O 11045;Z # BRAHMI VOWEL SIGN AU 11046;Z # BRAHMI VIRAMA 11080;Z # KAITHI SIGN CANDRABINDU 11081;Z # KAITHI SIGN ANUSVARA 110B3;Z # KAITHI VOWEL SIGN U 110B4;Z # KAITHI VOWEL SIGN UU 110B5;Z # KAITHI VOWEL SIGN E 110B6;Z # KAITHI VOWEL SIGN AI 110B9;Z # KAITHI SIGN VIRAMA 110BA;Z # KAITHI SIGN NUKTA 110BD;Z # KAITHI NUMBER SIGN 1D167;Z # MUSICAL SYMBOL COMBINING TREMOLO-1 1D168;Z # MUSICAL SYMBOL COMBINING TREMOLO-2 1D169;Z # MUSICAL SYMBOL COMBINING TREMOLO-3 1D173;Z # MUSICAL SYMBOL BEGIN BEAM 1D174;Z # MUSICAL SYMBOL END BEAM 1D175;Z # MUSICAL SYMBOL BEGIN TIE 1D176;Z # MUSICAL SYMBOL END TIE 1D177;Z # MUSICAL SYMBOL BEGIN SLUR 1D178;Z # MUSICAL SYMBOL END SLUR 1D179;Z # MUSICAL SYMBOL BEGIN PHRASE 1D17A;Z # MUSICAL SYMBOL END PHRASE 1D17B;Z # MUSICAL SYMBOL COMBINING ACCENT 1D17C;Z # MUSICAL SYMBOL COMBINING STACCATO 1D17D;Z # MUSICAL SYMBOL COMBINING TENUTO 1D17E;Z # MUSICAL SYMBOL COMBINING STACCATISSIMO 1D17F;Z # MUSICAL SYMBOL COMBINING MARCATO 1D180;Z # MUSICAL SYMBOL COMBINING MARCATO-STACCATO 1D181;Z # MUSICAL SYMBOL COMBINING ACCENT-STACCATO 1D182;Z # MUSICAL SYMBOL COMBINING LOURE 1D185;Z # MUSICAL SYMBOL COMBINING DOIT 1D186;Z # MUSICAL SYMBOL COMBINING RIP 1D187;Z # MUSICAL SYMBOL COMBINING FLIP 1D188;Z # MUSICAL SYMBOL COMBINING SMEAR 1D189;Z # MUSICAL SYMBOL COMBINING BEND 1D18A;Z # MUSICAL SYMBOL COMBINING DOUBLE TONGUE 1D18B;Z # MUSICAL SYMBOL COMBINING TRIPLE TONGUE 1D1AA;Z # MUSICAL SYMBOL COMBINING DOWN BOW 1D1AB;Z # MUSICAL SYMBOL COMBINING UP BOW 1D1AC;Z # MUSICAL SYMBOL COMBINING HARMONIC 1D1AD;Z # MUSICAL SYMBOL COMBINING SNAP PIZZICATO 1D242;Z # COMBINING GREEK MUSICAL TRISEME 1D243;Z # COMBINING GREEK MUSICAL TETRASEME 1D244;Z # COMBINING GREEK MUSICAL PENTASEME E0001;Z # LANGUAGE TAG E0020;Z # TAG SPACE E0021;Z # TAG EXCLAMATION MARK E0022;Z # TAG QUOTATION MARK E0023;Z # TAG NUMBER SIGN E0024;Z # TAG DOLLAR SIGN E0025;Z # TAG PERCENT SIGN E0026;Z # TAG AMPERSAND E0027;Z # TAG APOSTROPHE E0028;Z # TAG LEFT PARENTHESIS E0029;Z # TAG RIGHT PARENTHESIS E002A;Z # TAG ASTERISK E002B;Z # TAG PLUS SIGN E002C;Z # TAG COMMA E002D;Z # TAG HYPHEN-MINUS E002E;Z # TAG FULL STOP E002F;Z # TAG SOLIDUS E0030;Z # TAG DIGIT ZERO E0031;Z # TAG DIGIT ONE E0032;Z # TAG DIGIT TWO E0033;Z # TAG DIGIT THREE E0034;Z # TAG DIGIT FOUR E0035;Z # TAG DIGIT FIVE E0036;Z # TAG DIGIT SIX E0037;Z # TAG DIGIT SEVEN E0038;Z # TAG DIGIT EIGHT E0039;Z # TAG DIGIT NINE E003A;Z # TAG COLON E003B;Z # TAG SEMICOLON E003C;Z # TAG LESS-THAN SIGN E003D;Z # TAG EQUALS SIGN E003E;Z # TAG GREATER-THAN SIGN E003F;Z # TAG QUESTION MARK E0040;Z # TAG COMMERCIAL AT E0041;Z # TAG LATIN CAPITAL LETTER A E0042;Z # TAG LATIN CAPITAL LETTER B E0043;Z # TAG LATIN CAPITAL LETTER C E0044;Z # TAG LATIN CAPITAL LETTER D E0045;Z # TAG LATIN CAPITAL LETTER E E0046;Z # TAG LATIN CAPITAL LETTER F E0047;Z # TAG LATIN CAPITAL LETTER G E0048;Z # TAG LATIN CAPITAL LETTER H E0049;Z # TAG LATIN CAPITAL LETTER I E004A;Z # TAG LATIN CAPITAL LETTER J E004B;Z # TAG LATIN CAPITAL LETTER K E004C;Z # TAG LATIN CAPITAL LETTER L E004D;Z # TAG LATIN CAPITAL LETTER M E004E;Z # TAG LATIN CAPITAL LETTER N E004F;Z # TAG LATIN CAPITAL LETTER O E0050;Z # TAG LATIN CAPITAL LETTER P E0051;Z # TAG LATIN CAPITAL LETTER Q E0052;Z # TAG LATIN CAPITAL LETTER R E0053;Z # TAG LATIN CAPITAL LETTER S E0054;Z # TAG LATIN CAPITAL LETTER T E0055;Z # TAG LATIN CAPITAL LETTER U E0056;Z # TAG LATIN CAPITAL LETTER V E0057;Z # TAG LATIN CAPITAL LETTER W E0058;Z # TAG LATIN CAPITAL LETTER X E0059;Z # TAG LATIN CAPITAL LETTER Y E005A;Z # TAG LATIN CAPITAL LETTER Z E005B;Z # TAG LEFT SQUARE BRACKET E005C;Z # TAG REVERSE SOLIDUS E005D;Z # TAG RIGHT SQUARE BRACKET E005E;Z # TAG CIRCUMFLEX ACCENT E005F;Z # TAG LOW LINE E0060;Z # TAG GRAVE ACCENT E0061;Z # TAG LATIN SMALL LETTER A E0062;Z # TAG LATIN SMALL LETTER B E0063;Z # TAG LATIN SMALL LETTER C E0064;Z # TAG LATIN SMALL LETTER D E0065;Z # TAG LATIN SMALL LETTER E E0066;Z # TAG LATIN SMALL LETTER F E0067;Z # TAG LATIN SMALL LETTER G E0068;Z # TAG LATIN SMALL LETTER H E0069;Z # TAG LATIN SMALL LETTER I E006A;Z # TAG LATIN SMALL LETTER J E006B;Z # TAG LATIN SMALL LETTER K E006C;Z # TAG LATIN SMALL LETTER L E006D;Z # TAG LATIN SMALL LETTER M E006E;Z # TAG LATIN SMALL LETTER N E006F;Z # TAG LATIN SMALL LETTER O E0070;Z # TAG LATIN SMALL LETTER P E0071;Z # TAG LATIN SMALL LETTER Q E0072;Z # TAG LATIN SMALL LETTER R E0073;Z # TAG LATIN SMALL LETTER S E0074;Z # TAG LATIN SMALL LETTER T E0075;Z # TAG LATIN SMALL LETTER U E0076;Z # TAG LATIN SMALL LETTER V E0077;Z # TAG LATIN SMALL LETTER W E0078;Z # TAG LATIN SMALL LETTER X E0079;Z # TAG LATIN SMALL LETTER Y E007A;Z # TAG LATIN SMALL LETTER Z E007B;Z # TAG LEFT CURLY BRACKET E007C;Z # TAG VERTICAL LINE E007D;Z # TAG RIGHT CURLY BRACKET E007E;Z # TAG TILDE E007F;Z # CANCEL TAG E0100;ZA # VARIATION SELECTOR-17 E0101;ZA # VARIATION SELECTOR-18 E0102;ZA # VARIATION SELECTOR-19 E0103;ZA # VARIATION SELECTOR-20 E0104;ZA # VARIATION SELECTOR-21 E0105;ZA # VARIATION SELECTOR-22 E0106;ZA # VARIATION SELECTOR-23 E0107;ZA # VARIATION SELECTOR-24 E0108;ZA # VARIATION SELECTOR-25 E0109;ZA # VARIATION SELECTOR-26 E010A;ZA # VARIATION SELECTOR-27 E010B;ZA # VARIATION SELECTOR-28 E010C;ZA # VARIATION SELECTOR-29 E010D;ZA # VARIATION SELECTOR-30 E010E;ZA # VARIATION SELECTOR-31 E010F;ZA # VARIATION SELECTOR-32 E0110;ZA # VARIATION SELECTOR-33 E0111;ZA # VARIATION SELECTOR-34 E0112;ZA # VARIATION SELECTOR-35 E0113;ZA # VARIATION SELECTOR-36 E0114;ZA # VARIATION SELECTOR-37 E0115;ZA # VARIATION SELECTOR-38 E0116;ZA # VARIATION SELECTOR-39 E0117;ZA # VARIATION SELECTOR-40 E0118;ZA # VARIATION SELECTOR-41 E0119;ZA # VARIATION SELECTOR-42 E011A;ZA # VARIATION SELECTOR-43 E011B;ZA # VARIATION SELECTOR-44 E011C;ZA # VARIATION SELECTOR-45 E011D;ZA # VARIATION SELECTOR-46 E011E;ZA # VARIATION SELECTOR-47 E011F;ZA # VARIATION SELECTOR-48 E0120;ZA # VARIATION SELECTOR-49 E0121;ZA # VARIATION SELECTOR-50 E0122;ZA # VARIATION SELECTOR-51 E0123;ZA # VARIATION SELECTOR-52 E0124;ZA # VARIATION SELECTOR-53 E0125;ZA # VARIATION SELECTOR-54 E0126;ZA # VARIATION SELECTOR-55 E0127;ZA # VARIATION SELECTOR-56 E0128;ZA # VARIATION SELECTOR-57 E0129;ZA # VARIATION SELECTOR-58 E012A;ZA # VARIATION SELECTOR-59 E012B;ZA # VARIATION SELECTOR-60 E012C;ZA # VARIATION SELECTOR-61 E012D;ZA # VARIATION SELECTOR-62 E012E;ZA # VARIATION SELECTOR-63 E012F;ZA # VARIATION SELECTOR-64 E0130;ZA # VARIATION SELECTOR-65 E0131;ZA # VARIATION SELECTOR-66 E0132;ZA # VARIATION SELECTOR-67 E0133;ZA # VARIATION SELECTOR-68 E0134;ZA # VARIATION SELECTOR-69 E0135;ZA # VARIATION SELECTOR-70 E0136;ZA # VARIATION SELECTOR-71 E0137;ZA # VARIATION SELECTOR-72 E0138;ZA # VARIATION SELECTOR-73 E0139;ZA # VARIATION SELECTOR-74 E013A;ZA # VARIATION SELECTOR-75 E013B;ZA # VARIATION SELECTOR-76 E013C;ZA # VARIATION SELECTOR-77 E013D;ZA # VARIATION SELECTOR-78 E013E;ZA # VARIATION SELECTOR-79 E013F;ZA # VARIATION SELECTOR-80 E0140;ZA # VARIATION SELECTOR-81 E0141;ZA # VARIATION SELECTOR-82 E0142;ZA # VARIATION SELECTOR-83 E0143;ZA # VARIATION SELECTOR-84 E0144;ZA # VARIATION SELECTOR-85 E0145;ZA # VARIATION SELECTOR-86 E0146;ZA # VARIATION SELECTOR-87 E0147;ZA # VARIATION SELECTOR-88 E0148;ZA # VARIATION SELECTOR-89 E0149;ZA # VARIATION SELECTOR-90 E014A;ZA # VARIATION SELECTOR-91 E014B;ZA # VARIATION SELECTOR-92 E014C;ZA # VARIATION SELECTOR-93 E014D;ZA # VARIATION SELECTOR-94 E014E;ZA # VARIATION SELECTOR-95 E014F;ZA # VARIATION SELECTOR-96 E0150;ZA # VARIATION SELECTOR-97 E0151;ZA # VARIATION SELECTOR-98 E0152;ZA # VARIATION SELECTOR-99 E0153;ZA # VARIATION SELECTOR-100 E0154;ZA # VARIATION SELECTOR-101 E0155;ZA # VARIATION SELECTOR-102 E0156;ZA # VARIATION SELECTOR-103 E0157;ZA # VARIATION SELECTOR-104 E0158;ZA # VARIATION SELECTOR-105 E0159;ZA # VARIATION SELECTOR-106 E015A;ZA # VARIATION SELECTOR-107 E015B;ZA # VARIATION SELECTOR-108 E015C;ZA # VARIATION SELECTOR-109 E015D;ZA # VARIATION SELECTOR-110 E015E;ZA # VARIATION SELECTOR-111 E015F;ZA # VARIATION SELECTOR-112 E0160;ZA # VARIATION SELECTOR-113 E0161;ZA # VARIATION SELECTOR-114 E0162;ZA # VARIATION SELECTOR-115 E0163;ZA # VARIATION SELECTOR-116 E0164;ZA # VARIATION SELECTOR-117 E0165;ZA # VARIATION SELECTOR-118 E0166;ZA # VARIATION SELECTOR-119 E0167;ZA # VARIATION SELECTOR-120 E0168;ZA # VARIATION SELECTOR-121 E0169;ZA # VARIATION SELECTOR-122 E016A;ZA # VARIATION SELECTOR-123 E016B;ZA # VARIATION SELECTOR-124 E016C;ZA # VARIATION SELECTOR-125 E016D;ZA # VARIATION SELECTOR-126 E016E;ZA # VARIATION SELECTOR-127 E016F;ZA # VARIATION SELECTOR-128 E0170;ZA # VARIATION SELECTOR-129 E0171;ZA # VARIATION SELECTOR-130 E0172;ZA # VARIATION SELECTOR-131 E0173;ZA # VARIATION SELECTOR-132 E0174;ZA # VARIATION SELECTOR-133 E0175;ZA # VARIATION SELECTOR-134 E0176;ZA # VARIATION SELECTOR-135 E0177;ZA # VARIATION SELECTOR-136 E0178;ZA # VARIATION SELECTOR-137 E0179;ZA # VARIATION SELECTOR-138 E017A;ZA # VARIATION SELECTOR-139 E017B;ZA # VARIATION SELECTOR-140 E017C;ZA # VARIATION SELECTOR-141 E017D;ZA # VARIATION SELECTOR-142 E017E;ZA # VARIATION SELECTOR-143 E017F;ZA # VARIATION SELECTOR-144 E0180;ZA # VARIATION SELECTOR-145 E0181;ZA # VARIATION SELECTOR-146 E0182;ZA # VARIATION SELECTOR-147 E0183;ZA # VARIATION SELECTOR-148 E0184;ZA # VARIATION SELECTOR-149 E0185;ZA # VARIATION SELECTOR-150 E0186;ZA # VARIATION SELECTOR-151 E0187;ZA # VARIATION SELECTOR-152 E0188;ZA # VARIATION SELECTOR-153 E0189;ZA # VARIATION SELECTOR-154 E018A;ZA # VARIATION SELECTOR-155 E018B;ZA # VARIATION SELECTOR-156 E018C;ZA # VARIATION SELECTOR-157 E018D;ZA # VARIATION SELECTOR-158 E018E;ZA # VARIATION SELECTOR-159 E018F;ZA # VARIATION SELECTOR-160 E0190;ZA # VARIATION SELECTOR-161 E0191;ZA # VARIATION SELECTOR-162 E0192;ZA # VARIATION SELECTOR-163 E0193;ZA # VARIATION SELECTOR-164 E0194;ZA # VARIATION SELECTOR-165 E0195;ZA # VARIATION SELECTOR-166 E0196;ZA # VARIATION SELECTOR-167 E0197;ZA # VARIATION SELECTOR-168 E0198;ZA # VARIATION SELECTOR-169 E0199;ZA # VARIATION SELECTOR-170 E019A;ZA # VARIATION SELECTOR-171 E019B;ZA # VARIATION SELECTOR-172 E019C;ZA # VARIATION SELECTOR-173 E019D;ZA # VARIATION SELECTOR-174 E019E;ZA # VARIATION SELECTOR-175 E019F;ZA # VARIATION SELECTOR-176 E01A0;ZA # VARIATION SELECTOR-177 E01A1;ZA # VARIATION SELECTOR-178 E01A2;ZA # VARIATION SELECTOR-179 E01A3;ZA # VARIATION SELECTOR-180 E01A4;ZA # VARIATION SELECTOR-181 E01A5;ZA # VARIATION SELECTOR-182 E01A6;ZA # VARIATION SELECTOR-183 E01A7;ZA # VARIATION SELECTOR-184 E01A8;ZA # VARIATION SELECTOR-185 E01A9;ZA # VARIATION SELECTOR-186 E01AA;ZA # VARIATION SELECTOR-187 E01AB;ZA # VARIATION SELECTOR-188 E01AC;ZA # VARIATION SELECTOR-189 E01AD;ZA # VARIATION SELECTOR-190 E01AE;ZA # VARIATION SELECTOR-191 E01AF;ZA # VARIATION SELECTOR-192 E01B0;ZA # VARIATION SELECTOR-193 E01B1;ZA # VARIATION SELECTOR-194 E01B2;ZA # VARIATION SELECTOR-195 E01B3;ZA # VARIATION SELECTOR-196 E01B4;ZA # VARIATION SELECTOR-197 E01B5;ZA # VARIATION SELECTOR-198 E01B6;ZA # VARIATION SELECTOR-199 E01B7;ZA # VARIATION SELECTOR-200 E01B8;ZA # VARIATION SELECTOR-201 E01B9;ZA # VARIATION SELECTOR-202 E01BA;ZA # VARIATION SELECTOR-203 E01BB;ZA # VARIATION SELECTOR-204 E01BC;ZA # VARIATION SELECTOR-205 E01BD;ZA # VARIATION SELECTOR-206 E01BE;ZA # VARIATION SELECTOR-207 E01BF;ZA # VARIATION SELECTOR-208 E01C0;ZA # VARIATION SELECTOR-209 E01C1;ZA # VARIATION SELECTOR-210 E01C2;ZA # VARIATION SELECTOR-211 E01C3;ZA # VARIATION SELECTOR-212 E01C4;ZA # VARIATION SELECTOR-213 E01C5;ZA # VARIATION SELECTOR-214 E01C6;ZA # VARIATION SELECTOR-215 E01C7;ZA # VARIATION SELECTOR-216 E01C8;ZA # VARIATION SELECTOR-217 E01C9;ZA # VARIATION SELECTOR-218 E01CA;ZA # VARIATION SELECTOR-219 E01CB;ZA # VARIATION SELECTOR-220 E01CC;ZA # VARIATION SELECTOR-221 E01CD;ZA # VARIATION SELECTOR-222 E01CE;ZA # VARIATION SELECTOR-223 E01CF;ZA # VARIATION SELECTOR-224 E01D0;ZA # VARIATION SELECTOR-225 E01D1;ZA # VARIATION SELECTOR-226 E01D2;ZA # VARIATION SELECTOR-227 E01D3;ZA # VARIATION SELECTOR-228 E01D4;ZA # VARIATION SELECTOR-229 E01D5;ZA # VARIATION SELECTOR-230 E01D6;ZA # VARIATION SELECTOR-231 E01D7;ZA # VARIATION SELECTOR-232 E01D8;ZA # VARIATION SELECTOR-233 E01D9;ZA # VARIATION SELECTOR-234 E01DA;ZA # VARIATION SELECTOR-235 E01DB;ZA # VARIATION SELECTOR-236 E01DC;ZA # VARIATION SELECTOR-237 E01DD;ZA # VARIATION SELECTOR-238 E01DE;ZA # VARIATION SELECTOR-239 E01DF;ZA # VARIATION SELECTOR-240 E01E0;ZA # VARIATION SELECTOR-241 E01E1;ZA # VARIATION SELECTOR-242 E01E2;ZA # VARIATION SELECTOR-243 E01E3;ZA # VARIATION SELECTOR-244 E01E4;ZA # VARIATION SELECTOR-245 E01E5;ZA # VARIATION SELECTOR-246 E01E6;ZA # VARIATION SELECTOR-247 E01E7;ZA # VARIATION SELECTOR-248 E01E8;ZA # VARIATION SELECTOR-249 E01E9;ZA # VARIATION SELECTOR-250 E01EA;ZA # VARIATION SELECTOR-251 E01EB;ZA # VARIATION SELECTOR-252 E01EC;ZA # VARIATION SELECTOR-253 E01ED;ZA # VARIATION SELECTOR-254 E01EE;ZA # VARIATION SELECTOR-255 E01EF;ZA # VARIATION SELECTOR-256 sombok-2.3.1/data/Rules-6.2.0.txt0000664000076400007640000000363512032245266013160 00000000000000#### Rules for Unicode Line Breaking Algorithm. #### Based on Unicode Standard Annex #14 (UAX#14), Revision 30 (2012-09-14) #### by Asmus Freytag. http://www.unicode.org/reports/tr14/tr14-30.html ### 1 Non-tailorable Line Breaking Rules ## Resolve line breaking classes: # LB1 Assign a line breaking class to each code point of the input. ## Start and end of text: # LB2 sot × # LB3 ! eot ## Mandatory breaks: # LB4 BK ! # LB5 CR × LF CR ! LF ! NL ! # LB6 × ( BK | CR | LF | NL ) ## Explicit breaks and non-breaks: # LB7 × SP × ZW # LB8 ZW SP* ÷ ## Combining marks: # LB9 Treat X CM* as if it were X. where X is any line break class except BK, CR, LF, NL, SP, or ZW. # LB10 Treat any remaining CM as it if were AL. ## Word joiner: # LB11 × WJ WJ × ## Non-breaking characters: # LB12 GL × ### 2 Tailorable Line Breaking Rules ## Non-breaking characters: # LB12a [^SP BA HY] × GL ## Opening and closing: # LB13 × CL × CP × EX × IS × SY # LB14 OP SP* × # LB15 QU SP* × OP # LB16 CL SP* × NS CP SP* × NS # LB17 B2 SP* × B2 ## Spaces: # LB18 SP ÷ ## Special case rules: # LB19 × QU QU × # LB20 ÷ CB CB ÷ # LB21 × BA × HY × NS BB × # LB21a HL (HY | BA) × # LB22 (AL | HL) × IN ID × IN IN × IN NU × IN ## Numbers: # LB23 ID × PO (AL | HL) × NU NU × (AL | HL) # LB24 PR × ID PR × (AL | HL) PO × (AL | HL) # LB25 #CL × PO #CP × PO #CL × PR #CP × PR #NU × PO #NU × PR #PO × OP #PO × NU #PR × OP #PR × NU #HY × NU #IS × NU #NU × NU #SY × NU ## Korean syllable blocks # LB26 JL × (JL | JV | H2 | H3) (JV | H2) × (JV | JT) (JT | H3) × JT # LB27 (JL | JV | JT | H2 | H3) × IN (JL | JV | JT | H2 | H3) × PO PR × (JL | JV | JT | H2 | H3) ## Finally, join alphabetic letters into words and break everything else. # LB28 (AL | HL) × (AL | HL) # LB29 IS × (AL | HL) # LB30 (AL | HL | NU) × OP CP × (AL | HL | NU) # LB30a RI × RI # LB31 ALL ÷ ÷ ALL sombok-2.3.1/data/constants.pl0000664000076400007640000001040112210015236013210 00000000000000#! perl use version; my $CONSTANTS_H = ''; my $LBCLASSES = ''; my @attr = split /,/, shift @ARGV; foreach my $attr (@attr) { my $OMIT; my @classes; my $datafile; if ($attr eq 'lb') { $OMIT = qr{AI|CJ|HL|SA|SG|XX|...}; @classes = qw{BK CR LF NL SP OP CL QU GL NS EX SY IS PR PO NU AL ID IN HY BA BB B2 CB ZW CM WJ H2 H3 JL JV JT SG AI SA XX}; $datafile = 'LineBreak'; } elsif ($attr eq 'ea') { $OMIT = undef; @classes = qw{Z Na N A W H F}; $datafile = 'EastAsianWidth'; } elsif ($attr eq 'sc') { $OMIT = undef; @classes = qw(Common Inherited Unknown Han Hangul); $datafile = 'Scripts'; } elsif ($attr eq 'gb') { $OMIT = undef; @classes = qw(CR LF Control Extend Prepend SpacingMark L V T LV LVT Other); $datafile = 'GraphemeBreakProperty'; } else { die "Unknown attr $attr\n"; } my @versions = sort { cmpversion($a, $b) } @ARGV; my %classes = map { ($_ => '') } @classes; foreach my $version (@versions) { my $vernum = version->new($version)->numify; my %Virama = (); #if (6.001000 <= $vernum) { open my $ucd, '<', "UnicodeData-$version.txt" or die $!; while (<$ucd>) { chomp $_; s/\s*#.*$//; next unless /\S/; my ($code, $name, $gc, $ccc) = split /;/; $code = hex("0x$code"); $Virama{$code} = 1 if $ccc+0 == 9; } close $ucd; #} my %SA = (); foreach my $ext ('custom', 'txt') { open LB, '<', "LineBreak-$version.$ext" or next; while () { chomp $_; s/\s*#.*$//; next unless /\S/; my ($code, $prop) = split /;/; $code = hex("0x$code"); $SA{$code} = 1 if $prop eq 'SA'; } close LB; } # read new classes from rules. if ($attr eq 'lb') { unless (open RULES, '<', "Rules-$version.txt") { die $!; } while () { chomp $_; s/#.*//; next unless /\S/; foreach my $c (m/(\b[A-Z][0-9A-Z]\b)/g) { unless (defined $classes{$c}) { push @classes, $c; $classes{$c} = $version; } } } close RULES; } # read new classes from data. foreach my $data (("$datafile-$version.txt", "$datafile-$version.custom")) { unless (open DATA, '<', $data) { die $! unless $data =~ /\.custom$/; next; } while () { chomp $_; s/\s*#.*//; next unless /\S/; my ($ucs, $c) = split /;\s*/, $_; next unless $ucs; my ($beg, $end) = split /\.\./, $ucs; my ($beg, $end) = split /\.\./, $ucs; $end ||= $beg; $beg = hex("0x$beg"); $end = hex("0x$end"); next unless $c =~ /^\w+$/; foreach my $chr (($beg..$end)) { # limit to SA next if $attr eq 'sc' and !$SA{$chr}; # Extended GCB property value for virama (consonant joiner) my $ec; if ($attr eq 'gb' and $Virama{$chr}) { $ec = ['Virama', 'OtherLetter']; } else { $ec = [$c]; } foreach my $c (@$ec) { unless (defined $classes{$c}) { push @classes, $c; $classes{$c} = $version; } } } } close DATA; } my @indexedclasses; if ($OMIT) { @indexedclasses = grep(!/$OMIT/, @classes); @classes = (@indexedclasses, grep(/$OMIT/, @classes)); } else { @indexedclasses = @classes; } $indexedclasses{$attr} ||= {}; $indexedclasses{$attr}->{$version} = [@indexedclasses]; } my $i; for ($i = 0; $i <= $#classes; $i++) { $CONSTANTS_H .= "#define ".uc($attr)."_$classes[$i] ((propval_t)$i)\n"; } $CONSTANTS_H .= "\n"; } open CONSTANTS_H, '>', '../include/sombok_constants.h' or die $!; print CONSTANTS_H <<"EOF"; /* * This file is automatically generated. DON'T EDIT THIS FILE MANUALLY. */ #ifndef _SOMBOK_CONSTANTS_H_ $CONSTANTS_H #define _SOMBOK_CONSTANTS_H_ #endif /* _SOMBOK_CONSTANTS_H_ */ EOF close CONSTANTS_H; $LBCLASSES .= "\%indexedclasses = (\n"; foreach my $attr (@attr) { $LBCLASSES .= " '$attr' => {\n"; foreach my $version (sort { cmpversion($a, $b) } keys %{$indexedclasses{$attr}}) { $LBCLASSES .= " '$version' => [qw(". join(' ', @{$indexedclasses{$attr}->{$version}}). ")],\n"; } $LBCLASSES .= " },\n"; } $LBCLASSES .= ");\n\n1;\n"; open LBCLASSES, '>', 'LBCLASSES' or die $!; print LBCLASSES $LBCLASSES; close LBCLASSES; sub cmpversion { my $x = sprintf '%03d.%03d.%03d', split /\D+/, shift; my $y = sprintf '%03d.%03d.%03d', split /\D+/, shift; return $x cmp $y; } sombok-2.3.1/data/EastAsianWidth-6.3.0.custom0000664000076400007640000014440212221425422015422 000000000000000000;Z # 0001;Z # 0002;Z # 0003;Z # 0004;Z # 0005;Z # 0006;Z # 0007;Z # 0008;Z # 0009;Z # 000A;Z # 000B;Z # 000C;Z # 000D;Z # 000E;Z # 000F;Z # 0010;Z # 0011;Z # 0012;Z # 0013;Z # 0014;Z # 0015;Z # 0016;Z # 0017;Z # 0018;Z # 0019;Z # 001A;Z # 001B;Z # 001C;Z # 001D;Z # 001E;Z # 001F;Z # 007F;Z # 0080;Z # 0081;Z # 0082;Z # 0083;Z # 0084;Z # 0085;Z # 0086;Z # 0087;Z # 0088;Z # 0089;Z # 008A;Z # 008B;Z # 008C;Z # 008D;Z # 008E;Z # 008F;Z # 0090;Z # 0091;Z # 0092;Z # 0093;Z # 0094;Z # 0095;Z # 0096;Z # 0097;Z # 0098;Z # 0099;Z # 009A;Z # 009B;Z # 009C;Z # 009D;Z # 009E;Z # 009F;Z # 00AD;ZA # SOFT HYPHEN 0300;ZA # COMBINING GRAVE ACCENT 0301;ZA # COMBINING ACUTE ACCENT 0302;ZA # COMBINING CIRCUMFLEX ACCENT 0303;ZA # COMBINING TILDE 0304;ZA # COMBINING MACRON 0305;ZA # COMBINING OVERLINE 0306;ZA # COMBINING BREVE 0307;ZA # COMBINING DOT ABOVE 0308;ZA # COMBINING DIAERESIS 0309;ZA # COMBINING HOOK ABOVE 030A;ZA # COMBINING RING ABOVE 030B;ZA # COMBINING DOUBLE ACUTE ACCENT 030C;ZA # COMBINING CARON 030D;ZA # COMBINING VERTICAL LINE ABOVE 030E;ZA # COMBINING DOUBLE VERTICAL LINE ABOVE 030F;ZA # COMBINING DOUBLE GRAVE ACCENT 0310;ZA # COMBINING CANDRABINDU 0311;ZA # COMBINING INVERTED BREVE 0312;ZA # COMBINING TURNED COMMA ABOVE 0313;ZA # COMBINING COMMA ABOVE 0314;ZA # COMBINING REVERSED COMMA ABOVE 0315;ZA # COMBINING COMMA ABOVE RIGHT 0316;ZA # COMBINING GRAVE ACCENT BELOW 0317;ZA # COMBINING ACUTE ACCENT BELOW 0318;ZA # COMBINING LEFT TACK BELOW 0319;ZA # COMBINING RIGHT TACK BELOW 031A;ZA # COMBINING LEFT ANGLE ABOVE 031B;ZA # COMBINING HORN 031C;ZA # COMBINING LEFT HALF RING BELOW 031D;ZA # COMBINING UP TACK BELOW 031E;ZA # COMBINING DOWN TACK BELOW 031F;ZA # COMBINING PLUS SIGN BELOW 0320;ZA # COMBINING MINUS SIGN BELOW 0321;ZA # COMBINING PALATALIZED HOOK BELOW 0322;ZA # COMBINING RETROFLEX HOOK BELOW 0323;ZA # COMBINING DOT BELOW 0324;ZA # COMBINING DIAERESIS BELOW 0325;ZA # COMBINING RING BELOW 0326;ZA # COMBINING COMMA BELOW 0327;ZA # COMBINING CEDILLA 0328;ZA # COMBINING OGONEK 0329;ZA # COMBINING VERTICAL LINE BELOW 032A;ZA # COMBINING BRIDGE BELOW 032B;ZA # COMBINING INVERTED DOUBLE ARCH BELOW 032C;ZA # COMBINING CARON BELOW 032D;ZA # COMBINING CIRCUMFLEX ACCENT BELOW 032E;ZA # COMBINING BREVE BELOW 032F;ZA # COMBINING INVERTED BREVE BELOW 0330;ZA # COMBINING TILDE BELOW 0331;ZA # COMBINING MACRON BELOW 0332;ZA # COMBINING LOW LINE 0333;ZA # COMBINING DOUBLE LOW LINE 0334;ZA # COMBINING TILDE OVERLAY 0335;ZA # COMBINING SHORT STROKE OVERLAY 0336;ZA # COMBINING LONG STROKE OVERLAY 0337;ZA # COMBINING SHORT SOLIDUS OVERLAY 0338;ZA # COMBINING LONG SOLIDUS OVERLAY 0339;ZA # COMBINING RIGHT HALF RING BELOW 033A;ZA # COMBINING INVERTED BRIDGE BELOW 033B;ZA # COMBINING SQUARE BELOW 033C;ZA # COMBINING SEAGULL BELOW 033D;ZA # COMBINING X ABOVE 033E;ZA # COMBINING VERTICAL TILDE 033F;ZA # COMBINING DOUBLE OVERLINE 0340;ZA # COMBINING GRAVE TONE MARK 0341;ZA # COMBINING ACUTE TONE MARK 0342;ZA # COMBINING GREEK PERISPOMENI 0343;ZA # COMBINING GREEK KORONIS 0344;ZA # COMBINING GREEK DIALYTIKA TONOS 0345;ZA # COMBINING GREEK YPOGEGRAMMENI 0346;ZA # COMBINING BRIDGE ABOVE 0347;ZA # COMBINING EQUALS SIGN BELOW 0348;ZA # COMBINING DOUBLE VERTICAL LINE BELOW 0349;ZA # COMBINING LEFT ANGLE BELOW 034A;ZA # COMBINING NOT TILDE ABOVE 034B;ZA # COMBINING HOMOTHETIC ABOVE 034C;ZA # COMBINING ALMOST EQUAL TO ABOVE 034D;ZA # COMBINING LEFT RIGHT ARROW BELOW 034E;ZA # COMBINING UPWARDS ARROW BELOW 034F;ZA # COMBINING GRAPHEME JOINER 0350;ZA # COMBINING RIGHT ARROWHEAD ABOVE 0351;ZA # COMBINING LEFT HALF RING ABOVE 0352;ZA # COMBINING FERMATA 0353;ZA # COMBINING X BELOW 0354;ZA # COMBINING LEFT ARROWHEAD BELOW 0355;ZA # COMBINING RIGHT ARROWHEAD BELOW 0356;ZA # COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW 0357;ZA # COMBINING RIGHT HALF RING ABOVE 0358;ZA # COMBINING DOT ABOVE RIGHT 0359;ZA # COMBINING ASTERISK BELOW 035A;ZA # COMBINING DOUBLE RING BELOW 035B;ZA # COMBINING ZIGZAG ABOVE 035C;ZA # COMBINING DOUBLE BREVE BELOW 035D;ZA # COMBINING DOUBLE BREVE 035E;ZA # COMBINING DOUBLE MACRON 035F;ZA # COMBINING DOUBLE MACRON BELOW 0360;ZA # COMBINING DOUBLE TILDE 0361;ZA # COMBINING DOUBLE INVERTED BREVE 0362;ZA # COMBINING DOUBLE RIGHTWARDS ARROW BELOW 0363;ZA # COMBINING LATIN SMALL LETTER A 0364;ZA # COMBINING LATIN SMALL LETTER E 0365;ZA # COMBINING LATIN SMALL LETTER I 0366;ZA # COMBINING LATIN SMALL LETTER O 0367;ZA # COMBINING LATIN SMALL LETTER U 0368;ZA # COMBINING LATIN SMALL LETTER C 0369;ZA # COMBINING LATIN SMALL LETTER D 036A;ZA # COMBINING LATIN SMALL LETTER H 036B;ZA # COMBINING LATIN SMALL LETTER M 036C;ZA # COMBINING LATIN SMALL LETTER R 036D;ZA # COMBINING LATIN SMALL LETTER T 036E;ZA # COMBINING LATIN SMALL LETTER V 036F;ZA # COMBINING LATIN SMALL LETTER X 0483;Z # COMBINING CYRILLIC TITLO 0484;Z # COMBINING CYRILLIC PALATALIZATION 0485;Z # COMBINING CYRILLIC DASIA PNEUMATA 0486;Z # COMBINING CYRILLIC PSILI PNEUMATA 0487;Z # COMBINING CYRILLIC POKRYTIE 0488;Z # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN 0489;Z # COMBINING CYRILLIC MILLIONS SIGN 0591;Z # HEBREW ACCENT ETNAHTA 0592;Z # HEBREW ACCENT SEGOL 0593;Z # HEBREW ACCENT SHALSHELET 0594;Z # HEBREW ACCENT ZAQEF QATAN 0595;Z # HEBREW ACCENT ZAQEF GADOL 0596;Z # HEBREW ACCENT TIPEHA 0597;Z # HEBREW ACCENT REVIA 0598;Z # HEBREW ACCENT ZARQA 0599;Z # HEBREW ACCENT PASHTA 059A;Z # HEBREW ACCENT YETIV 059B;Z # HEBREW ACCENT TEVIR 059C;Z # HEBREW ACCENT GERESH 059D;Z # HEBREW ACCENT GERESH MUQDAM 059E;Z # HEBREW ACCENT GERSHAYIM 059F;Z # HEBREW ACCENT QARNEY PARA 05A0;Z # HEBREW ACCENT TELISHA GEDOLA 05A1;Z # HEBREW ACCENT PAZER 05A2;Z # HEBREW ACCENT ATNAH HAFUKH 05A3;Z # HEBREW ACCENT MUNAH 05A4;Z # HEBREW ACCENT MAHAPAKH 05A5;Z # HEBREW ACCENT MERKHA 05A6;Z # HEBREW ACCENT MERKHA KEFULA 05A7;Z # HEBREW ACCENT DARGA 05A8;Z # HEBREW ACCENT QADMA 05A9;Z # HEBREW ACCENT TELISHA QETANA 05AA;Z # HEBREW ACCENT YERAH BEN YOMO 05AB;Z # HEBREW ACCENT OLE 05AC;Z # HEBREW ACCENT ILUY 05AD;Z # HEBREW ACCENT DEHI 05AE;Z # HEBREW ACCENT ZINOR 05AF;Z # HEBREW MARK MASORA CIRCLE 05B0;Z # HEBREW POINT SHEVA 05B1;Z # HEBREW POINT HATAF SEGOL 05B2;Z # HEBREW POINT HATAF PATAH 05B3;Z # HEBREW POINT HATAF QAMATS 05B4;Z # HEBREW POINT HIRIQ 05B5;Z # HEBREW POINT TSERE 05B6;Z # HEBREW POINT SEGOL 05B7;Z # HEBREW POINT PATAH 05B8;Z # HEBREW POINT QAMATS 05B9;Z # HEBREW POINT HOLAM 05BA;Z # HEBREW POINT HOLAM HASER FOR VAV 05BB;Z # HEBREW POINT QUBUTS 05BC;Z # HEBREW POINT DAGESH OR MAPIQ 05BD;Z # HEBREW POINT METEG 05BF;Z # HEBREW POINT RAFE 05C1;Z # HEBREW POINT SHIN DOT 05C2;Z # HEBREW POINT SIN DOT 05C4;Z # HEBREW MARK UPPER DOT 05C5;Z # HEBREW MARK LOWER DOT 05C7;Z # HEBREW POINT QAMATS QATAN 0600;Z # ARABIC NUMBER SIGN 0601;Z # ARABIC SIGN SANAH 0602;Z # ARABIC FOOTNOTE MARKER 0603;Z # ARABIC SIGN SAFHA 0604;Z # ARABIC SIGN SAMVAT 0610;Z # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM 0611;Z # ARABIC SIGN ALAYHE ASSALLAM 0612;Z # ARABIC SIGN RAHMATULLAH ALAYHE 0613;Z # ARABIC SIGN RADI ALLAHOU ANHU 0614;Z # ARABIC SIGN TAKHALLUS 0615;Z # ARABIC SMALL HIGH TAH 0616;Z # ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH 0617;Z # ARABIC SMALL HIGH ZAIN 0618;Z # ARABIC SMALL FATHA 0619;Z # ARABIC SMALL DAMMA 061A;Z # ARABIC SMALL KASRA 061C;Z # ARABIC LETTER MARK 064B;Z # ARABIC FATHATAN 064C;Z # ARABIC DAMMATAN 064D;Z # ARABIC KASRATAN 064E;Z # ARABIC FATHA 064F;Z # ARABIC DAMMA 0650;Z # ARABIC KASRA 0651;Z # ARABIC SHADDA 0652;Z # ARABIC SUKUN 0653;Z # ARABIC MADDAH ABOVE 0654;Z # ARABIC HAMZA ABOVE 0655;Z # ARABIC HAMZA BELOW 0656;Z # ARABIC SUBSCRIPT ALEF 0657;Z # ARABIC INVERTED DAMMA 0658;Z # ARABIC MARK NOON GHUNNA 0659;Z # ARABIC ZWARAKAY 065A;Z # ARABIC VOWEL SIGN SMALL V ABOVE 065B;Z # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE 065C;Z # ARABIC VOWEL SIGN DOT BELOW 065D;Z # ARABIC REVERSED DAMMA 065E;Z # ARABIC FATHA WITH TWO DOTS 065F;Z # ARABIC WAVY HAMZA BELOW 0670;Z # ARABIC LETTER SUPERSCRIPT ALEF 06D6;Z # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA 06D7;Z # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA 06D8;Z # ARABIC SMALL HIGH MEEM INITIAL FORM 06D9;Z # ARABIC SMALL HIGH LAM ALEF 06DA;Z # ARABIC SMALL HIGH JEEM 06DB;Z # ARABIC SMALL HIGH THREE DOTS 06DC;Z # ARABIC SMALL HIGH SEEN 06DD;Z # ARABIC END OF AYAH 06DF;Z # ARABIC SMALL HIGH ROUNDED ZERO 06E0;Z # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO 06E1;Z # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH 06E2;Z # ARABIC SMALL HIGH MEEM ISOLATED FORM 06E3;Z # ARABIC SMALL LOW SEEN 06E4;Z # ARABIC SMALL HIGH MADDA 06E7;Z # ARABIC SMALL HIGH YEH 06E8;Z # ARABIC SMALL HIGH NOON 06EA;Z # ARABIC EMPTY CENTRE LOW STOP 06EB;Z # ARABIC EMPTY CENTRE HIGH STOP 06EC;Z # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE 06ED;Z # ARABIC SMALL LOW MEEM 070F;Z # SYRIAC ABBREVIATION MARK 0711;Z # SYRIAC LETTER SUPERSCRIPT ALAPH 0730;Z # SYRIAC PTHAHA ABOVE 0731;Z # SYRIAC PTHAHA BELOW 0732;Z # SYRIAC PTHAHA DOTTED 0733;Z # SYRIAC ZQAPHA ABOVE 0734;Z # SYRIAC ZQAPHA BELOW 0735;Z # SYRIAC ZQAPHA DOTTED 0736;Z # SYRIAC RBASA ABOVE 0737;Z # SYRIAC RBASA BELOW 0738;Z # SYRIAC DOTTED ZLAMA HORIZONTAL 0739;Z # SYRIAC DOTTED ZLAMA ANGULAR 073A;Z # SYRIAC HBASA ABOVE 073B;Z # SYRIAC HBASA BELOW 073C;Z # SYRIAC HBASA-ESASA DOTTED 073D;Z # SYRIAC ESASA ABOVE 073E;Z # SYRIAC ESASA BELOW 073F;Z # SYRIAC RWAHA 0740;Z # SYRIAC FEMININE DOT 0741;Z # SYRIAC QUSHSHAYA 0742;Z # SYRIAC RUKKAKHA 0743;Z # SYRIAC TWO VERTICAL DOTS ABOVE 0744;Z # SYRIAC TWO VERTICAL DOTS BELOW 0745;Z # SYRIAC THREE DOTS ABOVE 0746;Z # SYRIAC THREE DOTS BELOW 0747;Z # SYRIAC OBLIQUE LINE ABOVE 0748;Z # SYRIAC OBLIQUE LINE BELOW 0749;Z # SYRIAC MUSIC 074A;Z # SYRIAC BARREKH 07A6;Z # THAANA ABAFILI 07A7;Z # THAANA AABAAFILI 07A8;Z # THAANA IBIFILI 07A9;Z # THAANA EEBEEFILI 07AA;Z # THAANA UBUFILI 07AB;Z # THAANA OOBOOFILI 07AC;Z # THAANA EBEFILI 07AD;Z # THAANA EYBEYFILI 07AE;Z # THAANA OBOFILI 07AF;Z # THAANA OABOAFILI 07B0;Z # THAANA SUKUN 07EB;Z # NKO COMBINING SHORT HIGH TONE 07EC;Z # NKO COMBINING SHORT LOW TONE 07ED;Z # NKO COMBINING SHORT RISING TONE 07EE;Z # NKO COMBINING LONG DESCENDING TONE 07EF;Z # NKO COMBINING LONG HIGH TONE 07F0;Z # NKO COMBINING LONG LOW TONE 07F1;Z # NKO COMBINING LONG RISING TONE 07F2;Z # NKO COMBINING NASALIZATION MARK 07F3;Z # NKO COMBINING DOUBLE DOT ABOVE 0816;Z # SAMARITAN MARK IN 0817;Z # SAMARITAN MARK IN-ALAF 0818;Z # SAMARITAN MARK OCCLUSION 0819;Z # SAMARITAN MARK DAGESH 081B;Z # SAMARITAN MARK EPENTHETIC YUT 081C;Z # SAMARITAN VOWEL SIGN LONG E 081D;Z # SAMARITAN VOWEL SIGN E 081E;Z # SAMARITAN VOWEL SIGN OVERLONG AA 081F;Z # SAMARITAN VOWEL SIGN LONG AA 0820;Z # SAMARITAN VOWEL SIGN AA 0821;Z # SAMARITAN VOWEL SIGN OVERLONG A 0822;Z # SAMARITAN VOWEL SIGN LONG A 0823;Z # SAMARITAN VOWEL SIGN A 0825;Z # SAMARITAN VOWEL SIGN SHORT A 0826;Z # SAMARITAN VOWEL SIGN LONG U 0827;Z # SAMARITAN VOWEL SIGN U 0829;Z # SAMARITAN VOWEL SIGN LONG I 082A;Z # SAMARITAN VOWEL SIGN I 082B;Z # SAMARITAN VOWEL SIGN O 082C;Z # SAMARITAN VOWEL SIGN SUKUN 082D;Z # SAMARITAN MARK NEQUDAA 0859;Z # MANDAIC AFFRICATION MARK 085A;Z # MANDAIC VOCALIZATION MARK 085B;Z # MANDAIC GEMINATION MARK 08E4;Z # ARABIC CURLY FATHA 08E5;Z # ARABIC CURLY DAMMA 08E6;Z # ARABIC CURLY KASRA 08E7;Z # ARABIC CURLY FATHATAN 08E8;Z # ARABIC CURLY DAMMATAN 08E9;Z # ARABIC CURLY KASRATAN 08EA;Z # ARABIC TONE ONE DOT ABOVE 08EB;Z # ARABIC TONE TWO DOTS ABOVE 08EC;Z # ARABIC TONE LOOP ABOVE 08ED;Z # ARABIC TONE ONE DOT BELOW 08EE;Z # ARABIC TONE TWO DOTS BELOW 08EF;Z # ARABIC TONE LOOP BELOW 08F0;Z # ARABIC OPEN FATHATAN 08F1;Z # ARABIC OPEN DAMMATAN 08F2;Z # ARABIC OPEN KASRATAN 08F3;Z # ARABIC SMALL HIGH WAW 08F4;Z # ARABIC FATHA WITH RING 08F5;Z # ARABIC FATHA WITH DOT ABOVE 08F6;Z # ARABIC KASRA WITH DOT BELOW 08F7;Z # ARABIC LEFT ARROWHEAD ABOVE 08F8;Z # ARABIC RIGHT ARROWHEAD ABOVE 08F9;Z # ARABIC LEFT ARROWHEAD BELOW 08FA;Z # ARABIC RIGHT ARROWHEAD BELOW 08FB;Z # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE 08FC;Z # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT 08FD;Z # ARABIC RIGHT ARROWHEAD ABOVE WITH DOT 08FE;Z # ARABIC DAMMA WITH DOT 0900;Z # DEVANAGARI SIGN INVERTED CANDRABINDU 0901;Z # DEVANAGARI SIGN CANDRABINDU 0902;Z # DEVANAGARI SIGN ANUSVARA 093A;Z # DEVANAGARI VOWEL SIGN OE 093C;Z # DEVANAGARI SIGN NUKTA 0941;Z # DEVANAGARI VOWEL SIGN U 0942;Z # DEVANAGARI VOWEL SIGN UU 0943;Z # DEVANAGARI VOWEL SIGN VOCALIC R 0944;Z # DEVANAGARI VOWEL SIGN VOCALIC RR 0945;Z # DEVANAGARI VOWEL SIGN CANDRA E 0946;Z # DEVANAGARI VOWEL SIGN SHORT E 0947;Z # DEVANAGARI VOWEL SIGN E 0948;Z # DEVANAGARI VOWEL SIGN AI 094D;Z # DEVANAGARI SIGN VIRAMA 0951;Z # DEVANAGARI STRESS SIGN UDATTA 0952;Z # DEVANAGARI STRESS SIGN ANUDATTA 0953;Z # DEVANAGARI GRAVE ACCENT 0954;Z # DEVANAGARI ACUTE ACCENT 0955;Z # DEVANAGARI VOWEL SIGN CANDRA LONG E 0956;Z # DEVANAGARI VOWEL SIGN UE 0957;Z # DEVANAGARI VOWEL SIGN UUE 0962;Z # DEVANAGARI VOWEL SIGN VOCALIC L 0963;Z # DEVANAGARI VOWEL SIGN VOCALIC LL 0981;Z # BENGALI SIGN CANDRABINDU 09BC;Z # BENGALI SIGN NUKTA 09C1;Z # BENGALI VOWEL SIGN U 09C2;Z # BENGALI VOWEL SIGN UU 09C3;Z # BENGALI VOWEL SIGN VOCALIC R 09C4;Z # BENGALI VOWEL SIGN VOCALIC RR 09CD;Z # BENGALI SIGN VIRAMA 09E2;Z # BENGALI VOWEL SIGN VOCALIC L 09E3;Z # BENGALI VOWEL SIGN VOCALIC LL 0A01;Z # GURMUKHI SIGN ADAK BINDI 0A02;Z # GURMUKHI SIGN BINDI 0A3C;Z # GURMUKHI SIGN NUKTA 0A41;Z # GURMUKHI VOWEL SIGN U 0A42;Z # GURMUKHI VOWEL SIGN UU 0A47;Z # GURMUKHI VOWEL SIGN EE 0A48;Z # GURMUKHI VOWEL SIGN AI 0A4B;Z # GURMUKHI VOWEL SIGN OO 0A4C;Z # GURMUKHI VOWEL SIGN AU 0A4D;Z # GURMUKHI SIGN VIRAMA 0A51;Z # GURMUKHI SIGN UDAAT 0A70;Z # GURMUKHI TIPPI 0A71;Z # GURMUKHI ADDAK 0A75;Z # GURMUKHI SIGN YAKASH 0A81;Z # GUJARATI SIGN CANDRABINDU 0A82;Z # GUJARATI SIGN ANUSVARA 0ABC;Z # GUJARATI SIGN NUKTA 0AC1;Z # GUJARATI VOWEL SIGN U 0AC2;Z # GUJARATI VOWEL SIGN UU 0AC3;Z # GUJARATI VOWEL SIGN VOCALIC R 0AC4;Z # GUJARATI VOWEL SIGN VOCALIC RR 0AC5;Z # GUJARATI VOWEL SIGN CANDRA E 0AC7;Z # GUJARATI VOWEL SIGN E 0AC8;Z # GUJARATI VOWEL SIGN AI 0ACD;Z # GUJARATI SIGN VIRAMA 0AE2;Z # GUJARATI VOWEL SIGN VOCALIC L 0AE3;Z # GUJARATI VOWEL SIGN VOCALIC LL 0B01;Z # ORIYA SIGN CANDRABINDU 0B3C;Z # ORIYA SIGN NUKTA 0B3F;Z # ORIYA VOWEL SIGN I 0B41;Z # ORIYA VOWEL SIGN U 0B42;Z # ORIYA VOWEL SIGN UU 0B43;Z # ORIYA VOWEL SIGN VOCALIC R 0B44;Z # ORIYA VOWEL SIGN VOCALIC RR 0B4D;Z # ORIYA SIGN VIRAMA 0B56;Z # ORIYA AI LENGTH MARK 0B62;Z # ORIYA VOWEL SIGN VOCALIC L 0B63;Z # ORIYA VOWEL SIGN VOCALIC LL 0B82;Z # TAMIL SIGN ANUSVARA 0BC0;Z # TAMIL VOWEL SIGN II 0BCD;Z # TAMIL SIGN VIRAMA 0C3E;Z # TELUGU VOWEL SIGN AA 0C3F;Z # TELUGU VOWEL SIGN I 0C40;Z # TELUGU VOWEL SIGN II 0C46;Z # TELUGU VOWEL SIGN E 0C47;Z # TELUGU VOWEL SIGN EE 0C48;Z # TELUGU VOWEL SIGN AI 0C4A;Z # TELUGU VOWEL SIGN O 0C4B;Z # TELUGU VOWEL SIGN OO 0C4C;Z # TELUGU VOWEL SIGN AU 0C4D;Z # TELUGU SIGN VIRAMA 0C55;Z # TELUGU LENGTH MARK 0C56;Z # TELUGU AI LENGTH MARK 0C62;Z # TELUGU VOWEL SIGN VOCALIC L 0C63;Z # TELUGU VOWEL SIGN VOCALIC LL 0CBC;Z # KANNADA SIGN NUKTA 0CBF;Z # KANNADA VOWEL SIGN I 0CC6;Z # KANNADA VOWEL SIGN E 0CCC;Z # KANNADA VOWEL SIGN AU 0CCD;Z # KANNADA SIGN VIRAMA 0CE2;Z # KANNADA VOWEL SIGN VOCALIC L 0CE3;Z # KANNADA VOWEL SIGN VOCALIC LL 0D41;Z # MALAYALAM VOWEL SIGN U 0D42;Z # MALAYALAM VOWEL SIGN UU 0D43;Z # MALAYALAM VOWEL SIGN VOCALIC R 0D44;Z # MALAYALAM VOWEL SIGN VOCALIC RR 0D4D;Z # MALAYALAM SIGN VIRAMA 0D62;Z # MALAYALAM VOWEL SIGN VOCALIC L 0D63;Z # MALAYALAM VOWEL SIGN VOCALIC LL 0DCA;Z # SINHALA SIGN AL-LAKUNA 0DD2;Z # SINHALA VOWEL SIGN KETTI IS-PILLA 0DD3;Z # SINHALA VOWEL SIGN DIGA IS-PILLA 0DD4;Z # SINHALA VOWEL SIGN KETTI PAA-PILLA 0DD6;Z # SINHALA VOWEL SIGN DIGA PAA-PILLA 0E31;Z # THAI CHARACTER MAI HAN-AKAT 0E34;Z # THAI CHARACTER SARA I 0E35;Z # THAI CHARACTER SARA II 0E36;Z # THAI CHARACTER SARA UE 0E37;Z # THAI CHARACTER SARA UEE 0E38;Z # THAI CHARACTER SARA U 0E39;Z # THAI CHARACTER SARA UU 0E3A;Z # THAI CHARACTER PHINTHU 0E47;Z # THAI CHARACTER MAITAIKHU 0E48;Z # THAI CHARACTER MAI EK 0E49;Z # THAI CHARACTER MAI THO 0E4A;Z # THAI CHARACTER MAI TRI 0E4B;Z # THAI CHARACTER MAI CHATTAWA 0E4C;Z # THAI CHARACTER THANTHAKHAT 0E4D;Z # THAI CHARACTER NIKHAHIT 0E4E;Z # THAI CHARACTER YAMAKKAN 0EB1;Z # LAO VOWEL SIGN MAI KAN 0EB4;Z # LAO VOWEL SIGN I 0EB5;Z # LAO VOWEL SIGN II 0EB6;Z # LAO VOWEL SIGN Y 0EB7;Z # LAO VOWEL SIGN YY 0EB8;Z # LAO VOWEL SIGN U 0EB9;Z # LAO VOWEL SIGN UU 0EBB;Z # LAO VOWEL SIGN MAI KON 0EBC;Z # LAO SEMIVOWEL SIGN LO 0EC8;Z # LAO TONE MAI EK 0EC9;Z # LAO TONE MAI THO 0ECA;Z # LAO TONE MAI TI 0ECB;Z # LAO TONE MAI CATAWA 0ECC;Z # LAO CANCELLATION MARK 0ECD;Z # LAO NIGGAHITA 0F18;Z # TIBETAN ASTROLOGICAL SIGN -KHYUD PA 0F19;Z # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS 0F35;Z # TIBETAN MARK NGAS BZUNG NYI ZLA 0F37;Z # TIBETAN MARK NGAS BZUNG SGOR RTAGS 0F39;Z # TIBETAN MARK TSA -PHRU 0F71;Z # TIBETAN VOWEL SIGN AA 0F72;Z # TIBETAN VOWEL SIGN I 0F73;Z # TIBETAN VOWEL SIGN II 0F74;Z # TIBETAN VOWEL SIGN U 0F75;Z # TIBETAN VOWEL SIGN UU 0F76;Z # TIBETAN VOWEL SIGN VOCALIC R 0F77;Z # TIBETAN VOWEL SIGN VOCALIC RR 0F78;Z # TIBETAN VOWEL SIGN VOCALIC L 0F79;Z # TIBETAN VOWEL SIGN VOCALIC LL 0F7A;Z # TIBETAN VOWEL SIGN E 0F7B;Z # TIBETAN VOWEL SIGN EE 0F7C;Z # TIBETAN VOWEL SIGN O 0F7D;Z # TIBETAN VOWEL SIGN OO 0F7E;Z # TIBETAN SIGN RJES SU NGA RO 0F80;Z # TIBETAN VOWEL SIGN REVERSED I 0F81;Z # TIBETAN VOWEL SIGN REVERSED II 0F82;Z # TIBETAN SIGN NYI ZLA NAA DA 0F83;Z # TIBETAN SIGN SNA LDAN 0F84;Z # TIBETAN MARK HALANTA 0F86;Z # TIBETAN SIGN LCI RTAGS 0F87;Z # TIBETAN SIGN YANG RTAGS 0F8D;Z # TIBETAN SUBJOINED SIGN LCE TSA CAN 0F8E;Z # TIBETAN SUBJOINED SIGN MCHU CAN 0F8F;Z # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN 0F90;Z # TIBETAN SUBJOINED LETTER KA 0F91;Z # TIBETAN SUBJOINED LETTER KHA 0F92;Z # TIBETAN SUBJOINED LETTER GA 0F93;Z # TIBETAN SUBJOINED LETTER GHA 0F94;Z # TIBETAN SUBJOINED LETTER NGA 0F95;Z # TIBETAN SUBJOINED LETTER CA 0F96;Z # TIBETAN SUBJOINED LETTER CHA 0F97;Z # TIBETAN SUBJOINED LETTER JA 0F99;Z # TIBETAN SUBJOINED LETTER NYA 0F9A;Z # TIBETAN SUBJOINED LETTER TTA 0F9B;Z # TIBETAN SUBJOINED LETTER TTHA 0F9C;Z # TIBETAN SUBJOINED LETTER DDA 0F9D;Z # TIBETAN SUBJOINED LETTER DDHA 0F9E;Z # TIBETAN SUBJOINED LETTER NNA 0F9F;Z # TIBETAN SUBJOINED LETTER TA 0FA0;Z # TIBETAN SUBJOINED LETTER THA 0FA1;Z # TIBETAN SUBJOINED LETTER DA 0FA2;Z # TIBETAN SUBJOINED LETTER DHA 0FA3;Z # TIBETAN SUBJOINED LETTER NA 0FA4;Z # TIBETAN SUBJOINED LETTER PA 0FA5;Z # TIBETAN SUBJOINED LETTER PHA 0FA6;Z # TIBETAN SUBJOINED LETTER BA 0FA7;Z # TIBETAN SUBJOINED LETTER BHA 0FA8;Z # TIBETAN SUBJOINED LETTER MA 0FA9;Z # TIBETAN SUBJOINED LETTER TSA 0FAA;Z # TIBETAN SUBJOINED LETTER TSHA 0FAB;Z # TIBETAN SUBJOINED LETTER DZA 0FAC;Z # TIBETAN SUBJOINED LETTER DZHA 0FAD;Z # TIBETAN SUBJOINED LETTER WA 0FAE;Z # TIBETAN SUBJOINED LETTER ZHA 0FAF;Z # TIBETAN SUBJOINED LETTER ZA 0FB0;Z # TIBETAN SUBJOINED LETTER -A 0FB1;Z # TIBETAN SUBJOINED LETTER YA 0FB2;Z # TIBETAN SUBJOINED LETTER RA 0FB3;Z # TIBETAN SUBJOINED LETTER LA 0FB4;Z # TIBETAN SUBJOINED LETTER SHA 0FB5;Z # TIBETAN SUBJOINED LETTER SSA 0FB6;Z # TIBETAN SUBJOINED LETTER SA 0FB7;Z # TIBETAN SUBJOINED LETTER HA 0FB8;Z # TIBETAN SUBJOINED LETTER A 0FB9;Z # TIBETAN SUBJOINED LETTER KSSA 0FBA;Z # TIBETAN SUBJOINED LETTER FIXED-FORM WA 0FBB;Z # TIBETAN SUBJOINED LETTER FIXED-FORM YA 0FBC;Z # TIBETAN SUBJOINED LETTER FIXED-FORM RA 0FC6;Z # TIBETAN SYMBOL PADMA GDAN 102D;Z # MYANMAR VOWEL SIGN I 102E;Z # MYANMAR VOWEL SIGN II 102F;Z # MYANMAR VOWEL SIGN U 1030;Z # MYANMAR VOWEL SIGN UU 1032;Z # MYANMAR VOWEL SIGN AI 1033;Z # MYANMAR VOWEL SIGN MON II 1034;Z # MYANMAR VOWEL SIGN MON O 1035;Z # MYANMAR VOWEL SIGN E ABOVE 1036;Z # MYANMAR SIGN ANUSVARA 1037;Z # MYANMAR SIGN DOT BELOW 1039;Z # MYANMAR SIGN VIRAMA 103A;Z # MYANMAR SIGN ASAT 103D;Z # MYANMAR CONSONANT SIGN MEDIAL WA 103E;Z # MYANMAR CONSONANT SIGN MEDIAL HA 1058;Z # MYANMAR VOWEL SIGN VOCALIC L 1059;Z # MYANMAR VOWEL SIGN VOCALIC LL 105E;Z # MYANMAR CONSONANT SIGN MON MEDIAL NA 105F;Z # MYANMAR CONSONANT SIGN MON MEDIAL MA 1060;Z # MYANMAR CONSONANT SIGN MON MEDIAL LA 1071;Z # MYANMAR VOWEL SIGN GEBA KAREN I 1072;Z # MYANMAR VOWEL SIGN KAYAH OE 1073;Z # MYANMAR VOWEL SIGN KAYAH U 1074;Z # MYANMAR VOWEL SIGN KAYAH EE 1082;Z # MYANMAR CONSONANT SIGN SHAN MEDIAL WA 1085;Z # MYANMAR VOWEL SIGN SHAN E ABOVE 1086;Z # MYANMAR VOWEL SIGN SHAN FINAL Y 108D;Z # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE 109D;Z # MYANMAR VOWEL SIGN AITON AI 135D;Z # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK 135E;Z # ETHIOPIC COMBINING VOWEL LENGTH MARK 135F;Z # ETHIOPIC COMBINING GEMINATION MARK 1712;Z # TAGALOG VOWEL SIGN I 1713;Z # TAGALOG VOWEL SIGN U 1714;Z # TAGALOG SIGN VIRAMA 1732;Z # HANUNOO VOWEL SIGN I 1733;Z # HANUNOO VOWEL SIGN U 1734;Z # HANUNOO SIGN PAMUDPOD 1752;Z # BUHID VOWEL SIGN I 1753;Z # BUHID VOWEL SIGN U 1772;Z # TAGBANWA VOWEL SIGN I 1773;Z # TAGBANWA VOWEL SIGN U 17B4;Z # KHMER VOWEL INHERENT AQ 17B5;Z # KHMER VOWEL INHERENT AA 17B7;Z # KHMER VOWEL SIGN I 17B8;Z # KHMER VOWEL SIGN II 17B9;Z # KHMER VOWEL SIGN Y 17BA;Z # KHMER VOWEL SIGN YY 17BB;Z # KHMER VOWEL SIGN U 17BC;Z # KHMER VOWEL SIGN UU 17BD;Z # KHMER VOWEL SIGN UA 17C6;Z # KHMER SIGN NIKAHIT 17C9;Z # KHMER SIGN MUUSIKATOAN 17CA;Z # KHMER SIGN TRIISAP 17CB;Z # KHMER SIGN BANTOC 17CC;Z # KHMER SIGN ROBAT 17CD;Z # KHMER SIGN TOANDAKHIAT 17CE;Z # KHMER SIGN KAKABAT 17CF;Z # KHMER SIGN AHSDA 17D0;Z # KHMER SIGN SAMYOK SANNYA 17D1;Z # KHMER SIGN VIRIAM 17D2;Z # KHMER SIGN COENG 17D3;Z # KHMER SIGN BATHAMASAT 17DD;Z # KHMER SIGN ATTHACAN 180B;Z # MONGOLIAN FREE VARIATION SELECTOR ONE 180C;Z # MONGOLIAN FREE VARIATION SELECTOR TWO 180D;Z # MONGOLIAN FREE VARIATION SELECTOR THREE 180E;Z # MONGOLIAN VOWEL SEPARATOR 18A9;Z # MONGOLIAN LETTER ALI GALI DAGALGA 1920;Z # LIMBU VOWEL SIGN A 1921;Z # LIMBU VOWEL SIGN I 1922;Z # LIMBU VOWEL SIGN U 1927;Z # LIMBU VOWEL SIGN E 1928;Z # LIMBU VOWEL SIGN O 1932;Z # LIMBU SMALL LETTER ANUSVARA 1939;Z # LIMBU SIGN MUKPHRENG 193A;Z # LIMBU SIGN KEMPHRENG 193B;Z # LIMBU SIGN SA-I 1A17;Z # BUGINESE VOWEL SIGN I 1A18;Z # BUGINESE VOWEL SIGN U 1A1B;Z # BUGINESE VOWEL SIGN AE 1A56;Z # TAI THAM CONSONANT SIGN MEDIAL LA 1A58;Z # TAI THAM SIGN MAI KANG LAI 1A59;Z # TAI THAM CONSONANT SIGN FINAL NGA 1A5A;Z # TAI THAM CONSONANT SIGN LOW PA 1A5B;Z # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA 1A5C;Z # TAI THAM CONSONANT SIGN MA 1A5D;Z # TAI THAM CONSONANT SIGN BA 1A5E;Z # TAI THAM CONSONANT SIGN SA 1A60;Z # TAI THAM SIGN SAKOT 1A62;Z # TAI THAM VOWEL SIGN MAI SAT 1A65;Z # TAI THAM VOWEL SIGN I 1A66;Z # TAI THAM VOWEL SIGN II 1A67;Z # TAI THAM VOWEL SIGN UE 1A68;Z # TAI THAM VOWEL SIGN UUE 1A69;Z # TAI THAM VOWEL SIGN U 1A6A;Z # TAI THAM VOWEL SIGN UU 1A6B;Z # TAI THAM VOWEL SIGN O 1A6C;Z # TAI THAM VOWEL SIGN OA BELOW 1A73;Z # TAI THAM VOWEL SIGN OA ABOVE 1A74;Z # TAI THAM SIGN MAI KANG 1A75;Z # TAI THAM SIGN TONE-1 1A76;Z # TAI THAM SIGN TONE-2 1A77;Z # TAI THAM SIGN KHUEN TONE-3 1A78;Z # TAI THAM SIGN KHUEN TONE-4 1A79;Z # TAI THAM SIGN KHUEN TONE-5 1A7A;Z # TAI THAM SIGN RA HAAM 1A7B;Z # TAI THAM SIGN MAI SAM 1A7C;Z # TAI THAM SIGN KHUEN-LUE KARAN 1A7F;Z # TAI THAM COMBINING CRYPTOGRAMMIC DOT 1B00;Z # BALINESE SIGN ULU RICEM 1B01;Z # BALINESE SIGN ULU CANDRA 1B02;Z # BALINESE SIGN CECEK 1B03;Z # BALINESE SIGN SURANG 1B34;Z # BALINESE SIGN REREKAN 1B36;Z # BALINESE VOWEL SIGN ULU 1B37;Z # BALINESE VOWEL SIGN ULU SARI 1B38;Z # BALINESE VOWEL SIGN SUKU 1B39;Z # BALINESE VOWEL SIGN SUKU ILUT 1B3A;Z # BALINESE VOWEL SIGN RA REPA 1B3C;Z # BALINESE VOWEL SIGN LA LENGA 1B42;Z # BALINESE VOWEL SIGN PEPET 1B6B;Z # BALINESE MUSICAL SYMBOL COMBINING TEGEH 1B6C;Z # BALINESE MUSICAL SYMBOL COMBINING ENDEP 1B6D;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL 1B6E;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI 1B6F;Z # BALINESE MUSICAL SYMBOL COMBINING JEGOGAN 1B70;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN 1B71;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN 1B72;Z # BALINESE MUSICAL SYMBOL COMBINING BENDE 1B73;Z # BALINESE MUSICAL SYMBOL COMBINING GONG 1B80;Z # SUNDANESE SIGN PANYECEK 1B81;Z # SUNDANESE SIGN PANGLAYAR 1BA2;Z # SUNDANESE CONSONANT SIGN PANYAKRA 1BA3;Z # SUNDANESE CONSONANT SIGN PANYIKU 1BA4;Z # SUNDANESE VOWEL SIGN PANGHULU 1BA5;Z # SUNDANESE VOWEL SIGN PANYUKU 1BA8;Z # SUNDANESE VOWEL SIGN PAMEPET 1BA9;Z # SUNDANESE VOWEL SIGN PANEULEUNG 1BAB;Z # SUNDANESE SIGN VIRAMA 1BE6;Z # BATAK SIGN TOMPI 1BE8;Z # BATAK VOWEL SIGN PAKPAK E 1BE9;Z # BATAK VOWEL SIGN EE 1BED;Z # BATAK VOWEL SIGN KARO O 1BEF;Z # BATAK VOWEL SIGN U FOR SIMALUNGUN SA 1BF0;Z # BATAK CONSONANT SIGN NG 1BF1;Z # BATAK CONSONANT SIGN H 1C2C;Z # LEPCHA VOWEL SIGN E 1C2D;Z # LEPCHA CONSONANT SIGN K 1C2E;Z # LEPCHA CONSONANT SIGN M 1C2F;Z # LEPCHA CONSONANT SIGN L 1C30;Z # LEPCHA CONSONANT SIGN N 1C31;Z # LEPCHA CONSONANT SIGN P 1C32;Z # LEPCHA CONSONANT SIGN R 1C33;Z # LEPCHA CONSONANT SIGN T 1C36;Z # LEPCHA SIGN RAN 1C37;Z # LEPCHA SIGN NUKTA 1CD0;Z # VEDIC TONE KARSHANA 1CD1;Z # VEDIC TONE SHARA 1CD2;Z # VEDIC TONE PRENKHA 1CD4;Z # VEDIC SIGN YAJURVEDIC MIDLINE SVARITA 1CD5;Z # VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA 1CD6;Z # VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA 1CD7;Z # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA 1CD8;Z # VEDIC TONE CANDRA BELOW 1CD9;Z # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER 1CDA;Z # VEDIC TONE DOUBLE SVARITA 1CDB;Z # VEDIC TONE TRIPLE SVARITA 1CDC;Z # VEDIC TONE KATHAKA ANUDATTA 1CDD;Z # VEDIC TONE DOT BELOW 1CDE;Z # VEDIC TONE TWO DOTS BELOW 1CDF;Z # VEDIC TONE THREE DOTS BELOW 1CE0;Z # VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA 1CE2;Z # VEDIC SIGN VISARGA SVARITA 1CE3;Z # VEDIC SIGN VISARGA UDATTA 1CE4;Z # VEDIC SIGN REVERSED VISARGA UDATTA 1CE5;Z # VEDIC SIGN VISARGA ANUDATTA 1CE6;Z # VEDIC SIGN REVERSED VISARGA ANUDATTA 1CE7;Z # VEDIC SIGN VISARGA UDATTA WITH TAIL 1CE8;Z # VEDIC SIGN VISARGA ANUDATTA WITH TAIL 1CED;Z # VEDIC SIGN TIRYAK 1CF4;Z # VEDIC TONE CANDRA ABOVE 1DC0;Z # COMBINING DOTTED GRAVE ACCENT 1DC1;Z # COMBINING DOTTED ACUTE ACCENT 1DC2;Z # COMBINING SNAKE BELOW 1DC3;Z # COMBINING SUSPENSION MARK 1DC4;Z # COMBINING MACRON-ACUTE 1DC5;Z # COMBINING GRAVE-MACRON 1DC6;Z # COMBINING MACRON-GRAVE 1DC7;Z # COMBINING ACUTE-MACRON 1DC8;Z # COMBINING GRAVE-ACUTE-GRAVE 1DC9;Z # COMBINING ACUTE-GRAVE-ACUTE 1DCA;Z # COMBINING LATIN SMALL LETTER R BELOW 1DCB;Z # COMBINING BREVE-MACRON 1DCC;Z # COMBINING MACRON-BREVE 1DCD;Z # COMBINING DOUBLE CIRCUMFLEX ABOVE 1DCE;Z # COMBINING OGONEK ABOVE 1DCF;Z # COMBINING ZIGZAG BELOW 1DD0;Z # COMBINING IS BELOW 1DD1;Z # COMBINING UR ABOVE 1DD2;Z # COMBINING US ABOVE 1DD3;Z # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE 1DD4;Z # COMBINING LATIN SMALL LETTER AE 1DD5;Z # COMBINING LATIN SMALL LETTER AO 1DD6;Z # COMBINING LATIN SMALL LETTER AV 1DD7;Z # COMBINING LATIN SMALL LETTER C CEDILLA 1DD8;Z # COMBINING LATIN SMALL LETTER INSULAR D 1DD9;Z # COMBINING LATIN SMALL LETTER ETH 1DDA;Z # COMBINING LATIN SMALL LETTER G 1DDB;Z # COMBINING LATIN LETTER SMALL CAPITAL G 1DDC;Z # COMBINING LATIN SMALL LETTER K 1DDD;Z # COMBINING LATIN SMALL LETTER L 1DDE;Z # COMBINING LATIN LETTER SMALL CAPITAL L 1DDF;Z # COMBINING LATIN LETTER SMALL CAPITAL M 1DE0;Z # COMBINING LATIN SMALL LETTER N 1DE1;Z # COMBINING LATIN LETTER SMALL CAPITAL N 1DE2;Z # COMBINING LATIN LETTER SMALL CAPITAL R 1DE3;Z # COMBINING LATIN SMALL LETTER R ROTUNDA 1DE4;Z # COMBINING LATIN SMALL LETTER S 1DE5;Z # COMBINING LATIN SMALL LETTER LONG S 1DE6;Z # COMBINING LATIN SMALL LETTER Z 1DFC;Z # COMBINING DOUBLE INVERTED BREVE BELOW 1DFD;Z # COMBINING ALMOST EQUAL TO BELOW 1DFE;Z # COMBINING LEFT ARROWHEAD ABOVE 1DFF;Z # COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW 200B;Z # ZERO WIDTH SPACE 200C;Z # ZERO WIDTH NON-JOINER 200D;Z # ZERO WIDTH JOINER 200E;Z # LEFT-TO-RIGHT MARK 200F;Z # RIGHT-TO-LEFT MARK 2028;Z # LINE SEPARATOR 2029;Z # PARAGRAPH SEPARATOR 202A;Z # LEFT-TO-RIGHT EMBEDDING 202B;Z # RIGHT-TO-LEFT EMBEDDING 202C;Z # POP DIRECTIONAL FORMATTING 202D;Z # LEFT-TO-RIGHT OVERRIDE 202E;Z # RIGHT-TO-LEFT OVERRIDE 2060;Z # WORD JOINER 2061;Z # FUNCTION APPLICATION 2062;Z # INVISIBLE TIMES 2063;Z # INVISIBLE SEPARATOR 2064;Z # INVISIBLE PLUS 2066;Z # LEFT-TO-RIGHT ISOLATE 2067;Z # RIGHT-TO-LEFT ISOLATE 2068;Z # FIRST STRONG ISOLATE 2069;Z # POP DIRECTIONAL ISOLATE 206A;Z # INHIBIT SYMMETRIC SWAPPING 206B;Z # ACTIVATE SYMMETRIC SWAPPING 206C;Z # INHIBIT ARABIC FORM SHAPING 206D;Z # ACTIVATE ARABIC FORM SHAPING 206E;Z # NATIONAL DIGIT SHAPES 206F;Z # NOMINAL DIGIT SHAPES 20D0;Z # COMBINING LEFT HARPOON ABOVE 20D1;Z # COMBINING RIGHT HARPOON ABOVE 20D2;Z # COMBINING LONG VERTICAL LINE OVERLAY 20D3;Z # COMBINING SHORT VERTICAL LINE OVERLAY 20D4;Z # COMBINING ANTICLOCKWISE ARROW ABOVE 20D5;Z # COMBINING CLOCKWISE ARROW ABOVE 20D6;Z # COMBINING LEFT ARROW ABOVE 20D7;Z # COMBINING RIGHT ARROW ABOVE 20D8;Z # COMBINING RING OVERLAY 20D9;Z # COMBINING CLOCKWISE RING OVERLAY 20DA;Z # COMBINING ANTICLOCKWISE RING OVERLAY 20DB;Z # COMBINING THREE DOTS ABOVE 20DC;Z # COMBINING FOUR DOTS ABOVE 20DD;Z # COMBINING ENCLOSING CIRCLE 20DE;Z # COMBINING ENCLOSING SQUARE 20DF;Z # COMBINING ENCLOSING DIAMOND 20E0;Z # COMBINING ENCLOSING CIRCLE BACKSLASH 20E1;Z # COMBINING LEFT RIGHT ARROW ABOVE 20E2;Z # COMBINING ENCLOSING SCREEN 20E3;Z # COMBINING ENCLOSING KEYCAP 20E4;Z # COMBINING ENCLOSING UPWARD POINTING TRIANGLE 20E5;Z # COMBINING REVERSE SOLIDUS OVERLAY 20E6;Z # COMBINING DOUBLE VERTICAL STROKE OVERLAY 20E7;Z # COMBINING ANNUITY SYMBOL 20E8;Z # COMBINING TRIPLE UNDERDOT 20E9;Z # COMBINING WIDE BRIDGE ABOVE 20EA;Z # COMBINING LEFTWARDS ARROW OVERLAY 20EB;Z # COMBINING LONG DOUBLE SOLIDUS OVERLAY 20EC;Z # COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS 20ED;Z # COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS 20EE;Z # COMBINING LEFT ARROW BELOW 20EF;Z # COMBINING RIGHT ARROW BELOW 20F0;Z # COMBINING ASTERISK ABOVE 2CEF;Z # COPTIC COMBINING NI ABOVE 2CF0;Z # COPTIC COMBINING SPIRITUS ASPER 2CF1;Z # COPTIC COMBINING SPIRITUS LENIS 2D7F;Z # TIFINAGH CONSONANT JOINER 2DE0;Z # COMBINING CYRILLIC LETTER BE 2DE1;Z # COMBINING CYRILLIC LETTER VE 2DE2;Z # COMBINING CYRILLIC LETTER GHE 2DE3;Z # COMBINING CYRILLIC LETTER DE 2DE4;Z # COMBINING CYRILLIC LETTER ZHE 2DE5;Z # COMBINING CYRILLIC LETTER ZE 2DE6;Z # COMBINING CYRILLIC LETTER KA 2DE7;Z # COMBINING CYRILLIC LETTER EL 2DE8;Z # COMBINING CYRILLIC LETTER EM 2DE9;Z # COMBINING CYRILLIC LETTER EN 2DEA;Z # COMBINING CYRILLIC LETTER O 2DEB;Z # COMBINING CYRILLIC LETTER PE 2DEC;Z # COMBINING CYRILLIC LETTER ER 2DED;Z # COMBINING CYRILLIC LETTER ES 2DEE;Z # COMBINING CYRILLIC LETTER TE 2DEF;Z # COMBINING CYRILLIC LETTER HA 2DF0;Z # COMBINING CYRILLIC LETTER TSE 2DF1;Z # COMBINING CYRILLIC LETTER CHE 2DF2;Z # COMBINING CYRILLIC LETTER SHA 2DF3;Z # COMBINING CYRILLIC LETTER SHCHA 2DF4;Z # COMBINING CYRILLIC LETTER FITA 2DF5;Z # COMBINING CYRILLIC LETTER ES-TE 2DF6;Z # COMBINING CYRILLIC LETTER A 2DF7;Z # COMBINING CYRILLIC LETTER IE 2DF8;Z # COMBINING CYRILLIC LETTER DJERV 2DF9;Z # COMBINING CYRILLIC LETTER MONOGRAPH UK 2DFA;Z # COMBINING CYRILLIC LETTER YAT 2DFB;Z # COMBINING CYRILLIC LETTER YU 2DFC;Z # COMBINING CYRILLIC LETTER IOTIFIED A 2DFD;Z # COMBINING CYRILLIC LETTER LITTLE YUS 2DFE;Z # COMBINING CYRILLIC LETTER BIG YUS 2DFF;Z # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS 302A;ZW # IDEOGRAPHIC LEVEL TONE MARK 302B;ZW # IDEOGRAPHIC RISING TONE MARK 302C;ZW # IDEOGRAPHIC DEPARTING TONE MARK 302D;ZW # IDEOGRAPHIC ENTERING TONE MARK 3099;ZW # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK 309A;ZW # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK A66F;Z # COMBINING CYRILLIC VZMET A670;Z # COMBINING CYRILLIC TEN MILLIONS SIGN A671;Z # COMBINING CYRILLIC HUNDRED MILLIONS SIGN A672;Z # COMBINING CYRILLIC THOUSAND MILLIONS SIGN A674;Z # COMBINING CYRILLIC LETTER UKRAINIAN IE A675;Z # COMBINING CYRILLIC LETTER I A676;Z # COMBINING CYRILLIC LETTER YI A677;Z # COMBINING CYRILLIC LETTER U A678;Z # COMBINING CYRILLIC LETTER HARD SIGN A679;Z # COMBINING CYRILLIC LETTER YERU A67A;Z # COMBINING CYRILLIC LETTER SOFT SIGN A67B;Z # COMBINING CYRILLIC LETTER OMEGA A67C;Z # COMBINING CYRILLIC KAVYKA A67D;Z # COMBINING CYRILLIC PAYEROK A69F;Z # COMBINING CYRILLIC LETTER IOTIFIED E A6F0;Z # BAMUM COMBINING MARK KOQNDON A6F1;Z # BAMUM COMBINING MARK TUKWENTIS A802;Z # SYLOTI NAGRI SIGN DVISVARA A806;Z # SYLOTI NAGRI SIGN HASANTA A80B;Z # SYLOTI NAGRI SIGN ANUSVARA A825;Z # SYLOTI NAGRI VOWEL SIGN U A826;Z # SYLOTI NAGRI VOWEL SIGN E A8C4;Z # SAURASHTRA SIGN VIRAMA A8E0;Z # COMBINING DEVANAGARI DIGIT ZERO A8E1;Z # COMBINING DEVANAGARI DIGIT ONE A8E2;Z # COMBINING DEVANAGARI DIGIT TWO A8E3;Z # COMBINING DEVANAGARI DIGIT THREE A8E4;Z # COMBINING DEVANAGARI DIGIT FOUR A8E5;Z # COMBINING DEVANAGARI DIGIT FIVE A8E6;Z # COMBINING DEVANAGARI DIGIT SIX A8E7;Z # COMBINING DEVANAGARI DIGIT SEVEN A8E8;Z # COMBINING DEVANAGARI DIGIT EIGHT A8E9;Z # COMBINING DEVANAGARI DIGIT NINE A8EA;Z # COMBINING DEVANAGARI LETTER A A8EB;Z # COMBINING DEVANAGARI LETTER U A8EC;Z # COMBINING DEVANAGARI LETTER KA A8ED;Z # COMBINING DEVANAGARI LETTER NA A8EE;Z # COMBINING DEVANAGARI LETTER PA A8EF;Z # COMBINING DEVANAGARI LETTER RA A8F0;Z # COMBINING DEVANAGARI LETTER VI A8F1;Z # COMBINING DEVANAGARI SIGN AVAGRAHA A926;Z # KAYAH LI VOWEL UE A927;Z # KAYAH LI VOWEL E A928;Z # KAYAH LI VOWEL U A929;Z # KAYAH LI VOWEL EE A92A;Z # KAYAH LI VOWEL O A92B;Z # KAYAH LI TONE PLOPHU A92C;Z # KAYAH LI TONE CALYA A92D;Z # KAYAH LI TONE CALYA PLOPHU A947;Z # REJANG VOWEL SIGN I A948;Z # REJANG VOWEL SIGN U A949;Z # REJANG VOWEL SIGN E A94A;Z # REJANG VOWEL SIGN AI A94B;Z # REJANG VOWEL SIGN O A94C;Z # REJANG VOWEL SIGN AU A94D;Z # REJANG VOWEL SIGN EU A94E;Z # REJANG VOWEL SIGN EA A94F;Z # REJANG CONSONANT SIGN NG A950;Z # REJANG CONSONANT SIGN N A951;Z # REJANG CONSONANT SIGN R A980;Z # JAVANESE SIGN PANYANGGA A981;Z # JAVANESE SIGN CECAK A982;Z # JAVANESE SIGN LAYAR A9B3;Z # JAVANESE SIGN CECAK TELU A9B6;Z # JAVANESE VOWEL SIGN WULU A9B7;Z # JAVANESE VOWEL SIGN WULU MELIK A9B8;Z # JAVANESE VOWEL SIGN SUKU A9B9;Z # JAVANESE VOWEL SIGN SUKU MENDUT A9BC;Z # JAVANESE VOWEL SIGN PEPET AA29;Z # CHAM VOWEL SIGN AA AA2A;Z # CHAM VOWEL SIGN I AA2B;Z # CHAM VOWEL SIGN II AA2C;Z # CHAM VOWEL SIGN EI AA2D;Z # CHAM VOWEL SIGN U AA2E;Z # CHAM VOWEL SIGN OE AA31;Z # CHAM VOWEL SIGN AU AA32;Z # CHAM VOWEL SIGN UE AA35;Z # CHAM CONSONANT SIGN LA AA36;Z # CHAM CONSONANT SIGN WA AA43;Z # CHAM CONSONANT SIGN FINAL NG AA4C;Z # CHAM CONSONANT SIGN FINAL M AAB0;Z # TAI VIET MAI KANG AAB2;Z # TAI VIET VOWEL I AAB3;Z # TAI VIET VOWEL UE AAB4;Z # TAI VIET VOWEL U AAB7;Z # TAI VIET MAI KHIT AAB8;Z # TAI VIET VOWEL IA AABE;Z # TAI VIET VOWEL AM AABF;Z # TAI VIET TONE MAI EK AAC1;Z # TAI VIET TONE MAI THO AAEC;Z # MEETEI MAYEK VOWEL SIGN UU AAED;Z # MEETEI MAYEK VOWEL SIGN AAI AAF6;Z # MEETEI MAYEK VIRAMA ABE5;Z # MEETEI MAYEK VOWEL SIGN ANAP ABE8;Z # MEETEI MAYEK VOWEL SIGN UNAP ABED;Z # MEETEI MAYEK APUN IYEK FB1E;Z # HEBREW POINT JUDEO-SPANISH VARIKA FE00;ZA # VARIATION SELECTOR-1 FE01;ZA # VARIATION SELECTOR-2 FE02;ZA # VARIATION SELECTOR-3 FE03;ZA # VARIATION SELECTOR-4 FE04;ZA # VARIATION SELECTOR-5 FE05;ZA # VARIATION SELECTOR-6 FE06;ZA # VARIATION SELECTOR-7 FE07;ZA # VARIATION SELECTOR-8 FE08;ZA # VARIATION SELECTOR-9 FE09;ZA # VARIATION SELECTOR-10 FE0A;ZA # VARIATION SELECTOR-11 FE0B;ZA # VARIATION SELECTOR-12 FE0C;ZA # VARIATION SELECTOR-13 FE0D;ZA # VARIATION SELECTOR-14 FE0E;ZA # VARIATION SELECTOR-15 FE0F;ZA # VARIATION SELECTOR-16 FE20;Z # COMBINING LIGATURE LEFT HALF FE21;Z # COMBINING LIGATURE RIGHT HALF FE22;Z # COMBINING DOUBLE TILDE LEFT HALF FE23;Z # COMBINING DOUBLE TILDE RIGHT HALF FE24;Z # COMBINING MACRON LEFT HALF FE25;Z # COMBINING MACRON RIGHT HALF FE26;Z # COMBINING CONJOINING MACRON FEFF;Z # ZERO WIDTH NO-BREAK SPACE FFF9;Z # INTERLINEAR ANNOTATION ANCHOR FFFA;Z # INTERLINEAR ANNOTATION SEPARATOR FFFB;Z # INTERLINEAR ANNOTATION TERMINATOR 101FD;Z # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE 10A01;Z # KHAROSHTHI VOWEL SIGN I 10A02;Z # KHAROSHTHI VOWEL SIGN U 10A03;Z # KHAROSHTHI VOWEL SIGN VOCALIC R 10A05;Z # KHAROSHTHI VOWEL SIGN E 10A06;Z # KHAROSHTHI VOWEL SIGN O 10A0C;Z # KHAROSHTHI VOWEL LENGTH MARK 10A0D;Z # KHAROSHTHI SIGN DOUBLE RING BELOW 10A0E;Z # KHAROSHTHI SIGN ANUSVARA 10A0F;Z # KHAROSHTHI SIGN VISARGA 10A38;Z # KHAROSHTHI SIGN BAR ABOVE 10A39;Z # KHAROSHTHI SIGN CAUDA 10A3A;Z # KHAROSHTHI SIGN DOT BELOW 10A3F;Z # KHAROSHTHI VIRAMA 11001;Z # BRAHMI SIGN ANUSVARA 11038;Z # BRAHMI VOWEL SIGN AA 11039;Z # BRAHMI VOWEL SIGN BHATTIPROLU AA 1103A;Z # BRAHMI VOWEL SIGN I 1103B;Z # BRAHMI VOWEL SIGN II 1103C;Z # BRAHMI VOWEL SIGN U 1103D;Z # BRAHMI VOWEL SIGN UU 1103E;Z # BRAHMI VOWEL SIGN VOCALIC R 1103F;Z # BRAHMI VOWEL SIGN VOCALIC RR 11040;Z # BRAHMI VOWEL SIGN VOCALIC L 11041;Z # BRAHMI VOWEL SIGN VOCALIC LL 11042;Z # BRAHMI VOWEL SIGN E 11043;Z # BRAHMI VOWEL SIGN AI 11044;Z # BRAHMI VOWEL SIGN O 11045;Z # BRAHMI VOWEL SIGN AU 11046;Z # BRAHMI VIRAMA 11080;Z # KAITHI SIGN CANDRABINDU 11081;Z # KAITHI SIGN ANUSVARA 110B3;Z # KAITHI VOWEL SIGN U 110B4;Z # KAITHI VOWEL SIGN UU 110B5;Z # KAITHI VOWEL SIGN E 110B6;Z # KAITHI VOWEL SIGN AI 110B9;Z # KAITHI SIGN VIRAMA 110BA;Z # KAITHI SIGN NUKTA 110BD;Z # KAITHI NUMBER SIGN 11100;Z # CHAKMA SIGN CANDRABINDU 11101;Z # CHAKMA SIGN ANUSVARA 11102;Z # CHAKMA SIGN VISARGA 11127;Z # CHAKMA VOWEL SIGN A 11128;Z # CHAKMA VOWEL SIGN I 11129;Z # CHAKMA VOWEL SIGN II 1112A;Z # CHAKMA VOWEL SIGN U 1112B;Z # CHAKMA VOWEL SIGN UU 1112D;Z # CHAKMA VOWEL SIGN AI 1112E;Z # CHAKMA VOWEL SIGN O 1112F;Z # CHAKMA VOWEL SIGN AU 11130;Z # CHAKMA VOWEL SIGN OI 11131;Z # CHAKMA O MARK 11132;Z # CHAKMA AU MARK 11133;Z # CHAKMA VIRAMA 11134;Z # CHAKMA MAAYYAA 11180;Z # SHARADA SIGN CANDRABINDU 11181;Z # SHARADA SIGN ANUSVARA 111B6;Z # SHARADA VOWEL SIGN U 111B7;Z # SHARADA VOWEL SIGN UU 111B8;Z # SHARADA VOWEL SIGN VOCALIC R 111B9;Z # SHARADA VOWEL SIGN VOCALIC RR 111BA;Z # SHARADA VOWEL SIGN VOCALIC L 111BB;Z # SHARADA VOWEL SIGN VOCALIC LL 111BC;Z # SHARADA VOWEL SIGN E 111BD;Z # SHARADA VOWEL SIGN AI 111BE;Z # SHARADA VOWEL SIGN O 116AB;Z # TAKRI SIGN ANUSVARA 116AD;Z # TAKRI VOWEL SIGN AA 116B0;Z # TAKRI VOWEL SIGN U 116B1;Z # TAKRI VOWEL SIGN UU 116B2;Z # TAKRI VOWEL SIGN E 116B3;Z # TAKRI VOWEL SIGN AI 116B4;Z # TAKRI VOWEL SIGN O 116B5;Z # TAKRI VOWEL SIGN AU 116B7;Z # TAKRI SIGN NUKTA 16F8F;Z # MIAO TONE RIGHT 16F90;Z # MIAO TONE TOP RIGHT 16F91;Z # MIAO TONE ABOVE 16F92;Z # MIAO TONE BELOW 1D167;Z # MUSICAL SYMBOL COMBINING TREMOLO-1 1D168;Z # MUSICAL SYMBOL COMBINING TREMOLO-2 1D169;Z # MUSICAL SYMBOL COMBINING TREMOLO-3 1D173;Z # MUSICAL SYMBOL BEGIN BEAM 1D174;Z # MUSICAL SYMBOL END BEAM 1D175;Z # MUSICAL SYMBOL BEGIN TIE 1D176;Z # MUSICAL SYMBOL END TIE 1D177;Z # MUSICAL SYMBOL BEGIN SLUR 1D178;Z # MUSICAL SYMBOL END SLUR 1D179;Z # MUSICAL SYMBOL BEGIN PHRASE 1D17A;Z # MUSICAL SYMBOL END PHRASE 1D17B;Z # MUSICAL SYMBOL COMBINING ACCENT 1D17C;Z # MUSICAL SYMBOL COMBINING STACCATO 1D17D;Z # MUSICAL SYMBOL COMBINING TENUTO 1D17E;Z # MUSICAL SYMBOL COMBINING STACCATISSIMO 1D17F;Z # MUSICAL SYMBOL COMBINING MARCATO 1D180;Z # MUSICAL SYMBOL COMBINING MARCATO-STACCATO 1D181;Z # MUSICAL SYMBOL COMBINING ACCENT-STACCATO 1D182;Z # MUSICAL SYMBOL COMBINING LOURE 1D185;Z # MUSICAL SYMBOL COMBINING DOIT 1D186;Z # MUSICAL SYMBOL COMBINING RIP 1D187;Z # MUSICAL SYMBOL COMBINING FLIP 1D188;Z # MUSICAL SYMBOL COMBINING SMEAR 1D189;Z # MUSICAL SYMBOL COMBINING BEND 1D18A;Z # MUSICAL SYMBOL COMBINING DOUBLE TONGUE 1D18B;Z # MUSICAL SYMBOL COMBINING TRIPLE TONGUE 1D1AA;Z # MUSICAL SYMBOL COMBINING DOWN BOW 1D1AB;Z # MUSICAL SYMBOL COMBINING UP BOW 1D1AC;Z # MUSICAL SYMBOL COMBINING HARMONIC 1D1AD;Z # MUSICAL SYMBOL COMBINING SNAP PIZZICATO 1D242;Z # COMBINING GREEK MUSICAL TRISEME 1D243;Z # COMBINING GREEK MUSICAL TETRASEME 1D244;Z # COMBINING GREEK MUSICAL PENTASEME E0001;Z # LANGUAGE TAG E0020;Z # TAG SPACE E0021;Z # TAG EXCLAMATION MARK E0022;Z # TAG QUOTATION MARK E0023;Z # TAG NUMBER SIGN E0024;Z # TAG DOLLAR SIGN E0025;Z # TAG PERCENT SIGN E0026;Z # TAG AMPERSAND E0027;Z # TAG APOSTROPHE E0028;Z # TAG LEFT PARENTHESIS E0029;Z # TAG RIGHT PARENTHESIS E002A;Z # TAG ASTERISK E002B;Z # TAG PLUS SIGN E002C;Z # TAG COMMA E002D;Z # TAG HYPHEN-MINUS E002E;Z # TAG FULL STOP E002F;Z # TAG SOLIDUS E0030;Z # TAG DIGIT ZERO E0031;Z # TAG DIGIT ONE E0032;Z # TAG DIGIT TWO E0033;Z # TAG DIGIT THREE E0034;Z # TAG DIGIT FOUR E0035;Z # TAG DIGIT FIVE E0036;Z # TAG DIGIT SIX E0037;Z # TAG DIGIT SEVEN E0038;Z # TAG DIGIT EIGHT E0039;Z # TAG DIGIT NINE E003A;Z # TAG COLON E003B;Z # TAG SEMICOLON E003C;Z # TAG LESS-THAN SIGN E003D;Z # TAG EQUALS SIGN E003E;Z # TAG GREATER-THAN SIGN E003F;Z # TAG QUESTION MARK E0040;Z # TAG COMMERCIAL AT E0041;Z # TAG LATIN CAPITAL LETTER A E0042;Z # TAG LATIN CAPITAL LETTER B E0043;Z # TAG LATIN CAPITAL LETTER C E0044;Z # TAG LATIN CAPITAL LETTER D E0045;Z # TAG LATIN CAPITAL LETTER E E0046;Z # TAG LATIN CAPITAL LETTER F E0047;Z # TAG LATIN CAPITAL LETTER G E0048;Z # TAG LATIN CAPITAL LETTER H E0049;Z # TAG LATIN CAPITAL LETTER I E004A;Z # TAG LATIN CAPITAL LETTER J E004B;Z # TAG LATIN CAPITAL LETTER K E004C;Z # TAG LATIN CAPITAL LETTER L E004D;Z # TAG LATIN CAPITAL LETTER M E004E;Z # TAG LATIN CAPITAL LETTER N E004F;Z # TAG LATIN CAPITAL LETTER O E0050;Z # TAG LATIN CAPITAL LETTER P E0051;Z # TAG LATIN CAPITAL LETTER Q E0052;Z # TAG LATIN CAPITAL LETTER R E0053;Z # TAG LATIN CAPITAL LETTER S E0054;Z # TAG LATIN CAPITAL LETTER T E0055;Z # TAG LATIN CAPITAL LETTER U E0056;Z # TAG LATIN CAPITAL LETTER V E0057;Z # TAG LATIN CAPITAL LETTER W E0058;Z # TAG LATIN CAPITAL LETTER X E0059;Z # TAG LATIN CAPITAL LETTER Y E005A;Z # TAG LATIN CAPITAL LETTER Z E005B;Z # TAG LEFT SQUARE BRACKET E005C;Z # TAG REVERSE SOLIDUS E005D;Z # TAG RIGHT SQUARE BRACKET E005E;Z # TAG CIRCUMFLEX ACCENT E005F;Z # TAG LOW LINE E0060;Z # TAG GRAVE ACCENT E0061;Z # TAG LATIN SMALL LETTER A E0062;Z # TAG LATIN SMALL LETTER B E0063;Z # TAG LATIN SMALL LETTER C E0064;Z # TAG LATIN SMALL LETTER D E0065;Z # TAG LATIN SMALL LETTER E E0066;Z # TAG LATIN SMALL LETTER F E0067;Z # TAG LATIN SMALL LETTER G E0068;Z # TAG LATIN SMALL LETTER H E0069;Z # TAG LATIN SMALL LETTER I E006A;Z # TAG LATIN SMALL LETTER J E006B;Z # TAG LATIN SMALL LETTER K E006C;Z # TAG LATIN SMALL LETTER L E006D;Z # TAG LATIN SMALL LETTER M E006E;Z # TAG LATIN SMALL LETTER N E006F;Z # TAG LATIN SMALL LETTER O E0070;Z # TAG LATIN SMALL LETTER P E0071;Z # TAG LATIN SMALL LETTER Q E0072;Z # TAG LATIN SMALL LETTER R E0073;Z # TAG LATIN SMALL LETTER S E0074;Z # TAG LATIN SMALL LETTER T E0075;Z # TAG LATIN SMALL LETTER U E0076;Z # TAG LATIN SMALL LETTER V E0077;Z # TAG LATIN SMALL LETTER W E0078;Z # TAG LATIN SMALL LETTER X E0079;Z # TAG LATIN SMALL LETTER Y E007A;Z # TAG LATIN SMALL LETTER Z E007B;Z # TAG LEFT CURLY BRACKET E007C;Z # TAG VERTICAL LINE E007D;Z # TAG RIGHT CURLY BRACKET E007E;Z # TAG TILDE E007F;Z # CANCEL TAG E0100;ZA # VARIATION SELECTOR-17 E0101;ZA # VARIATION SELECTOR-18 E0102;ZA # VARIATION SELECTOR-19 E0103;ZA # VARIATION SELECTOR-20 E0104;ZA # VARIATION SELECTOR-21 E0105;ZA # VARIATION SELECTOR-22 E0106;ZA # VARIATION SELECTOR-23 E0107;ZA # VARIATION SELECTOR-24 E0108;ZA # VARIATION SELECTOR-25 E0109;ZA # VARIATION SELECTOR-26 E010A;ZA # VARIATION SELECTOR-27 E010B;ZA # VARIATION SELECTOR-28 E010C;ZA # VARIATION SELECTOR-29 E010D;ZA # VARIATION SELECTOR-30 E010E;ZA # VARIATION SELECTOR-31 E010F;ZA # VARIATION SELECTOR-32 E0110;ZA # VARIATION SELECTOR-33 E0111;ZA # VARIATION SELECTOR-34 E0112;ZA # VARIATION SELECTOR-35 E0113;ZA # VARIATION SELECTOR-36 E0114;ZA # VARIATION SELECTOR-37 E0115;ZA # VARIATION SELECTOR-38 E0116;ZA # VARIATION SELECTOR-39 E0117;ZA # VARIATION SELECTOR-40 E0118;ZA # VARIATION SELECTOR-41 E0119;ZA # VARIATION SELECTOR-42 E011A;ZA # VARIATION SELECTOR-43 E011B;ZA # VARIATION SELECTOR-44 E011C;ZA # VARIATION SELECTOR-45 E011D;ZA # VARIATION SELECTOR-46 E011E;ZA # VARIATION SELECTOR-47 E011F;ZA # VARIATION SELECTOR-48 E0120;ZA # VARIATION SELECTOR-49 E0121;ZA # VARIATION SELECTOR-50 E0122;ZA # VARIATION SELECTOR-51 E0123;ZA # VARIATION SELECTOR-52 E0124;ZA # VARIATION SELECTOR-53 E0125;ZA # VARIATION SELECTOR-54 E0126;ZA # VARIATION SELECTOR-55 E0127;ZA # VARIATION SELECTOR-56 E0128;ZA # VARIATION SELECTOR-57 E0129;ZA # VARIATION SELECTOR-58 E012A;ZA # VARIATION SELECTOR-59 E012B;ZA # VARIATION SELECTOR-60 E012C;ZA # VARIATION SELECTOR-61 E012D;ZA # VARIATION SELECTOR-62 E012E;ZA # VARIATION SELECTOR-63 E012F;ZA # VARIATION SELECTOR-64 E0130;ZA # VARIATION SELECTOR-65 E0131;ZA # VARIATION SELECTOR-66 E0132;ZA # VARIATION SELECTOR-67 E0133;ZA # VARIATION SELECTOR-68 E0134;ZA # VARIATION SELECTOR-69 E0135;ZA # VARIATION SELECTOR-70 E0136;ZA # VARIATION SELECTOR-71 E0137;ZA # VARIATION SELECTOR-72 E0138;ZA # VARIATION SELECTOR-73 E0139;ZA # VARIATION SELECTOR-74 E013A;ZA # VARIATION SELECTOR-75 E013B;ZA # VARIATION SELECTOR-76 E013C;ZA # VARIATION SELECTOR-77 E013D;ZA # VARIATION SELECTOR-78 E013E;ZA # VARIATION SELECTOR-79 E013F;ZA # VARIATION SELECTOR-80 E0140;ZA # VARIATION SELECTOR-81 E0141;ZA # VARIATION SELECTOR-82 E0142;ZA # VARIATION SELECTOR-83 E0143;ZA # VARIATION SELECTOR-84 E0144;ZA # VARIATION SELECTOR-85 E0145;ZA # VARIATION SELECTOR-86 E0146;ZA # VARIATION SELECTOR-87 E0147;ZA # VARIATION SELECTOR-88 E0148;ZA # VARIATION SELECTOR-89 E0149;ZA # VARIATION SELECTOR-90 E014A;ZA # VARIATION SELECTOR-91 E014B;ZA # VARIATION SELECTOR-92 E014C;ZA # VARIATION SELECTOR-93 E014D;ZA # VARIATION SELECTOR-94 E014E;ZA # VARIATION SELECTOR-95 E014F;ZA # VARIATION SELECTOR-96 E0150;ZA # VARIATION SELECTOR-97 E0151;ZA # VARIATION SELECTOR-98 E0152;ZA # VARIATION SELECTOR-99 E0153;ZA # VARIATION SELECTOR-100 E0154;ZA # VARIATION SELECTOR-101 E0155;ZA # VARIATION SELECTOR-102 E0156;ZA # VARIATION SELECTOR-103 E0157;ZA # VARIATION SELECTOR-104 E0158;ZA # VARIATION SELECTOR-105 E0159;ZA # VARIATION SELECTOR-106 E015A;ZA # VARIATION SELECTOR-107 E015B;ZA # VARIATION SELECTOR-108 E015C;ZA # VARIATION SELECTOR-109 E015D;ZA # VARIATION SELECTOR-110 E015E;ZA # VARIATION SELECTOR-111 E015F;ZA # VARIATION SELECTOR-112 E0160;ZA # VARIATION SELECTOR-113 E0161;ZA # VARIATION SELECTOR-114 E0162;ZA # VARIATION SELECTOR-115 E0163;ZA # VARIATION SELECTOR-116 E0164;ZA # VARIATION SELECTOR-117 E0165;ZA # VARIATION SELECTOR-118 E0166;ZA # VARIATION SELECTOR-119 E0167;ZA # VARIATION SELECTOR-120 E0168;ZA # VARIATION SELECTOR-121 E0169;ZA # VARIATION SELECTOR-122 E016A;ZA # VARIATION SELECTOR-123 E016B;ZA # VARIATION SELECTOR-124 E016C;ZA # VARIATION SELECTOR-125 E016D;ZA # VARIATION SELECTOR-126 E016E;ZA # VARIATION SELECTOR-127 E016F;ZA # VARIATION SELECTOR-128 E0170;ZA # VARIATION SELECTOR-129 E0171;ZA # VARIATION SELECTOR-130 E0172;ZA # VARIATION SELECTOR-131 E0173;ZA # VARIATION SELECTOR-132 E0174;ZA # VARIATION SELECTOR-133 E0175;ZA # VARIATION SELECTOR-134 E0176;ZA # VARIATION SELECTOR-135 E0177;ZA # VARIATION SELECTOR-136 E0178;ZA # VARIATION SELECTOR-137 E0179;ZA # VARIATION SELECTOR-138 E017A;ZA # VARIATION SELECTOR-139 E017B;ZA # VARIATION SELECTOR-140 E017C;ZA # VARIATION SELECTOR-141 E017D;ZA # VARIATION SELECTOR-142 E017E;ZA # VARIATION SELECTOR-143 E017F;ZA # VARIATION SELECTOR-144 E0180;ZA # VARIATION SELECTOR-145 E0181;ZA # VARIATION SELECTOR-146 E0182;ZA # VARIATION SELECTOR-147 E0183;ZA # VARIATION SELECTOR-148 E0184;ZA # VARIATION SELECTOR-149 E0185;ZA # VARIATION SELECTOR-150 E0186;ZA # VARIATION SELECTOR-151 E0187;ZA # VARIATION SELECTOR-152 E0188;ZA # VARIATION SELECTOR-153 E0189;ZA # VARIATION SELECTOR-154 E018A;ZA # VARIATION SELECTOR-155 E018B;ZA # VARIATION SELECTOR-156 E018C;ZA # VARIATION SELECTOR-157 E018D;ZA # VARIATION SELECTOR-158 E018E;ZA # VARIATION SELECTOR-159 E018F;ZA # VARIATION SELECTOR-160 E0190;ZA # VARIATION SELECTOR-161 E0191;ZA # VARIATION SELECTOR-162 E0192;ZA # VARIATION SELECTOR-163 E0193;ZA # VARIATION SELECTOR-164 E0194;ZA # VARIATION SELECTOR-165 E0195;ZA # VARIATION SELECTOR-166 E0196;ZA # VARIATION SELECTOR-167 E0197;ZA # VARIATION SELECTOR-168 E0198;ZA # VARIATION SELECTOR-169 E0199;ZA # VARIATION SELECTOR-170 E019A;ZA # VARIATION SELECTOR-171 E019B;ZA # VARIATION SELECTOR-172 E019C;ZA # VARIATION SELECTOR-173 E019D;ZA # VARIATION SELECTOR-174 E019E;ZA # VARIATION SELECTOR-175 E019F;ZA # VARIATION SELECTOR-176 E01A0;ZA # VARIATION SELECTOR-177 E01A1;ZA # VARIATION SELECTOR-178 E01A2;ZA # VARIATION SELECTOR-179 E01A3;ZA # VARIATION SELECTOR-180 E01A4;ZA # VARIATION SELECTOR-181 E01A5;ZA # VARIATION SELECTOR-182 E01A6;ZA # VARIATION SELECTOR-183 E01A7;ZA # VARIATION SELECTOR-184 E01A8;ZA # VARIATION SELECTOR-185 E01A9;ZA # VARIATION SELECTOR-186 E01AA;ZA # VARIATION SELECTOR-187 E01AB;ZA # VARIATION SELECTOR-188 E01AC;ZA # VARIATION SELECTOR-189 E01AD;ZA # VARIATION SELECTOR-190 E01AE;ZA # VARIATION SELECTOR-191 E01AF;ZA # VARIATION SELECTOR-192 E01B0;ZA # VARIATION SELECTOR-193 E01B1;ZA # VARIATION SELECTOR-194 E01B2;ZA # VARIATION SELECTOR-195 E01B3;ZA # VARIATION SELECTOR-196 E01B4;ZA # VARIATION SELECTOR-197 E01B5;ZA # VARIATION SELECTOR-198 E01B6;ZA # VARIATION SELECTOR-199 E01B7;ZA # VARIATION SELECTOR-200 E01B8;ZA # VARIATION SELECTOR-201 E01B9;ZA # VARIATION SELECTOR-202 E01BA;ZA # VARIATION SELECTOR-203 E01BB;ZA # VARIATION SELECTOR-204 E01BC;ZA # VARIATION SELECTOR-205 E01BD;ZA # VARIATION SELECTOR-206 E01BE;ZA # VARIATION SELECTOR-207 E01BF;ZA # VARIATION SELECTOR-208 E01C0;ZA # VARIATION SELECTOR-209 E01C1;ZA # VARIATION SELECTOR-210 E01C2;ZA # VARIATION SELECTOR-211 E01C3;ZA # VARIATION SELECTOR-212 E01C4;ZA # VARIATION SELECTOR-213 E01C5;ZA # VARIATION SELECTOR-214 E01C6;ZA # VARIATION SELECTOR-215 E01C7;ZA # VARIATION SELECTOR-216 E01C8;ZA # VARIATION SELECTOR-217 E01C9;ZA # VARIATION SELECTOR-218 E01CA;ZA # VARIATION SELECTOR-219 E01CB;ZA # VARIATION SELECTOR-220 E01CC;ZA # VARIATION SELECTOR-221 E01CD;ZA # VARIATION SELECTOR-222 E01CE;ZA # VARIATION SELECTOR-223 E01CF;ZA # VARIATION SELECTOR-224 E01D0;ZA # VARIATION SELECTOR-225 E01D1;ZA # VARIATION SELECTOR-226 E01D2;ZA # VARIATION SELECTOR-227 E01D3;ZA # VARIATION SELECTOR-228 E01D4;ZA # VARIATION SELECTOR-229 E01D5;ZA # VARIATION SELECTOR-230 E01D6;ZA # VARIATION SELECTOR-231 E01D7;ZA # VARIATION SELECTOR-232 E01D8;ZA # VARIATION SELECTOR-233 E01D9;ZA # VARIATION SELECTOR-234 E01DA;ZA # VARIATION SELECTOR-235 E01DB;ZA # VARIATION SELECTOR-236 E01DC;ZA # VARIATION SELECTOR-237 E01DD;ZA # VARIATION SELECTOR-238 E01DE;ZA # VARIATION SELECTOR-239 E01DF;ZA # VARIATION SELECTOR-240 E01E0;ZA # VARIATION SELECTOR-241 E01E1;ZA # VARIATION SELECTOR-242 E01E2;ZA # VARIATION SELECTOR-243 E01E3;ZA # VARIATION SELECTOR-244 E01E4;ZA # VARIATION SELECTOR-245 E01E5;ZA # VARIATION SELECTOR-246 E01E6;ZA # VARIATION SELECTOR-247 E01E7;ZA # VARIATION SELECTOR-248 E01E8;ZA # VARIATION SELECTOR-249 E01E9;ZA # VARIATION SELECTOR-250 E01EA;ZA # VARIATION SELECTOR-251 E01EB;ZA # VARIATION SELECTOR-252 E01EC;ZA # VARIATION SELECTOR-253 E01ED;ZA # VARIATION SELECTOR-254 E01EE;ZA # VARIATION SELECTOR-255 E01EF;ZA # VARIATION SELECTOR-256 sombok-2.3.1/data/LineBreak-6.0.0.custom0000664000076400007640000000014212221425415014375 00000000000000## SA characters may be categorized by their Grapheme_Cluster_Break properties. ## See [UAX #29]. sombok-2.3.1/data/GraphemeBreakProperty-6.3.0.custom0000664000076400007640000021471112221425423017016 000000000000000904 ; OtherLetter # Lo DEVANAGARI LETTER SHORT A 0905 ; OtherLetter # Lo DEVANAGARI LETTER A 0906 ; OtherLetter # Lo DEVANAGARI LETTER AA 0907 ; OtherLetter # Lo DEVANAGARI LETTER I 0908 ; OtherLetter # Lo DEVANAGARI LETTER II 0909 ; OtherLetter # Lo DEVANAGARI LETTER U 090A ; OtherLetter # Lo DEVANAGARI LETTER UU 090B ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC R 090C ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC L 090D ; OtherLetter # Lo DEVANAGARI LETTER CANDRA E 090E ; OtherLetter # Lo DEVANAGARI LETTER SHORT E 090F ; OtherLetter # Lo DEVANAGARI LETTER E 0910 ; OtherLetter # Lo DEVANAGARI LETTER AI 0911 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA O 0912 ; OtherLetter # Lo DEVANAGARI LETTER SHORT O 0913 ; OtherLetter # Lo DEVANAGARI LETTER O 0914 ; OtherLetter # Lo DEVANAGARI LETTER AU 0915 ; OtherLetter # Lo DEVANAGARI LETTER KA 0916 ; OtherLetter # Lo DEVANAGARI LETTER KHA 0917 ; OtherLetter # Lo DEVANAGARI LETTER GA 0918 ; OtherLetter # Lo DEVANAGARI LETTER GHA 0919 ; OtherLetter # Lo DEVANAGARI LETTER NGA 091A ; OtherLetter # Lo DEVANAGARI LETTER CA 091B ; OtherLetter # Lo DEVANAGARI LETTER CHA 091C ; OtherLetter # Lo DEVANAGARI LETTER JA 091D ; OtherLetter # Lo DEVANAGARI LETTER JHA 091E ; OtherLetter # Lo DEVANAGARI LETTER NYA 091F ; OtherLetter # Lo DEVANAGARI LETTER TTA 0920 ; OtherLetter # Lo DEVANAGARI LETTER TTHA 0921 ; OtherLetter # Lo DEVANAGARI LETTER DDA 0922 ; OtherLetter # Lo DEVANAGARI LETTER DDHA 0923 ; OtherLetter # Lo DEVANAGARI LETTER NNA 0924 ; OtherLetter # Lo DEVANAGARI LETTER TA 0925 ; OtherLetter # Lo DEVANAGARI LETTER THA 0926 ; OtherLetter # Lo DEVANAGARI LETTER DA 0927 ; OtherLetter # Lo DEVANAGARI LETTER DHA 0928 ; OtherLetter # Lo DEVANAGARI LETTER NA 0929 ; OtherLetter # Lo DEVANAGARI LETTER NNNA 092A ; OtherLetter # Lo DEVANAGARI LETTER PA 092B ; OtherLetter # Lo DEVANAGARI LETTER PHA 092C ; OtherLetter # Lo DEVANAGARI LETTER BA 092D ; OtherLetter # Lo DEVANAGARI LETTER BHA 092E ; OtherLetter # Lo DEVANAGARI LETTER MA 092F ; OtherLetter # Lo DEVANAGARI LETTER YA 0930 ; OtherLetter # Lo DEVANAGARI LETTER RA 0931 ; OtherLetter # Lo DEVANAGARI LETTER RRA 0932 ; OtherLetter # Lo DEVANAGARI LETTER LA 0933 ; OtherLetter # Lo DEVANAGARI LETTER LLA 0934 ; OtherLetter # Lo DEVANAGARI LETTER LLLA 0935 ; OtherLetter # Lo DEVANAGARI LETTER VA 0936 ; OtherLetter # Lo DEVANAGARI LETTER SHA 0937 ; OtherLetter # Lo DEVANAGARI LETTER SSA 0938 ; OtherLetter # Lo DEVANAGARI LETTER SA 0939 ; OtherLetter # Lo DEVANAGARI LETTER HA 093D ; OtherLetter # Lo DEVANAGARI SIGN AVAGRAHA 094D ; Virama # Mn DEVANAGARI SIGN VIRAMA 0950 ; OtherLetter # Lo DEVANAGARI OM 0958 ; OtherLetter # Lo DEVANAGARI LETTER QA 0959 ; OtherLetter # Lo DEVANAGARI LETTER KHHA 095A ; OtherLetter # Lo DEVANAGARI LETTER GHHA 095B ; OtherLetter # Lo DEVANAGARI LETTER ZA 095C ; OtherLetter # Lo DEVANAGARI LETTER DDDHA 095D ; OtherLetter # Lo DEVANAGARI LETTER RHA 095E ; OtherLetter # Lo DEVANAGARI LETTER FA 095F ; OtherLetter # Lo DEVANAGARI LETTER YYA 0960 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC RR 0961 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC LL 0971 ; OtherLetter # Lm DEVANAGARI SIGN HIGH SPACING DOT 0972 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA A 0973 ; OtherLetter # Lo DEVANAGARI LETTER OE 0974 ; OtherLetter # Lo DEVANAGARI LETTER OOE 0975 ; OtherLetter # Lo DEVANAGARI LETTER AW 0976 ; OtherLetter # Lo DEVANAGARI LETTER UE 0977 ; OtherLetter # Lo DEVANAGARI LETTER UUE 0979 ; OtherLetter # Lo DEVANAGARI LETTER ZHA 097A ; OtherLetter # Lo DEVANAGARI LETTER HEAVY YA 097B ; OtherLetter # Lo DEVANAGARI LETTER GGA 097C ; OtherLetter # Lo DEVANAGARI LETTER JJA 097D ; OtherLetter # Lo DEVANAGARI LETTER GLOTTAL STOP 097E ; OtherLetter # Lo DEVANAGARI LETTER DDDA 097F ; OtherLetter # Lo DEVANAGARI LETTER BBA 0985 ; OtherLetter # Lo BENGALI LETTER A 0986 ; OtherLetter # Lo BENGALI LETTER AA 0987 ; OtherLetter # Lo BENGALI LETTER I 0988 ; OtherLetter # Lo BENGALI LETTER II 0989 ; OtherLetter # Lo BENGALI LETTER U 098A ; OtherLetter # Lo BENGALI LETTER UU 098B ; OtherLetter # Lo BENGALI LETTER VOCALIC R 098C ; OtherLetter # Lo BENGALI LETTER VOCALIC L 098F ; OtherLetter # Lo BENGALI LETTER E 0990 ; OtherLetter # Lo BENGALI LETTER AI 0993 ; OtherLetter # Lo BENGALI LETTER O 0994 ; OtherLetter # Lo BENGALI LETTER AU 0995 ; OtherLetter # Lo BENGALI LETTER KA 0996 ; OtherLetter # Lo BENGALI LETTER KHA 0997 ; OtherLetter # Lo BENGALI LETTER GA 0998 ; OtherLetter # Lo BENGALI LETTER GHA 0999 ; OtherLetter # Lo BENGALI LETTER NGA 099A ; OtherLetter # Lo BENGALI LETTER CA 099B ; OtherLetter # Lo BENGALI LETTER CHA 099C ; OtherLetter # Lo BENGALI LETTER JA 099D ; OtherLetter # Lo BENGALI LETTER JHA 099E ; OtherLetter # Lo BENGALI LETTER NYA 099F ; OtherLetter # Lo BENGALI LETTER TTA 09A0 ; OtherLetter # Lo BENGALI LETTER TTHA 09A1 ; OtherLetter # Lo BENGALI LETTER DDA 09A2 ; OtherLetter # Lo BENGALI LETTER DDHA 09A3 ; OtherLetter # Lo BENGALI LETTER NNA 09A4 ; OtherLetter # Lo BENGALI LETTER TA 09A5 ; OtherLetter # Lo BENGALI LETTER THA 09A6 ; OtherLetter # Lo BENGALI LETTER DA 09A7 ; OtherLetter # Lo BENGALI LETTER DHA 09A8 ; OtherLetter # Lo BENGALI LETTER NA 09AA ; OtherLetter # Lo BENGALI LETTER PA 09AB ; OtherLetter # Lo BENGALI LETTER PHA 09AC ; OtherLetter # Lo BENGALI LETTER BA 09AD ; OtherLetter # Lo BENGALI LETTER BHA 09AE ; OtherLetter # Lo BENGALI LETTER MA 09AF ; OtherLetter # Lo BENGALI LETTER YA 09B0 ; OtherLetter # Lo BENGALI LETTER RA 09B2 ; OtherLetter # Lo BENGALI LETTER LA 09B6 ; OtherLetter # Lo BENGALI LETTER SHA 09B7 ; OtherLetter # Lo BENGALI LETTER SSA 09B8 ; OtherLetter # Lo BENGALI LETTER SA 09B9 ; OtherLetter # Lo BENGALI LETTER HA 09BD ; OtherLetter # Lo BENGALI SIGN AVAGRAHA 09CD ; Virama # Mn BENGALI SIGN VIRAMA 09CE ; OtherLetter # Lo BENGALI LETTER KHANDA TA 09DC ; OtherLetter # Lo BENGALI LETTER RRA 09DD ; OtherLetter # Lo BENGALI LETTER RHA 09DF ; OtherLetter # Lo BENGALI LETTER YYA 09E0 ; OtherLetter # Lo BENGALI LETTER VOCALIC RR 09E1 ; OtherLetter # Lo BENGALI LETTER VOCALIC LL 09F0 ; OtherLetter # Lo BENGALI LETTER RA WITH MIDDLE DIAGONAL 09F1 ; OtherLetter # Lo BENGALI LETTER RA WITH LOWER DIAGONAL 0A05 ; OtherLetter # Lo GURMUKHI LETTER A 0A06 ; OtherLetter # Lo GURMUKHI LETTER AA 0A07 ; OtherLetter # Lo GURMUKHI LETTER I 0A08 ; OtherLetter # Lo GURMUKHI LETTER II 0A09 ; OtherLetter # Lo GURMUKHI LETTER U 0A0A ; OtherLetter # Lo GURMUKHI LETTER UU 0A0F ; OtherLetter # Lo GURMUKHI LETTER EE 0A10 ; OtherLetter # Lo GURMUKHI LETTER AI 0A13 ; OtherLetter # Lo GURMUKHI LETTER OO 0A14 ; OtherLetter # Lo GURMUKHI LETTER AU 0A15 ; OtherLetter # Lo GURMUKHI LETTER KA 0A16 ; OtherLetter # Lo GURMUKHI LETTER KHA 0A17 ; OtherLetter # Lo GURMUKHI LETTER GA 0A18 ; OtherLetter # Lo GURMUKHI LETTER GHA 0A19 ; OtherLetter # Lo GURMUKHI LETTER NGA 0A1A ; OtherLetter # Lo GURMUKHI LETTER CA 0A1B ; OtherLetter # Lo GURMUKHI LETTER CHA 0A1C ; OtherLetter # Lo GURMUKHI LETTER JA 0A1D ; OtherLetter # Lo GURMUKHI LETTER JHA 0A1E ; OtherLetter # Lo GURMUKHI LETTER NYA 0A1F ; OtherLetter # Lo GURMUKHI LETTER TTA 0A20 ; OtherLetter # Lo GURMUKHI LETTER TTHA 0A21 ; OtherLetter # Lo GURMUKHI LETTER DDA 0A22 ; OtherLetter # Lo GURMUKHI LETTER DDHA 0A23 ; OtherLetter # Lo GURMUKHI LETTER NNA 0A24 ; OtherLetter # Lo GURMUKHI LETTER TA 0A25 ; OtherLetter # Lo GURMUKHI LETTER THA 0A26 ; OtherLetter # Lo GURMUKHI LETTER DA 0A27 ; OtherLetter # Lo GURMUKHI LETTER DHA 0A28 ; OtherLetter # Lo GURMUKHI LETTER NA 0A2A ; OtherLetter # Lo GURMUKHI LETTER PA 0A2B ; OtherLetter # Lo GURMUKHI LETTER PHA 0A2C ; OtherLetter # Lo GURMUKHI LETTER BA 0A2D ; OtherLetter # Lo GURMUKHI LETTER BHA 0A2E ; OtherLetter # Lo GURMUKHI LETTER MA 0A2F ; OtherLetter # Lo GURMUKHI LETTER YA 0A30 ; OtherLetter # Lo GURMUKHI LETTER RA 0A32 ; OtherLetter # Lo GURMUKHI LETTER LA 0A33 ; OtherLetter # Lo GURMUKHI LETTER LLA 0A35 ; OtherLetter # Lo GURMUKHI LETTER VA 0A36 ; OtherLetter # Lo GURMUKHI LETTER SHA 0A38 ; OtherLetter # Lo GURMUKHI LETTER SA 0A39 ; OtherLetter # Lo GURMUKHI LETTER HA 0A4D ; Virama # Mn GURMUKHI SIGN VIRAMA 0A59 ; OtherLetter # Lo GURMUKHI LETTER KHHA 0A5A ; OtherLetter # Lo GURMUKHI LETTER GHHA 0A5B ; OtherLetter # Lo GURMUKHI LETTER ZA 0A5C ; OtherLetter # Lo GURMUKHI LETTER RRA 0A5E ; OtherLetter # Lo GURMUKHI LETTER FA 0A72 ; OtherLetter # Lo GURMUKHI IRI 0A73 ; OtherLetter # Lo GURMUKHI URA 0A74 ; OtherLetter # Lo GURMUKHI EK ONKAR 0A85 ; OtherLetter # Lo GUJARATI LETTER A 0A86 ; OtherLetter # Lo GUJARATI LETTER AA 0A87 ; OtherLetter # Lo GUJARATI LETTER I 0A88 ; OtherLetter # Lo GUJARATI LETTER II 0A89 ; OtherLetter # Lo GUJARATI LETTER U 0A8A ; OtherLetter # Lo GUJARATI LETTER UU 0A8B ; OtherLetter # Lo GUJARATI LETTER VOCALIC R 0A8C ; OtherLetter # Lo GUJARATI LETTER VOCALIC L 0A8D ; OtherLetter # Lo GUJARATI VOWEL CANDRA E 0A8F ; OtherLetter # Lo GUJARATI LETTER E 0A90 ; OtherLetter # Lo GUJARATI LETTER AI 0A91 ; OtherLetter # Lo GUJARATI VOWEL CANDRA O 0A93 ; OtherLetter # Lo GUJARATI LETTER O 0A94 ; OtherLetter # Lo GUJARATI LETTER AU 0A95 ; OtherLetter # Lo GUJARATI LETTER KA 0A96 ; OtherLetter # Lo GUJARATI LETTER KHA 0A97 ; OtherLetter # Lo GUJARATI LETTER GA 0A98 ; OtherLetter # Lo GUJARATI LETTER GHA 0A99 ; OtherLetter # Lo GUJARATI LETTER NGA 0A9A ; OtherLetter # Lo GUJARATI LETTER CA 0A9B ; OtherLetter # Lo GUJARATI LETTER CHA 0A9C ; OtherLetter # Lo GUJARATI LETTER JA 0A9D ; OtherLetter # Lo GUJARATI LETTER JHA 0A9E ; OtherLetter # Lo GUJARATI LETTER NYA 0A9F ; OtherLetter # Lo GUJARATI LETTER TTA 0AA0 ; OtherLetter # Lo GUJARATI LETTER TTHA 0AA1 ; OtherLetter # Lo GUJARATI LETTER DDA 0AA2 ; OtherLetter # Lo GUJARATI LETTER DDHA 0AA3 ; OtherLetter # Lo GUJARATI LETTER NNA 0AA4 ; OtherLetter # Lo GUJARATI LETTER TA 0AA5 ; OtherLetter # Lo GUJARATI LETTER THA 0AA6 ; OtherLetter # Lo GUJARATI LETTER DA 0AA7 ; OtherLetter # Lo GUJARATI LETTER DHA 0AA8 ; OtherLetter # Lo GUJARATI LETTER NA 0AAA ; OtherLetter # Lo GUJARATI LETTER PA 0AAB ; OtherLetter # Lo GUJARATI LETTER PHA 0AAC ; OtherLetter # Lo GUJARATI LETTER BA 0AAD ; OtherLetter # Lo GUJARATI LETTER BHA 0AAE ; OtherLetter # Lo GUJARATI LETTER MA 0AAF ; OtherLetter # Lo GUJARATI LETTER YA 0AB0 ; OtherLetter # Lo GUJARATI LETTER RA 0AB2 ; OtherLetter # Lo GUJARATI LETTER LA 0AB3 ; OtherLetter # Lo GUJARATI LETTER LLA 0AB5 ; OtherLetter # Lo GUJARATI LETTER VA 0AB6 ; OtherLetter # Lo GUJARATI LETTER SHA 0AB7 ; OtherLetter # Lo GUJARATI LETTER SSA 0AB8 ; OtherLetter # Lo GUJARATI LETTER SA 0AB9 ; OtherLetter # Lo GUJARATI LETTER HA 0ABD ; OtherLetter # Lo GUJARATI SIGN AVAGRAHA 0ACD ; Virama # Mn GUJARATI SIGN VIRAMA 0AD0 ; OtherLetter # Lo GUJARATI OM 0AE0 ; OtherLetter # Lo GUJARATI LETTER VOCALIC RR 0AE1 ; OtherLetter # Lo GUJARATI LETTER VOCALIC LL 0B05 ; OtherLetter # Lo ORIYA LETTER A 0B06 ; OtherLetter # Lo ORIYA LETTER AA 0B07 ; OtherLetter # Lo ORIYA LETTER I 0B08 ; OtherLetter # Lo ORIYA LETTER II 0B09 ; OtherLetter # Lo ORIYA LETTER U 0B0A ; OtherLetter # Lo ORIYA LETTER UU 0B0B ; OtherLetter # Lo ORIYA LETTER VOCALIC R 0B0C ; OtherLetter # Lo ORIYA LETTER VOCALIC L 0B0F ; OtherLetter # Lo ORIYA LETTER E 0B10 ; OtherLetter # Lo ORIYA LETTER AI 0B13 ; OtherLetter # Lo ORIYA LETTER O 0B14 ; OtherLetter # Lo ORIYA LETTER AU 0B15 ; OtherLetter # Lo ORIYA LETTER KA 0B16 ; OtherLetter # Lo ORIYA LETTER KHA 0B17 ; OtherLetter # Lo ORIYA LETTER GA 0B18 ; OtherLetter # Lo ORIYA LETTER GHA 0B19 ; OtherLetter # Lo ORIYA LETTER NGA 0B1A ; OtherLetter # Lo ORIYA LETTER CA 0B1B ; OtherLetter # Lo ORIYA LETTER CHA 0B1C ; OtherLetter # Lo ORIYA LETTER JA 0B1D ; OtherLetter # Lo ORIYA LETTER JHA 0B1E ; OtherLetter # Lo ORIYA LETTER NYA 0B1F ; OtherLetter # Lo ORIYA LETTER TTA 0B20 ; OtherLetter # Lo ORIYA LETTER TTHA 0B21 ; OtherLetter # Lo ORIYA LETTER DDA 0B22 ; OtherLetter # Lo ORIYA LETTER DDHA 0B23 ; OtherLetter # Lo ORIYA LETTER NNA 0B24 ; OtherLetter # Lo ORIYA LETTER TA 0B25 ; OtherLetter # Lo ORIYA LETTER THA 0B26 ; OtherLetter # Lo ORIYA LETTER DA 0B27 ; OtherLetter # Lo ORIYA LETTER DHA 0B28 ; OtherLetter # Lo ORIYA LETTER NA 0B2A ; OtherLetter # Lo ORIYA LETTER PA 0B2B ; OtherLetter # Lo ORIYA LETTER PHA 0B2C ; OtherLetter # Lo ORIYA LETTER BA 0B2D ; OtherLetter # Lo ORIYA LETTER BHA 0B2E ; OtherLetter # Lo ORIYA LETTER MA 0B2F ; OtherLetter # Lo ORIYA LETTER YA 0B30 ; OtherLetter # Lo ORIYA LETTER RA 0B32 ; OtherLetter # Lo ORIYA LETTER LA 0B33 ; OtherLetter # Lo ORIYA LETTER LLA 0B35 ; OtherLetter # Lo ORIYA LETTER VA 0B36 ; OtherLetter # Lo ORIYA LETTER SHA 0B37 ; OtherLetter # Lo ORIYA LETTER SSA 0B38 ; OtherLetter # Lo ORIYA LETTER SA 0B39 ; OtherLetter # Lo ORIYA LETTER HA 0B3D ; OtherLetter # Lo ORIYA SIGN AVAGRAHA 0B4D ; Virama # Mn ORIYA SIGN VIRAMA 0B5C ; OtherLetter # Lo ORIYA LETTER RRA 0B5D ; OtherLetter # Lo ORIYA LETTER RHA 0B5F ; OtherLetter # Lo ORIYA LETTER YYA 0B60 ; OtherLetter # Lo ORIYA LETTER VOCALIC RR 0B61 ; OtherLetter # Lo ORIYA LETTER VOCALIC LL 0B71 ; OtherLetter # Lo ORIYA LETTER WA 0B83 ; OtherLetter # Lo TAMIL SIGN VISARGA 0B85 ; OtherLetter # Lo TAMIL LETTER A 0B86 ; OtherLetter # Lo TAMIL LETTER AA 0B87 ; OtherLetter # Lo TAMIL LETTER I 0B88 ; OtherLetter # Lo TAMIL LETTER II 0B89 ; OtherLetter # Lo TAMIL LETTER U 0B8A ; OtherLetter # Lo TAMIL LETTER UU 0B8E ; OtherLetter # Lo TAMIL LETTER E 0B8F ; OtherLetter # Lo TAMIL LETTER EE 0B90 ; OtherLetter # Lo TAMIL LETTER AI 0B92 ; OtherLetter # Lo TAMIL LETTER O 0B93 ; OtherLetter # Lo TAMIL LETTER OO 0B94 ; OtherLetter # Lo TAMIL LETTER AU 0B95 ; OtherLetter # Lo TAMIL LETTER KA 0B99 ; OtherLetter # Lo TAMIL LETTER NGA 0B9A ; OtherLetter # Lo TAMIL LETTER CA 0B9C ; OtherLetter # Lo TAMIL LETTER JA 0B9E ; OtherLetter # Lo TAMIL LETTER NYA 0B9F ; OtherLetter # Lo TAMIL LETTER TTA 0BA3 ; OtherLetter # Lo TAMIL LETTER NNA 0BA4 ; OtherLetter # Lo TAMIL LETTER TA 0BA8 ; OtherLetter # Lo TAMIL LETTER NA 0BA9 ; OtherLetter # Lo TAMIL LETTER NNNA 0BAA ; OtherLetter # Lo TAMIL LETTER PA 0BAE ; OtherLetter # Lo TAMIL LETTER MA 0BAF ; OtherLetter # Lo TAMIL LETTER YA 0BB0 ; OtherLetter # Lo TAMIL LETTER RA 0BB1 ; OtherLetter # Lo TAMIL LETTER RRA 0BB2 ; OtherLetter # Lo TAMIL LETTER LA 0BB3 ; OtherLetter # Lo TAMIL LETTER LLA 0BB4 ; OtherLetter # Lo TAMIL LETTER LLLA 0BB5 ; OtherLetter # Lo TAMIL LETTER VA 0BB6 ; OtherLetter # Lo TAMIL LETTER SHA 0BB7 ; OtherLetter # Lo TAMIL LETTER SSA 0BB8 ; OtherLetter # Lo TAMIL LETTER SA 0BB9 ; OtherLetter # Lo TAMIL LETTER HA 0BCD ; Virama # Mn TAMIL SIGN VIRAMA 0BD0 ; OtherLetter # Lo TAMIL OM 0C05 ; OtherLetter # Lo TELUGU LETTER A 0C06 ; OtherLetter # Lo TELUGU LETTER AA 0C07 ; OtherLetter # Lo TELUGU LETTER I 0C08 ; OtherLetter # Lo TELUGU LETTER II 0C09 ; OtherLetter # Lo TELUGU LETTER U 0C0A ; OtherLetter # Lo TELUGU LETTER UU 0C0B ; OtherLetter # Lo TELUGU LETTER VOCALIC R 0C0C ; OtherLetter # Lo TELUGU LETTER VOCALIC L 0C0E ; OtherLetter # Lo TELUGU LETTER E 0C0F ; OtherLetter # Lo TELUGU LETTER EE 0C10 ; OtherLetter # Lo TELUGU LETTER AI 0C12 ; OtherLetter # Lo TELUGU LETTER O 0C13 ; OtherLetter # Lo TELUGU LETTER OO 0C14 ; OtherLetter # Lo TELUGU LETTER AU 0C15 ; OtherLetter # Lo TELUGU LETTER KA 0C16 ; OtherLetter # Lo TELUGU LETTER KHA 0C17 ; OtherLetter # Lo TELUGU LETTER GA 0C18 ; OtherLetter # Lo TELUGU LETTER GHA 0C19 ; OtherLetter # Lo TELUGU LETTER NGA 0C1A ; OtherLetter # Lo TELUGU LETTER CA 0C1B ; OtherLetter # Lo TELUGU LETTER CHA 0C1C ; OtherLetter # Lo TELUGU LETTER JA 0C1D ; OtherLetter # Lo TELUGU LETTER JHA 0C1E ; OtherLetter # Lo TELUGU LETTER NYA 0C1F ; OtherLetter # Lo TELUGU LETTER TTA 0C20 ; OtherLetter # Lo TELUGU LETTER TTHA 0C21 ; OtherLetter # Lo TELUGU LETTER DDA 0C22 ; OtherLetter # Lo TELUGU LETTER DDHA 0C23 ; OtherLetter # Lo TELUGU LETTER NNA 0C24 ; OtherLetter # Lo TELUGU LETTER TA 0C25 ; OtherLetter # Lo TELUGU LETTER THA 0C26 ; OtherLetter # Lo TELUGU LETTER DA 0C27 ; OtherLetter # Lo TELUGU LETTER DHA 0C28 ; OtherLetter # Lo TELUGU LETTER NA 0C2A ; OtherLetter # Lo TELUGU LETTER PA 0C2B ; OtherLetter # Lo TELUGU LETTER PHA 0C2C ; OtherLetter # Lo TELUGU LETTER BA 0C2D ; OtherLetter # Lo TELUGU LETTER BHA 0C2E ; OtherLetter # Lo TELUGU LETTER MA 0C2F ; OtherLetter # Lo TELUGU LETTER YA 0C30 ; OtherLetter # Lo TELUGU LETTER RA 0C31 ; OtherLetter # Lo TELUGU LETTER RRA 0C32 ; OtherLetter # Lo TELUGU LETTER LA 0C33 ; OtherLetter # Lo TELUGU LETTER LLA 0C35 ; OtherLetter # Lo TELUGU LETTER VA 0C36 ; OtherLetter # Lo TELUGU LETTER SHA 0C37 ; OtherLetter # Lo TELUGU LETTER SSA 0C38 ; OtherLetter # Lo TELUGU LETTER SA 0C39 ; OtherLetter # Lo TELUGU LETTER HA 0C3D ; OtherLetter # Lo TELUGU SIGN AVAGRAHA 0C4D ; Virama # Mn TELUGU SIGN VIRAMA 0C58 ; OtherLetter # Lo TELUGU LETTER TSA 0C59 ; OtherLetter # Lo TELUGU LETTER DZA 0C60 ; OtherLetter # Lo TELUGU LETTER VOCALIC RR 0C61 ; OtherLetter # Lo TELUGU LETTER VOCALIC LL 0C85 ; OtherLetter # Lo KANNADA LETTER A 0C86 ; OtherLetter # Lo KANNADA LETTER AA 0C87 ; OtherLetter # Lo KANNADA LETTER I 0C88 ; OtherLetter # Lo KANNADA LETTER II 0C89 ; OtherLetter # Lo KANNADA LETTER U 0C8A ; OtherLetter # Lo KANNADA LETTER UU 0C8B ; OtherLetter # Lo KANNADA LETTER VOCALIC R 0C8C ; OtherLetter # Lo KANNADA LETTER VOCALIC L 0C8E ; OtherLetter # Lo KANNADA LETTER E 0C8F ; OtherLetter # Lo KANNADA LETTER EE 0C90 ; OtherLetter # Lo KANNADA LETTER AI 0C92 ; OtherLetter # Lo KANNADA LETTER O 0C93 ; OtherLetter # Lo KANNADA LETTER OO 0C94 ; OtherLetter # Lo KANNADA LETTER AU 0C95 ; OtherLetter # Lo KANNADA LETTER KA 0C96 ; OtherLetter # Lo KANNADA LETTER KHA 0C97 ; OtherLetter # Lo KANNADA LETTER GA 0C98 ; OtherLetter # Lo KANNADA LETTER GHA 0C99 ; OtherLetter # Lo KANNADA LETTER NGA 0C9A ; OtherLetter # Lo KANNADA LETTER CA 0C9B ; OtherLetter # Lo KANNADA LETTER CHA 0C9C ; OtherLetter # Lo KANNADA LETTER JA 0C9D ; OtherLetter # Lo KANNADA LETTER JHA 0C9E ; OtherLetter # Lo KANNADA LETTER NYA 0C9F ; OtherLetter # Lo KANNADA LETTER TTA 0CA0 ; OtherLetter # Lo KANNADA LETTER TTHA 0CA1 ; OtherLetter # Lo KANNADA LETTER DDA 0CA2 ; OtherLetter # Lo KANNADA LETTER DDHA 0CA3 ; OtherLetter # Lo KANNADA LETTER NNA 0CA4 ; OtherLetter # Lo KANNADA LETTER TA 0CA5 ; OtherLetter # Lo KANNADA LETTER THA 0CA6 ; OtherLetter # Lo KANNADA LETTER DA 0CA7 ; OtherLetter # Lo KANNADA LETTER DHA 0CA8 ; OtherLetter # Lo KANNADA LETTER NA 0CAA ; OtherLetter # Lo KANNADA LETTER PA 0CAB ; OtherLetter # Lo KANNADA LETTER PHA 0CAC ; OtherLetter # Lo KANNADA LETTER BA 0CAD ; OtherLetter # Lo KANNADA LETTER BHA 0CAE ; OtherLetter # Lo KANNADA LETTER MA 0CAF ; OtherLetter # Lo KANNADA LETTER YA 0CB0 ; OtherLetter # Lo KANNADA LETTER RA 0CB1 ; OtherLetter # Lo KANNADA LETTER RRA 0CB2 ; OtherLetter # Lo KANNADA LETTER LA 0CB3 ; OtherLetter # Lo KANNADA LETTER LLA 0CB5 ; OtherLetter # Lo KANNADA LETTER VA 0CB6 ; OtherLetter # Lo KANNADA LETTER SHA 0CB7 ; OtherLetter # Lo KANNADA LETTER SSA 0CB8 ; OtherLetter # Lo KANNADA LETTER SA 0CB9 ; OtherLetter # Lo KANNADA LETTER HA 0CBD ; OtherLetter # Lo KANNADA SIGN AVAGRAHA 0CCD ; Virama # Mn KANNADA SIGN VIRAMA 0CDE ; OtherLetter # Lo KANNADA LETTER FA 0CE0 ; OtherLetter # Lo KANNADA LETTER VOCALIC RR 0CE1 ; OtherLetter # Lo KANNADA LETTER VOCALIC LL 0CF1 ; OtherLetter # Lo KANNADA SIGN JIHVAMULIYA 0CF2 ; OtherLetter # Lo KANNADA SIGN UPADHMANIYA 0D05 ; OtherLetter # Lo MALAYALAM LETTER A 0D06 ; OtherLetter # Lo MALAYALAM LETTER AA 0D07 ; OtherLetter # Lo MALAYALAM LETTER I 0D08 ; OtherLetter # Lo MALAYALAM LETTER II 0D09 ; OtherLetter # Lo MALAYALAM LETTER U 0D0A ; OtherLetter # Lo MALAYALAM LETTER UU 0D0B ; OtherLetter # Lo MALAYALAM LETTER VOCALIC R 0D0C ; OtherLetter # Lo MALAYALAM LETTER VOCALIC L 0D0E ; OtherLetter # Lo MALAYALAM LETTER E 0D0F ; OtherLetter # Lo MALAYALAM LETTER EE 0D10 ; OtherLetter # Lo MALAYALAM LETTER AI 0D12 ; OtherLetter # Lo MALAYALAM LETTER O 0D13 ; OtherLetter # Lo MALAYALAM LETTER OO 0D14 ; OtherLetter # Lo MALAYALAM LETTER AU 0D15 ; OtherLetter # Lo MALAYALAM LETTER KA 0D16 ; OtherLetter # Lo MALAYALAM LETTER KHA 0D17 ; OtherLetter # Lo MALAYALAM LETTER GA 0D18 ; OtherLetter # Lo MALAYALAM LETTER GHA 0D19 ; OtherLetter # Lo MALAYALAM LETTER NGA 0D1A ; OtherLetter # Lo MALAYALAM LETTER CA 0D1B ; OtherLetter # Lo MALAYALAM LETTER CHA 0D1C ; OtherLetter # Lo MALAYALAM LETTER JA 0D1D ; OtherLetter # Lo MALAYALAM LETTER JHA 0D1E ; OtherLetter # Lo MALAYALAM LETTER NYA 0D1F ; OtherLetter # Lo MALAYALAM LETTER TTA 0D20 ; OtherLetter # Lo MALAYALAM LETTER TTHA 0D21 ; OtherLetter # Lo MALAYALAM LETTER DDA 0D22 ; OtherLetter # Lo MALAYALAM LETTER DDHA 0D23 ; OtherLetter # Lo MALAYALAM LETTER NNA 0D24 ; OtherLetter # Lo MALAYALAM LETTER TA 0D25 ; OtherLetter # Lo MALAYALAM LETTER THA 0D26 ; OtherLetter # Lo MALAYALAM LETTER DA 0D27 ; OtherLetter # Lo MALAYALAM LETTER DHA 0D28 ; OtherLetter # Lo MALAYALAM LETTER NA 0D29 ; OtherLetter # Lo MALAYALAM LETTER NNNA 0D2A ; OtherLetter # Lo MALAYALAM LETTER PA 0D2B ; OtherLetter # Lo MALAYALAM LETTER PHA 0D2C ; OtherLetter # Lo MALAYALAM LETTER BA 0D2D ; OtherLetter # Lo MALAYALAM LETTER BHA 0D2E ; OtherLetter # Lo MALAYALAM LETTER MA 0D2F ; OtherLetter # Lo MALAYALAM LETTER YA 0D30 ; OtherLetter # Lo MALAYALAM LETTER RA 0D31 ; OtherLetter # Lo MALAYALAM LETTER RRA 0D32 ; OtherLetter # Lo MALAYALAM LETTER LA 0D33 ; OtherLetter # Lo MALAYALAM LETTER LLA 0D34 ; OtherLetter # Lo MALAYALAM LETTER LLLA 0D35 ; OtherLetter # Lo MALAYALAM LETTER VA 0D36 ; OtherLetter # Lo MALAYALAM LETTER SHA 0D37 ; OtherLetter # Lo MALAYALAM LETTER SSA 0D38 ; OtherLetter # Lo MALAYALAM LETTER SA 0D39 ; OtherLetter # Lo MALAYALAM LETTER HA 0D3A ; OtherLetter # Lo MALAYALAM LETTER TTTA 0D3D ; OtherLetter # Lo MALAYALAM SIGN AVAGRAHA 0D4D ; Virama # Mn MALAYALAM SIGN VIRAMA 0D4E ; OtherLetter # Lo MALAYALAM LETTER DOT REPH 0D60 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC RR 0D61 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC LL 0D7A ; OtherLetter # Lo MALAYALAM LETTER CHILLU NN 0D7B ; OtherLetter # Lo MALAYALAM LETTER CHILLU N 0D7C ; OtherLetter # Lo MALAYALAM LETTER CHILLU RR 0D7D ; OtherLetter # Lo MALAYALAM LETTER CHILLU L 0D7E ; OtherLetter # Lo MALAYALAM LETTER CHILLU LL 0D7F ; OtherLetter # Lo MALAYALAM LETTER CHILLU K 0D85 ; OtherLetter # Lo SINHALA LETTER AYANNA 0D86 ; OtherLetter # Lo SINHALA LETTER AAYANNA 0D87 ; OtherLetter # Lo SINHALA LETTER AEYANNA 0D88 ; OtherLetter # Lo SINHALA LETTER AEEYANNA 0D89 ; OtherLetter # Lo SINHALA LETTER IYANNA 0D8A ; OtherLetter # Lo SINHALA LETTER IIYANNA 0D8B ; OtherLetter # Lo SINHALA LETTER UYANNA 0D8C ; OtherLetter # Lo SINHALA LETTER UUYANNA 0D8D ; OtherLetter # Lo SINHALA LETTER IRUYANNA 0D8E ; OtherLetter # Lo SINHALA LETTER IRUUYANNA 0D8F ; OtherLetter # Lo SINHALA LETTER ILUYANNA 0D90 ; OtherLetter # Lo SINHALA LETTER ILUUYANNA 0D91 ; OtherLetter # Lo SINHALA LETTER EYANNA 0D92 ; OtherLetter # Lo SINHALA LETTER EEYANNA 0D93 ; OtherLetter # Lo SINHALA LETTER AIYANNA 0D94 ; OtherLetter # Lo SINHALA LETTER OYANNA 0D95 ; OtherLetter # Lo SINHALA LETTER OOYANNA 0D96 ; OtherLetter # Lo SINHALA LETTER AUYANNA 0D9A ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA KAYANNA 0D9B ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA KAYANNA 0D9C ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA GAYANNA 0D9D ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA GAYANNA 0D9E ; OtherLetter # Lo SINHALA LETTER KANTAJA NAASIKYAYA 0D9F ; OtherLetter # Lo SINHALA LETTER SANYAKA GAYANNA 0DA0 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA CAYANNA 0DA1 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA CAYANNA 0DA2 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA JAYANNA 0DA3 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA JAYANNA 0DA4 ; OtherLetter # Lo SINHALA LETTER TAALUJA NAASIKYAYA 0DA5 ; OtherLetter # Lo SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA 0DA6 ; OtherLetter # Lo SINHALA LETTER SANYAKA JAYANNA 0DA7 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TTAYANNA 0DA8 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TTAYANNA 0DA9 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DDAYANNA 0DAA ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DDAYANNA 0DAB ; OtherLetter # Lo SINHALA LETTER MUURDHAJA NAYANNA 0DAC ; OtherLetter # Lo SINHALA LETTER SANYAKA DDAYANNA 0DAD ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TAYANNA 0DAE ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TAYANNA 0DAF ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DAYANNA 0DB0 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DAYANNA 0DB1 ; OtherLetter # Lo SINHALA LETTER DANTAJA NAYANNA 0DB3 ; OtherLetter # Lo SINHALA LETTER SANYAKA DAYANNA 0DB4 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA PAYANNA 0DB5 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA PAYANNA 0DB6 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA BAYANNA 0DB7 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA BAYANNA 0DB8 ; OtherLetter # Lo SINHALA LETTER MAYANNA 0DB9 ; OtherLetter # Lo SINHALA LETTER AMBA BAYANNA 0DBA ; OtherLetter # Lo SINHALA LETTER YAYANNA 0DBB ; OtherLetter # Lo SINHALA LETTER RAYANNA 0DBD ; OtherLetter # Lo SINHALA LETTER DANTAJA LAYANNA 0DC0 ; OtherLetter # Lo SINHALA LETTER VAYANNA 0DC1 ; OtherLetter # Lo SINHALA LETTER TAALUJA SAYANNA 0DC2 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA SAYANNA 0DC3 ; OtherLetter # Lo SINHALA LETTER DANTAJA SAYANNA 0DC4 ; OtherLetter # Lo SINHALA LETTER HAYANNA 0DC5 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA LAYANNA 0DC6 ; OtherLetter # Lo SINHALA LETTER FAYANNA 0DCA ; Virama # Mn SINHALA SIGN AL-LAKUNA 0E01 ; OtherLetter # Lo THAI CHARACTER KO KAI 0E02 ; OtherLetter # Lo THAI CHARACTER KHO KHAI 0E03 ; OtherLetter # Lo THAI CHARACTER KHO KHUAT 0E04 ; OtherLetter # Lo THAI CHARACTER KHO KHWAI 0E05 ; OtherLetter # Lo THAI CHARACTER KHO KHON 0E06 ; OtherLetter # Lo THAI CHARACTER KHO RAKHANG 0E07 ; OtherLetter # Lo THAI CHARACTER NGO NGU 0E08 ; OtherLetter # Lo THAI CHARACTER CHO CHAN 0E09 ; OtherLetter # Lo THAI CHARACTER CHO CHING 0E0A ; OtherLetter # Lo THAI CHARACTER CHO CHANG 0E0B ; OtherLetter # Lo THAI CHARACTER SO SO 0E0C ; OtherLetter # Lo THAI CHARACTER CHO CHOE 0E0D ; OtherLetter # Lo THAI CHARACTER YO YING 0E0E ; OtherLetter # Lo THAI CHARACTER DO CHADA 0E0F ; OtherLetter # Lo THAI CHARACTER TO PATAK 0E10 ; OtherLetter # Lo THAI CHARACTER THO THAN 0E11 ; OtherLetter # Lo THAI CHARACTER THO NANGMONTHO 0E12 ; OtherLetter # Lo THAI CHARACTER THO PHUTHAO 0E13 ; OtherLetter # Lo THAI CHARACTER NO NEN 0E14 ; OtherLetter # Lo THAI CHARACTER DO DEK 0E15 ; OtherLetter # Lo THAI CHARACTER TO TAO 0E16 ; OtherLetter # Lo THAI CHARACTER THO THUNG 0E17 ; OtherLetter # Lo THAI CHARACTER THO THAHAN 0E18 ; OtherLetter # Lo THAI CHARACTER THO THONG 0E19 ; OtherLetter # Lo THAI CHARACTER NO NU 0E1A ; OtherLetter # Lo THAI CHARACTER BO BAIMAI 0E1B ; OtherLetter # Lo THAI CHARACTER PO PLA 0E1C ; OtherLetter # Lo THAI CHARACTER PHO PHUNG 0E1D ; OtherLetter # Lo THAI CHARACTER FO FA 0E1E ; OtherLetter # Lo THAI CHARACTER PHO PHAN 0E1F ; OtherLetter # Lo THAI CHARACTER FO FAN 0E20 ; OtherLetter # Lo THAI CHARACTER PHO SAMPHAO 0E21 ; OtherLetter # Lo THAI CHARACTER MO MA 0E22 ; OtherLetter # Lo THAI CHARACTER YO YAK 0E23 ; OtherLetter # Lo THAI CHARACTER RO RUA 0E24 ; OtherLetter # Lo THAI CHARACTER RU 0E25 ; OtherLetter # Lo THAI CHARACTER LO LING 0E26 ; OtherLetter # Lo THAI CHARACTER LU 0E27 ; OtherLetter # Lo THAI CHARACTER WO WAEN 0E28 ; OtherLetter # Lo THAI CHARACTER SO SALA 0E29 ; OtherLetter # Lo THAI CHARACTER SO RUSI 0E2A ; OtherLetter # Lo THAI CHARACTER SO SUA 0E2B ; OtherLetter # Lo THAI CHARACTER HO HIP 0E2C ; OtherLetter # Lo THAI CHARACTER LO CHULA 0E2D ; OtherLetter # Lo THAI CHARACTER O ANG 0E2E ; OtherLetter # Lo THAI CHARACTER HO NOKHUK 0E2F ; OtherLetter # Lo THAI CHARACTER PAIYANNOI 0E30 ; OtherLetter # Lo THAI CHARACTER SARA A 0E32 ; OtherLetter # Lo THAI CHARACTER SARA AA 0E3A ; Virama # Mn THAI CHARACTER PHINTHU 0E40 ; OtherLetter # Lo THAI CHARACTER SARA E 0E41 ; OtherLetter # Lo THAI CHARACTER SARA AE 0E42 ; OtherLetter # Lo THAI CHARACTER SARA O 0E43 ; OtherLetter # Lo THAI CHARACTER SARA AI MAIMUAN 0E44 ; OtherLetter # Lo THAI CHARACTER SARA AI MAIMALAI 0E45 ; OtherLetter # Lo THAI CHARACTER LAKKHANGYAO 0E46 ; OtherLetter # Lm THAI CHARACTER MAIYAMOK 0F00 ; OtherLetter # Lo TIBETAN SYLLABLE OM 0F40 ; OtherLetter # Lo TIBETAN LETTER KA 0F41 ; OtherLetter # Lo TIBETAN LETTER KHA 0F42 ; OtherLetter # Lo TIBETAN LETTER GA 0F43 ; OtherLetter # Lo TIBETAN LETTER GHA 0F44 ; OtherLetter # Lo TIBETAN LETTER NGA 0F45 ; OtherLetter # Lo TIBETAN LETTER CA 0F46 ; OtherLetter # Lo TIBETAN LETTER CHA 0F47 ; OtherLetter # Lo TIBETAN LETTER JA 0F49 ; OtherLetter # Lo TIBETAN LETTER NYA 0F4A ; OtherLetter # Lo TIBETAN LETTER TTA 0F4B ; OtherLetter # Lo TIBETAN LETTER TTHA 0F4C ; OtherLetter # Lo TIBETAN LETTER DDA 0F4D ; OtherLetter # Lo TIBETAN LETTER DDHA 0F4E ; OtherLetter # Lo TIBETAN LETTER NNA 0F4F ; OtherLetter # Lo TIBETAN LETTER TA 0F50 ; OtherLetter # Lo TIBETAN LETTER THA 0F51 ; OtherLetter # Lo TIBETAN LETTER DA 0F52 ; OtherLetter # Lo TIBETAN LETTER DHA 0F53 ; OtherLetter # Lo TIBETAN LETTER NA 0F54 ; OtherLetter # Lo TIBETAN LETTER PA 0F55 ; OtherLetter # Lo TIBETAN LETTER PHA 0F56 ; OtherLetter # Lo TIBETAN LETTER BA 0F57 ; OtherLetter # Lo TIBETAN LETTER BHA 0F58 ; OtherLetter # Lo TIBETAN LETTER MA 0F59 ; OtherLetter # Lo TIBETAN LETTER TSA 0F5A ; OtherLetter # Lo TIBETAN LETTER TSHA 0F5B ; OtherLetter # Lo TIBETAN LETTER DZA 0F5C ; OtherLetter # Lo TIBETAN LETTER DZHA 0F5D ; OtherLetter # Lo TIBETAN LETTER WA 0F5E ; OtherLetter # Lo TIBETAN LETTER ZHA 0F5F ; OtherLetter # Lo TIBETAN LETTER ZA 0F60 ; OtherLetter # Lo TIBETAN LETTER -A 0F61 ; OtherLetter # Lo TIBETAN LETTER YA 0F62 ; OtherLetter # Lo TIBETAN LETTER RA 0F63 ; OtherLetter # Lo TIBETAN LETTER LA 0F64 ; OtherLetter # Lo TIBETAN LETTER SHA 0F65 ; OtherLetter # Lo TIBETAN LETTER SSA 0F66 ; OtherLetter # Lo TIBETAN LETTER SA 0F67 ; OtherLetter # Lo TIBETAN LETTER HA 0F68 ; OtherLetter # Lo TIBETAN LETTER A 0F69 ; OtherLetter # Lo TIBETAN LETTER KSSA 0F6A ; OtherLetter # Lo TIBETAN LETTER FIXED-FORM RA 0F6B ; OtherLetter # Lo TIBETAN LETTER KKA 0F6C ; OtherLetter # Lo TIBETAN LETTER RRA 0F84 ; Virama # Mn TIBETAN MARK HALANTA 0F88 ; OtherLetter # Lo TIBETAN SIGN LCE TSA CAN 0F89 ; OtherLetter # Lo TIBETAN SIGN MCHU CAN 0F8A ; OtherLetter # Lo TIBETAN SIGN GRU CAN RGYINGS 0F8B ; OtherLetter # Lo TIBETAN SIGN GRU MED RGYINGS 0F8C ; OtherLetter # Lo TIBETAN SIGN INVERTED MCHU CAN 1000 ; OtherLetter # Lo MYANMAR LETTER KA 1001 ; OtherLetter # Lo MYANMAR LETTER KHA 1002 ; OtherLetter # Lo MYANMAR LETTER GA 1003 ; OtherLetter # Lo MYANMAR LETTER GHA 1004 ; OtherLetter # Lo MYANMAR LETTER NGA 1005 ; OtherLetter # Lo MYANMAR LETTER CA 1006 ; OtherLetter # Lo MYANMAR LETTER CHA 1007 ; OtherLetter # Lo MYANMAR LETTER JA 1008 ; OtherLetter # Lo MYANMAR LETTER JHA 1009 ; OtherLetter # Lo MYANMAR LETTER NYA 100A ; OtherLetter # Lo MYANMAR LETTER NNYA 100B ; OtherLetter # Lo MYANMAR LETTER TTA 100C ; OtherLetter # Lo MYANMAR LETTER TTHA 100D ; OtherLetter # Lo MYANMAR LETTER DDA 100E ; OtherLetter # Lo MYANMAR LETTER DDHA 100F ; OtherLetter # Lo MYANMAR LETTER NNA 1010 ; OtherLetter # Lo MYANMAR LETTER TA 1011 ; OtherLetter # Lo MYANMAR LETTER THA 1012 ; OtherLetter # Lo MYANMAR LETTER DA 1013 ; OtherLetter # Lo MYANMAR LETTER DHA 1014 ; OtherLetter # Lo MYANMAR LETTER NA 1015 ; OtherLetter # Lo MYANMAR LETTER PA 1016 ; OtherLetter # Lo MYANMAR LETTER PHA 1017 ; OtherLetter # Lo MYANMAR LETTER BA 1018 ; OtherLetter # Lo MYANMAR LETTER BHA 1019 ; OtherLetter # Lo MYANMAR LETTER MA 101A ; OtherLetter # Lo MYANMAR LETTER YA 101B ; OtherLetter # Lo MYANMAR LETTER RA 101C ; OtherLetter # Lo MYANMAR LETTER LA 101D ; OtherLetter # Lo MYANMAR LETTER WA 101E ; OtherLetter # Lo MYANMAR LETTER SA 101F ; OtherLetter # Lo MYANMAR LETTER HA 1020 ; OtherLetter # Lo MYANMAR LETTER LLA 1021 ; OtherLetter # Lo MYANMAR LETTER A 1022 ; OtherLetter # Lo MYANMAR LETTER SHAN A 1023 ; OtherLetter # Lo MYANMAR LETTER I 1024 ; OtherLetter # Lo MYANMAR LETTER II 1025 ; OtherLetter # Lo MYANMAR LETTER U 1026 ; OtherLetter # Lo MYANMAR LETTER UU 1027 ; OtherLetter # Lo MYANMAR LETTER E 1028 ; OtherLetter # Lo MYANMAR LETTER MON E 1029 ; OtherLetter # Lo MYANMAR LETTER O 102A ; OtherLetter # Lo MYANMAR LETTER AU 1039 ; Virama # Mn MYANMAR SIGN VIRAMA 103A ; Virama # Mn MYANMAR SIGN ASAT 103F ; OtherLetter # Lo MYANMAR LETTER GREAT SA 1050 ; OtherLetter # Lo MYANMAR LETTER SHA 1051 ; OtherLetter # Lo MYANMAR LETTER SSA 1052 ; OtherLetter # Lo MYANMAR LETTER VOCALIC R 1053 ; OtherLetter # Lo MYANMAR LETTER VOCALIC RR 1054 ; OtherLetter # Lo MYANMAR LETTER VOCALIC L 1055 ; OtherLetter # Lo MYANMAR LETTER VOCALIC LL 105A ; OtherLetter # Lo MYANMAR LETTER MON NGA 105B ; OtherLetter # Lo MYANMAR LETTER MON JHA 105C ; OtherLetter # Lo MYANMAR LETTER MON BBA 105D ; OtherLetter # Lo MYANMAR LETTER MON BBE 1061 ; OtherLetter # Lo MYANMAR LETTER SGAW KAREN SHA 1065 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN THA 1066 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN PWA 106E ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN NNA 106F ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN YWA 1070 ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN GHWA 1075 ; OtherLetter # Lo MYANMAR LETTER SHAN KA 1076 ; OtherLetter # Lo MYANMAR LETTER SHAN KHA 1077 ; OtherLetter # Lo MYANMAR LETTER SHAN GA 1078 ; OtherLetter # Lo MYANMAR LETTER SHAN CA 1079 ; OtherLetter # Lo MYANMAR LETTER SHAN ZA 107A ; OtherLetter # Lo MYANMAR LETTER SHAN NYA 107B ; OtherLetter # Lo MYANMAR LETTER SHAN DA 107C ; OtherLetter # Lo MYANMAR LETTER SHAN NA 107D ; OtherLetter # Lo MYANMAR LETTER SHAN PHA 107E ; OtherLetter # Lo MYANMAR LETTER SHAN FA 107F ; OtherLetter # Lo MYANMAR LETTER SHAN BA 1080 ; OtherLetter # Lo MYANMAR LETTER SHAN THA 1081 ; OtherLetter # Lo MYANMAR LETTER SHAN HA 108E ; OtherLetter # Lo MYANMAR LETTER RUMAI PALAUNG FA 1700 ; OtherLetter # Lo TAGALOG LETTER A 1701 ; OtherLetter # Lo TAGALOG LETTER I 1702 ; OtherLetter # Lo TAGALOG LETTER U 1703 ; OtherLetter # Lo TAGALOG LETTER KA 1704 ; OtherLetter # Lo TAGALOG LETTER GA 1705 ; OtherLetter # Lo TAGALOG LETTER NGA 1706 ; OtherLetter # Lo TAGALOG LETTER TA 1707 ; OtherLetter # Lo TAGALOG LETTER DA 1708 ; OtherLetter # Lo TAGALOG LETTER NA 1709 ; OtherLetter # Lo TAGALOG LETTER PA 170A ; OtherLetter # Lo TAGALOG LETTER BA 170B ; OtherLetter # Lo TAGALOG LETTER MA 170C ; OtherLetter # Lo TAGALOG LETTER YA 170E ; OtherLetter # Lo TAGALOG LETTER LA 170F ; OtherLetter # Lo TAGALOG LETTER WA 1710 ; OtherLetter # Lo TAGALOG LETTER SA 1711 ; OtherLetter # Lo TAGALOG LETTER HA 1714 ; Virama # Mn TAGALOG SIGN VIRAMA 1720 ; OtherLetter # Lo HANUNOO LETTER A 1721 ; OtherLetter # Lo HANUNOO LETTER I 1722 ; OtherLetter # Lo HANUNOO LETTER U 1723 ; OtherLetter # Lo HANUNOO LETTER KA 1724 ; OtherLetter # Lo HANUNOO LETTER GA 1725 ; OtherLetter # Lo HANUNOO LETTER NGA 1726 ; OtherLetter # Lo HANUNOO LETTER TA 1727 ; OtherLetter # Lo HANUNOO LETTER DA 1728 ; OtherLetter # Lo HANUNOO LETTER NA 1729 ; OtherLetter # Lo HANUNOO LETTER PA 172A ; OtherLetter # Lo HANUNOO LETTER BA 172B ; OtherLetter # Lo HANUNOO LETTER MA 172C ; OtherLetter # Lo HANUNOO LETTER YA 172D ; OtherLetter # Lo HANUNOO LETTER RA 172E ; OtherLetter # Lo HANUNOO LETTER LA 172F ; OtherLetter # Lo HANUNOO LETTER WA 1730 ; OtherLetter # Lo HANUNOO LETTER SA 1731 ; OtherLetter # Lo HANUNOO LETTER HA 1734 ; Virama # Mn HANUNOO SIGN PAMUDPOD 1780 ; OtherLetter # Lo KHMER LETTER KA 1781 ; OtherLetter # Lo KHMER LETTER KHA 1782 ; OtherLetter # Lo KHMER LETTER KO 1783 ; OtherLetter # Lo KHMER LETTER KHO 1784 ; OtherLetter # Lo KHMER LETTER NGO 1785 ; OtherLetter # Lo KHMER LETTER CA 1786 ; OtherLetter # Lo KHMER LETTER CHA 1787 ; OtherLetter # Lo KHMER LETTER CO 1788 ; OtherLetter # Lo KHMER LETTER CHO 1789 ; OtherLetter # Lo KHMER LETTER NYO 178A ; OtherLetter # Lo KHMER LETTER DA 178B ; OtherLetter # Lo KHMER LETTER TTHA 178C ; OtherLetter # Lo KHMER LETTER DO 178D ; OtherLetter # Lo KHMER LETTER TTHO 178E ; OtherLetter # Lo KHMER LETTER NNO 178F ; OtherLetter # Lo KHMER LETTER TA 1790 ; OtherLetter # Lo KHMER LETTER THA 1791 ; OtherLetter # Lo KHMER LETTER TO 1792 ; OtherLetter # Lo KHMER LETTER THO 1793 ; OtherLetter # Lo KHMER LETTER NO 1794 ; OtherLetter # Lo KHMER LETTER BA 1795 ; OtherLetter # Lo KHMER LETTER PHA 1796 ; OtherLetter # Lo KHMER LETTER PO 1797 ; OtherLetter # Lo KHMER LETTER PHO 1798 ; OtherLetter # Lo KHMER LETTER MO 1799 ; OtherLetter # Lo KHMER LETTER YO 179A ; OtherLetter # Lo KHMER LETTER RO 179B ; OtherLetter # Lo KHMER LETTER LO 179C ; OtherLetter # Lo KHMER LETTER VO 179D ; OtherLetter # Lo KHMER LETTER SHA 179E ; OtherLetter # Lo KHMER LETTER SSO 179F ; OtherLetter # Lo KHMER LETTER SA 17A0 ; OtherLetter # Lo KHMER LETTER HA 17A1 ; OtherLetter # Lo KHMER LETTER LA 17A2 ; OtherLetter # Lo KHMER LETTER QA 17A3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAQ 17A4 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAA 17A5 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QI 17A6 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QII 17A7 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QU 17A8 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUK 17A9 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUU 17AA ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUUV 17AB ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RY 17AC ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RYY 17AD ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LY 17AE ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LYY 17AF ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QE 17B0 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAI 17B1 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE ONE 17B2 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE TWO 17B3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAU 17D2 ; Virama # Mn KHMER SIGN COENG 17D7 ; OtherLetter # Lm KHMER SIGN LEK TOO 17DC ; OtherLetter # Lo KHMER SIGN AVAKRAHASANYA 1A20 ; OtherLetter # Lo TAI THAM LETTER HIGH KA 1A21 ; OtherLetter # Lo TAI THAM LETTER HIGH KHA 1A22 ; OtherLetter # Lo TAI THAM LETTER HIGH KXA 1A23 ; OtherLetter # Lo TAI THAM LETTER LOW KA 1A24 ; OtherLetter # Lo TAI THAM LETTER LOW KXA 1A25 ; OtherLetter # Lo TAI THAM LETTER LOW KHA 1A26 ; OtherLetter # Lo TAI THAM LETTER NGA 1A27 ; OtherLetter # Lo TAI THAM LETTER HIGH CA 1A28 ; OtherLetter # Lo TAI THAM LETTER HIGH CHA 1A29 ; OtherLetter # Lo TAI THAM LETTER LOW CA 1A2A ; OtherLetter # Lo TAI THAM LETTER LOW SA 1A2B ; OtherLetter # Lo TAI THAM LETTER LOW CHA 1A2C ; OtherLetter # Lo TAI THAM LETTER NYA 1A2D ; OtherLetter # Lo TAI THAM LETTER RATA 1A2E ; OtherLetter # Lo TAI THAM LETTER HIGH RATHA 1A2F ; OtherLetter # Lo TAI THAM LETTER DA 1A30 ; OtherLetter # Lo TAI THAM LETTER LOW RATHA 1A31 ; OtherLetter # Lo TAI THAM LETTER RANA 1A32 ; OtherLetter # Lo TAI THAM LETTER HIGH TA 1A33 ; OtherLetter # Lo TAI THAM LETTER HIGH THA 1A34 ; OtherLetter # Lo TAI THAM LETTER LOW TA 1A35 ; OtherLetter # Lo TAI THAM LETTER LOW THA 1A36 ; OtherLetter # Lo TAI THAM LETTER NA 1A37 ; OtherLetter # Lo TAI THAM LETTER BA 1A38 ; OtherLetter # Lo TAI THAM LETTER HIGH PA 1A39 ; OtherLetter # Lo TAI THAM LETTER HIGH PHA 1A3A ; OtherLetter # Lo TAI THAM LETTER HIGH FA 1A3B ; OtherLetter # Lo TAI THAM LETTER LOW PA 1A3C ; OtherLetter # Lo TAI THAM LETTER LOW FA 1A3D ; OtherLetter # Lo TAI THAM LETTER LOW PHA 1A3E ; OtherLetter # Lo TAI THAM LETTER MA 1A3F ; OtherLetter # Lo TAI THAM LETTER LOW YA 1A40 ; OtherLetter # Lo TAI THAM LETTER HIGH YA 1A41 ; OtherLetter # Lo TAI THAM LETTER RA 1A42 ; OtherLetter # Lo TAI THAM LETTER RUE 1A43 ; OtherLetter # Lo TAI THAM LETTER LA 1A44 ; OtherLetter # Lo TAI THAM LETTER LUE 1A45 ; OtherLetter # Lo TAI THAM LETTER WA 1A46 ; OtherLetter # Lo TAI THAM LETTER HIGH SHA 1A47 ; OtherLetter # Lo TAI THAM LETTER HIGH SSA 1A48 ; OtherLetter # Lo TAI THAM LETTER HIGH SA 1A49 ; OtherLetter # Lo TAI THAM LETTER HIGH HA 1A4A ; OtherLetter # Lo TAI THAM LETTER LLA 1A4B ; OtherLetter # Lo TAI THAM LETTER A 1A4C ; OtherLetter # Lo TAI THAM LETTER LOW HA 1A4D ; OtherLetter # Lo TAI THAM LETTER I 1A4E ; OtherLetter # Lo TAI THAM LETTER II 1A4F ; OtherLetter # Lo TAI THAM LETTER U 1A50 ; OtherLetter # Lo TAI THAM LETTER UU 1A51 ; OtherLetter # Lo TAI THAM LETTER EE 1A52 ; OtherLetter # Lo TAI THAM LETTER OO 1A53 ; OtherLetter # Lo TAI THAM LETTER LAE 1A54 ; OtherLetter # Lo TAI THAM LETTER GREAT SA 1A60 ; Virama # Mn TAI THAM SIGN SAKOT 1AA7 ; OtherLetter # Lm TAI THAM SIGN MAI YAMOK 1B05 ; OtherLetter # Lo BALINESE LETTER AKARA 1B06 ; OtherLetter # Lo BALINESE LETTER AKARA TEDUNG 1B07 ; OtherLetter # Lo BALINESE LETTER IKARA 1B08 ; OtherLetter # Lo BALINESE LETTER IKARA TEDUNG 1B09 ; OtherLetter # Lo BALINESE LETTER UKARA 1B0A ; OtherLetter # Lo BALINESE LETTER UKARA TEDUNG 1B0B ; OtherLetter # Lo BALINESE LETTER RA REPA 1B0C ; OtherLetter # Lo BALINESE LETTER RA REPA TEDUNG 1B0D ; OtherLetter # Lo BALINESE LETTER LA LENGA 1B0E ; OtherLetter # Lo BALINESE LETTER LA LENGA TEDUNG 1B0F ; OtherLetter # Lo BALINESE LETTER EKARA 1B10 ; OtherLetter # Lo BALINESE LETTER AIKARA 1B11 ; OtherLetter # Lo BALINESE LETTER OKARA 1B12 ; OtherLetter # Lo BALINESE LETTER OKARA TEDUNG 1B13 ; OtherLetter # Lo BALINESE LETTER KA 1B14 ; OtherLetter # Lo BALINESE LETTER KA MAHAPRANA 1B15 ; OtherLetter # Lo BALINESE LETTER GA 1B16 ; OtherLetter # Lo BALINESE LETTER GA GORA 1B17 ; OtherLetter # Lo BALINESE LETTER NGA 1B18 ; OtherLetter # Lo BALINESE LETTER CA 1B19 ; OtherLetter # Lo BALINESE LETTER CA LACA 1B1A ; OtherLetter # Lo BALINESE LETTER JA 1B1B ; OtherLetter # Lo BALINESE LETTER JA JERA 1B1C ; OtherLetter # Lo BALINESE LETTER NYA 1B1D ; OtherLetter # Lo BALINESE LETTER TA LATIK 1B1E ; OtherLetter # Lo BALINESE LETTER TA MURDA MAHAPRANA 1B1F ; OtherLetter # Lo BALINESE LETTER DA MURDA ALPAPRANA 1B20 ; OtherLetter # Lo BALINESE LETTER DA MURDA MAHAPRANA 1B21 ; OtherLetter # Lo BALINESE LETTER NA RAMBAT 1B22 ; OtherLetter # Lo BALINESE LETTER TA 1B23 ; OtherLetter # Lo BALINESE LETTER TA TAWA 1B24 ; OtherLetter # Lo BALINESE LETTER DA 1B25 ; OtherLetter # Lo BALINESE LETTER DA MADU 1B26 ; OtherLetter # Lo BALINESE LETTER NA 1B27 ; OtherLetter # Lo BALINESE LETTER PA 1B28 ; OtherLetter # Lo BALINESE LETTER PA KAPAL 1B29 ; OtherLetter # Lo BALINESE LETTER BA 1B2A ; OtherLetter # Lo BALINESE LETTER BA KEMBANG 1B2B ; OtherLetter # Lo BALINESE LETTER MA 1B2C ; OtherLetter # Lo BALINESE LETTER YA 1B2D ; OtherLetter # Lo BALINESE LETTER RA 1B2E ; OtherLetter # Lo BALINESE LETTER LA 1B2F ; OtherLetter # Lo BALINESE LETTER WA 1B30 ; OtherLetter # Lo BALINESE LETTER SA SAGA 1B31 ; OtherLetter # Lo BALINESE LETTER SA SAPA 1B32 ; OtherLetter # Lo BALINESE LETTER SA 1B33 ; OtherLetter # Lo BALINESE LETTER HA 1B44 ; Virama # Mc BALINESE ADEG ADEG 1B45 ; OtherLetter # Lo BALINESE LETTER KAF SASAK 1B46 ; OtherLetter # Lo BALINESE LETTER KHOT SASAK 1B47 ; OtherLetter # Lo BALINESE LETTER TZIR SASAK 1B48 ; OtherLetter # Lo BALINESE LETTER EF SASAK 1B49 ; OtherLetter # Lo BALINESE LETTER VE SASAK 1B4A ; OtherLetter # Lo BALINESE LETTER ZAL SASAK 1B4B ; OtherLetter # Lo BALINESE LETTER ASYURA SASAK 1B83 ; OtherLetter # Lo SUNDANESE LETTER A 1B84 ; OtherLetter # Lo SUNDANESE LETTER I 1B85 ; OtherLetter # Lo SUNDANESE LETTER U 1B86 ; OtherLetter # Lo SUNDANESE LETTER AE 1B87 ; OtherLetter # Lo SUNDANESE LETTER O 1B88 ; OtherLetter # Lo SUNDANESE LETTER E 1B89 ; OtherLetter # Lo SUNDANESE LETTER EU 1B8A ; OtherLetter # Lo SUNDANESE LETTER KA 1B8B ; OtherLetter # Lo SUNDANESE LETTER QA 1B8C ; OtherLetter # Lo SUNDANESE LETTER GA 1B8D ; OtherLetter # Lo SUNDANESE LETTER NGA 1B8E ; OtherLetter # Lo SUNDANESE LETTER CA 1B8F ; OtherLetter # Lo SUNDANESE LETTER JA 1B90 ; OtherLetter # Lo SUNDANESE LETTER ZA 1B91 ; OtherLetter # Lo SUNDANESE LETTER NYA 1B92 ; OtherLetter # Lo SUNDANESE LETTER TA 1B93 ; OtherLetter # Lo SUNDANESE LETTER DA 1B94 ; OtherLetter # Lo SUNDANESE LETTER NA 1B95 ; OtherLetter # Lo SUNDANESE LETTER PA 1B96 ; OtherLetter # Lo SUNDANESE LETTER FA 1B97 ; OtherLetter # Lo SUNDANESE LETTER VA 1B98 ; OtherLetter # Lo SUNDANESE LETTER BA 1B99 ; OtherLetter # Lo SUNDANESE LETTER MA 1B9A ; OtherLetter # Lo SUNDANESE LETTER YA 1B9B ; OtherLetter # Lo SUNDANESE LETTER RA 1B9C ; OtherLetter # Lo SUNDANESE LETTER LA 1B9D ; OtherLetter # Lo SUNDANESE LETTER WA 1B9E ; OtherLetter # Lo SUNDANESE LETTER SA 1B9F ; OtherLetter # Lo SUNDANESE LETTER XA 1BA0 ; OtherLetter # Lo SUNDANESE LETTER HA 1BAA ; Virama # Mc SUNDANESE SIGN PAMAAEH 1BAB ; Virama # Mn SUNDANESE SIGN VIRAMA 1BAE ; OtherLetter # Lo SUNDANESE LETTER KHA 1BAF ; OtherLetter # Lo SUNDANESE LETTER SYA 1BBA ; OtherLetter # Lo SUNDANESE AVAGRAHA 1BBB ; OtherLetter # Lo SUNDANESE LETTER REU 1BBC ; OtherLetter # Lo SUNDANESE LETTER LEU 1BBD ; OtherLetter # Lo SUNDANESE LETTER BHA 1BBE ; OtherLetter # Lo SUNDANESE LETTER FINAL K 1BBF ; OtherLetter # Lo SUNDANESE LETTER FINAL M 1BC0 ; OtherLetter # Lo BATAK LETTER A 1BC1 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN A 1BC2 ; OtherLetter # Lo BATAK LETTER HA 1BC3 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN HA 1BC4 ; OtherLetter # Lo BATAK LETTER MANDAILING HA 1BC5 ; OtherLetter # Lo BATAK LETTER BA 1BC6 ; OtherLetter # Lo BATAK LETTER KARO BA 1BC7 ; OtherLetter # Lo BATAK LETTER PA 1BC8 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN PA 1BC9 ; OtherLetter # Lo BATAK LETTER NA 1BCA ; OtherLetter # Lo BATAK LETTER MANDAILING NA 1BCB ; OtherLetter # Lo BATAK LETTER WA 1BCC ; OtherLetter # Lo BATAK LETTER SIMALUNGUN WA 1BCD ; OtherLetter # Lo BATAK LETTER PAKPAK WA 1BCE ; OtherLetter # Lo BATAK LETTER GA 1BCF ; OtherLetter # Lo BATAK LETTER SIMALUNGUN GA 1BD0 ; OtherLetter # Lo BATAK LETTER JA 1BD1 ; OtherLetter # Lo BATAK LETTER DA 1BD2 ; OtherLetter # Lo BATAK LETTER RA 1BD3 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN RA 1BD4 ; OtherLetter # Lo BATAK LETTER MA 1BD5 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN MA 1BD6 ; OtherLetter # Lo BATAK LETTER SOUTHERN TA 1BD7 ; OtherLetter # Lo BATAK LETTER NORTHERN TA 1BD8 ; OtherLetter # Lo BATAK LETTER SA 1BD9 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN SA 1BDA ; OtherLetter # Lo BATAK LETTER MANDAILING SA 1BDB ; OtherLetter # Lo BATAK LETTER YA 1BDC ; OtherLetter # Lo BATAK LETTER SIMALUNGUN YA 1BDD ; OtherLetter # Lo BATAK LETTER NGA 1BDE ; OtherLetter # Lo BATAK LETTER LA 1BDF ; OtherLetter # Lo BATAK LETTER SIMALUNGUN LA 1BE0 ; OtherLetter # Lo BATAK LETTER NYA 1BE1 ; OtherLetter # Lo BATAK LETTER CA 1BE2 ; OtherLetter # Lo BATAK LETTER NDA 1BE3 ; OtherLetter # Lo BATAK LETTER MBA 1BE4 ; OtherLetter # Lo BATAK LETTER I 1BE5 ; OtherLetter # Lo BATAK LETTER U 1BF2 ; Virama # Mc BATAK PANGOLAT 1BF3 ; Virama # Mc BATAK PANONGONAN 2D30 ; OtherLetter # Lo TIFINAGH LETTER YA 2D31 ; OtherLetter # Lo TIFINAGH LETTER YAB 2D32 ; OtherLetter # Lo TIFINAGH LETTER YABH 2D33 ; OtherLetter # Lo TIFINAGH LETTER YAG 2D34 ; OtherLetter # Lo TIFINAGH LETTER YAGHH 2D35 ; OtherLetter # Lo TIFINAGH LETTER BERBER ACADEMY YAJ 2D36 ; OtherLetter # Lo TIFINAGH LETTER YAJ 2D37 ; OtherLetter # Lo TIFINAGH LETTER YAD 2D38 ; OtherLetter # Lo TIFINAGH LETTER YADH 2D39 ; OtherLetter # Lo TIFINAGH LETTER YADD 2D3A ; OtherLetter # Lo TIFINAGH LETTER YADDH 2D3B ; OtherLetter # Lo TIFINAGH LETTER YEY 2D3C ; OtherLetter # Lo TIFINAGH LETTER YAF 2D3D ; OtherLetter # Lo TIFINAGH LETTER YAK 2D3E ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAK 2D3F ; OtherLetter # Lo TIFINAGH LETTER YAKHH 2D40 ; OtherLetter # Lo TIFINAGH LETTER YAH 2D41 ; OtherLetter # Lo TIFINAGH LETTER BERBER ACADEMY YAH 2D42 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAH 2D43 ; OtherLetter # Lo TIFINAGH LETTER YAHH 2D44 ; OtherLetter # Lo TIFINAGH LETTER YAA 2D45 ; OtherLetter # Lo TIFINAGH LETTER YAKH 2D46 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAKH 2D47 ; OtherLetter # Lo TIFINAGH LETTER YAQ 2D48 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAQ 2D49 ; OtherLetter # Lo TIFINAGH LETTER YI 2D4A ; OtherLetter # Lo TIFINAGH LETTER YAZH 2D4B ; OtherLetter # Lo TIFINAGH LETTER AHAGGAR YAZH 2D4C ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAZH 2D4D ; OtherLetter # Lo TIFINAGH LETTER YAL 2D4E ; OtherLetter # Lo TIFINAGH LETTER YAM 2D4F ; OtherLetter # Lo TIFINAGH LETTER YAN 2D50 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAGN 2D51 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YANG 2D52 ; OtherLetter # Lo TIFINAGH LETTER YAP 2D53 ; OtherLetter # Lo TIFINAGH LETTER YU 2D54 ; OtherLetter # Lo TIFINAGH LETTER YAR 2D55 ; OtherLetter # Lo TIFINAGH LETTER YARR 2D56 ; OtherLetter # Lo TIFINAGH LETTER YAGH 2D57 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAGH 2D58 ; OtherLetter # Lo TIFINAGH LETTER AYER YAGH 2D59 ; OtherLetter # Lo TIFINAGH LETTER YAS 2D5A ; OtherLetter # Lo TIFINAGH LETTER YASS 2D5B ; OtherLetter # Lo TIFINAGH LETTER YASH 2D5C ; OtherLetter # Lo TIFINAGH LETTER YAT 2D5D ; OtherLetter # Lo TIFINAGH LETTER YATH 2D5E ; OtherLetter # Lo TIFINAGH LETTER YACH 2D5F ; OtherLetter # Lo TIFINAGH LETTER YATT 2D60 ; OtherLetter # Lo TIFINAGH LETTER YAV 2D61 ; OtherLetter # Lo TIFINAGH LETTER YAW 2D62 ; OtherLetter # Lo TIFINAGH LETTER YAY 2D63 ; OtherLetter # Lo TIFINAGH LETTER YAZ 2D64 ; OtherLetter # Lo TIFINAGH LETTER TAWELLEMET YAZ 2D65 ; OtherLetter # Lo TIFINAGH LETTER YAZZ 2D66 ; OtherLetter # Lo TIFINAGH LETTER YE 2D67 ; OtherLetter # Lo TIFINAGH LETTER YO 2D6F ; OtherLetter # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK 2D7F ; Virama # Mn TIFINAGH CONSONANT JOINER A800 ; OtherLetter # Lo SYLOTI NAGRI LETTER A A801 ; OtherLetter # Lo SYLOTI NAGRI LETTER I A803 ; OtherLetter # Lo SYLOTI NAGRI LETTER U A804 ; OtherLetter # Lo SYLOTI NAGRI LETTER E A805 ; OtherLetter # Lo SYLOTI NAGRI LETTER O A806 ; Virama # Mn SYLOTI NAGRI SIGN HASANTA A807 ; OtherLetter # Lo SYLOTI NAGRI LETTER KO A808 ; OtherLetter # Lo SYLOTI NAGRI LETTER KHO A809 ; OtherLetter # Lo SYLOTI NAGRI LETTER GO A80A ; OtherLetter # Lo SYLOTI NAGRI LETTER GHO A80C ; OtherLetter # Lo SYLOTI NAGRI LETTER CO A80D ; OtherLetter # Lo SYLOTI NAGRI LETTER CHO A80E ; OtherLetter # Lo SYLOTI NAGRI LETTER JO A80F ; OtherLetter # Lo SYLOTI NAGRI LETTER JHO A810 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTO A811 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTHO A812 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDO A813 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDHO A814 ; OtherLetter # Lo SYLOTI NAGRI LETTER TO A815 ; OtherLetter # Lo SYLOTI NAGRI LETTER THO A816 ; OtherLetter # Lo SYLOTI NAGRI LETTER DO A817 ; OtherLetter # Lo SYLOTI NAGRI LETTER DHO A818 ; OtherLetter # Lo SYLOTI NAGRI LETTER NO A819 ; OtherLetter # Lo SYLOTI NAGRI LETTER PO A81A ; OtherLetter # Lo SYLOTI NAGRI LETTER PHO A81B ; OtherLetter # Lo SYLOTI NAGRI LETTER BO A81C ; OtherLetter # Lo SYLOTI NAGRI LETTER BHO A81D ; OtherLetter # Lo SYLOTI NAGRI LETTER MO A81E ; OtherLetter # Lo SYLOTI NAGRI LETTER RO A81F ; OtherLetter # Lo SYLOTI NAGRI LETTER LO A820 ; OtherLetter # Lo SYLOTI NAGRI LETTER RRO A821 ; OtherLetter # Lo SYLOTI NAGRI LETTER SO A822 ; OtherLetter # Lo SYLOTI NAGRI LETTER HO A882 ; OtherLetter # Lo SAURASHTRA LETTER A A883 ; OtherLetter # Lo SAURASHTRA LETTER AA A884 ; OtherLetter # Lo SAURASHTRA LETTER I A885 ; OtherLetter # Lo SAURASHTRA LETTER II A886 ; OtherLetter # Lo SAURASHTRA LETTER U A887 ; OtherLetter # Lo SAURASHTRA LETTER UU A888 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC R A889 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC RR A88A ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC L A88B ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC LL A88C ; OtherLetter # Lo SAURASHTRA LETTER E A88D ; OtherLetter # Lo SAURASHTRA LETTER EE A88E ; OtherLetter # Lo SAURASHTRA LETTER AI A88F ; OtherLetter # Lo SAURASHTRA LETTER O A890 ; OtherLetter # Lo SAURASHTRA LETTER OO A891 ; OtherLetter # Lo SAURASHTRA LETTER AU A892 ; OtherLetter # Lo SAURASHTRA LETTER KA A893 ; OtherLetter # Lo SAURASHTRA LETTER KHA A894 ; OtherLetter # Lo SAURASHTRA LETTER GA A895 ; OtherLetter # Lo SAURASHTRA LETTER GHA A896 ; OtherLetter # Lo SAURASHTRA LETTER NGA A897 ; OtherLetter # Lo SAURASHTRA LETTER CA A898 ; OtherLetter # Lo SAURASHTRA LETTER CHA A899 ; OtherLetter # Lo SAURASHTRA LETTER JA A89A ; OtherLetter # Lo SAURASHTRA LETTER JHA A89B ; OtherLetter # Lo SAURASHTRA LETTER NYA A89C ; OtherLetter # Lo SAURASHTRA LETTER TTA A89D ; OtherLetter # Lo SAURASHTRA LETTER TTHA A89E ; OtherLetter # Lo SAURASHTRA LETTER DDA A89F ; OtherLetter # Lo SAURASHTRA LETTER DDHA A8A0 ; OtherLetter # Lo SAURASHTRA LETTER NNA A8A1 ; OtherLetter # Lo SAURASHTRA LETTER TA A8A2 ; OtherLetter # Lo SAURASHTRA LETTER THA A8A3 ; OtherLetter # Lo SAURASHTRA LETTER DA A8A4 ; OtherLetter # Lo SAURASHTRA LETTER DHA A8A5 ; OtherLetter # Lo SAURASHTRA LETTER NA A8A6 ; OtherLetter # Lo SAURASHTRA LETTER PA A8A7 ; OtherLetter # Lo SAURASHTRA LETTER PHA A8A8 ; OtherLetter # Lo SAURASHTRA LETTER BA A8A9 ; OtherLetter # Lo SAURASHTRA LETTER BHA A8AA ; OtherLetter # Lo SAURASHTRA LETTER MA A8AB ; OtherLetter # Lo SAURASHTRA LETTER YA A8AC ; OtherLetter # Lo SAURASHTRA LETTER RA A8AD ; OtherLetter # Lo SAURASHTRA LETTER LA A8AE ; OtherLetter # Lo SAURASHTRA LETTER VA A8AF ; OtherLetter # Lo SAURASHTRA LETTER SHA A8B0 ; OtherLetter # Lo SAURASHTRA LETTER SSA A8B1 ; OtherLetter # Lo SAURASHTRA LETTER SA A8B2 ; OtherLetter # Lo SAURASHTRA LETTER HA A8B3 ; OtherLetter # Lo SAURASHTRA LETTER LLA A8C4 ; Virama # Mn SAURASHTRA SIGN VIRAMA A8F2 ; OtherLetter # Lo DEVANAGARI SIGN SPACING CANDRABINDU A8F3 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU VIRAMA A8F4 ; OtherLetter # Lo DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA A8F5 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU TWO A8F6 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU THREE A8F7 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU AVAGRAHA A8FB ; OtherLetter # Lo DEVANAGARI HEADSTROKE A930 ; OtherLetter # Lo REJANG LETTER KA A931 ; OtherLetter # Lo REJANG LETTER GA A932 ; OtherLetter # Lo REJANG LETTER NGA A933 ; OtherLetter # Lo REJANG LETTER TA A934 ; OtherLetter # Lo REJANG LETTER DA A935 ; OtherLetter # Lo REJANG LETTER NA A936 ; OtherLetter # Lo REJANG LETTER PA A937 ; OtherLetter # Lo REJANG LETTER BA A938 ; OtherLetter # Lo REJANG LETTER MA A939 ; OtherLetter # Lo REJANG LETTER CA A93A ; OtherLetter # Lo REJANG LETTER JA A93B ; OtherLetter # Lo REJANG LETTER NYA A93C ; OtherLetter # Lo REJANG LETTER SA A93D ; OtherLetter # Lo REJANG LETTER RA A93E ; OtherLetter # Lo REJANG LETTER LA A93F ; OtherLetter # Lo REJANG LETTER YA A940 ; OtherLetter # Lo REJANG LETTER WA A941 ; OtherLetter # Lo REJANG LETTER HA A942 ; OtherLetter # Lo REJANG LETTER MBA A943 ; OtherLetter # Lo REJANG LETTER NGGA A944 ; OtherLetter # Lo REJANG LETTER NDA A945 ; OtherLetter # Lo REJANG LETTER NYJA A946 ; OtherLetter # Lo REJANG LETTER A A953 ; Virama # Mc REJANG VIRAMA A984 ; OtherLetter # Lo JAVANESE LETTER A A985 ; OtherLetter # Lo JAVANESE LETTER I KAWI A986 ; OtherLetter # Lo JAVANESE LETTER I A987 ; OtherLetter # Lo JAVANESE LETTER II A988 ; OtherLetter # Lo JAVANESE LETTER U A989 ; OtherLetter # Lo JAVANESE LETTER PA CEREK A98A ; OtherLetter # Lo JAVANESE LETTER NGA LELET A98B ; OtherLetter # Lo JAVANESE LETTER NGA LELET RASWADI A98C ; OtherLetter # Lo JAVANESE LETTER E A98D ; OtherLetter # Lo JAVANESE LETTER AI A98E ; OtherLetter # Lo JAVANESE LETTER O A98F ; OtherLetter # Lo JAVANESE LETTER KA A990 ; OtherLetter # Lo JAVANESE LETTER KA SASAK A991 ; OtherLetter # Lo JAVANESE LETTER KA MURDA A992 ; OtherLetter # Lo JAVANESE LETTER GA A993 ; OtherLetter # Lo JAVANESE LETTER GA MURDA A994 ; OtherLetter # Lo JAVANESE LETTER NGA A995 ; OtherLetter # Lo JAVANESE LETTER CA A996 ; OtherLetter # Lo JAVANESE LETTER CA MURDA A997 ; OtherLetter # Lo JAVANESE LETTER JA A998 ; OtherLetter # Lo JAVANESE LETTER NYA MURDA A999 ; OtherLetter # Lo JAVANESE LETTER JA MAHAPRANA A99A ; OtherLetter # Lo JAVANESE LETTER NYA A99B ; OtherLetter # Lo JAVANESE LETTER TTA A99C ; OtherLetter # Lo JAVANESE LETTER TTA MAHAPRANA A99D ; OtherLetter # Lo JAVANESE LETTER DDA A99E ; OtherLetter # Lo JAVANESE LETTER DDA MAHAPRANA A99F ; OtherLetter # Lo JAVANESE LETTER NA MURDA A9A0 ; OtherLetter # Lo JAVANESE LETTER TA A9A1 ; OtherLetter # Lo JAVANESE LETTER TA MURDA A9A2 ; OtherLetter # Lo JAVANESE LETTER DA A9A3 ; OtherLetter # Lo JAVANESE LETTER DA MAHAPRANA A9A4 ; OtherLetter # Lo JAVANESE LETTER NA A9A5 ; OtherLetter # Lo JAVANESE LETTER PA A9A6 ; OtherLetter # Lo JAVANESE LETTER PA MURDA A9A7 ; OtherLetter # Lo JAVANESE LETTER BA A9A8 ; OtherLetter # Lo JAVANESE LETTER BA MURDA A9A9 ; OtherLetter # Lo JAVANESE LETTER MA A9AA ; OtherLetter # Lo JAVANESE LETTER YA A9AB ; OtherLetter # Lo JAVANESE LETTER RA A9AC ; OtherLetter # Lo JAVANESE LETTER RA AGUNG A9AD ; OtherLetter # Lo JAVANESE LETTER LA A9AE ; OtherLetter # Lo JAVANESE LETTER WA A9AF ; OtherLetter # Lo JAVANESE LETTER SA MURDA A9B0 ; OtherLetter # Lo JAVANESE LETTER SA MAHAPRANA A9B1 ; OtherLetter # Lo JAVANESE LETTER SA A9B2 ; OtherLetter # Lo JAVANESE LETTER HA A9C0 ; Virama # Mc JAVANESE PANGKON AA60 ; OtherLetter # Lo MYANMAR LETTER KHAMTI GA AA61 ; OtherLetter # Lo MYANMAR LETTER KHAMTI CA AA62 ; OtherLetter # Lo MYANMAR LETTER KHAMTI CHA AA63 ; OtherLetter # Lo MYANMAR LETTER KHAMTI JA AA64 ; OtherLetter # Lo MYANMAR LETTER KHAMTI JHA AA65 ; OtherLetter # Lo MYANMAR LETTER KHAMTI NYA AA66 ; OtherLetter # Lo MYANMAR LETTER KHAMTI TTA AA67 ; OtherLetter # Lo MYANMAR LETTER KHAMTI TTHA AA68 ; OtherLetter # Lo MYANMAR LETTER KHAMTI DDA AA69 ; OtherLetter # Lo MYANMAR LETTER KHAMTI DDHA AA6A ; OtherLetter # Lo MYANMAR LETTER KHAMTI DHA AA6B ; OtherLetter # Lo MYANMAR LETTER KHAMTI NA AA6C ; OtherLetter # Lo MYANMAR LETTER KHAMTI SA AA6D ; OtherLetter # Lo MYANMAR LETTER KHAMTI HA AA6E ; OtherLetter # Lo MYANMAR LETTER KHAMTI HHA AA6F ; OtherLetter # Lo MYANMAR LETTER KHAMTI FA AA70 ; OtherLetter # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION AA71 ; OtherLetter # Lo MYANMAR LETTER KHAMTI XA AA72 ; OtherLetter # Lo MYANMAR LETTER KHAMTI ZA AA73 ; OtherLetter # Lo MYANMAR LETTER KHAMTI RA AA74 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI OAY AA75 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI QN AA76 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI HM AA7A ; OtherLetter # Lo MYANMAR LETTER AITON RA AAE0 ; OtherLetter # Lo MEETEI MAYEK LETTER E AAE1 ; OtherLetter # Lo MEETEI MAYEK LETTER O AAE2 ; OtherLetter # Lo MEETEI MAYEK LETTER CHA AAE3 ; OtherLetter # Lo MEETEI MAYEK LETTER NYA AAE4 ; OtherLetter # Lo MEETEI MAYEK LETTER TTA AAE5 ; OtherLetter # Lo MEETEI MAYEK LETTER TTHA AAE6 ; OtherLetter # Lo MEETEI MAYEK LETTER DDA AAE7 ; OtherLetter # Lo MEETEI MAYEK LETTER DDHA AAE8 ; OtherLetter # Lo MEETEI MAYEK LETTER NNA AAE9 ; OtherLetter # Lo MEETEI MAYEK LETTER SHA AAEA ; OtherLetter # Lo MEETEI MAYEK LETTER SSA AAF2 ; OtherLetter # Lo MEETEI MAYEK ANJI AAF3 ; OtherLetter # Lm MEETEI MAYEK SYLLABLE REPETITION MARK AAF4 ; OtherLetter # Lm MEETEI MAYEK WORD REPETITION MARK AAF6 ; Virama # Mn MEETEI MAYEK VIRAMA ABC0 ; OtherLetter # Lo MEETEI MAYEK LETTER KOK ABC1 ; OtherLetter # Lo MEETEI MAYEK LETTER SAM ABC2 ; OtherLetter # Lo MEETEI MAYEK LETTER LAI ABC3 ; OtherLetter # Lo MEETEI MAYEK LETTER MIT ABC4 ; OtherLetter # Lo MEETEI MAYEK LETTER PA ABC5 ; OtherLetter # Lo MEETEI MAYEK LETTER NA ABC6 ; OtherLetter # Lo MEETEI MAYEK LETTER CHIL ABC7 ; OtherLetter # Lo MEETEI MAYEK LETTER TIL ABC8 ; OtherLetter # Lo MEETEI MAYEK LETTER KHOU ABC9 ; OtherLetter # Lo MEETEI MAYEK LETTER NGOU ABCA ; OtherLetter # Lo MEETEI MAYEK LETTER THOU ABCB ; OtherLetter # Lo MEETEI MAYEK LETTER WAI ABCC ; OtherLetter # Lo MEETEI MAYEK LETTER YANG ABCD ; OtherLetter # Lo MEETEI MAYEK LETTER HUK ABCE ; OtherLetter # Lo MEETEI MAYEK LETTER UN ABCF ; OtherLetter # Lo MEETEI MAYEK LETTER I ABD0 ; OtherLetter # Lo MEETEI MAYEK LETTER PHAM ABD1 ; OtherLetter # Lo MEETEI MAYEK LETTER ATIYA ABD2 ; OtherLetter # Lo MEETEI MAYEK LETTER GOK ABD3 ; OtherLetter # Lo MEETEI MAYEK LETTER JHAM ABD4 ; OtherLetter # Lo MEETEI MAYEK LETTER RAI ABD5 ; OtherLetter # Lo MEETEI MAYEK LETTER BA ABD6 ; OtherLetter # Lo MEETEI MAYEK LETTER JIL ABD7 ; OtherLetter # Lo MEETEI MAYEK LETTER DIL ABD8 ; OtherLetter # Lo MEETEI MAYEK LETTER GHOU ABD9 ; OtherLetter # Lo MEETEI MAYEK LETTER DHOU ABDA ; OtherLetter # Lo MEETEI MAYEK LETTER BHAM ABDB ; OtherLetter # Lo MEETEI MAYEK LETTER KOK LONSUM ABDC ; OtherLetter # Lo MEETEI MAYEK LETTER LAI LONSUM ABDD ; OtherLetter # Lo MEETEI MAYEK LETTER MIT LONSUM ABDE ; OtherLetter # Lo MEETEI MAYEK LETTER PA LONSUM ABDF ; OtherLetter # Lo MEETEI MAYEK LETTER NA LONSUM ABE0 ; OtherLetter # Lo MEETEI MAYEK LETTER TIL LONSUM ABE1 ; OtherLetter # Lo MEETEI MAYEK LETTER NGOU LONSUM ABE2 ; OtherLetter # Lo MEETEI MAYEK LETTER I LONSUM ABED ; Virama # Mn MEETEI MAYEK APUN IYEK 10A00 ; OtherLetter # Lo KHAROSHTHI LETTER A 10A10 ; OtherLetter # Lo KHAROSHTHI LETTER KA 10A11 ; OtherLetter # Lo KHAROSHTHI LETTER KHA 10A12 ; OtherLetter # Lo KHAROSHTHI LETTER GA 10A13 ; OtherLetter # Lo KHAROSHTHI LETTER GHA 10A15 ; OtherLetter # Lo KHAROSHTHI LETTER CA 10A16 ; OtherLetter # Lo KHAROSHTHI LETTER CHA 10A17 ; OtherLetter # Lo KHAROSHTHI LETTER JA 10A19 ; OtherLetter # Lo KHAROSHTHI LETTER NYA 10A1A ; OtherLetter # Lo KHAROSHTHI LETTER TTA 10A1B ; OtherLetter # Lo KHAROSHTHI LETTER TTHA 10A1C ; OtherLetter # Lo KHAROSHTHI LETTER DDA 10A1D ; OtherLetter # Lo KHAROSHTHI LETTER DDHA 10A1E ; OtherLetter # Lo KHAROSHTHI LETTER NNA 10A1F ; OtherLetter # Lo KHAROSHTHI LETTER TA 10A20 ; OtherLetter # Lo KHAROSHTHI LETTER THA 10A21 ; OtherLetter # Lo KHAROSHTHI LETTER DA 10A22 ; OtherLetter # Lo KHAROSHTHI LETTER DHA 10A23 ; OtherLetter # Lo KHAROSHTHI LETTER NA 10A24 ; OtherLetter # Lo KHAROSHTHI LETTER PA 10A25 ; OtherLetter # Lo KHAROSHTHI LETTER PHA 10A26 ; OtherLetter # Lo KHAROSHTHI LETTER BA 10A27 ; OtherLetter # Lo KHAROSHTHI LETTER BHA 10A28 ; OtherLetter # Lo KHAROSHTHI LETTER MA 10A29 ; OtherLetter # Lo KHAROSHTHI LETTER YA 10A2A ; OtherLetter # Lo KHAROSHTHI LETTER RA 10A2B ; OtherLetter # Lo KHAROSHTHI LETTER LA 10A2C ; OtherLetter # Lo KHAROSHTHI LETTER VA 10A2D ; OtherLetter # Lo KHAROSHTHI LETTER SHA 10A2E ; OtherLetter # Lo KHAROSHTHI LETTER SSA 10A2F ; OtherLetter # Lo KHAROSHTHI LETTER SA 10A30 ; OtherLetter # Lo KHAROSHTHI LETTER ZA 10A31 ; OtherLetter # Lo KHAROSHTHI LETTER HA 10A32 ; OtherLetter # Lo KHAROSHTHI LETTER KKA 10A33 ; OtherLetter # Lo KHAROSHTHI LETTER TTTHA 10A3F ; Virama # Mn KHAROSHTHI VIRAMA 11003 ; OtherLetter # Lo BRAHMI SIGN JIHVAMULIYA 11004 ; OtherLetter # Lo BRAHMI SIGN UPADHMANIYA 11005 ; OtherLetter # Lo BRAHMI LETTER A 11006 ; OtherLetter # Lo BRAHMI LETTER AA 11007 ; OtherLetter # Lo BRAHMI LETTER I 11008 ; OtherLetter # Lo BRAHMI LETTER II 11009 ; OtherLetter # Lo BRAHMI LETTER U 1100A ; OtherLetter # Lo BRAHMI LETTER UU 1100B ; OtherLetter # Lo BRAHMI LETTER VOCALIC R 1100C ; OtherLetter # Lo BRAHMI LETTER VOCALIC RR 1100D ; OtherLetter # Lo BRAHMI LETTER VOCALIC L 1100E ; OtherLetter # Lo BRAHMI LETTER VOCALIC LL 1100F ; OtherLetter # Lo BRAHMI LETTER E 11010 ; OtherLetter # Lo BRAHMI LETTER AI 11011 ; OtherLetter # Lo BRAHMI LETTER O 11012 ; OtherLetter # Lo BRAHMI LETTER AU 11013 ; OtherLetter # Lo BRAHMI LETTER KA 11014 ; OtherLetter # Lo BRAHMI LETTER KHA 11015 ; OtherLetter # Lo BRAHMI LETTER GA 11016 ; OtherLetter # Lo BRAHMI LETTER GHA 11017 ; OtherLetter # Lo BRAHMI LETTER NGA 11018 ; OtherLetter # Lo BRAHMI LETTER CA 11019 ; OtherLetter # Lo BRAHMI LETTER CHA 1101A ; OtherLetter # Lo BRAHMI LETTER JA 1101B ; OtherLetter # Lo BRAHMI LETTER JHA 1101C ; OtherLetter # Lo BRAHMI LETTER NYA 1101D ; OtherLetter # Lo BRAHMI LETTER TTA 1101E ; OtherLetter # Lo BRAHMI LETTER TTHA 1101F ; OtherLetter # Lo BRAHMI LETTER DDA 11020 ; OtherLetter # Lo BRAHMI LETTER DDHA 11021 ; OtherLetter # Lo BRAHMI LETTER NNA 11022 ; OtherLetter # Lo BRAHMI LETTER TA 11023 ; OtherLetter # Lo BRAHMI LETTER THA 11024 ; OtherLetter # Lo BRAHMI LETTER DA 11025 ; OtherLetter # Lo BRAHMI LETTER DHA 11026 ; OtherLetter # Lo BRAHMI LETTER NA 11027 ; OtherLetter # Lo BRAHMI LETTER PA 11028 ; OtherLetter # Lo BRAHMI LETTER PHA 11029 ; OtherLetter # Lo BRAHMI LETTER BA 1102A ; OtherLetter # Lo BRAHMI LETTER BHA 1102B ; OtherLetter # Lo BRAHMI LETTER MA 1102C ; OtherLetter # Lo BRAHMI LETTER YA 1102D ; OtherLetter # Lo BRAHMI LETTER RA 1102E ; OtherLetter # Lo BRAHMI LETTER LA 1102F ; OtherLetter # Lo BRAHMI LETTER VA 11030 ; OtherLetter # Lo BRAHMI LETTER SHA 11031 ; OtherLetter # Lo BRAHMI LETTER SSA 11032 ; OtherLetter # Lo BRAHMI LETTER SA 11033 ; OtherLetter # Lo BRAHMI LETTER HA 11034 ; OtherLetter # Lo BRAHMI LETTER LLA 11035 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL LLLA 11036 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL RRA 11037 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL NNNA 11046 ; Virama # Mn BRAHMI VIRAMA 11083 ; OtherLetter # Lo KAITHI LETTER A 11084 ; OtherLetter # Lo KAITHI LETTER AA 11085 ; OtherLetter # Lo KAITHI LETTER I 11086 ; OtherLetter # Lo KAITHI LETTER II 11087 ; OtherLetter # Lo KAITHI LETTER U 11088 ; OtherLetter # Lo KAITHI LETTER UU 11089 ; OtherLetter # Lo KAITHI LETTER E 1108A ; OtherLetter # Lo KAITHI LETTER AI 1108B ; OtherLetter # Lo KAITHI LETTER O 1108C ; OtherLetter # Lo KAITHI LETTER AU 1108D ; OtherLetter # Lo KAITHI LETTER KA 1108E ; OtherLetter # Lo KAITHI LETTER KHA 1108F ; OtherLetter # Lo KAITHI LETTER GA 11090 ; OtherLetter # Lo KAITHI LETTER GHA 11091 ; OtherLetter # Lo KAITHI LETTER NGA 11092 ; OtherLetter # Lo KAITHI LETTER CA 11093 ; OtherLetter # Lo KAITHI LETTER CHA 11094 ; OtherLetter # Lo KAITHI LETTER JA 11095 ; OtherLetter # Lo KAITHI LETTER JHA 11096 ; OtherLetter # Lo KAITHI LETTER NYA 11097 ; OtherLetter # Lo KAITHI LETTER TTA 11098 ; OtherLetter # Lo KAITHI LETTER TTHA 11099 ; OtherLetter # Lo KAITHI LETTER DDA 1109A ; OtherLetter # Lo KAITHI LETTER DDDHA 1109B ; OtherLetter # Lo KAITHI LETTER DDHA 1109C ; OtherLetter # Lo KAITHI LETTER RHA 1109D ; OtherLetter # Lo KAITHI LETTER NNA 1109E ; OtherLetter # Lo KAITHI LETTER TA 1109F ; OtherLetter # Lo KAITHI LETTER THA 110A0 ; OtherLetter # Lo KAITHI LETTER DA 110A1 ; OtherLetter # Lo KAITHI LETTER DHA 110A2 ; OtherLetter # Lo KAITHI LETTER NA 110A3 ; OtherLetter # Lo KAITHI LETTER PA 110A4 ; OtherLetter # Lo KAITHI LETTER PHA 110A5 ; OtherLetter # Lo KAITHI LETTER BA 110A6 ; OtherLetter # Lo KAITHI LETTER BHA 110A7 ; OtherLetter # Lo KAITHI LETTER MA 110A8 ; OtherLetter # Lo KAITHI LETTER YA 110A9 ; OtherLetter # Lo KAITHI LETTER RA 110AA ; OtherLetter # Lo KAITHI LETTER LA 110AB ; OtherLetter # Lo KAITHI LETTER VA 110AC ; OtherLetter # Lo KAITHI LETTER SHA 110AD ; OtherLetter # Lo KAITHI LETTER SSA 110AE ; OtherLetter # Lo KAITHI LETTER SA 110AF ; OtherLetter # Lo KAITHI LETTER HA 110B9 ; Virama # Mn KAITHI SIGN VIRAMA 11103 ; OtherLetter # Lo CHAKMA LETTER AA 11104 ; OtherLetter # Lo CHAKMA LETTER I 11105 ; OtherLetter # Lo CHAKMA LETTER U 11106 ; OtherLetter # Lo CHAKMA LETTER E 11107 ; OtherLetter # Lo CHAKMA LETTER KAA 11108 ; OtherLetter # Lo CHAKMA LETTER KHAA 11109 ; OtherLetter # Lo CHAKMA LETTER GAA 1110A ; OtherLetter # Lo CHAKMA LETTER GHAA 1110B ; OtherLetter # Lo CHAKMA LETTER NGAA 1110C ; OtherLetter # Lo CHAKMA LETTER CAA 1110D ; OtherLetter # Lo CHAKMA LETTER CHAA 1110E ; OtherLetter # Lo CHAKMA LETTER JAA 1110F ; OtherLetter # Lo CHAKMA LETTER JHAA 11110 ; OtherLetter # Lo CHAKMA LETTER NYAA 11111 ; OtherLetter # Lo CHAKMA LETTER TTAA 11112 ; OtherLetter # Lo CHAKMA LETTER TTHAA 11113 ; OtherLetter # Lo CHAKMA LETTER DDAA 11114 ; OtherLetter # Lo CHAKMA LETTER DDHAA 11115 ; OtherLetter # Lo CHAKMA LETTER NNAA 11116 ; OtherLetter # Lo CHAKMA LETTER TAA 11117 ; OtherLetter # Lo CHAKMA LETTER THAA 11118 ; OtherLetter # Lo CHAKMA LETTER DAA 11119 ; OtherLetter # Lo CHAKMA LETTER DHAA 1111A ; OtherLetter # Lo CHAKMA LETTER NAA 1111B ; OtherLetter # Lo CHAKMA LETTER PAA 1111C ; OtherLetter # Lo CHAKMA LETTER PHAA 1111D ; OtherLetter # Lo CHAKMA LETTER BAA 1111E ; OtherLetter # Lo CHAKMA LETTER BHAA 1111F ; OtherLetter # Lo CHAKMA LETTER MAA 11120 ; OtherLetter # Lo CHAKMA LETTER YYAA 11121 ; OtherLetter # Lo CHAKMA LETTER YAA 11122 ; OtherLetter # Lo CHAKMA LETTER RAA 11123 ; OtherLetter # Lo CHAKMA LETTER LAA 11124 ; OtherLetter # Lo CHAKMA LETTER WAA 11125 ; OtherLetter # Lo CHAKMA LETTER SAA 11126 ; OtherLetter # Lo CHAKMA LETTER HAA 11133 ; Virama # Mn CHAKMA VIRAMA 11134 ; Virama # Mn CHAKMA MAAYYAA 11183 ; OtherLetter # Lo SHARADA LETTER A 11184 ; OtherLetter # Lo SHARADA LETTER AA 11185 ; OtherLetter # Lo SHARADA LETTER I 11186 ; OtherLetter # Lo SHARADA LETTER II 11187 ; OtherLetter # Lo SHARADA LETTER U 11188 ; OtherLetter # Lo SHARADA LETTER UU 11189 ; OtherLetter # Lo SHARADA LETTER VOCALIC R 1118A ; OtherLetter # Lo SHARADA LETTER VOCALIC RR 1118B ; OtherLetter # Lo SHARADA LETTER VOCALIC L 1118C ; OtherLetter # Lo SHARADA LETTER VOCALIC LL 1118D ; OtherLetter # Lo SHARADA LETTER E 1118E ; OtherLetter # Lo SHARADA LETTER AI 1118F ; OtherLetter # Lo SHARADA LETTER O 11190 ; OtherLetter # Lo SHARADA LETTER AU 11191 ; OtherLetter # Lo SHARADA LETTER KA 11192 ; OtherLetter # Lo SHARADA LETTER KHA 11193 ; OtherLetter # Lo SHARADA LETTER GA 11194 ; OtherLetter # Lo SHARADA LETTER GHA 11195 ; OtherLetter # Lo SHARADA LETTER NGA 11196 ; OtherLetter # Lo SHARADA LETTER CA 11197 ; OtherLetter # Lo SHARADA LETTER CHA 11198 ; OtherLetter # Lo SHARADA LETTER JA 11199 ; OtherLetter # Lo SHARADA LETTER JHA 1119A ; OtherLetter # Lo SHARADA LETTER NYA 1119B ; OtherLetter # Lo SHARADA LETTER TTA 1119C ; OtherLetter # Lo SHARADA LETTER TTHA 1119D ; OtherLetter # Lo SHARADA LETTER DDA 1119E ; OtherLetter # Lo SHARADA LETTER DDHA 1119F ; OtherLetter # Lo SHARADA LETTER NNA 111A0 ; OtherLetter # Lo SHARADA LETTER TA 111A1 ; OtherLetter # Lo SHARADA LETTER THA 111A2 ; OtherLetter # Lo SHARADA LETTER DA 111A3 ; OtherLetter # Lo SHARADA LETTER DHA 111A4 ; OtherLetter # Lo SHARADA LETTER NA 111A5 ; OtherLetter # Lo SHARADA LETTER PA 111A6 ; OtherLetter # Lo SHARADA LETTER PHA 111A7 ; OtherLetter # Lo SHARADA LETTER BA 111A8 ; OtherLetter # Lo SHARADA LETTER BHA 111A9 ; OtherLetter # Lo SHARADA LETTER MA 111AA ; OtherLetter # Lo SHARADA LETTER YA 111AB ; OtherLetter # Lo SHARADA LETTER RA 111AC ; OtherLetter # Lo SHARADA LETTER LA 111AD ; OtherLetter # Lo SHARADA LETTER LLA 111AE ; OtherLetter # Lo SHARADA LETTER VA 111AF ; OtherLetter # Lo SHARADA LETTER SHA 111B0 ; OtherLetter # Lo SHARADA LETTER SSA 111B1 ; OtherLetter # Lo SHARADA LETTER SA 111B2 ; OtherLetter # Lo SHARADA LETTER HA 111C0 ; Virama # Mc SHARADA SIGN VIRAMA 111C1 ; OtherLetter # Lo SHARADA SIGN AVAGRAHA 111C2 ; OtherLetter # Lo SHARADA SIGN JIHVAMULIYA 111C3 ; OtherLetter # Lo SHARADA SIGN UPADHMANIYA 111C4 ; OtherLetter # Lo SHARADA OM 11680 ; OtherLetter # Lo TAKRI LETTER A 11681 ; OtherLetter # Lo TAKRI LETTER AA 11682 ; OtherLetter # Lo TAKRI LETTER I 11683 ; OtherLetter # Lo TAKRI LETTER II 11684 ; OtherLetter # Lo TAKRI LETTER U 11685 ; OtherLetter # Lo TAKRI LETTER UU 11686 ; OtherLetter # Lo TAKRI LETTER E 11687 ; OtherLetter # Lo TAKRI LETTER AI 11688 ; OtherLetter # Lo TAKRI LETTER O 11689 ; OtherLetter # Lo TAKRI LETTER AU 1168A ; OtherLetter # Lo TAKRI LETTER KA 1168B ; OtherLetter # Lo TAKRI LETTER KHA 1168C ; OtherLetter # Lo TAKRI LETTER GA 1168D ; OtherLetter # Lo TAKRI LETTER GHA 1168E ; OtherLetter # Lo TAKRI LETTER NGA 1168F ; OtherLetter # Lo TAKRI LETTER CA 11690 ; OtherLetter # Lo TAKRI LETTER CHA 11691 ; OtherLetter # Lo TAKRI LETTER JA 11692 ; OtherLetter # Lo TAKRI LETTER JHA 11693 ; OtherLetter # Lo TAKRI LETTER NYA 11694 ; OtherLetter # Lo TAKRI LETTER TTA 11695 ; OtherLetter # Lo TAKRI LETTER TTHA 11696 ; OtherLetter # Lo TAKRI LETTER DDA 11697 ; OtherLetter # Lo TAKRI LETTER DDHA 11698 ; OtherLetter # Lo TAKRI LETTER NNA 11699 ; OtherLetter # Lo TAKRI LETTER TA 1169A ; OtherLetter # Lo TAKRI LETTER THA 1169B ; OtherLetter # Lo TAKRI LETTER DA 1169C ; OtherLetter # Lo TAKRI LETTER DHA 1169D ; OtherLetter # Lo TAKRI LETTER NA 1169E ; OtherLetter # Lo TAKRI LETTER PA 1169F ; OtherLetter # Lo TAKRI LETTER PHA 116A0 ; OtherLetter # Lo TAKRI LETTER BA 116A1 ; OtherLetter # Lo TAKRI LETTER BHA 116A2 ; OtherLetter # Lo TAKRI LETTER MA 116A3 ; OtherLetter # Lo TAKRI LETTER YA 116A4 ; OtherLetter # Lo TAKRI LETTER RA 116A5 ; OtherLetter # Lo TAKRI LETTER LA 116A6 ; OtherLetter # Lo TAKRI LETTER VA 116A7 ; OtherLetter # Lo TAKRI LETTER SHA 116A8 ; OtherLetter # Lo TAKRI LETTER SA 116A9 ; OtherLetter # Lo TAKRI LETTER HA 116AA ; OtherLetter # Lo TAKRI LETTER RRA 116B6 ; Virama # Mc TAKRI SIGN VIRAMA sombok-2.3.1/data/Rules-6.0.0.txt0000664000076400007640000000350211737272064013156 00000000000000#### Rules for Unicode Line Breaking Algorithm. #### Based on Unicode Standard Annex #14 (UAX#14), Revision 25 (2010-03-15) #### by Asmus Freytag and Andy Heninger. http://www.unicode.org/reports/tr14/tr14-25.html ### 1 Non-tailorable Line Breaking Rules ## Resolve line breaking classes: # LB1 Assign a line breaking class to each code point of the input. ## Start and end of text: # LB2 sot × # LB3 ! eot ## Mandatory breaks: # LB4 BK ! # LB5 CR × LF CR ! LF ! NL ! # LB6 × ( BK | CR | LF | NL ) ## Explicit breaks and non-breaks: # LB7 × SP × ZW # LB8 ZW SP* ÷ ## Combining marks: # LB9 Treat X CM* as if it were X. where X is any line break class except BK, CR, LF, NL, SP, or ZW. # LB10 Treat any remaining CM as it if were AL. ## Word joiner: # LB11 × WJ WJ × ## Non-breaking characters: # LB12 GL × ### 2 Tailorable Line Breaking Rules ## Non-breaking characters: # LB12a [^SP BA HY] × GL ## Opening and closing: # LB13 × CL × CP × EX × IS × SY # LB14 OP SP* × # LB15 QU SP* × OP # LB16 CL SP* × NS CP SP* × NS # LB17 B2 SP* × B2 ## Spaces: # LB18 SP ÷ ## Special case rules: # LB19 × QU QU × # LB20 ÷ CB CB ÷ # LB21 × BA × HY × NS BB × # LB22 AL × IN ID × IN IN × IN NU × IN ## Numbers: # LB23 ID × PO AL × NU NU × AL # LB24 PR × ID PR × AL PO × AL # LB25 #CL × PO #CP × PO #CL × PR #CP × PR #NU × PO #NU × PR #PO × OP #PO × NU #PR × OP #PR × NU #HY × NU #IS × NU #NU × NU #SY × NU ## Korean syllable blocks # LB26 JL × (JL | JV | H2 | H3) (JV | H2) × (JV | JT) (JT | H3) × JT # LB27 (JL | JV | JT | H2 | H3) × IN (JL | JV | JT | H2 | H3) × PO PR × (JL | JV | JT | H2 | H3) ## Finally, join alphabetic letters into words and break everything else. # LB28 AL × AL # LB29 IS × AL # LB30 (AL | NU) × OP CP × (AL | NU) # LB31 ALL ÷ ÷ ALL sombok-2.3.1/data/EastAsianWidth-5.1.0.custom0000664000076400007640000012301612221425411015413 000000000000000000;Z # 0001;Z # 0002;Z # 0003;Z # 0004;Z # 0005;Z # 0006;Z # 0007;Z # 0008;Z # 0009;Z # 000A;Z # 000B;Z # 000C;Z # 000D;Z # 000E;Z # 000F;Z # 0010;Z # 0011;Z # 0012;Z # 0013;Z # 0014;Z # 0015;Z # 0016;Z # 0017;Z # 0018;Z # 0019;Z # 001A;Z # 001B;Z # 001C;Z # 001D;Z # 001E;Z # 001F;Z # 007F;Z # 0080;Z # 0081;Z # 0082;Z # 0083;Z # 0084;Z # 0085;Z # 0086;Z # 0087;Z # 0088;Z # 0089;Z # 008A;Z # 008B;Z # 008C;Z # 008D;Z # 008E;Z # 008F;Z # 0090;Z # 0091;Z # 0092;Z # 0093;Z # 0094;Z # 0095;Z # 0096;Z # 0097;Z # 0098;Z # 0099;Z # 009A;Z # 009B;Z # 009C;Z # 009D;Z # 009E;Z # 009F;Z # 00AD;ZA # SOFT HYPHEN 0300;ZA # COMBINING GRAVE ACCENT 0301;ZA # COMBINING ACUTE ACCENT 0302;ZA # COMBINING CIRCUMFLEX ACCENT 0303;ZA # COMBINING TILDE 0304;ZA # COMBINING MACRON 0305;ZA # COMBINING OVERLINE 0306;ZA # COMBINING BREVE 0307;ZA # COMBINING DOT ABOVE 0308;ZA # COMBINING DIAERESIS 0309;ZA # COMBINING HOOK ABOVE 030A;ZA # COMBINING RING ABOVE 030B;ZA # COMBINING DOUBLE ACUTE ACCENT 030C;ZA # COMBINING CARON 030D;ZA # COMBINING VERTICAL LINE ABOVE 030E;ZA # COMBINING DOUBLE VERTICAL LINE ABOVE 030F;ZA # COMBINING DOUBLE GRAVE ACCENT 0310;ZA # COMBINING CANDRABINDU 0311;ZA # COMBINING INVERTED BREVE 0312;ZA # COMBINING TURNED COMMA ABOVE 0313;ZA # COMBINING COMMA ABOVE 0314;ZA # COMBINING REVERSED COMMA ABOVE 0315;ZA # COMBINING COMMA ABOVE RIGHT 0316;ZA # COMBINING GRAVE ACCENT BELOW 0317;ZA # COMBINING ACUTE ACCENT BELOW 0318;ZA # COMBINING LEFT TACK BELOW 0319;ZA # COMBINING RIGHT TACK BELOW 031A;ZA # COMBINING LEFT ANGLE ABOVE 031B;ZA # COMBINING HORN 031C;ZA # COMBINING LEFT HALF RING BELOW 031D;ZA # COMBINING UP TACK BELOW 031E;ZA # COMBINING DOWN TACK BELOW 031F;ZA # COMBINING PLUS SIGN BELOW 0320;ZA # COMBINING MINUS SIGN BELOW 0321;ZA # COMBINING PALATALIZED HOOK BELOW 0322;ZA # COMBINING RETROFLEX HOOK BELOW 0323;ZA # COMBINING DOT BELOW 0324;ZA # COMBINING DIAERESIS BELOW 0325;ZA # COMBINING RING BELOW 0326;ZA # COMBINING COMMA BELOW 0327;ZA # COMBINING CEDILLA 0328;ZA # COMBINING OGONEK 0329;ZA # COMBINING VERTICAL LINE BELOW 032A;ZA # COMBINING BRIDGE BELOW 032B;ZA # COMBINING INVERTED DOUBLE ARCH BELOW 032C;ZA # COMBINING CARON BELOW 032D;ZA # COMBINING CIRCUMFLEX ACCENT BELOW 032E;ZA # COMBINING BREVE BELOW 032F;ZA # COMBINING INVERTED BREVE BELOW 0330;ZA # COMBINING TILDE BELOW 0331;ZA # COMBINING MACRON BELOW 0332;ZA # COMBINING LOW LINE 0333;ZA # COMBINING DOUBLE LOW LINE 0334;ZA # COMBINING TILDE OVERLAY 0335;ZA # COMBINING SHORT STROKE OVERLAY 0336;ZA # COMBINING LONG STROKE OVERLAY 0337;ZA # COMBINING SHORT SOLIDUS OVERLAY 0338;ZA # COMBINING LONG SOLIDUS OVERLAY 0339;ZA # COMBINING RIGHT HALF RING BELOW 033A;ZA # COMBINING INVERTED BRIDGE BELOW 033B;ZA # COMBINING SQUARE BELOW 033C;ZA # COMBINING SEAGULL BELOW 033D;ZA # COMBINING X ABOVE 033E;ZA # COMBINING VERTICAL TILDE 033F;ZA # COMBINING DOUBLE OVERLINE 0340;ZA # COMBINING GRAVE TONE MARK 0341;ZA # COMBINING ACUTE TONE MARK 0342;ZA # COMBINING GREEK PERISPOMENI 0343;ZA # COMBINING GREEK KORONIS 0344;ZA # COMBINING GREEK DIALYTIKA TONOS 0345;ZA # COMBINING GREEK YPOGEGRAMMENI 0346;ZA # COMBINING BRIDGE ABOVE 0347;ZA # COMBINING EQUALS SIGN BELOW 0348;ZA # COMBINING DOUBLE VERTICAL LINE BELOW 0349;ZA # COMBINING LEFT ANGLE BELOW 034A;ZA # COMBINING NOT TILDE ABOVE 034B;ZA # COMBINING HOMOTHETIC ABOVE 034C;ZA # COMBINING ALMOST EQUAL TO ABOVE 034D;ZA # COMBINING LEFT RIGHT ARROW BELOW 034E;ZA # COMBINING UPWARDS ARROW BELOW 034F;ZA # COMBINING GRAPHEME JOINER 0350;ZA # COMBINING RIGHT ARROWHEAD ABOVE 0351;ZA # COMBINING LEFT HALF RING ABOVE 0352;ZA # COMBINING FERMATA 0353;ZA # COMBINING X BELOW 0354;ZA # COMBINING LEFT ARROWHEAD BELOW 0355;ZA # COMBINING RIGHT ARROWHEAD BELOW 0356;ZA # COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW 0357;ZA # COMBINING RIGHT HALF RING ABOVE 0358;ZA # COMBINING DOT ABOVE RIGHT 0359;ZA # COMBINING ASTERISK BELOW 035A;ZA # COMBINING DOUBLE RING BELOW 035B;ZA # COMBINING ZIGZAG ABOVE 035C;ZA # COMBINING DOUBLE BREVE BELOW 035D;ZA # COMBINING DOUBLE BREVE 035E;ZA # COMBINING DOUBLE MACRON 035F;ZA # COMBINING DOUBLE MACRON BELOW 0360;ZA # COMBINING DOUBLE TILDE 0361;ZA # COMBINING DOUBLE INVERTED BREVE 0362;ZA # COMBINING DOUBLE RIGHTWARDS ARROW BELOW 0363;ZA # COMBINING LATIN SMALL LETTER A 0364;ZA # COMBINING LATIN SMALL LETTER E 0365;ZA # COMBINING LATIN SMALL LETTER I 0366;ZA # COMBINING LATIN SMALL LETTER O 0367;ZA # COMBINING LATIN SMALL LETTER U 0368;ZA # COMBINING LATIN SMALL LETTER C 0369;ZA # COMBINING LATIN SMALL LETTER D 036A;ZA # COMBINING LATIN SMALL LETTER H 036B;ZA # COMBINING LATIN SMALL LETTER M 036C;ZA # COMBINING LATIN SMALL LETTER R 036D;ZA # COMBINING LATIN SMALL LETTER T 036E;ZA # COMBINING LATIN SMALL LETTER V 036F;ZA # COMBINING LATIN SMALL LETTER X 0483;Z # COMBINING CYRILLIC TITLO 0484;Z # COMBINING CYRILLIC PALATALIZATION 0485;Z # COMBINING CYRILLIC DASIA PNEUMATA 0486;Z # COMBINING CYRILLIC PSILI PNEUMATA 0487;Z # COMBINING CYRILLIC POKRYTIE 0488;Z # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN 0489;Z # COMBINING CYRILLIC MILLIONS SIGN 0591;Z # HEBREW ACCENT ETNAHTA 0592;Z # HEBREW ACCENT SEGOL 0593;Z # HEBREW ACCENT SHALSHELET 0594;Z # HEBREW ACCENT ZAQEF QATAN 0595;Z # HEBREW ACCENT ZAQEF GADOL 0596;Z # HEBREW ACCENT TIPEHA 0597;Z # HEBREW ACCENT REVIA 0598;Z # HEBREW ACCENT ZARQA 0599;Z # HEBREW ACCENT PASHTA 059A;Z # HEBREW ACCENT YETIV 059B;Z # HEBREW ACCENT TEVIR 059C;Z # HEBREW ACCENT GERESH 059D;Z # HEBREW ACCENT GERESH MUQDAM 059E;Z # HEBREW ACCENT GERSHAYIM 059F;Z # HEBREW ACCENT QARNEY PARA 05A0;Z # HEBREW ACCENT TELISHA GEDOLA 05A1;Z # HEBREW ACCENT PAZER 05A2;Z # HEBREW ACCENT ATNAH HAFUKH 05A3;Z # HEBREW ACCENT MUNAH 05A4;Z # HEBREW ACCENT MAHAPAKH 05A5;Z # HEBREW ACCENT MERKHA 05A6;Z # HEBREW ACCENT MERKHA KEFULA 05A7;Z # HEBREW ACCENT DARGA 05A8;Z # HEBREW ACCENT QADMA 05A9;Z # HEBREW ACCENT TELISHA QETANA 05AA;Z # HEBREW ACCENT YERAH BEN YOMO 05AB;Z # HEBREW ACCENT OLE 05AC;Z # HEBREW ACCENT ILUY 05AD;Z # HEBREW ACCENT DEHI 05AE;Z # HEBREW ACCENT ZINOR 05AF;Z # HEBREW MARK MASORA CIRCLE 05B0;Z # HEBREW POINT SHEVA 05B1;Z # HEBREW POINT HATAF SEGOL 05B2;Z # HEBREW POINT HATAF PATAH 05B3;Z # HEBREW POINT HATAF QAMATS 05B4;Z # HEBREW POINT HIRIQ 05B5;Z # HEBREW POINT TSERE 05B6;Z # HEBREW POINT SEGOL 05B7;Z # HEBREW POINT PATAH 05B8;Z # HEBREW POINT QAMATS 05B9;Z # HEBREW POINT HOLAM 05BA;Z # HEBREW POINT HOLAM HASER FOR VAV 05BB;Z # HEBREW POINT QUBUTS 05BC;Z # HEBREW POINT DAGESH OR MAPIQ 05BD;Z # HEBREW POINT METEG 05BF;Z # HEBREW POINT RAFE 05C1;Z # HEBREW POINT SHIN DOT 05C2;Z # HEBREW POINT SIN DOT 05C4;Z # HEBREW MARK UPPER DOT 05C5;Z # HEBREW MARK LOWER DOT 05C7;Z # HEBREW POINT QAMATS QATAN 0600;Z # ARABIC NUMBER SIGN 0601;Z # ARABIC SIGN SANAH 0602;Z # ARABIC FOOTNOTE MARKER 0603;Z # ARABIC SIGN SAFHA 0610;Z # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM 0611;Z # ARABIC SIGN ALAYHE ASSALLAM 0612;Z # ARABIC SIGN RAHMATULLAH ALAYHE 0613;Z # ARABIC SIGN RADI ALLAHOU ANHU 0614;Z # ARABIC SIGN TAKHALLUS 0615;Z # ARABIC SMALL HIGH TAH 0616;Z # ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH 0617;Z # ARABIC SMALL HIGH ZAIN 0618;Z # ARABIC SMALL FATHA 0619;Z # ARABIC SMALL DAMMA 061A;Z # ARABIC SMALL KASRA 064B;Z # ARABIC FATHATAN 064C;Z # ARABIC DAMMATAN 064D;Z # ARABIC KASRATAN 064E;Z # ARABIC FATHA 064F;Z # ARABIC DAMMA 0650;Z # ARABIC KASRA 0651;Z # ARABIC SHADDA 0652;Z # ARABIC SUKUN 0653;Z # ARABIC MADDAH ABOVE 0654;Z # ARABIC HAMZA ABOVE 0655;Z # ARABIC HAMZA BELOW 0656;Z # ARABIC SUBSCRIPT ALEF 0657;Z # ARABIC INVERTED DAMMA 0658;Z # ARABIC MARK NOON GHUNNA 0659;Z # ARABIC ZWARAKAY 065A;Z # ARABIC VOWEL SIGN SMALL V ABOVE 065B;Z # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE 065C;Z # ARABIC VOWEL SIGN DOT BELOW 065D;Z # ARABIC REVERSED DAMMA 065E;Z # ARABIC FATHA WITH TWO DOTS 0670;Z # ARABIC LETTER SUPERSCRIPT ALEF 06D6;Z # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA 06D7;Z # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA 06D8;Z # ARABIC SMALL HIGH MEEM INITIAL FORM 06D9;Z # ARABIC SMALL HIGH LAM ALEF 06DA;Z # ARABIC SMALL HIGH JEEM 06DB;Z # ARABIC SMALL HIGH THREE DOTS 06DC;Z # ARABIC SMALL HIGH SEEN 06DD;Z # ARABIC END OF AYAH 06DE;Z # ARABIC START OF RUB EL HIZB 06DF;Z # ARABIC SMALL HIGH ROUNDED ZERO 06E0;Z # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO 06E1;Z # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH 06E2;Z # ARABIC SMALL HIGH MEEM ISOLATED FORM 06E3;Z # ARABIC SMALL LOW SEEN 06E4;Z # ARABIC SMALL HIGH MADDA 06E7;Z # ARABIC SMALL HIGH YEH 06E8;Z # ARABIC SMALL HIGH NOON 06EA;Z # ARABIC EMPTY CENTRE LOW STOP 06EB;Z # ARABIC EMPTY CENTRE HIGH STOP 06EC;Z # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE 06ED;Z # ARABIC SMALL LOW MEEM 070F;Z # SYRIAC ABBREVIATION MARK 0711;Z # SYRIAC LETTER SUPERSCRIPT ALAPH 0730;Z # SYRIAC PTHAHA ABOVE 0731;Z # SYRIAC PTHAHA BELOW 0732;Z # SYRIAC PTHAHA DOTTED 0733;Z # SYRIAC ZQAPHA ABOVE 0734;Z # SYRIAC ZQAPHA BELOW 0735;Z # SYRIAC ZQAPHA DOTTED 0736;Z # SYRIAC RBASA ABOVE 0737;Z # SYRIAC RBASA BELOW 0738;Z # SYRIAC DOTTED ZLAMA HORIZONTAL 0739;Z # SYRIAC DOTTED ZLAMA ANGULAR 073A;Z # SYRIAC HBASA ABOVE 073B;Z # SYRIAC HBASA BELOW 073C;Z # SYRIAC HBASA-ESASA DOTTED 073D;Z # SYRIAC ESASA ABOVE 073E;Z # SYRIAC ESASA BELOW 073F;Z # SYRIAC RWAHA 0740;Z # SYRIAC FEMININE DOT 0741;Z # SYRIAC QUSHSHAYA 0742;Z # SYRIAC RUKKAKHA 0743;Z # SYRIAC TWO VERTICAL DOTS ABOVE 0744;Z # SYRIAC TWO VERTICAL DOTS BELOW 0745;Z # SYRIAC THREE DOTS ABOVE 0746;Z # SYRIAC THREE DOTS BELOW 0747;Z # SYRIAC OBLIQUE LINE ABOVE 0748;Z # SYRIAC OBLIQUE LINE BELOW 0749;Z # SYRIAC MUSIC 074A;Z # SYRIAC BARREKH 07A6;Z # THAANA ABAFILI 07A7;Z # THAANA AABAAFILI 07A8;Z # THAANA IBIFILI 07A9;Z # THAANA EEBEEFILI 07AA;Z # THAANA UBUFILI 07AB;Z # THAANA OOBOOFILI 07AC;Z # THAANA EBEFILI 07AD;Z # THAANA EYBEYFILI 07AE;Z # THAANA OBOFILI 07AF;Z # THAANA OABOAFILI 07B0;Z # THAANA SUKUN 07EB;Z # NKO COMBINING SHORT HIGH TONE 07EC;Z # NKO COMBINING SHORT LOW TONE 07ED;Z # NKO COMBINING SHORT RISING TONE 07EE;Z # NKO COMBINING LONG DESCENDING TONE 07EF;Z # NKO COMBINING LONG HIGH TONE 07F0;Z # NKO COMBINING LONG LOW TONE 07F1;Z # NKO COMBINING LONG RISING TONE 07F2;Z # NKO COMBINING NASALIZATION MARK 07F3;Z # NKO COMBINING DOUBLE DOT ABOVE 0901;Z # DEVANAGARI SIGN CANDRABINDU 0902;Z # DEVANAGARI SIGN ANUSVARA 093C;Z # DEVANAGARI SIGN NUKTA 0941;Z # DEVANAGARI VOWEL SIGN U 0942;Z # DEVANAGARI VOWEL SIGN UU 0943;Z # DEVANAGARI VOWEL SIGN VOCALIC R 0944;Z # DEVANAGARI VOWEL SIGN VOCALIC RR 0945;Z # DEVANAGARI VOWEL SIGN CANDRA E 0946;Z # DEVANAGARI VOWEL SIGN SHORT E 0947;Z # DEVANAGARI VOWEL SIGN E 0948;Z # DEVANAGARI VOWEL SIGN AI 094D;Z # DEVANAGARI SIGN VIRAMA 0951;Z # DEVANAGARI STRESS SIGN UDATTA 0952;Z # DEVANAGARI STRESS SIGN ANUDATTA 0953;Z # DEVANAGARI GRAVE ACCENT 0954;Z # DEVANAGARI ACUTE ACCENT 0962;Z # DEVANAGARI VOWEL SIGN VOCALIC L 0963;Z # DEVANAGARI VOWEL SIGN VOCALIC LL 0981;Z # BENGALI SIGN CANDRABINDU 09BC;Z # BENGALI SIGN NUKTA 09C1;Z # BENGALI VOWEL SIGN U 09C2;Z # BENGALI VOWEL SIGN UU 09C3;Z # BENGALI VOWEL SIGN VOCALIC R 09C4;Z # BENGALI VOWEL SIGN VOCALIC RR 09CD;Z # BENGALI SIGN VIRAMA 09E2;Z # BENGALI VOWEL SIGN VOCALIC L 09E3;Z # BENGALI VOWEL SIGN VOCALIC LL 0A01;Z # GURMUKHI SIGN ADAK BINDI 0A02;Z # GURMUKHI SIGN BINDI 0A3C;Z # GURMUKHI SIGN NUKTA 0A41;Z # GURMUKHI VOWEL SIGN U 0A42;Z # GURMUKHI VOWEL SIGN UU 0A47;Z # GURMUKHI VOWEL SIGN EE 0A48;Z # GURMUKHI VOWEL SIGN AI 0A4B;Z # GURMUKHI VOWEL SIGN OO 0A4C;Z # GURMUKHI VOWEL SIGN AU 0A4D;Z # GURMUKHI SIGN VIRAMA 0A51;Z # GURMUKHI SIGN UDAAT 0A70;Z # GURMUKHI TIPPI 0A71;Z # GURMUKHI ADDAK 0A75;Z # GURMUKHI SIGN YAKASH 0A81;Z # GUJARATI SIGN CANDRABINDU 0A82;Z # GUJARATI SIGN ANUSVARA 0ABC;Z # GUJARATI SIGN NUKTA 0AC1;Z # GUJARATI VOWEL SIGN U 0AC2;Z # GUJARATI VOWEL SIGN UU 0AC3;Z # GUJARATI VOWEL SIGN VOCALIC R 0AC4;Z # GUJARATI VOWEL SIGN VOCALIC RR 0AC5;Z # GUJARATI VOWEL SIGN CANDRA E 0AC7;Z # GUJARATI VOWEL SIGN E 0AC8;Z # GUJARATI VOWEL SIGN AI 0ACD;Z # GUJARATI SIGN VIRAMA 0AE2;Z # GUJARATI VOWEL SIGN VOCALIC L 0AE3;Z # GUJARATI VOWEL SIGN VOCALIC LL 0B01;Z # ORIYA SIGN CANDRABINDU 0B3C;Z # ORIYA SIGN NUKTA 0B3F;Z # ORIYA VOWEL SIGN I 0B41;Z # ORIYA VOWEL SIGN U 0B42;Z # ORIYA VOWEL SIGN UU 0B43;Z # ORIYA VOWEL SIGN VOCALIC R 0B44;Z # ORIYA VOWEL SIGN VOCALIC RR 0B4D;Z # ORIYA SIGN VIRAMA 0B56;Z # ORIYA AI LENGTH MARK 0B62;Z # ORIYA VOWEL SIGN VOCALIC L 0B63;Z # ORIYA VOWEL SIGN VOCALIC LL 0B82;Z # TAMIL SIGN ANUSVARA 0BC0;Z # TAMIL VOWEL SIGN II 0BCD;Z # TAMIL SIGN VIRAMA 0C3E;Z # TELUGU VOWEL SIGN AA 0C3F;Z # TELUGU VOWEL SIGN I 0C40;Z # TELUGU VOWEL SIGN II 0C46;Z # TELUGU VOWEL SIGN E 0C47;Z # TELUGU VOWEL SIGN EE 0C48;Z # TELUGU VOWEL SIGN AI 0C4A;Z # TELUGU VOWEL SIGN O 0C4B;Z # TELUGU VOWEL SIGN OO 0C4C;Z # TELUGU VOWEL SIGN AU 0C4D;Z # TELUGU SIGN VIRAMA 0C55;Z # TELUGU LENGTH MARK 0C56;Z # TELUGU AI LENGTH MARK 0C62;Z # TELUGU VOWEL SIGN VOCALIC L 0C63;Z # TELUGU VOWEL SIGN VOCALIC LL 0CBC;Z # KANNADA SIGN NUKTA 0CBF;Z # KANNADA VOWEL SIGN I 0CC6;Z # KANNADA VOWEL SIGN E 0CCC;Z # KANNADA VOWEL SIGN AU 0CCD;Z # KANNADA SIGN VIRAMA 0CE2;Z # KANNADA VOWEL SIGN VOCALIC L 0CE3;Z # KANNADA VOWEL SIGN VOCALIC LL 0D41;Z # MALAYALAM VOWEL SIGN U 0D42;Z # MALAYALAM VOWEL SIGN UU 0D43;Z # MALAYALAM VOWEL SIGN VOCALIC R 0D44;Z # MALAYALAM VOWEL SIGN VOCALIC RR 0D4D;Z # MALAYALAM SIGN VIRAMA 0D62;Z # MALAYALAM VOWEL SIGN VOCALIC L 0D63;Z # MALAYALAM VOWEL SIGN VOCALIC LL 0DCA;Z # SINHALA SIGN AL-LAKUNA 0DD2;Z # SINHALA VOWEL SIGN KETTI IS-PILLA 0DD3;Z # SINHALA VOWEL SIGN DIGA IS-PILLA 0DD4;Z # SINHALA VOWEL SIGN KETTI PAA-PILLA 0DD6;Z # SINHALA VOWEL SIGN DIGA PAA-PILLA 0E31;Z # THAI CHARACTER MAI HAN-AKAT 0E34;Z # THAI CHARACTER SARA I 0E35;Z # THAI CHARACTER SARA II 0E36;Z # THAI CHARACTER SARA UE 0E37;Z # THAI CHARACTER SARA UEE 0E38;Z # THAI CHARACTER SARA U 0E39;Z # THAI CHARACTER SARA UU 0E3A;Z # THAI CHARACTER PHINTHU 0E47;Z # THAI CHARACTER MAITAIKHU 0E48;Z # THAI CHARACTER MAI EK 0E49;Z # THAI CHARACTER MAI THO 0E4A;Z # THAI CHARACTER MAI TRI 0E4B;Z # THAI CHARACTER MAI CHATTAWA 0E4C;Z # THAI CHARACTER THANTHAKHAT 0E4D;Z # THAI CHARACTER NIKHAHIT 0E4E;Z # THAI CHARACTER YAMAKKAN 0EB1;Z # LAO VOWEL SIGN MAI KAN 0EB4;Z # LAO VOWEL SIGN I 0EB5;Z # LAO VOWEL SIGN II 0EB6;Z # LAO VOWEL SIGN Y 0EB7;Z # LAO VOWEL SIGN YY 0EB8;Z # LAO VOWEL SIGN U 0EB9;Z # LAO VOWEL SIGN UU 0EBB;Z # LAO VOWEL SIGN MAI KON 0EBC;Z # LAO SEMIVOWEL SIGN LO 0EC8;Z # LAO TONE MAI EK 0EC9;Z # LAO TONE MAI THO 0ECA;Z # LAO TONE MAI TI 0ECB;Z # LAO TONE MAI CATAWA 0ECC;Z # LAO CANCELLATION MARK 0ECD;Z # LAO NIGGAHITA 0F18;Z # TIBETAN ASTROLOGICAL SIGN -KHYUD PA 0F19;Z # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS 0F35;Z # TIBETAN MARK NGAS BZUNG NYI ZLA 0F37;Z # TIBETAN MARK NGAS BZUNG SGOR RTAGS 0F39;Z # TIBETAN MARK TSA -PHRU 0F71;Z # TIBETAN VOWEL SIGN AA 0F72;Z # TIBETAN VOWEL SIGN I 0F73;Z # TIBETAN VOWEL SIGN II 0F74;Z # TIBETAN VOWEL SIGN U 0F75;Z # TIBETAN VOWEL SIGN UU 0F76;Z # TIBETAN VOWEL SIGN VOCALIC R 0F77;Z # TIBETAN VOWEL SIGN VOCALIC RR 0F78;Z # TIBETAN VOWEL SIGN VOCALIC L 0F79;Z # TIBETAN VOWEL SIGN VOCALIC LL 0F7A;Z # TIBETAN VOWEL SIGN E 0F7B;Z # TIBETAN VOWEL SIGN EE 0F7C;Z # TIBETAN VOWEL SIGN O 0F7D;Z # TIBETAN VOWEL SIGN OO 0F7E;Z # TIBETAN SIGN RJES SU NGA RO 0F80;Z # TIBETAN VOWEL SIGN REVERSED I 0F81;Z # TIBETAN VOWEL SIGN REVERSED II 0F82;Z # TIBETAN SIGN NYI ZLA NAA DA 0F83;Z # TIBETAN SIGN SNA LDAN 0F84;Z # TIBETAN MARK HALANTA 0F86;Z # TIBETAN SIGN LCI RTAGS 0F87;Z # TIBETAN SIGN YANG RTAGS 0F90;Z # TIBETAN SUBJOINED LETTER KA 0F91;Z # TIBETAN SUBJOINED LETTER KHA 0F92;Z # TIBETAN SUBJOINED LETTER GA 0F93;Z # TIBETAN SUBJOINED LETTER GHA 0F94;Z # TIBETAN SUBJOINED LETTER NGA 0F95;Z # TIBETAN SUBJOINED LETTER CA 0F96;Z # TIBETAN SUBJOINED LETTER CHA 0F97;Z # TIBETAN SUBJOINED LETTER JA 0F99;Z # TIBETAN SUBJOINED LETTER NYA 0F9A;Z # TIBETAN SUBJOINED LETTER TTA 0F9B;Z # TIBETAN SUBJOINED LETTER TTHA 0F9C;Z # TIBETAN SUBJOINED LETTER DDA 0F9D;Z # TIBETAN SUBJOINED LETTER DDHA 0F9E;Z # TIBETAN SUBJOINED LETTER NNA 0F9F;Z # TIBETAN SUBJOINED LETTER TA 0FA0;Z # TIBETAN SUBJOINED LETTER THA 0FA1;Z # TIBETAN SUBJOINED LETTER DA 0FA2;Z # TIBETAN SUBJOINED LETTER DHA 0FA3;Z # TIBETAN SUBJOINED LETTER NA 0FA4;Z # TIBETAN SUBJOINED LETTER PA 0FA5;Z # TIBETAN SUBJOINED LETTER PHA 0FA6;Z # TIBETAN SUBJOINED LETTER BA 0FA7;Z # TIBETAN SUBJOINED LETTER BHA 0FA8;Z # TIBETAN SUBJOINED LETTER MA 0FA9;Z # TIBETAN SUBJOINED LETTER TSA 0FAA;Z # TIBETAN SUBJOINED LETTER TSHA 0FAB;Z # TIBETAN SUBJOINED LETTER DZA 0FAC;Z # TIBETAN SUBJOINED LETTER DZHA 0FAD;Z # TIBETAN SUBJOINED LETTER WA 0FAE;Z # TIBETAN SUBJOINED LETTER ZHA 0FAF;Z # TIBETAN SUBJOINED LETTER ZA 0FB0;Z # TIBETAN SUBJOINED LETTER -A 0FB1;Z # TIBETAN SUBJOINED LETTER YA 0FB2;Z # TIBETAN SUBJOINED LETTER RA 0FB3;Z # TIBETAN SUBJOINED LETTER LA 0FB4;Z # TIBETAN SUBJOINED LETTER SHA 0FB5;Z # TIBETAN SUBJOINED LETTER SSA 0FB6;Z # TIBETAN SUBJOINED LETTER SA 0FB7;Z # TIBETAN SUBJOINED LETTER HA 0FB8;Z # TIBETAN SUBJOINED LETTER A 0FB9;Z # TIBETAN SUBJOINED LETTER KSSA 0FBA;Z # TIBETAN SUBJOINED LETTER FIXED-FORM WA 0FBB;Z # TIBETAN SUBJOINED LETTER FIXED-FORM YA 0FBC;Z # TIBETAN SUBJOINED LETTER FIXED-FORM RA 0FC6;Z # TIBETAN SYMBOL PADMA GDAN 102D;Z # MYANMAR VOWEL SIGN I 102E;Z # MYANMAR VOWEL SIGN II 102F;Z # MYANMAR VOWEL SIGN U 1030;Z # MYANMAR VOWEL SIGN UU 1032;Z # MYANMAR VOWEL SIGN AI 1033;Z # MYANMAR VOWEL SIGN MON II 1034;Z # MYANMAR VOWEL SIGN MON O 1035;Z # MYANMAR VOWEL SIGN E ABOVE 1036;Z # MYANMAR SIGN ANUSVARA 1037;Z # MYANMAR SIGN DOT BELOW 1039;Z # MYANMAR SIGN VIRAMA 103A;Z # MYANMAR SIGN ASAT 103D;Z # MYANMAR CONSONANT SIGN MEDIAL WA 103E;Z # MYANMAR CONSONANT SIGN MEDIAL HA 1058;Z # MYANMAR VOWEL SIGN VOCALIC L 1059;Z # MYANMAR VOWEL SIGN VOCALIC LL 105E;Z # MYANMAR CONSONANT SIGN MON MEDIAL NA 105F;Z # MYANMAR CONSONANT SIGN MON MEDIAL MA 1060;Z # MYANMAR CONSONANT SIGN MON MEDIAL LA 1071;Z # MYANMAR VOWEL SIGN GEBA KAREN I 1072;Z # MYANMAR VOWEL SIGN KAYAH OE 1073;Z # MYANMAR VOWEL SIGN KAYAH U 1074;Z # MYANMAR VOWEL SIGN KAYAH EE 1082;Z # MYANMAR CONSONANT SIGN SHAN MEDIAL WA 1085;Z # MYANMAR VOWEL SIGN SHAN E ABOVE 1086;Z # MYANMAR VOWEL SIGN SHAN FINAL Y 108D;Z # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE 135F;Z # ETHIOPIC COMBINING GEMINATION MARK 1712;Z # TAGALOG VOWEL SIGN I 1713;Z # TAGALOG VOWEL SIGN U 1714;Z # TAGALOG SIGN VIRAMA 1732;Z # HANUNOO VOWEL SIGN I 1733;Z # HANUNOO VOWEL SIGN U 1734;Z # HANUNOO SIGN PAMUDPOD 1752;Z # BUHID VOWEL SIGN I 1753;Z # BUHID VOWEL SIGN U 1772;Z # TAGBANWA VOWEL SIGN I 1773;Z # TAGBANWA VOWEL SIGN U 17B4;Z # KHMER VOWEL INHERENT AQ 17B5;Z # KHMER VOWEL INHERENT AA 17B7;Z # KHMER VOWEL SIGN I 17B8;Z # KHMER VOWEL SIGN II 17B9;Z # KHMER VOWEL SIGN Y 17BA;Z # KHMER VOWEL SIGN YY 17BB;Z # KHMER VOWEL SIGN U 17BC;Z # KHMER VOWEL SIGN UU 17BD;Z # KHMER VOWEL SIGN UA 17C6;Z # KHMER SIGN NIKAHIT 17C9;Z # KHMER SIGN MUUSIKATOAN 17CA;Z # KHMER SIGN TRIISAP 17CB;Z # KHMER SIGN BANTOC 17CC;Z # KHMER SIGN ROBAT 17CD;Z # KHMER SIGN TOANDAKHIAT 17CE;Z # KHMER SIGN KAKABAT 17CF;Z # KHMER SIGN AHSDA 17D0;Z # KHMER SIGN SAMYOK SANNYA 17D1;Z # KHMER SIGN VIRIAM 17D2;Z # KHMER SIGN COENG 17D3;Z # KHMER SIGN BATHAMASAT 17DD;Z # KHMER SIGN ATTHACAN 180B;Z # MONGOLIAN FREE VARIATION SELECTOR ONE 180C;Z # MONGOLIAN FREE VARIATION SELECTOR TWO 180D;Z # MONGOLIAN FREE VARIATION SELECTOR THREE 18A9;Z # MONGOLIAN LETTER ALI GALI DAGALGA 1920;Z # LIMBU VOWEL SIGN A 1921;Z # LIMBU VOWEL SIGN I 1922;Z # LIMBU VOWEL SIGN U 1927;Z # LIMBU VOWEL SIGN E 1928;Z # LIMBU VOWEL SIGN O 1932;Z # LIMBU SMALL LETTER ANUSVARA 1939;Z # LIMBU SIGN MUKPHRENG 193A;Z # LIMBU SIGN KEMPHRENG 193B;Z # LIMBU SIGN SA-I 1A17;Z # BUGINESE VOWEL SIGN I 1A18;Z # BUGINESE VOWEL SIGN U 1B00;Z # BALINESE SIGN ULU RICEM 1B01;Z # BALINESE SIGN ULU CANDRA 1B02;Z # BALINESE SIGN CECEK 1B03;Z # BALINESE SIGN SURANG 1B34;Z # BALINESE SIGN REREKAN 1B36;Z # BALINESE VOWEL SIGN ULU 1B37;Z # BALINESE VOWEL SIGN ULU SARI 1B38;Z # BALINESE VOWEL SIGN SUKU 1B39;Z # BALINESE VOWEL SIGN SUKU ILUT 1B3A;Z # BALINESE VOWEL SIGN RA REPA 1B3C;Z # BALINESE VOWEL SIGN LA LENGA 1B42;Z # BALINESE VOWEL SIGN PEPET 1B6B;Z # BALINESE MUSICAL SYMBOL COMBINING TEGEH 1B6C;Z # BALINESE MUSICAL SYMBOL COMBINING ENDEP 1B6D;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL 1B6E;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI 1B6F;Z # BALINESE MUSICAL SYMBOL COMBINING JEGOGAN 1B70;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN 1B71;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN 1B72;Z # BALINESE MUSICAL SYMBOL COMBINING BENDE 1B73;Z # BALINESE MUSICAL SYMBOL COMBINING GONG 1B80;Z # SUNDANESE SIGN PANYECEK 1B81;Z # SUNDANESE SIGN PANGLAYAR 1BA2;Z # SUNDANESE CONSONANT SIGN PANYAKRA 1BA3;Z # SUNDANESE CONSONANT SIGN PANYIKU 1BA4;Z # SUNDANESE VOWEL SIGN PANGHULU 1BA5;Z # SUNDANESE VOWEL SIGN PANYUKU 1BA8;Z # SUNDANESE VOWEL SIGN PAMEPET 1BA9;Z # SUNDANESE VOWEL SIGN PANEULEUNG 1C2C;Z # LEPCHA VOWEL SIGN E 1C2D;Z # LEPCHA CONSONANT SIGN K 1C2E;Z # LEPCHA CONSONANT SIGN M 1C2F;Z # LEPCHA CONSONANT SIGN L 1C30;Z # LEPCHA CONSONANT SIGN N 1C31;Z # LEPCHA CONSONANT SIGN P 1C32;Z # LEPCHA CONSONANT SIGN R 1C33;Z # LEPCHA CONSONANT SIGN T 1C36;Z # LEPCHA SIGN RAN 1C37;Z # LEPCHA SIGN NUKTA 1DC0;Z # COMBINING DOTTED GRAVE ACCENT 1DC1;Z # COMBINING DOTTED ACUTE ACCENT 1DC2;Z # COMBINING SNAKE BELOW 1DC3;Z # COMBINING SUSPENSION MARK 1DC4;Z # COMBINING MACRON-ACUTE 1DC5;Z # COMBINING GRAVE-MACRON 1DC6;Z # COMBINING MACRON-GRAVE 1DC7;Z # COMBINING ACUTE-MACRON 1DC8;Z # COMBINING GRAVE-ACUTE-GRAVE 1DC9;Z # COMBINING ACUTE-GRAVE-ACUTE 1DCA;Z # COMBINING LATIN SMALL LETTER R BELOW 1DCB;Z # COMBINING BREVE-MACRON 1DCC;Z # COMBINING MACRON-BREVE 1DCD;Z # COMBINING DOUBLE CIRCUMFLEX ABOVE 1DCE;Z # COMBINING OGONEK ABOVE 1DCF;Z # COMBINING ZIGZAG BELOW 1DD0;Z # COMBINING IS BELOW 1DD1;Z # COMBINING UR ABOVE 1DD2;Z # COMBINING US ABOVE 1DD3;Z # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE 1DD4;Z # COMBINING LATIN SMALL LETTER AE 1DD5;Z # COMBINING LATIN SMALL LETTER AO 1DD6;Z # COMBINING LATIN SMALL LETTER AV 1DD7;Z # COMBINING LATIN SMALL LETTER C CEDILLA 1DD8;Z # COMBINING LATIN SMALL LETTER INSULAR D 1DD9;Z # COMBINING LATIN SMALL LETTER ETH 1DDA;Z # COMBINING LATIN SMALL LETTER G 1DDB;Z # COMBINING LATIN LETTER SMALL CAPITAL G 1DDC;Z # COMBINING LATIN SMALL LETTER K 1DDD;Z # COMBINING LATIN SMALL LETTER L 1DDE;Z # COMBINING LATIN LETTER SMALL CAPITAL L 1DDF;Z # COMBINING LATIN LETTER SMALL CAPITAL M 1DE0;Z # COMBINING LATIN SMALL LETTER N 1DE1;Z # COMBINING LATIN LETTER SMALL CAPITAL N 1DE2;Z # COMBINING LATIN LETTER SMALL CAPITAL R 1DE3;Z # COMBINING LATIN SMALL LETTER R ROTUNDA 1DE4;Z # COMBINING LATIN SMALL LETTER S 1DE5;Z # COMBINING LATIN SMALL LETTER LONG S 1DE6;Z # COMBINING LATIN SMALL LETTER Z 1DFE;Z # COMBINING LEFT ARROWHEAD ABOVE 1DFF;Z # COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW 200B;Z # ZERO WIDTH SPACE 200C;Z # ZERO WIDTH NON-JOINER 200D;Z # ZERO WIDTH JOINER 200E;Z # LEFT-TO-RIGHT MARK 200F;Z # RIGHT-TO-LEFT MARK 2028;Z # LINE SEPARATOR 2029;Z # PARAGRAPH SEPARATOR 202A;Z # LEFT-TO-RIGHT EMBEDDING 202B;Z # RIGHT-TO-LEFT EMBEDDING 202C;Z # POP DIRECTIONAL FORMATTING 202D;Z # LEFT-TO-RIGHT OVERRIDE 202E;Z # RIGHT-TO-LEFT OVERRIDE 2060;Z # WORD JOINER 2061;Z # FUNCTION APPLICATION 2062;Z # INVISIBLE TIMES 2063;Z # INVISIBLE SEPARATOR 2064;Z # INVISIBLE PLUS 206A;Z # INHIBIT SYMMETRIC SWAPPING 206B;Z # ACTIVATE SYMMETRIC SWAPPING 206C;Z # INHIBIT ARABIC FORM SHAPING 206D;Z # ACTIVATE ARABIC FORM SHAPING 206E;Z # NATIONAL DIGIT SHAPES 206F;Z # NOMINAL DIGIT SHAPES 20D0;Z # COMBINING LEFT HARPOON ABOVE 20D1;Z # COMBINING RIGHT HARPOON ABOVE 20D2;Z # COMBINING LONG VERTICAL LINE OVERLAY 20D3;Z # COMBINING SHORT VERTICAL LINE OVERLAY 20D4;Z # COMBINING ANTICLOCKWISE ARROW ABOVE 20D5;Z # COMBINING CLOCKWISE ARROW ABOVE 20D6;Z # COMBINING LEFT ARROW ABOVE 20D7;Z # COMBINING RIGHT ARROW ABOVE 20D8;Z # COMBINING RING OVERLAY 20D9;Z # COMBINING CLOCKWISE RING OVERLAY 20DA;Z # COMBINING ANTICLOCKWISE RING OVERLAY 20DB;Z # COMBINING THREE DOTS ABOVE 20DC;Z # COMBINING FOUR DOTS ABOVE 20DD;Z # COMBINING ENCLOSING CIRCLE 20DE;Z # COMBINING ENCLOSING SQUARE 20DF;Z # COMBINING ENCLOSING DIAMOND 20E0;Z # COMBINING ENCLOSING CIRCLE BACKSLASH 20E1;Z # COMBINING LEFT RIGHT ARROW ABOVE 20E2;Z # COMBINING ENCLOSING SCREEN 20E3;Z # COMBINING ENCLOSING KEYCAP 20E4;Z # COMBINING ENCLOSING UPWARD POINTING TRIANGLE 20E5;Z # COMBINING REVERSE SOLIDUS OVERLAY 20E6;Z # COMBINING DOUBLE VERTICAL STROKE OVERLAY 20E7;Z # COMBINING ANNUITY SYMBOL 20E8;Z # COMBINING TRIPLE UNDERDOT 20E9;Z # COMBINING WIDE BRIDGE ABOVE 20EA;Z # COMBINING LEFTWARDS ARROW OVERLAY 20EB;Z # COMBINING LONG DOUBLE SOLIDUS OVERLAY 20EC;Z # COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS 20ED;Z # COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS 20EE;Z # COMBINING LEFT ARROW BELOW 20EF;Z # COMBINING RIGHT ARROW BELOW 20F0;Z # COMBINING ASTERISK ABOVE 2DE0;Z # COMBINING CYRILLIC LETTER BE 2DE1;Z # COMBINING CYRILLIC LETTER VE 2DE2;Z # COMBINING CYRILLIC LETTER GHE 2DE3;Z # COMBINING CYRILLIC LETTER DE 2DE4;Z # COMBINING CYRILLIC LETTER ZHE 2DE5;Z # COMBINING CYRILLIC LETTER ZE 2DE6;Z # COMBINING CYRILLIC LETTER KA 2DE7;Z # COMBINING CYRILLIC LETTER EL 2DE8;Z # COMBINING CYRILLIC LETTER EM 2DE9;Z # COMBINING CYRILLIC LETTER EN 2DEA;Z # COMBINING CYRILLIC LETTER O 2DEB;Z # COMBINING CYRILLIC LETTER PE 2DEC;Z # COMBINING CYRILLIC LETTER ER 2DED;Z # COMBINING CYRILLIC LETTER ES 2DEE;Z # COMBINING CYRILLIC LETTER TE 2DEF;Z # COMBINING CYRILLIC LETTER HA 2DF0;Z # COMBINING CYRILLIC LETTER TSE 2DF1;Z # COMBINING CYRILLIC LETTER CHE 2DF2;Z # COMBINING CYRILLIC LETTER SHA 2DF3;Z # COMBINING CYRILLIC LETTER SHCHA 2DF4;Z # COMBINING CYRILLIC LETTER FITA 2DF5;Z # COMBINING CYRILLIC LETTER ES-TE 2DF6;Z # COMBINING CYRILLIC LETTER A 2DF7;Z # COMBINING CYRILLIC LETTER IE 2DF8;Z # COMBINING CYRILLIC LETTER DJERV 2DF9;Z # COMBINING CYRILLIC LETTER MONOGRAPH UK 2DFA;Z # COMBINING CYRILLIC LETTER YAT 2DFB;Z # COMBINING CYRILLIC LETTER YU 2DFC;Z # COMBINING CYRILLIC LETTER IOTIFIED A 2DFD;Z # COMBINING CYRILLIC LETTER LITTLE YUS 2DFE;Z # COMBINING CYRILLIC LETTER BIG YUS 2DFF;Z # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS 302A;ZW # IDEOGRAPHIC LEVEL TONE MARK 302B;ZW # IDEOGRAPHIC RISING TONE MARK 302C;ZW # IDEOGRAPHIC DEPARTING TONE MARK 302D;ZW # IDEOGRAPHIC ENTERING TONE MARK 302E;ZW # HANGUL SINGLE DOT TONE MARK 302F;ZW # HANGUL DOUBLE DOT TONE MARK 3099;ZW # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK 309A;ZW # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK A66F;Z # COMBINING CYRILLIC VZMET A670;Z # COMBINING CYRILLIC TEN MILLIONS SIGN A671;Z # COMBINING CYRILLIC HUNDRED MILLIONS SIGN A672;Z # COMBINING CYRILLIC THOUSAND MILLIONS SIGN A67C;Z # COMBINING CYRILLIC KAVYKA A67D;Z # COMBINING CYRILLIC PAYEROK A802;Z # SYLOTI NAGRI SIGN DVISVARA A806;Z # SYLOTI NAGRI SIGN HASANTA A80B;Z # SYLOTI NAGRI SIGN ANUSVARA A825;Z # SYLOTI NAGRI VOWEL SIGN U A826;Z # SYLOTI NAGRI VOWEL SIGN E A8C4;Z # SAURASHTRA SIGN VIRAMA A926;Z # KAYAH LI VOWEL UE A927;Z # KAYAH LI VOWEL E A928;Z # KAYAH LI VOWEL U A929;Z # KAYAH LI VOWEL EE A92A;Z # KAYAH LI VOWEL O A92B;Z # KAYAH LI TONE PLOPHU A92C;Z # KAYAH LI TONE CALYA A92D;Z # KAYAH LI TONE CALYA PLOPHU A947;Z # REJANG VOWEL SIGN I A948;Z # REJANG VOWEL SIGN U A949;Z # REJANG VOWEL SIGN E A94A;Z # REJANG VOWEL SIGN AI A94B;Z # REJANG VOWEL SIGN O A94C;Z # REJANG VOWEL SIGN AU A94D;Z # REJANG VOWEL SIGN EU A94E;Z # REJANG VOWEL SIGN EA A94F;Z # REJANG CONSONANT SIGN NG A950;Z # REJANG CONSONANT SIGN N A951;Z # REJANG CONSONANT SIGN R AA29;Z # CHAM VOWEL SIGN AA AA2A;Z # CHAM VOWEL SIGN I AA2B;Z # CHAM VOWEL SIGN II AA2C;Z # CHAM VOWEL SIGN EI AA2D;Z # CHAM VOWEL SIGN U AA2E;Z # CHAM VOWEL SIGN OE AA31;Z # CHAM VOWEL SIGN AU AA32;Z # CHAM VOWEL SIGN UE AA35;Z # CHAM CONSONANT SIGN LA AA36;Z # CHAM CONSONANT SIGN WA AA43;Z # CHAM CONSONANT SIGN FINAL NG AA4C;Z # CHAM CONSONANT SIGN FINAL M FB1E;Z # HEBREW POINT JUDEO-SPANISH VARIKA FE00;ZA # VARIATION SELECTOR-1 FE01;ZA # VARIATION SELECTOR-2 FE02;ZA # VARIATION SELECTOR-3 FE03;ZA # VARIATION SELECTOR-4 FE04;ZA # VARIATION SELECTOR-5 FE05;ZA # VARIATION SELECTOR-6 FE06;ZA # VARIATION SELECTOR-7 FE07;ZA # VARIATION SELECTOR-8 FE08;ZA # VARIATION SELECTOR-9 FE09;ZA # VARIATION SELECTOR-10 FE0A;ZA # VARIATION SELECTOR-11 FE0B;ZA # VARIATION SELECTOR-12 FE0C;ZA # VARIATION SELECTOR-13 FE0D;ZA # VARIATION SELECTOR-14 FE0E;ZA # VARIATION SELECTOR-15 FE0F;ZA # VARIATION SELECTOR-16 FE20;Z # COMBINING LIGATURE LEFT HALF FE21;Z # COMBINING LIGATURE RIGHT HALF FE22;Z # COMBINING DOUBLE TILDE LEFT HALF FE23;Z # COMBINING DOUBLE TILDE RIGHT HALF FE24;Z # COMBINING MACRON LEFT HALF FE25;Z # COMBINING MACRON RIGHT HALF FE26;Z # COMBINING CONJOINING MACRON FEFF;Z # ZERO WIDTH NO-BREAK SPACE FFF9;Z # INTERLINEAR ANNOTATION ANCHOR FFFA;Z # INTERLINEAR ANNOTATION SEPARATOR FFFB;Z # INTERLINEAR ANNOTATION TERMINATOR 101FD;Z # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE 10A01;Z # KHAROSHTHI VOWEL SIGN I 10A02;Z # KHAROSHTHI VOWEL SIGN U 10A03;Z # KHAROSHTHI VOWEL SIGN VOCALIC R 10A05;Z # KHAROSHTHI VOWEL SIGN E 10A06;Z # KHAROSHTHI VOWEL SIGN O 10A0C;Z # KHAROSHTHI VOWEL LENGTH MARK 10A0D;Z # KHAROSHTHI SIGN DOUBLE RING BELOW 10A0E;Z # KHAROSHTHI SIGN ANUSVARA 10A0F;Z # KHAROSHTHI SIGN VISARGA 10A38;Z # KHAROSHTHI SIGN BAR ABOVE 10A39;Z # KHAROSHTHI SIGN CAUDA 10A3A;Z # KHAROSHTHI SIGN DOT BELOW 10A3F;Z # KHAROSHTHI VIRAMA 1D167;Z # MUSICAL SYMBOL COMBINING TREMOLO-1 1D168;Z # MUSICAL SYMBOL COMBINING TREMOLO-2 1D169;Z # MUSICAL SYMBOL COMBINING TREMOLO-3 1D173;Z # MUSICAL SYMBOL BEGIN BEAM 1D174;Z # MUSICAL SYMBOL END BEAM 1D175;Z # MUSICAL SYMBOL BEGIN TIE 1D176;Z # MUSICAL SYMBOL END TIE 1D177;Z # MUSICAL SYMBOL BEGIN SLUR 1D178;Z # MUSICAL SYMBOL END SLUR 1D179;Z # MUSICAL SYMBOL BEGIN PHRASE 1D17A;Z # MUSICAL SYMBOL END PHRASE 1D17B;Z # MUSICAL SYMBOL COMBINING ACCENT 1D17C;Z # MUSICAL SYMBOL COMBINING STACCATO 1D17D;Z # MUSICAL SYMBOL COMBINING TENUTO 1D17E;Z # MUSICAL SYMBOL COMBINING STACCATISSIMO 1D17F;Z # MUSICAL SYMBOL COMBINING MARCATO 1D180;Z # MUSICAL SYMBOL COMBINING MARCATO-STACCATO 1D181;Z # MUSICAL SYMBOL COMBINING ACCENT-STACCATO 1D182;Z # MUSICAL SYMBOL COMBINING LOURE 1D185;Z # MUSICAL SYMBOL COMBINING DOIT 1D186;Z # MUSICAL SYMBOL COMBINING RIP 1D187;Z # MUSICAL SYMBOL COMBINING FLIP 1D188;Z # MUSICAL SYMBOL COMBINING SMEAR 1D189;Z # MUSICAL SYMBOL COMBINING BEND 1D18A;Z # MUSICAL SYMBOL COMBINING DOUBLE TONGUE 1D18B;Z # MUSICAL SYMBOL COMBINING TRIPLE TONGUE 1D1AA;Z # MUSICAL SYMBOL COMBINING DOWN BOW 1D1AB;Z # MUSICAL SYMBOL COMBINING UP BOW 1D1AC;Z # MUSICAL SYMBOL COMBINING HARMONIC 1D1AD;Z # MUSICAL SYMBOL COMBINING SNAP PIZZICATO 1D242;Z # COMBINING GREEK MUSICAL TRISEME 1D243;Z # COMBINING GREEK MUSICAL TETRASEME 1D244;Z # COMBINING GREEK MUSICAL PENTASEME E0001;Z # LANGUAGE TAG E0020;Z # TAG SPACE E0021;Z # TAG EXCLAMATION MARK E0022;Z # TAG QUOTATION MARK E0023;Z # TAG NUMBER SIGN E0024;Z # TAG DOLLAR SIGN E0025;Z # TAG PERCENT SIGN E0026;Z # TAG AMPERSAND E0027;Z # TAG APOSTROPHE E0028;Z # TAG LEFT PARENTHESIS E0029;Z # TAG RIGHT PARENTHESIS E002A;Z # TAG ASTERISK E002B;Z # TAG PLUS SIGN E002C;Z # TAG COMMA E002D;Z # TAG HYPHEN-MINUS E002E;Z # TAG FULL STOP E002F;Z # TAG SOLIDUS E0030;Z # TAG DIGIT ZERO E0031;Z # TAG DIGIT ONE E0032;Z # TAG DIGIT TWO E0033;Z # TAG DIGIT THREE E0034;Z # TAG DIGIT FOUR E0035;Z # TAG DIGIT FIVE E0036;Z # TAG DIGIT SIX E0037;Z # TAG DIGIT SEVEN E0038;Z # TAG DIGIT EIGHT E0039;Z # TAG DIGIT NINE E003A;Z # TAG COLON E003B;Z # TAG SEMICOLON E003C;Z # TAG LESS-THAN SIGN E003D;Z # TAG EQUALS SIGN E003E;Z # TAG GREATER-THAN SIGN E003F;Z # TAG QUESTION MARK E0040;Z # TAG COMMERCIAL AT E0041;Z # TAG LATIN CAPITAL LETTER A E0042;Z # TAG LATIN CAPITAL LETTER B E0043;Z # TAG LATIN CAPITAL LETTER C E0044;Z # TAG LATIN CAPITAL LETTER D E0045;Z # TAG LATIN CAPITAL LETTER E E0046;Z # TAG LATIN CAPITAL LETTER F E0047;Z # TAG LATIN CAPITAL LETTER G E0048;Z # TAG LATIN CAPITAL LETTER H E0049;Z # TAG LATIN CAPITAL LETTER I E004A;Z # TAG LATIN CAPITAL LETTER J E004B;Z # TAG LATIN CAPITAL LETTER K E004C;Z # TAG LATIN CAPITAL LETTER L E004D;Z # TAG LATIN CAPITAL LETTER M E004E;Z # TAG LATIN CAPITAL LETTER N E004F;Z # TAG LATIN CAPITAL LETTER O E0050;Z # TAG LATIN CAPITAL LETTER P E0051;Z # TAG LATIN CAPITAL LETTER Q E0052;Z # TAG LATIN CAPITAL LETTER R E0053;Z # TAG LATIN CAPITAL LETTER S E0054;Z # TAG LATIN CAPITAL LETTER T E0055;Z # TAG LATIN CAPITAL LETTER U E0056;Z # TAG LATIN CAPITAL LETTER V E0057;Z # TAG LATIN CAPITAL LETTER W E0058;Z # TAG LATIN CAPITAL LETTER X E0059;Z # TAG LATIN CAPITAL LETTER Y E005A;Z # TAG LATIN CAPITAL LETTER Z E005B;Z # TAG LEFT SQUARE BRACKET E005C;Z # TAG REVERSE SOLIDUS E005D;Z # TAG RIGHT SQUARE BRACKET E005E;Z # TAG CIRCUMFLEX ACCENT E005F;Z # TAG LOW LINE E0060;Z # TAG GRAVE ACCENT E0061;Z # TAG LATIN SMALL LETTER A E0062;Z # TAG LATIN SMALL LETTER B E0063;Z # TAG LATIN SMALL LETTER C E0064;Z # TAG LATIN SMALL LETTER D E0065;Z # TAG LATIN SMALL LETTER E E0066;Z # TAG LATIN SMALL LETTER F E0067;Z # TAG LATIN SMALL LETTER G E0068;Z # TAG LATIN SMALL LETTER H E0069;Z # TAG LATIN SMALL LETTER I E006A;Z # TAG LATIN SMALL LETTER J E006B;Z # TAG LATIN SMALL LETTER K E006C;Z # TAG LATIN SMALL LETTER L E006D;Z # TAG LATIN SMALL LETTER M E006E;Z # TAG LATIN SMALL LETTER N E006F;Z # TAG LATIN SMALL LETTER O E0070;Z # TAG LATIN SMALL LETTER P E0071;Z # TAG LATIN SMALL LETTER Q E0072;Z # TAG LATIN SMALL LETTER R E0073;Z # TAG LATIN SMALL LETTER S E0074;Z # TAG LATIN SMALL LETTER T E0075;Z # TAG LATIN SMALL LETTER U E0076;Z # TAG LATIN SMALL LETTER V E0077;Z # TAG LATIN SMALL LETTER W E0078;Z # TAG LATIN SMALL LETTER X E0079;Z # TAG LATIN SMALL LETTER Y E007A;Z # TAG LATIN SMALL LETTER Z E007B;Z # TAG LEFT CURLY BRACKET E007C;Z # TAG VERTICAL LINE E007D;Z # TAG RIGHT CURLY BRACKET E007E;Z # TAG TILDE E007F;Z # CANCEL TAG E0100;ZA # VARIATION SELECTOR-17 E0101;ZA # VARIATION SELECTOR-18 E0102;ZA # VARIATION SELECTOR-19 E0103;ZA # VARIATION SELECTOR-20 E0104;ZA # VARIATION SELECTOR-21 E0105;ZA # VARIATION SELECTOR-22 E0106;ZA # VARIATION SELECTOR-23 E0107;ZA # VARIATION SELECTOR-24 E0108;ZA # VARIATION SELECTOR-25 E0109;ZA # VARIATION SELECTOR-26 E010A;ZA # VARIATION SELECTOR-27 E010B;ZA # VARIATION SELECTOR-28 E010C;ZA # VARIATION SELECTOR-29 E010D;ZA # VARIATION SELECTOR-30 E010E;ZA # VARIATION SELECTOR-31 E010F;ZA # VARIATION SELECTOR-32 E0110;ZA # VARIATION SELECTOR-33 E0111;ZA # VARIATION SELECTOR-34 E0112;ZA # VARIATION SELECTOR-35 E0113;ZA # VARIATION SELECTOR-36 E0114;ZA # VARIATION SELECTOR-37 E0115;ZA # VARIATION SELECTOR-38 E0116;ZA # VARIATION SELECTOR-39 E0117;ZA # VARIATION SELECTOR-40 E0118;ZA # VARIATION SELECTOR-41 E0119;ZA # VARIATION SELECTOR-42 E011A;ZA # VARIATION SELECTOR-43 E011B;ZA # VARIATION SELECTOR-44 E011C;ZA # VARIATION SELECTOR-45 E011D;ZA # VARIATION SELECTOR-46 E011E;ZA # VARIATION SELECTOR-47 E011F;ZA # VARIATION SELECTOR-48 E0120;ZA # VARIATION SELECTOR-49 E0121;ZA # VARIATION SELECTOR-50 E0122;ZA # VARIATION SELECTOR-51 E0123;ZA # VARIATION SELECTOR-52 E0124;ZA # VARIATION SELECTOR-53 E0125;ZA # VARIATION SELECTOR-54 E0126;ZA # VARIATION SELECTOR-55 E0127;ZA # VARIATION SELECTOR-56 E0128;ZA # VARIATION SELECTOR-57 E0129;ZA # VARIATION SELECTOR-58 E012A;ZA # VARIATION SELECTOR-59 E012B;ZA # VARIATION SELECTOR-60 E012C;ZA # VARIATION SELECTOR-61 E012D;ZA # VARIATION SELECTOR-62 E012E;ZA # VARIATION SELECTOR-63 E012F;ZA # VARIATION SELECTOR-64 E0130;ZA # VARIATION SELECTOR-65 E0131;ZA # VARIATION SELECTOR-66 E0132;ZA # VARIATION SELECTOR-67 E0133;ZA # VARIATION SELECTOR-68 E0134;ZA # VARIATION SELECTOR-69 E0135;ZA # VARIATION SELECTOR-70 E0136;ZA # VARIATION SELECTOR-71 E0137;ZA # VARIATION SELECTOR-72 E0138;ZA # VARIATION SELECTOR-73 E0139;ZA # VARIATION SELECTOR-74 E013A;ZA # VARIATION SELECTOR-75 E013B;ZA # VARIATION SELECTOR-76 E013C;ZA # VARIATION SELECTOR-77 E013D;ZA # VARIATION SELECTOR-78 E013E;ZA # VARIATION SELECTOR-79 E013F;ZA # VARIATION SELECTOR-80 E0140;ZA # VARIATION SELECTOR-81 E0141;ZA # VARIATION SELECTOR-82 E0142;ZA # VARIATION SELECTOR-83 E0143;ZA # VARIATION SELECTOR-84 E0144;ZA # VARIATION SELECTOR-85 E0145;ZA # VARIATION SELECTOR-86 E0146;ZA # VARIATION SELECTOR-87 E0147;ZA # VARIATION SELECTOR-88 E0148;ZA # VARIATION SELECTOR-89 E0149;ZA # VARIATION SELECTOR-90 E014A;ZA # VARIATION SELECTOR-91 E014B;ZA # VARIATION SELECTOR-92 E014C;ZA # VARIATION SELECTOR-93 E014D;ZA # VARIATION SELECTOR-94 E014E;ZA # VARIATION SELECTOR-95 E014F;ZA # VARIATION SELECTOR-96 E0150;ZA # VARIATION SELECTOR-97 E0151;ZA # VARIATION SELECTOR-98 E0152;ZA # VARIATION SELECTOR-99 E0153;ZA # VARIATION SELECTOR-100 E0154;ZA # VARIATION SELECTOR-101 E0155;ZA # VARIATION SELECTOR-102 E0156;ZA # VARIATION SELECTOR-103 E0157;ZA # VARIATION SELECTOR-104 E0158;ZA # VARIATION SELECTOR-105 E0159;ZA # VARIATION SELECTOR-106 E015A;ZA # VARIATION SELECTOR-107 E015B;ZA # VARIATION SELECTOR-108 E015C;ZA # VARIATION SELECTOR-109 E015D;ZA # VARIATION SELECTOR-110 E015E;ZA # VARIATION SELECTOR-111 E015F;ZA # VARIATION SELECTOR-112 E0160;ZA # VARIATION SELECTOR-113 E0161;ZA # VARIATION SELECTOR-114 E0162;ZA # VARIATION SELECTOR-115 E0163;ZA # VARIATION SELECTOR-116 E0164;ZA # VARIATION SELECTOR-117 E0165;ZA # VARIATION SELECTOR-118 E0166;ZA # VARIATION SELECTOR-119 E0167;ZA # VARIATION SELECTOR-120 E0168;ZA # VARIATION SELECTOR-121 E0169;ZA # VARIATION SELECTOR-122 E016A;ZA # VARIATION SELECTOR-123 E016B;ZA # VARIATION SELECTOR-124 E016C;ZA # VARIATION SELECTOR-125 E016D;ZA # VARIATION SELECTOR-126 E016E;ZA # VARIATION SELECTOR-127 E016F;ZA # VARIATION SELECTOR-128 E0170;ZA # VARIATION SELECTOR-129 E0171;ZA # VARIATION SELECTOR-130 E0172;ZA # VARIATION SELECTOR-131 E0173;ZA # VARIATION SELECTOR-132 E0174;ZA # VARIATION SELECTOR-133 E0175;ZA # VARIATION SELECTOR-134 E0176;ZA # VARIATION SELECTOR-135 E0177;ZA # VARIATION SELECTOR-136 E0178;ZA # VARIATION SELECTOR-137 E0179;ZA # VARIATION SELECTOR-138 E017A;ZA # VARIATION SELECTOR-139 E017B;ZA # VARIATION SELECTOR-140 E017C;ZA # VARIATION SELECTOR-141 E017D;ZA # VARIATION SELECTOR-142 E017E;ZA # VARIATION SELECTOR-143 E017F;ZA # VARIATION SELECTOR-144 E0180;ZA # VARIATION SELECTOR-145 E0181;ZA # VARIATION SELECTOR-146 E0182;ZA # VARIATION SELECTOR-147 E0183;ZA # VARIATION SELECTOR-148 E0184;ZA # VARIATION SELECTOR-149 E0185;ZA # VARIATION SELECTOR-150 E0186;ZA # VARIATION SELECTOR-151 E0187;ZA # VARIATION SELECTOR-152 E0188;ZA # VARIATION SELECTOR-153 E0189;ZA # VARIATION SELECTOR-154 E018A;ZA # VARIATION SELECTOR-155 E018B;ZA # VARIATION SELECTOR-156 E018C;ZA # VARIATION SELECTOR-157 E018D;ZA # VARIATION SELECTOR-158 E018E;ZA # VARIATION SELECTOR-159 E018F;ZA # VARIATION SELECTOR-160 E0190;ZA # VARIATION SELECTOR-161 E0191;ZA # VARIATION SELECTOR-162 E0192;ZA # VARIATION SELECTOR-163 E0193;ZA # VARIATION SELECTOR-164 E0194;ZA # VARIATION SELECTOR-165 E0195;ZA # VARIATION SELECTOR-166 E0196;ZA # VARIATION SELECTOR-167 E0197;ZA # VARIATION SELECTOR-168 E0198;ZA # VARIATION SELECTOR-169 E0199;ZA # VARIATION SELECTOR-170 E019A;ZA # VARIATION SELECTOR-171 E019B;ZA # VARIATION SELECTOR-172 E019C;ZA # VARIATION SELECTOR-173 E019D;ZA # VARIATION SELECTOR-174 E019E;ZA # VARIATION SELECTOR-175 E019F;ZA # VARIATION SELECTOR-176 E01A0;ZA # VARIATION SELECTOR-177 E01A1;ZA # VARIATION SELECTOR-178 E01A2;ZA # VARIATION SELECTOR-179 E01A3;ZA # VARIATION SELECTOR-180 E01A4;ZA # VARIATION SELECTOR-181 E01A5;ZA # VARIATION SELECTOR-182 E01A6;ZA # VARIATION SELECTOR-183 E01A7;ZA # VARIATION SELECTOR-184 E01A8;ZA # VARIATION SELECTOR-185 E01A9;ZA # VARIATION SELECTOR-186 E01AA;ZA # VARIATION SELECTOR-187 E01AB;ZA # VARIATION SELECTOR-188 E01AC;ZA # VARIATION SELECTOR-189 E01AD;ZA # VARIATION SELECTOR-190 E01AE;ZA # VARIATION SELECTOR-191 E01AF;ZA # VARIATION SELECTOR-192 E01B0;ZA # VARIATION SELECTOR-193 E01B1;ZA # VARIATION SELECTOR-194 E01B2;ZA # VARIATION SELECTOR-195 E01B3;ZA # VARIATION SELECTOR-196 E01B4;ZA # VARIATION SELECTOR-197 E01B5;ZA # VARIATION SELECTOR-198 E01B6;ZA # VARIATION SELECTOR-199 E01B7;ZA # VARIATION SELECTOR-200 E01B8;ZA # VARIATION SELECTOR-201 E01B9;ZA # VARIATION SELECTOR-202 E01BA;ZA # VARIATION SELECTOR-203 E01BB;ZA # VARIATION SELECTOR-204 E01BC;ZA # VARIATION SELECTOR-205 E01BD;ZA # VARIATION SELECTOR-206 E01BE;ZA # VARIATION SELECTOR-207 E01BF;ZA # VARIATION SELECTOR-208 E01C0;ZA # VARIATION SELECTOR-209 E01C1;ZA # VARIATION SELECTOR-210 E01C2;ZA # VARIATION SELECTOR-211 E01C3;ZA # VARIATION SELECTOR-212 E01C4;ZA # VARIATION SELECTOR-213 E01C5;ZA # VARIATION SELECTOR-214 E01C6;ZA # VARIATION SELECTOR-215 E01C7;ZA # VARIATION SELECTOR-216 E01C8;ZA # VARIATION SELECTOR-217 E01C9;ZA # VARIATION SELECTOR-218 E01CA;ZA # VARIATION SELECTOR-219 E01CB;ZA # VARIATION SELECTOR-220 E01CC;ZA # VARIATION SELECTOR-221 E01CD;ZA # VARIATION SELECTOR-222 E01CE;ZA # VARIATION SELECTOR-223 E01CF;ZA # VARIATION SELECTOR-224 E01D0;ZA # VARIATION SELECTOR-225 E01D1;ZA # VARIATION SELECTOR-226 E01D2;ZA # VARIATION SELECTOR-227 E01D3;ZA # VARIATION SELECTOR-228 E01D4;ZA # VARIATION SELECTOR-229 E01D5;ZA # VARIATION SELECTOR-230 E01D6;ZA # VARIATION SELECTOR-231 E01D7;ZA # VARIATION SELECTOR-232 E01D8;ZA # VARIATION SELECTOR-233 E01D9;ZA # VARIATION SELECTOR-234 E01DA;ZA # VARIATION SELECTOR-235 E01DB;ZA # VARIATION SELECTOR-236 E01DC;ZA # VARIATION SELECTOR-237 E01DD;ZA # VARIATION SELECTOR-238 E01DE;ZA # VARIATION SELECTOR-239 E01DF;ZA # VARIATION SELECTOR-240 E01E0;ZA # VARIATION SELECTOR-241 E01E1;ZA # VARIATION SELECTOR-242 E01E2;ZA # VARIATION SELECTOR-243 E01E3;ZA # VARIATION SELECTOR-244 E01E4;ZA # VARIATION SELECTOR-245 E01E5;ZA # VARIATION SELECTOR-246 E01E6;ZA # VARIATION SELECTOR-247 E01E7;ZA # VARIATION SELECTOR-248 E01E8;ZA # VARIATION SELECTOR-249 E01E9;ZA # VARIATION SELECTOR-250 E01EA;ZA # VARIATION SELECTOR-251 E01EB;ZA # VARIATION SELECTOR-252 E01EC;ZA # VARIATION SELECTOR-253 E01ED;ZA # VARIATION SELECTOR-254 E01EE;ZA # VARIATION SELECTOR-255 E01EF;ZA # VARIATION SELECTOR-256 sombok-2.3.1/data/GraphemeBreakProperty-5.1.0.custom0000664000076400007640000013433212221425411017010 000000000000000904 ; OtherLetter # Lo DEVANAGARI LETTER SHORT A 0905 ; OtherLetter # Lo DEVANAGARI LETTER A 0906 ; OtherLetter # Lo DEVANAGARI LETTER AA 0907 ; OtherLetter # Lo DEVANAGARI LETTER I 0908 ; OtherLetter # Lo DEVANAGARI LETTER II 0909 ; OtherLetter # Lo DEVANAGARI LETTER U 090A ; OtherLetter # Lo DEVANAGARI LETTER UU 090B ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC R 090C ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC L 090D ; OtherLetter # Lo DEVANAGARI LETTER CANDRA E 090E ; OtherLetter # Lo DEVANAGARI LETTER SHORT E 090F ; OtherLetter # Lo DEVANAGARI LETTER E 0910 ; OtherLetter # Lo DEVANAGARI LETTER AI 0911 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA O 0912 ; OtherLetter # Lo DEVANAGARI LETTER SHORT O 0913 ; OtherLetter # Lo DEVANAGARI LETTER O 0914 ; OtherLetter # Lo DEVANAGARI LETTER AU 0915 ; OtherLetter # Lo DEVANAGARI LETTER KA 0916 ; OtherLetter # Lo DEVANAGARI LETTER KHA 0917 ; OtherLetter # Lo DEVANAGARI LETTER GA 0918 ; OtherLetter # Lo DEVANAGARI LETTER GHA 0919 ; OtherLetter # Lo DEVANAGARI LETTER NGA 091A ; OtherLetter # Lo DEVANAGARI LETTER CA 091B ; OtherLetter # Lo DEVANAGARI LETTER CHA 091C ; OtherLetter # Lo DEVANAGARI LETTER JA 091D ; OtherLetter # Lo DEVANAGARI LETTER JHA 091E ; OtherLetter # Lo DEVANAGARI LETTER NYA 091F ; OtherLetter # Lo DEVANAGARI LETTER TTA 0920 ; OtherLetter # Lo DEVANAGARI LETTER TTHA 0921 ; OtherLetter # Lo DEVANAGARI LETTER DDA 0922 ; OtherLetter # Lo DEVANAGARI LETTER DDHA 0923 ; OtherLetter # Lo DEVANAGARI LETTER NNA 0924 ; OtherLetter # Lo DEVANAGARI LETTER TA 0925 ; OtherLetter # Lo DEVANAGARI LETTER THA 0926 ; OtherLetter # Lo DEVANAGARI LETTER DA 0927 ; OtherLetter # Lo DEVANAGARI LETTER DHA 0928 ; OtherLetter # Lo DEVANAGARI LETTER NA 0929 ; OtherLetter # Lo DEVANAGARI LETTER NNNA 092A ; OtherLetter # Lo DEVANAGARI LETTER PA 092B ; OtherLetter # Lo DEVANAGARI LETTER PHA 092C ; OtherLetter # Lo DEVANAGARI LETTER BA 092D ; OtherLetter # Lo DEVANAGARI LETTER BHA 092E ; OtherLetter # Lo DEVANAGARI LETTER MA 092F ; OtherLetter # Lo DEVANAGARI LETTER YA 0930 ; OtherLetter # Lo DEVANAGARI LETTER RA 0931 ; OtherLetter # Lo DEVANAGARI LETTER RRA 0932 ; OtherLetter # Lo DEVANAGARI LETTER LA 0933 ; OtherLetter # Lo DEVANAGARI LETTER LLA 0934 ; OtherLetter # Lo DEVANAGARI LETTER LLLA 0935 ; OtherLetter # Lo DEVANAGARI LETTER VA 0936 ; OtherLetter # Lo DEVANAGARI LETTER SHA 0937 ; OtherLetter # Lo DEVANAGARI LETTER SSA 0938 ; OtherLetter # Lo DEVANAGARI LETTER SA 0939 ; OtherLetter # Lo DEVANAGARI LETTER HA 093D ; OtherLetter # Lo DEVANAGARI SIGN AVAGRAHA 094D ; Virama # Mn DEVANAGARI SIGN VIRAMA 0950 ; OtherLetter # Lo DEVANAGARI OM 0958 ; OtherLetter # Lo DEVANAGARI LETTER QA 0959 ; OtherLetter # Lo DEVANAGARI LETTER KHHA 095A ; OtherLetter # Lo DEVANAGARI LETTER GHHA 095B ; OtherLetter # Lo DEVANAGARI LETTER ZA 095C ; OtherLetter # Lo DEVANAGARI LETTER DDDHA 095D ; OtherLetter # Lo DEVANAGARI LETTER RHA 095E ; OtherLetter # Lo DEVANAGARI LETTER FA 095F ; OtherLetter # Lo DEVANAGARI LETTER YYA 0960 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC RR 0961 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC LL 0971 ; OtherLetter # Lm DEVANAGARI SIGN HIGH SPACING DOT 0972 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA A 097B ; OtherLetter # Lo DEVANAGARI LETTER GGA 097C ; OtherLetter # Lo DEVANAGARI LETTER JJA 097D ; OtherLetter # Lo DEVANAGARI LETTER GLOTTAL STOP 097E ; OtherLetter # Lo DEVANAGARI LETTER DDDA 097F ; OtherLetter # Lo DEVANAGARI LETTER BBA 0985 ; OtherLetter # Lo BENGALI LETTER A 0986 ; OtherLetter # Lo BENGALI LETTER AA 0987 ; OtherLetter # Lo BENGALI LETTER I 0988 ; OtherLetter # Lo BENGALI LETTER II 0989 ; OtherLetter # Lo BENGALI LETTER U 098A ; OtherLetter # Lo BENGALI LETTER UU 098B ; OtherLetter # Lo BENGALI LETTER VOCALIC R 098C ; OtherLetter # Lo BENGALI LETTER VOCALIC L 098F ; OtherLetter # Lo BENGALI LETTER E 0990 ; OtherLetter # Lo BENGALI LETTER AI 0993 ; OtherLetter # Lo BENGALI LETTER O 0994 ; OtherLetter # Lo BENGALI LETTER AU 0995 ; OtherLetter # Lo BENGALI LETTER KA 0996 ; OtherLetter # Lo BENGALI LETTER KHA 0997 ; OtherLetter # Lo BENGALI LETTER GA 0998 ; OtherLetter # Lo BENGALI LETTER GHA 0999 ; OtherLetter # Lo BENGALI LETTER NGA 099A ; OtherLetter # Lo BENGALI LETTER CA 099B ; OtherLetter # Lo BENGALI LETTER CHA 099C ; OtherLetter # Lo BENGALI LETTER JA 099D ; OtherLetter # Lo BENGALI LETTER JHA 099E ; OtherLetter # Lo BENGALI LETTER NYA 099F ; OtherLetter # Lo BENGALI LETTER TTA 09A0 ; OtherLetter # Lo BENGALI LETTER TTHA 09A1 ; OtherLetter # Lo BENGALI LETTER DDA 09A2 ; OtherLetter # Lo BENGALI LETTER DDHA 09A3 ; OtherLetter # Lo BENGALI LETTER NNA 09A4 ; OtherLetter # Lo BENGALI LETTER TA 09A5 ; OtherLetter # Lo BENGALI LETTER THA 09A6 ; OtherLetter # Lo BENGALI LETTER DA 09A7 ; OtherLetter # Lo BENGALI LETTER DHA 09A8 ; OtherLetter # Lo BENGALI LETTER NA 09AA ; OtherLetter # Lo BENGALI LETTER PA 09AB ; OtherLetter # Lo BENGALI LETTER PHA 09AC ; OtherLetter # Lo BENGALI LETTER BA 09AD ; OtherLetter # Lo BENGALI LETTER BHA 09AE ; OtherLetter # Lo BENGALI LETTER MA 09AF ; OtherLetter # Lo BENGALI LETTER YA 09B0 ; OtherLetter # Lo BENGALI LETTER RA 09B2 ; OtherLetter # Lo BENGALI LETTER LA 09B6 ; OtherLetter # Lo BENGALI LETTER SHA 09B7 ; OtherLetter # Lo BENGALI LETTER SSA 09B8 ; OtherLetter # Lo BENGALI LETTER SA 09B9 ; OtherLetter # Lo BENGALI LETTER HA 09BD ; OtherLetter # Lo BENGALI SIGN AVAGRAHA 09CD ; Virama # Mn BENGALI SIGN VIRAMA 09CE ; OtherLetter # Lo BENGALI LETTER KHANDA TA 09DC ; OtherLetter # Lo BENGALI LETTER RRA 09DD ; OtherLetter # Lo BENGALI LETTER RHA 09DF ; OtherLetter # Lo BENGALI LETTER YYA 09E0 ; OtherLetter # Lo BENGALI LETTER VOCALIC RR 09E1 ; OtherLetter # Lo BENGALI LETTER VOCALIC LL 09F0 ; OtherLetter # Lo BENGALI LETTER RA WITH MIDDLE DIAGONAL 09F1 ; OtherLetter # Lo BENGALI LETTER RA WITH LOWER DIAGONAL 0A05 ; OtherLetter # Lo GURMUKHI LETTER A 0A06 ; OtherLetter # Lo GURMUKHI LETTER AA 0A07 ; OtherLetter # Lo GURMUKHI LETTER I 0A08 ; OtherLetter # Lo GURMUKHI LETTER II 0A09 ; OtherLetter # Lo GURMUKHI LETTER U 0A0A ; OtherLetter # Lo GURMUKHI LETTER UU 0A0F ; OtherLetter # Lo GURMUKHI LETTER EE 0A10 ; OtherLetter # Lo GURMUKHI LETTER AI 0A13 ; OtherLetter # Lo GURMUKHI LETTER OO 0A14 ; OtherLetter # Lo GURMUKHI LETTER AU 0A15 ; OtherLetter # Lo GURMUKHI LETTER KA 0A16 ; OtherLetter # Lo GURMUKHI LETTER KHA 0A17 ; OtherLetter # Lo GURMUKHI LETTER GA 0A18 ; OtherLetter # Lo GURMUKHI LETTER GHA 0A19 ; OtherLetter # Lo GURMUKHI LETTER NGA 0A1A ; OtherLetter # Lo GURMUKHI LETTER CA 0A1B ; OtherLetter # Lo GURMUKHI LETTER CHA 0A1C ; OtherLetter # Lo GURMUKHI LETTER JA 0A1D ; OtherLetter # Lo GURMUKHI LETTER JHA 0A1E ; OtherLetter # Lo GURMUKHI LETTER NYA 0A1F ; OtherLetter # Lo GURMUKHI LETTER TTA 0A20 ; OtherLetter # Lo GURMUKHI LETTER TTHA 0A21 ; OtherLetter # Lo GURMUKHI LETTER DDA 0A22 ; OtherLetter # Lo GURMUKHI LETTER DDHA 0A23 ; OtherLetter # Lo GURMUKHI LETTER NNA 0A24 ; OtherLetter # Lo GURMUKHI LETTER TA 0A25 ; OtherLetter # Lo GURMUKHI LETTER THA 0A26 ; OtherLetter # Lo GURMUKHI LETTER DA 0A27 ; OtherLetter # Lo GURMUKHI LETTER DHA 0A28 ; OtherLetter # Lo GURMUKHI LETTER NA 0A2A ; OtherLetter # Lo GURMUKHI LETTER PA 0A2B ; OtherLetter # Lo GURMUKHI LETTER PHA 0A2C ; OtherLetter # Lo GURMUKHI LETTER BA 0A2D ; OtherLetter # Lo GURMUKHI LETTER BHA 0A2E ; OtherLetter # Lo GURMUKHI LETTER MA 0A2F ; OtherLetter # Lo GURMUKHI LETTER YA 0A30 ; OtherLetter # Lo GURMUKHI LETTER RA 0A32 ; OtherLetter # Lo GURMUKHI LETTER LA 0A33 ; OtherLetter # Lo GURMUKHI LETTER LLA 0A35 ; OtherLetter # Lo GURMUKHI LETTER VA 0A36 ; OtherLetter # Lo GURMUKHI LETTER SHA 0A38 ; OtherLetter # Lo GURMUKHI LETTER SA 0A39 ; OtherLetter # Lo GURMUKHI LETTER HA 0A4D ; Virama # Mn GURMUKHI SIGN VIRAMA 0A59 ; OtherLetter # Lo GURMUKHI LETTER KHHA 0A5A ; OtherLetter # Lo GURMUKHI LETTER GHHA 0A5B ; OtherLetter # Lo GURMUKHI LETTER ZA 0A5C ; OtherLetter # Lo GURMUKHI LETTER RRA 0A5E ; OtherLetter # Lo GURMUKHI LETTER FA 0A72 ; OtherLetter # Lo GURMUKHI IRI 0A73 ; OtherLetter # Lo GURMUKHI URA 0A74 ; OtherLetter # Lo GURMUKHI EK ONKAR 0A85 ; OtherLetter # Lo GUJARATI LETTER A 0A86 ; OtherLetter # Lo GUJARATI LETTER AA 0A87 ; OtherLetter # Lo GUJARATI LETTER I 0A88 ; OtherLetter # Lo GUJARATI LETTER II 0A89 ; OtherLetter # Lo GUJARATI LETTER U 0A8A ; OtherLetter # Lo GUJARATI LETTER UU 0A8B ; OtherLetter # Lo GUJARATI LETTER VOCALIC R 0A8C ; OtherLetter # Lo GUJARATI LETTER VOCALIC L 0A8D ; OtherLetter # Lo GUJARATI VOWEL CANDRA E 0A8F ; OtherLetter # Lo GUJARATI LETTER E 0A90 ; OtherLetter # Lo GUJARATI LETTER AI 0A91 ; OtherLetter # Lo GUJARATI VOWEL CANDRA O 0A93 ; OtherLetter # Lo GUJARATI LETTER O 0A94 ; OtherLetter # Lo GUJARATI LETTER AU 0A95 ; OtherLetter # Lo GUJARATI LETTER KA 0A96 ; OtherLetter # Lo GUJARATI LETTER KHA 0A97 ; OtherLetter # Lo GUJARATI LETTER GA 0A98 ; OtherLetter # Lo GUJARATI LETTER GHA 0A99 ; OtherLetter # Lo GUJARATI LETTER NGA 0A9A ; OtherLetter # Lo GUJARATI LETTER CA 0A9B ; OtherLetter # Lo GUJARATI LETTER CHA 0A9C ; OtherLetter # Lo GUJARATI LETTER JA 0A9D ; OtherLetter # Lo GUJARATI LETTER JHA 0A9E ; OtherLetter # Lo GUJARATI LETTER NYA 0A9F ; OtherLetter # Lo GUJARATI LETTER TTA 0AA0 ; OtherLetter # Lo GUJARATI LETTER TTHA 0AA1 ; OtherLetter # Lo GUJARATI LETTER DDA 0AA2 ; OtherLetter # Lo GUJARATI LETTER DDHA 0AA3 ; OtherLetter # Lo GUJARATI LETTER NNA 0AA4 ; OtherLetter # Lo GUJARATI LETTER TA 0AA5 ; OtherLetter # Lo GUJARATI LETTER THA 0AA6 ; OtherLetter # Lo GUJARATI LETTER DA 0AA7 ; OtherLetter # Lo GUJARATI LETTER DHA 0AA8 ; OtherLetter # Lo GUJARATI LETTER NA 0AAA ; OtherLetter # Lo GUJARATI LETTER PA 0AAB ; OtherLetter # Lo GUJARATI LETTER PHA 0AAC ; OtherLetter # Lo GUJARATI LETTER BA 0AAD ; OtherLetter # Lo GUJARATI LETTER BHA 0AAE ; OtherLetter # Lo GUJARATI LETTER MA 0AAF ; OtherLetter # Lo GUJARATI LETTER YA 0AB0 ; OtherLetter # Lo GUJARATI LETTER RA 0AB2 ; OtherLetter # Lo GUJARATI LETTER LA 0AB3 ; OtherLetter # Lo GUJARATI LETTER LLA 0AB5 ; OtherLetter # Lo GUJARATI LETTER VA 0AB6 ; OtherLetter # Lo GUJARATI LETTER SHA 0AB7 ; OtherLetter # Lo GUJARATI LETTER SSA 0AB8 ; OtherLetter # Lo GUJARATI LETTER SA 0AB9 ; OtherLetter # Lo GUJARATI LETTER HA 0ABD ; OtherLetter # Lo GUJARATI SIGN AVAGRAHA 0ACD ; Virama # Mn GUJARATI SIGN VIRAMA 0AD0 ; OtherLetter # Lo GUJARATI OM 0AE0 ; OtherLetter # Lo GUJARATI LETTER VOCALIC RR 0AE1 ; OtherLetter # Lo GUJARATI LETTER VOCALIC LL 0B05 ; OtherLetter # Lo ORIYA LETTER A 0B06 ; OtherLetter # Lo ORIYA LETTER AA 0B07 ; OtherLetter # Lo ORIYA LETTER I 0B08 ; OtherLetter # Lo ORIYA LETTER II 0B09 ; OtherLetter # Lo ORIYA LETTER U 0B0A ; OtherLetter # Lo ORIYA LETTER UU 0B0B ; OtherLetter # Lo ORIYA LETTER VOCALIC R 0B0C ; OtherLetter # Lo ORIYA LETTER VOCALIC L 0B0F ; OtherLetter # Lo ORIYA LETTER E 0B10 ; OtherLetter # Lo ORIYA LETTER AI 0B13 ; OtherLetter # Lo ORIYA LETTER O 0B14 ; OtherLetter # Lo ORIYA LETTER AU 0B15 ; OtherLetter # Lo ORIYA LETTER KA 0B16 ; OtherLetter # Lo ORIYA LETTER KHA 0B17 ; OtherLetter # Lo ORIYA LETTER GA 0B18 ; OtherLetter # Lo ORIYA LETTER GHA 0B19 ; OtherLetter # Lo ORIYA LETTER NGA 0B1A ; OtherLetter # Lo ORIYA LETTER CA 0B1B ; OtherLetter # Lo ORIYA LETTER CHA 0B1C ; OtherLetter # Lo ORIYA LETTER JA 0B1D ; OtherLetter # Lo ORIYA LETTER JHA 0B1E ; OtherLetter # Lo ORIYA LETTER NYA 0B1F ; OtherLetter # Lo ORIYA LETTER TTA 0B20 ; OtherLetter # Lo ORIYA LETTER TTHA 0B21 ; OtherLetter # Lo ORIYA LETTER DDA 0B22 ; OtherLetter # Lo ORIYA LETTER DDHA 0B23 ; OtherLetter # Lo ORIYA LETTER NNA 0B24 ; OtherLetter # Lo ORIYA LETTER TA 0B25 ; OtherLetter # Lo ORIYA LETTER THA 0B26 ; OtherLetter # Lo ORIYA LETTER DA 0B27 ; OtherLetter # Lo ORIYA LETTER DHA 0B28 ; OtherLetter # Lo ORIYA LETTER NA 0B2A ; OtherLetter # Lo ORIYA LETTER PA 0B2B ; OtherLetter # Lo ORIYA LETTER PHA 0B2C ; OtherLetter # Lo ORIYA LETTER BA 0B2D ; OtherLetter # Lo ORIYA LETTER BHA 0B2E ; OtherLetter # Lo ORIYA LETTER MA 0B2F ; OtherLetter # Lo ORIYA LETTER YA 0B30 ; OtherLetter # Lo ORIYA LETTER RA 0B32 ; OtherLetter # Lo ORIYA LETTER LA 0B33 ; OtherLetter # Lo ORIYA LETTER LLA 0B35 ; OtherLetter # Lo ORIYA LETTER VA 0B36 ; OtherLetter # Lo ORIYA LETTER SHA 0B37 ; OtherLetter # Lo ORIYA LETTER SSA 0B38 ; OtherLetter # Lo ORIYA LETTER SA 0B39 ; OtherLetter # Lo ORIYA LETTER HA 0B3D ; OtherLetter # Lo ORIYA SIGN AVAGRAHA 0B4D ; Virama # Mn ORIYA SIGN VIRAMA 0B5C ; OtherLetter # Lo ORIYA LETTER RRA 0B5D ; OtherLetter # Lo ORIYA LETTER RHA 0B5F ; OtherLetter # Lo ORIYA LETTER YYA 0B60 ; OtherLetter # Lo ORIYA LETTER VOCALIC RR 0B61 ; OtherLetter # Lo ORIYA LETTER VOCALIC LL 0B71 ; OtherLetter # Lo ORIYA LETTER WA 0B83 ; OtherLetter # Lo TAMIL SIGN VISARGA 0B85 ; OtherLetter # Lo TAMIL LETTER A 0B86 ; OtherLetter # Lo TAMIL LETTER AA 0B87 ; OtherLetter # Lo TAMIL LETTER I 0B88 ; OtherLetter # Lo TAMIL LETTER II 0B89 ; OtherLetter # Lo TAMIL LETTER U 0B8A ; OtherLetter # Lo TAMIL LETTER UU 0B8E ; OtherLetter # Lo TAMIL LETTER E 0B8F ; OtherLetter # Lo TAMIL LETTER EE 0B90 ; OtherLetter # Lo TAMIL LETTER AI 0B92 ; OtherLetter # Lo TAMIL LETTER O 0B93 ; OtherLetter # Lo TAMIL LETTER OO 0B94 ; OtherLetter # Lo TAMIL LETTER AU 0B95 ; OtherLetter # Lo TAMIL LETTER KA 0B99 ; OtherLetter # Lo TAMIL LETTER NGA 0B9A ; OtherLetter # Lo TAMIL LETTER CA 0B9C ; OtherLetter # Lo TAMIL LETTER JA 0B9E ; OtherLetter # Lo TAMIL LETTER NYA 0B9F ; OtherLetter # Lo TAMIL LETTER TTA 0BA3 ; OtherLetter # Lo TAMIL LETTER NNA 0BA4 ; OtherLetter # Lo TAMIL LETTER TA 0BA8 ; OtherLetter # Lo TAMIL LETTER NA 0BA9 ; OtherLetter # Lo TAMIL LETTER NNNA 0BAA ; OtherLetter # Lo TAMIL LETTER PA 0BAE ; OtherLetter # Lo TAMIL LETTER MA 0BAF ; OtherLetter # Lo TAMIL LETTER YA 0BB0 ; OtherLetter # Lo TAMIL LETTER RA 0BB1 ; OtherLetter # Lo TAMIL LETTER RRA 0BB2 ; OtherLetter # Lo TAMIL LETTER LA 0BB3 ; OtherLetter # Lo TAMIL LETTER LLA 0BB4 ; OtherLetter # Lo TAMIL LETTER LLLA 0BB5 ; OtherLetter # Lo TAMIL LETTER VA 0BB6 ; OtherLetter # Lo TAMIL LETTER SHA 0BB7 ; OtherLetter # Lo TAMIL LETTER SSA 0BB8 ; OtherLetter # Lo TAMIL LETTER SA 0BB9 ; OtherLetter # Lo TAMIL LETTER HA 0BCD ; Virama # Mn TAMIL SIGN VIRAMA 0BD0 ; OtherLetter # Lo TAMIL OM 0C05 ; OtherLetter # Lo TELUGU LETTER A 0C06 ; OtherLetter # Lo TELUGU LETTER AA 0C07 ; OtherLetter # Lo TELUGU LETTER I 0C08 ; OtherLetter # Lo TELUGU LETTER II 0C09 ; OtherLetter # Lo TELUGU LETTER U 0C0A ; OtherLetter # Lo TELUGU LETTER UU 0C0B ; OtherLetter # Lo TELUGU LETTER VOCALIC R 0C0C ; OtherLetter # Lo TELUGU LETTER VOCALIC L 0C0E ; OtherLetter # Lo TELUGU LETTER E 0C0F ; OtherLetter # Lo TELUGU LETTER EE 0C10 ; OtherLetter # Lo TELUGU LETTER AI 0C12 ; OtherLetter # Lo TELUGU LETTER O 0C13 ; OtherLetter # Lo TELUGU LETTER OO 0C14 ; OtherLetter # Lo TELUGU LETTER AU 0C15 ; OtherLetter # Lo TELUGU LETTER KA 0C16 ; OtherLetter # Lo TELUGU LETTER KHA 0C17 ; OtherLetter # Lo TELUGU LETTER GA 0C18 ; OtherLetter # Lo TELUGU LETTER GHA 0C19 ; OtherLetter # Lo TELUGU LETTER NGA 0C1A ; OtherLetter # Lo TELUGU LETTER CA 0C1B ; OtherLetter # Lo TELUGU LETTER CHA 0C1C ; OtherLetter # Lo TELUGU LETTER JA 0C1D ; OtherLetter # Lo TELUGU LETTER JHA 0C1E ; OtherLetter # Lo TELUGU LETTER NYA 0C1F ; OtherLetter # Lo TELUGU LETTER TTA 0C20 ; OtherLetter # Lo TELUGU LETTER TTHA 0C21 ; OtherLetter # Lo TELUGU LETTER DDA 0C22 ; OtherLetter # Lo TELUGU LETTER DDHA 0C23 ; OtherLetter # Lo TELUGU LETTER NNA 0C24 ; OtherLetter # Lo TELUGU LETTER TA 0C25 ; OtherLetter # Lo TELUGU LETTER THA 0C26 ; OtherLetter # Lo TELUGU LETTER DA 0C27 ; OtherLetter # Lo TELUGU LETTER DHA 0C28 ; OtherLetter # Lo TELUGU LETTER NA 0C2A ; OtherLetter # Lo TELUGU LETTER PA 0C2B ; OtherLetter # Lo TELUGU LETTER PHA 0C2C ; OtherLetter # Lo TELUGU LETTER BA 0C2D ; OtherLetter # Lo TELUGU LETTER BHA 0C2E ; OtherLetter # Lo TELUGU LETTER MA 0C2F ; OtherLetter # Lo TELUGU LETTER YA 0C30 ; OtherLetter # Lo TELUGU LETTER RA 0C31 ; OtherLetter # Lo TELUGU LETTER RRA 0C32 ; OtherLetter # Lo TELUGU LETTER LA 0C33 ; OtherLetter # Lo TELUGU LETTER LLA 0C35 ; OtherLetter # Lo TELUGU LETTER VA 0C36 ; OtherLetter # Lo TELUGU LETTER SHA 0C37 ; OtherLetter # Lo TELUGU LETTER SSA 0C38 ; OtherLetter # Lo TELUGU LETTER SA 0C39 ; OtherLetter # Lo TELUGU LETTER HA 0C3D ; OtherLetter # Lo TELUGU SIGN AVAGRAHA 0C4D ; Virama # Mn TELUGU SIGN VIRAMA 0C58 ; OtherLetter # Lo TELUGU LETTER TSA 0C59 ; OtherLetter # Lo TELUGU LETTER DZA 0C60 ; OtherLetter # Lo TELUGU LETTER VOCALIC RR 0C61 ; OtherLetter # Lo TELUGU LETTER VOCALIC LL 0C85 ; OtherLetter # Lo KANNADA LETTER A 0C86 ; OtherLetter # Lo KANNADA LETTER AA 0C87 ; OtherLetter # Lo KANNADA LETTER I 0C88 ; OtherLetter # Lo KANNADA LETTER II 0C89 ; OtherLetter # Lo KANNADA LETTER U 0C8A ; OtherLetter # Lo KANNADA LETTER UU 0C8B ; OtherLetter # Lo KANNADA LETTER VOCALIC R 0C8C ; OtherLetter # Lo KANNADA LETTER VOCALIC L 0C8E ; OtherLetter # Lo KANNADA LETTER E 0C8F ; OtherLetter # Lo KANNADA LETTER EE 0C90 ; OtherLetter # Lo KANNADA LETTER AI 0C92 ; OtherLetter # Lo KANNADA LETTER O 0C93 ; OtherLetter # Lo KANNADA LETTER OO 0C94 ; OtherLetter # Lo KANNADA LETTER AU 0C95 ; OtherLetter # Lo KANNADA LETTER KA 0C96 ; OtherLetter # Lo KANNADA LETTER KHA 0C97 ; OtherLetter # Lo KANNADA LETTER GA 0C98 ; OtherLetter # Lo KANNADA LETTER GHA 0C99 ; OtherLetter # Lo KANNADA LETTER NGA 0C9A ; OtherLetter # Lo KANNADA LETTER CA 0C9B ; OtherLetter # Lo KANNADA LETTER CHA 0C9C ; OtherLetter # Lo KANNADA LETTER JA 0C9D ; OtherLetter # Lo KANNADA LETTER JHA 0C9E ; OtherLetter # Lo KANNADA LETTER NYA 0C9F ; OtherLetter # Lo KANNADA LETTER TTA 0CA0 ; OtherLetter # Lo KANNADA LETTER TTHA 0CA1 ; OtherLetter # Lo KANNADA LETTER DDA 0CA2 ; OtherLetter # Lo KANNADA LETTER DDHA 0CA3 ; OtherLetter # Lo KANNADA LETTER NNA 0CA4 ; OtherLetter # Lo KANNADA LETTER TA 0CA5 ; OtherLetter # Lo KANNADA LETTER THA 0CA6 ; OtherLetter # Lo KANNADA LETTER DA 0CA7 ; OtherLetter # Lo KANNADA LETTER DHA 0CA8 ; OtherLetter # Lo KANNADA LETTER NA 0CAA ; OtherLetter # Lo KANNADA LETTER PA 0CAB ; OtherLetter # Lo KANNADA LETTER PHA 0CAC ; OtherLetter # Lo KANNADA LETTER BA 0CAD ; OtherLetter # Lo KANNADA LETTER BHA 0CAE ; OtherLetter # Lo KANNADA LETTER MA 0CAF ; OtherLetter # Lo KANNADA LETTER YA 0CB0 ; OtherLetter # Lo KANNADA LETTER RA 0CB1 ; OtherLetter # Lo KANNADA LETTER RRA 0CB2 ; OtherLetter # Lo KANNADA LETTER LA 0CB3 ; OtherLetter # Lo KANNADA LETTER LLA 0CB5 ; OtherLetter # Lo KANNADA LETTER VA 0CB6 ; OtherLetter # Lo KANNADA LETTER SHA 0CB7 ; OtherLetter # Lo KANNADA LETTER SSA 0CB8 ; OtherLetter # Lo KANNADA LETTER SA 0CB9 ; OtherLetter # Lo KANNADA LETTER HA 0CBD ; OtherLetter # Lo KANNADA SIGN AVAGRAHA 0CCD ; Virama # Mn KANNADA SIGN VIRAMA 0CDE ; OtherLetter # Lo KANNADA LETTER FA 0CE0 ; OtherLetter # Lo KANNADA LETTER VOCALIC RR 0CE1 ; OtherLetter # Lo KANNADA LETTER VOCALIC LL 0D05 ; OtherLetter # Lo MALAYALAM LETTER A 0D06 ; OtherLetter # Lo MALAYALAM LETTER AA 0D07 ; OtherLetter # Lo MALAYALAM LETTER I 0D08 ; OtherLetter # Lo MALAYALAM LETTER II 0D09 ; OtherLetter # Lo MALAYALAM LETTER U 0D0A ; OtherLetter # Lo MALAYALAM LETTER UU 0D0B ; OtherLetter # Lo MALAYALAM LETTER VOCALIC R 0D0C ; OtherLetter # Lo MALAYALAM LETTER VOCALIC L 0D0E ; OtherLetter # Lo MALAYALAM LETTER E 0D0F ; OtherLetter # Lo MALAYALAM LETTER EE 0D10 ; OtherLetter # Lo MALAYALAM LETTER AI 0D12 ; OtherLetter # Lo MALAYALAM LETTER O 0D13 ; OtherLetter # Lo MALAYALAM LETTER OO 0D14 ; OtherLetter # Lo MALAYALAM LETTER AU 0D15 ; OtherLetter # Lo MALAYALAM LETTER KA 0D16 ; OtherLetter # Lo MALAYALAM LETTER KHA 0D17 ; OtherLetter # Lo MALAYALAM LETTER GA 0D18 ; OtherLetter # Lo MALAYALAM LETTER GHA 0D19 ; OtherLetter # Lo MALAYALAM LETTER NGA 0D1A ; OtherLetter # Lo MALAYALAM LETTER CA 0D1B ; OtherLetter # Lo MALAYALAM LETTER CHA 0D1C ; OtherLetter # Lo MALAYALAM LETTER JA 0D1D ; OtherLetter # Lo MALAYALAM LETTER JHA 0D1E ; OtherLetter # Lo MALAYALAM LETTER NYA 0D1F ; OtherLetter # Lo MALAYALAM LETTER TTA 0D20 ; OtherLetter # Lo MALAYALAM LETTER TTHA 0D21 ; OtherLetter # Lo MALAYALAM LETTER DDA 0D22 ; OtherLetter # Lo MALAYALAM LETTER DDHA 0D23 ; OtherLetter # Lo MALAYALAM LETTER NNA 0D24 ; OtherLetter # Lo MALAYALAM LETTER TA 0D25 ; OtherLetter # Lo MALAYALAM LETTER THA 0D26 ; OtherLetter # Lo MALAYALAM LETTER DA 0D27 ; OtherLetter # Lo MALAYALAM LETTER DHA 0D28 ; OtherLetter # Lo MALAYALAM LETTER NA 0D2A ; OtherLetter # Lo MALAYALAM LETTER PA 0D2B ; OtherLetter # Lo MALAYALAM LETTER PHA 0D2C ; OtherLetter # Lo MALAYALAM LETTER BA 0D2D ; OtherLetter # Lo MALAYALAM LETTER BHA 0D2E ; OtherLetter # Lo MALAYALAM LETTER MA 0D2F ; OtherLetter # Lo MALAYALAM LETTER YA 0D30 ; OtherLetter # Lo MALAYALAM LETTER RA 0D31 ; OtherLetter # Lo MALAYALAM LETTER RRA 0D32 ; OtherLetter # Lo MALAYALAM LETTER LA 0D33 ; OtherLetter # Lo MALAYALAM LETTER LLA 0D34 ; OtherLetter # Lo MALAYALAM LETTER LLLA 0D35 ; OtherLetter # Lo MALAYALAM LETTER VA 0D36 ; OtherLetter # Lo MALAYALAM LETTER SHA 0D37 ; OtherLetter # Lo MALAYALAM LETTER SSA 0D38 ; OtherLetter # Lo MALAYALAM LETTER SA 0D39 ; OtherLetter # Lo MALAYALAM LETTER HA 0D3D ; OtherLetter # Lo MALAYALAM SIGN AVAGRAHA 0D4D ; Virama # Mn MALAYALAM SIGN VIRAMA 0D60 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC RR 0D61 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC LL 0D7A ; OtherLetter # Lo MALAYALAM LETTER CHILLU NN 0D7B ; OtherLetter # Lo MALAYALAM LETTER CHILLU N 0D7C ; OtherLetter # Lo MALAYALAM LETTER CHILLU RR 0D7D ; OtherLetter # Lo MALAYALAM LETTER CHILLU L 0D7E ; OtherLetter # Lo MALAYALAM LETTER CHILLU LL 0D7F ; OtherLetter # Lo MALAYALAM LETTER CHILLU K 0D85 ; OtherLetter # Lo SINHALA LETTER AYANNA 0D86 ; OtherLetter # Lo SINHALA LETTER AAYANNA 0D87 ; OtherLetter # Lo SINHALA LETTER AEYANNA 0D88 ; OtherLetter # Lo SINHALA LETTER AEEYANNA 0D89 ; OtherLetter # Lo SINHALA LETTER IYANNA 0D8A ; OtherLetter # Lo SINHALA LETTER IIYANNA 0D8B ; OtherLetter # Lo SINHALA LETTER UYANNA 0D8C ; OtherLetter # Lo SINHALA LETTER UUYANNA 0D8D ; OtherLetter # Lo SINHALA LETTER IRUYANNA 0D8E ; OtherLetter # Lo SINHALA LETTER IRUUYANNA 0D8F ; OtherLetter # Lo SINHALA LETTER ILUYANNA 0D90 ; OtherLetter # Lo SINHALA LETTER ILUUYANNA 0D91 ; OtherLetter # Lo SINHALA LETTER EYANNA 0D92 ; OtherLetter # Lo SINHALA LETTER EEYANNA 0D93 ; OtherLetter # Lo SINHALA LETTER AIYANNA 0D94 ; OtherLetter # Lo SINHALA LETTER OYANNA 0D95 ; OtherLetter # Lo SINHALA LETTER OOYANNA 0D96 ; OtherLetter # Lo SINHALA LETTER AUYANNA 0D9A ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA KAYANNA 0D9B ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA KAYANNA 0D9C ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA GAYANNA 0D9D ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA GAYANNA 0D9E ; OtherLetter # Lo SINHALA LETTER KANTAJA NAASIKYAYA 0D9F ; OtherLetter # Lo SINHALA LETTER SANYAKA GAYANNA 0DA0 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA CAYANNA 0DA1 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA CAYANNA 0DA2 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA JAYANNA 0DA3 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA JAYANNA 0DA4 ; OtherLetter # Lo SINHALA LETTER TAALUJA NAASIKYAYA 0DA5 ; OtherLetter # Lo SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA 0DA6 ; OtherLetter # Lo SINHALA LETTER SANYAKA JAYANNA 0DA7 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TTAYANNA 0DA8 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TTAYANNA 0DA9 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DDAYANNA 0DAA ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DDAYANNA 0DAB ; OtherLetter # Lo SINHALA LETTER MUURDHAJA NAYANNA 0DAC ; OtherLetter # Lo SINHALA LETTER SANYAKA DDAYANNA 0DAD ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TAYANNA 0DAE ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TAYANNA 0DAF ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DAYANNA 0DB0 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DAYANNA 0DB1 ; OtherLetter # Lo SINHALA LETTER DANTAJA NAYANNA 0DB3 ; OtherLetter # Lo SINHALA LETTER SANYAKA DAYANNA 0DB4 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA PAYANNA 0DB5 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA PAYANNA 0DB6 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA BAYANNA 0DB7 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA BAYANNA 0DB8 ; OtherLetter # Lo SINHALA LETTER MAYANNA 0DB9 ; OtherLetter # Lo SINHALA LETTER AMBA BAYANNA 0DBA ; OtherLetter # Lo SINHALA LETTER YAYANNA 0DBB ; OtherLetter # Lo SINHALA LETTER RAYANNA 0DBD ; OtherLetter # Lo SINHALA LETTER DANTAJA LAYANNA 0DC0 ; OtherLetter # Lo SINHALA LETTER VAYANNA 0DC1 ; OtherLetter # Lo SINHALA LETTER TAALUJA SAYANNA 0DC2 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA SAYANNA 0DC3 ; OtherLetter # Lo SINHALA LETTER DANTAJA SAYANNA 0DC4 ; OtherLetter # Lo SINHALA LETTER HAYANNA 0DC5 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA LAYANNA 0DC6 ; OtherLetter # Lo SINHALA LETTER FAYANNA 0DCA ; Virama # Mn SINHALA SIGN AL-LAKUNA 0E01 ; OtherLetter # Lo THAI CHARACTER KO KAI 0E02 ; OtherLetter # Lo THAI CHARACTER KHO KHAI 0E03 ; OtherLetter # Lo THAI CHARACTER KHO KHUAT 0E04 ; OtherLetter # Lo THAI CHARACTER KHO KHWAI 0E05 ; OtherLetter # Lo THAI CHARACTER KHO KHON 0E06 ; OtherLetter # Lo THAI CHARACTER KHO RAKHANG 0E07 ; OtherLetter # Lo THAI CHARACTER NGO NGU 0E08 ; OtherLetter # Lo THAI CHARACTER CHO CHAN 0E09 ; OtherLetter # Lo THAI CHARACTER CHO CHING 0E0A ; OtherLetter # Lo THAI CHARACTER CHO CHANG 0E0B ; OtherLetter # Lo THAI CHARACTER SO SO 0E0C ; OtherLetter # Lo THAI CHARACTER CHO CHOE 0E0D ; OtherLetter # Lo THAI CHARACTER YO YING 0E0E ; OtherLetter # Lo THAI CHARACTER DO CHADA 0E0F ; OtherLetter # Lo THAI CHARACTER TO PATAK 0E10 ; OtherLetter # Lo THAI CHARACTER THO THAN 0E11 ; OtherLetter # Lo THAI CHARACTER THO NANGMONTHO 0E12 ; OtherLetter # Lo THAI CHARACTER THO PHUTHAO 0E13 ; OtherLetter # Lo THAI CHARACTER NO NEN 0E14 ; OtherLetter # Lo THAI CHARACTER DO DEK 0E15 ; OtherLetter # Lo THAI CHARACTER TO TAO 0E16 ; OtherLetter # Lo THAI CHARACTER THO THUNG 0E17 ; OtherLetter # Lo THAI CHARACTER THO THAHAN 0E18 ; OtherLetter # Lo THAI CHARACTER THO THONG 0E19 ; OtherLetter # Lo THAI CHARACTER NO NU 0E1A ; OtherLetter # Lo THAI CHARACTER BO BAIMAI 0E1B ; OtherLetter # Lo THAI CHARACTER PO PLA 0E1C ; OtherLetter # Lo THAI CHARACTER PHO PHUNG 0E1D ; OtherLetter # Lo THAI CHARACTER FO FA 0E1E ; OtherLetter # Lo THAI CHARACTER PHO PHAN 0E1F ; OtherLetter # Lo THAI CHARACTER FO FAN 0E20 ; OtherLetter # Lo THAI CHARACTER PHO SAMPHAO 0E21 ; OtherLetter # Lo THAI CHARACTER MO MA 0E22 ; OtherLetter # Lo THAI CHARACTER YO YAK 0E23 ; OtherLetter # Lo THAI CHARACTER RO RUA 0E24 ; OtherLetter # Lo THAI CHARACTER RU 0E25 ; OtherLetter # Lo THAI CHARACTER LO LING 0E26 ; OtherLetter # Lo THAI CHARACTER LU 0E27 ; OtherLetter # Lo THAI CHARACTER WO WAEN 0E28 ; OtherLetter # Lo THAI CHARACTER SO SALA 0E29 ; OtherLetter # Lo THAI CHARACTER SO RUSI 0E2A ; OtherLetter # Lo THAI CHARACTER SO SUA 0E2B ; OtherLetter # Lo THAI CHARACTER HO HIP 0E2C ; OtherLetter # Lo THAI CHARACTER LO CHULA 0E2D ; OtherLetter # Lo THAI CHARACTER O ANG 0E2E ; OtherLetter # Lo THAI CHARACTER HO NOKHUK 0E2F ; OtherLetter # Lo THAI CHARACTER PAIYANNOI 0E3A ; Virama # Mn THAI CHARACTER PHINTHU 0E46 ; OtherLetter # Lm THAI CHARACTER MAIYAMOK 0F00 ; OtherLetter # Lo TIBETAN SYLLABLE OM 0F40 ; OtherLetter # Lo TIBETAN LETTER KA 0F41 ; OtherLetter # Lo TIBETAN LETTER KHA 0F42 ; OtherLetter # Lo TIBETAN LETTER GA 0F43 ; OtherLetter # Lo TIBETAN LETTER GHA 0F44 ; OtherLetter # Lo TIBETAN LETTER NGA 0F45 ; OtherLetter # Lo TIBETAN LETTER CA 0F46 ; OtherLetter # Lo TIBETAN LETTER CHA 0F47 ; OtherLetter # Lo TIBETAN LETTER JA 0F49 ; OtherLetter # Lo TIBETAN LETTER NYA 0F4A ; OtherLetter # Lo TIBETAN LETTER TTA 0F4B ; OtherLetter # Lo TIBETAN LETTER TTHA 0F4C ; OtherLetter # Lo TIBETAN LETTER DDA 0F4D ; OtherLetter # Lo TIBETAN LETTER DDHA 0F4E ; OtherLetter # Lo TIBETAN LETTER NNA 0F4F ; OtherLetter # Lo TIBETAN LETTER TA 0F50 ; OtherLetter # Lo TIBETAN LETTER THA 0F51 ; OtherLetter # Lo TIBETAN LETTER DA 0F52 ; OtherLetter # Lo TIBETAN LETTER DHA 0F53 ; OtherLetter # Lo TIBETAN LETTER NA 0F54 ; OtherLetter # Lo TIBETAN LETTER PA 0F55 ; OtherLetter # Lo TIBETAN LETTER PHA 0F56 ; OtherLetter # Lo TIBETAN LETTER BA 0F57 ; OtherLetter # Lo TIBETAN LETTER BHA 0F58 ; OtherLetter # Lo TIBETAN LETTER MA 0F59 ; OtherLetter # Lo TIBETAN LETTER TSA 0F5A ; OtherLetter # Lo TIBETAN LETTER TSHA 0F5B ; OtherLetter # Lo TIBETAN LETTER DZA 0F5C ; OtherLetter # Lo TIBETAN LETTER DZHA 0F5D ; OtherLetter # Lo TIBETAN LETTER WA 0F5E ; OtherLetter # Lo TIBETAN LETTER ZHA 0F5F ; OtherLetter # Lo TIBETAN LETTER ZA 0F60 ; OtherLetter # Lo TIBETAN LETTER -A 0F61 ; OtherLetter # Lo TIBETAN LETTER YA 0F62 ; OtherLetter # Lo TIBETAN LETTER RA 0F63 ; OtherLetter # Lo TIBETAN LETTER LA 0F64 ; OtherLetter # Lo TIBETAN LETTER SHA 0F65 ; OtherLetter # Lo TIBETAN LETTER SSA 0F66 ; OtherLetter # Lo TIBETAN LETTER SA 0F67 ; OtherLetter # Lo TIBETAN LETTER HA 0F68 ; OtherLetter # Lo TIBETAN LETTER A 0F69 ; OtherLetter # Lo TIBETAN LETTER KSSA 0F6A ; OtherLetter # Lo TIBETAN LETTER FIXED-FORM RA 0F6B ; OtherLetter # Lo TIBETAN LETTER KKA 0F6C ; OtherLetter # Lo TIBETAN LETTER RRA 0F84 ; Virama # Mn TIBETAN MARK HALANTA 0F88 ; OtherLetter # Lo TIBETAN SIGN LCE TSA CAN 0F89 ; OtherLetter # Lo TIBETAN SIGN MCHU CAN 0F8A ; OtherLetter # Lo TIBETAN SIGN GRU CAN RGYINGS 0F8B ; OtherLetter # Lo TIBETAN SIGN GRU MED RGYINGS 1000 ; OtherLetter # Lo MYANMAR LETTER KA 1001 ; OtherLetter # Lo MYANMAR LETTER KHA 1002 ; OtherLetter # Lo MYANMAR LETTER GA 1003 ; OtherLetter # Lo MYANMAR LETTER GHA 1004 ; OtherLetter # Lo MYANMAR LETTER NGA 1005 ; OtherLetter # Lo MYANMAR LETTER CA 1006 ; OtherLetter # Lo MYANMAR LETTER CHA 1007 ; OtherLetter # Lo MYANMAR LETTER JA 1008 ; OtherLetter # Lo MYANMAR LETTER JHA 1009 ; OtherLetter # Lo MYANMAR LETTER NYA 100A ; OtherLetter # Lo MYANMAR LETTER NNYA 100B ; OtherLetter # Lo MYANMAR LETTER TTA 100C ; OtherLetter # Lo MYANMAR LETTER TTHA 100D ; OtherLetter # Lo MYANMAR LETTER DDA 100E ; OtherLetter # Lo MYANMAR LETTER DDHA 100F ; OtherLetter # Lo MYANMAR LETTER NNA 1010 ; OtherLetter # Lo MYANMAR LETTER TA 1011 ; OtherLetter # Lo MYANMAR LETTER THA 1012 ; OtherLetter # Lo MYANMAR LETTER DA 1013 ; OtherLetter # Lo MYANMAR LETTER DHA 1014 ; OtherLetter # Lo MYANMAR LETTER NA 1015 ; OtherLetter # Lo MYANMAR LETTER PA 1016 ; OtherLetter # Lo MYANMAR LETTER PHA 1017 ; OtherLetter # Lo MYANMAR LETTER BA 1018 ; OtherLetter # Lo MYANMAR LETTER BHA 1019 ; OtherLetter # Lo MYANMAR LETTER MA 101A ; OtherLetter # Lo MYANMAR LETTER YA 101B ; OtherLetter # Lo MYANMAR LETTER RA 101C ; OtherLetter # Lo MYANMAR LETTER LA 101D ; OtherLetter # Lo MYANMAR LETTER WA 101E ; OtherLetter # Lo MYANMAR LETTER SA 101F ; OtherLetter # Lo MYANMAR LETTER HA 1020 ; OtherLetter # Lo MYANMAR LETTER LLA 1021 ; OtherLetter # Lo MYANMAR LETTER A 1022 ; OtherLetter # Lo MYANMAR LETTER SHAN A 1023 ; OtherLetter # Lo MYANMAR LETTER I 1024 ; OtherLetter # Lo MYANMAR LETTER II 1025 ; OtherLetter # Lo MYANMAR LETTER U 1026 ; OtherLetter # Lo MYANMAR LETTER UU 1027 ; OtherLetter # Lo MYANMAR LETTER E 1028 ; OtherLetter # Lo MYANMAR LETTER MON E 1029 ; OtherLetter # Lo MYANMAR LETTER O 102A ; OtherLetter # Lo MYANMAR LETTER AU 1039 ; Virama # Mn MYANMAR SIGN VIRAMA 103A ; Virama # Mn MYANMAR SIGN ASAT 103F ; OtherLetter # Lo MYANMAR LETTER GREAT SA 1050 ; OtherLetter # Lo MYANMAR LETTER SHA 1051 ; OtherLetter # Lo MYANMAR LETTER SSA 1052 ; OtherLetter # Lo MYANMAR LETTER VOCALIC R 1053 ; OtherLetter # Lo MYANMAR LETTER VOCALIC RR 1054 ; OtherLetter # Lo MYANMAR LETTER VOCALIC L 1055 ; OtherLetter # Lo MYANMAR LETTER VOCALIC LL 105A ; OtherLetter # Lo MYANMAR LETTER MON NGA 105B ; OtherLetter # Lo MYANMAR LETTER MON JHA 105C ; OtherLetter # Lo MYANMAR LETTER MON BBA 105D ; OtherLetter # Lo MYANMAR LETTER MON BBE 1061 ; OtherLetter # Lo MYANMAR LETTER SGAW KAREN SHA 1065 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN THA 1066 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN PWA 106E ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN NNA 106F ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN YWA 1070 ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN GHWA 1075 ; OtherLetter # Lo MYANMAR LETTER SHAN KA 1076 ; OtherLetter # Lo MYANMAR LETTER SHAN KHA 1077 ; OtherLetter # Lo MYANMAR LETTER SHAN GA 1078 ; OtherLetter # Lo MYANMAR LETTER SHAN CA 1079 ; OtherLetter # Lo MYANMAR LETTER SHAN ZA 107A ; OtherLetter # Lo MYANMAR LETTER SHAN NYA 107B ; OtherLetter # Lo MYANMAR LETTER SHAN DA 107C ; OtherLetter # Lo MYANMAR LETTER SHAN NA 107D ; OtherLetter # Lo MYANMAR LETTER SHAN PHA 107E ; OtherLetter # Lo MYANMAR LETTER SHAN FA 107F ; OtherLetter # Lo MYANMAR LETTER SHAN BA 1080 ; OtherLetter # Lo MYANMAR LETTER SHAN THA 1081 ; OtherLetter # Lo MYANMAR LETTER SHAN HA 108E ; OtherLetter # Lo MYANMAR LETTER RUMAI PALAUNG FA 1700 ; OtherLetter # Lo TAGALOG LETTER A 1701 ; OtherLetter # Lo TAGALOG LETTER I 1702 ; OtherLetter # Lo TAGALOG LETTER U 1703 ; OtherLetter # Lo TAGALOG LETTER KA 1704 ; OtherLetter # Lo TAGALOG LETTER GA 1705 ; OtherLetter # Lo TAGALOG LETTER NGA 1706 ; OtherLetter # Lo TAGALOG LETTER TA 1707 ; OtherLetter # Lo TAGALOG LETTER DA 1708 ; OtherLetter # Lo TAGALOG LETTER NA 1709 ; OtherLetter # Lo TAGALOG LETTER PA 170A ; OtherLetter # Lo TAGALOG LETTER BA 170B ; OtherLetter # Lo TAGALOG LETTER MA 170C ; OtherLetter # Lo TAGALOG LETTER YA 170E ; OtherLetter # Lo TAGALOG LETTER LA 170F ; OtherLetter # Lo TAGALOG LETTER WA 1710 ; OtherLetter # Lo TAGALOG LETTER SA 1711 ; OtherLetter # Lo TAGALOG LETTER HA 1714 ; Virama # Mn TAGALOG SIGN VIRAMA 1720 ; OtherLetter # Lo HANUNOO LETTER A 1721 ; OtherLetter # Lo HANUNOO LETTER I 1722 ; OtherLetter # Lo HANUNOO LETTER U 1723 ; OtherLetter # Lo HANUNOO LETTER KA 1724 ; OtherLetter # Lo HANUNOO LETTER GA 1725 ; OtherLetter # Lo HANUNOO LETTER NGA 1726 ; OtherLetter # Lo HANUNOO LETTER TA 1727 ; OtherLetter # Lo HANUNOO LETTER DA 1728 ; OtherLetter # Lo HANUNOO LETTER NA 1729 ; OtherLetter # Lo HANUNOO LETTER PA 172A ; OtherLetter # Lo HANUNOO LETTER BA 172B ; OtherLetter # Lo HANUNOO LETTER MA 172C ; OtherLetter # Lo HANUNOO LETTER YA 172D ; OtherLetter # Lo HANUNOO LETTER RA 172E ; OtherLetter # Lo HANUNOO LETTER LA 172F ; OtherLetter # Lo HANUNOO LETTER WA 1730 ; OtherLetter # Lo HANUNOO LETTER SA 1731 ; OtherLetter # Lo HANUNOO LETTER HA 1734 ; Virama # Mn HANUNOO SIGN PAMUDPOD 1780 ; OtherLetter # Lo KHMER LETTER KA 1781 ; OtherLetter # Lo KHMER LETTER KHA 1782 ; OtherLetter # Lo KHMER LETTER KO 1783 ; OtherLetter # Lo KHMER LETTER KHO 1784 ; OtherLetter # Lo KHMER LETTER NGO 1785 ; OtherLetter # Lo KHMER LETTER CA 1786 ; OtherLetter # Lo KHMER LETTER CHA 1787 ; OtherLetter # Lo KHMER LETTER CO 1788 ; OtherLetter # Lo KHMER LETTER CHO 1789 ; OtherLetter # Lo KHMER LETTER NYO 178A ; OtherLetter # Lo KHMER LETTER DA 178B ; OtherLetter # Lo KHMER LETTER TTHA 178C ; OtherLetter # Lo KHMER LETTER DO 178D ; OtherLetter # Lo KHMER LETTER TTHO 178E ; OtherLetter # Lo KHMER LETTER NNO 178F ; OtherLetter # Lo KHMER LETTER TA 1790 ; OtherLetter # Lo KHMER LETTER THA 1791 ; OtherLetter # Lo KHMER LETTER TO 1792 ; OtherLetter # Lo KHMER LETTER THO 1793 ; OtherLetter # Lo KHMER LETTER NO 1794 ; OtherLetter # Lo KHMER LETTER BA 1795 ; OtherLetter # Lo KHMER LETTER PHA 1796 ; OtherLetter # Lo KHMER LETTER PO 1797 ; OtherLetter # Lo KHMER LETTER PHO 1798 ; OtherLetter # Lo KHMER LETTER MO 1799 ; OtherLetter # Lo KHMER LETTER YO 179A ; OtherLetter # Lo KHMER LETTER RO 179B ; OtherLetter # Lo KHMER LETTER LO 179C ; OtherLetter # Lo KHMER LETTER VO 179D ; OtherLetter # Lo KHMER LETTER SHA 179E ; OtherLetter # Lo KHMER LETTER SSO 179F ; OtherLetter # Lo KHMER LETTER SA 17A0 ; OtherLetter # Lo KHMER LETTER HA 17A1 ; OtherLetter # Lo KHMER LETTER LA 17A2 ; OtherLetter # Lo KHMER LETTER QA 17A3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAQ 17A4 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAA 17A5 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QI 17A6 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QII 17A7 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QU 17A8 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUK 17A9 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUU 17AA ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUUV 17AB ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RY 17AC ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RYY 17AD ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LY 17AE ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LYY 17AF ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QE 17B0 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAI 17B1 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE ONE 17B2 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE TWO 17B3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAU 17D2 ; Virama # Mn KHMER SIGN COENG 17D7 ; OtherLetter # Lm KHMER SIGN LEK TOO 17DC ; OtherLetter # Lo KHMER SIGN AVAKRAHASANYA 1B05 ; OtherLetter # Lo BALINESE LETTER AKARA 1B06 ; OtherLetter # Lo BALINESE LETTER AKARA TEDUNG 1B07 ; OtherLetter # Lo BALINESE LETTER IKARA 1B08 ; OtherLetter # Lo BALINESE LETTER IKARA TEDUNG 1B09 ; OtherLetter # Lo BALINESE LETTER UKARA 1B0A ; OtherLetter # Lo BALINESE LETTER UKARA TEDUNG 1B0B ; OtherLetter # Lo BALINESE LETTER RA REPA 1B0C ; OtherLetter # Lo BALINESE LETTER RA REPA TEDUNG 1B0D ; OtherLetter # Lo BALINESE LETTER LA LENGA 1B0E ; OtherLetter # Lo BALINESE LETTER LA LENGA TEDUNG 1B0F ; OtherLetter # Lo BALINESE LETTER EKARA 1B10 ; OtherLetter # Lo BALINESE LETTER AIKARA 1B11 ; OtherLetter # Lo BALINESE LETTER OKARA 1B12 ; OtherLetter # Lo BALINESE LETTER OKARA TEDUNG 1B13 ; OtherLetter # Lo BALINESE LETTER KA 1B14 ; OtherLetter # Lo BALINESE LETTER KA MAHAPRANA 1B15 ; OtherLetter # Lo BALINESE LETTER GA 1B16 ; OtherLetter # Lo BALINESE LETTER GA GORA 1B17 ; OtherLetter # Lo BALINESE LETTER NGA 1B18 ; OtherLetter # Lo BALINESE LETTER CA 1B19 ; OtherLetter # Lo BALINESE LETTER CA LACA 1B1A ; OtherLetter # Lo BALINESE LETTER JA 1B1B ; OtherLetter # Lo BALINESE LETTER JA JERA 1B1C ; OtherLetter # Lo BALINESE LETTER NYA 1B1D ; OtherLetter # Lo BALINESE LETTER TA LATIK 1B1E ; OtherLetter # Lo BALINESE LETTER TA MURDA MAHAPRANA 1B1F ; OtherLetter # Lo BALINESE LETTER DA MURDA ALPAPRANA 1B20 ; OtherLetter # Lo BALINESE LETTER DA MURDA MAHAPRANA 1B21 ; OtherLetter # Lo BALINESE LETTER NA RAMBAT 1B22 ; OtherLetter # Lo BALINESE LETTER TA 1B23 ; OtherLetter # Lo BALINESE LETTER TA TAWA 1B24 ; OtherLetter # Lo BALINESE LETTER DA 1B25 ; OtherLetter # Lo BALINESE LETTER DA MADU 1B26 ; OtherLetter # Lo BALINESE LETTER NA 1B27 ; OtherLetter # Lo BALINESE LETTER PA 1B28 ; OtherLetter # Lo BALINESE LETTER PA KAPAL 1B29 ; OtherLetter # Lo BALINESE LETTER BA 1B2A ; OtherLetter # Lo BALINESE LETTER BA KEMBANG 1B2B ; OtherLetter # Lo BALINESE LETTER MA 1B2C ; OtherLetter # Lo BALINESE LETTER YA 1B2D ; OtherLetter # Lo BALINESE LETTER RA 1B2E ; OtherLetter # Lo BALINESE LETTER LA 1B2F ; OtherLetter # Lo BALINESE LETTER WA 1B30 ; OtherLetter # Lo BALINESE LETTER SA SAGA 1B31 ; OtherLetter # Lo BALINESE LETTER SA SAPA 1B32 ; OtherLetter # Lo BALINESE LETTER SA 1B33 ; OtherLetter # Lo BALINESE LETTER HA 1B44 ; Virama # Mc BALINESE ADEG ADEG 1B45 ; OtherLetter # Lo BALINESE LETTER KAF SASAK 1B46 ; OtherLetter # Lo BALINESE LETTER KHOT SASAK 1B47 ; OtherLetter # Lo BALINESE LETTER TZIR SASAK 1B48 ; OtherLetter # Lo BALINESE LETTER EF SASAK 1B49 ; OtherLetter # Lo BALINESE LETTER VE SASAK 1B4A ; OtherLetter # Lo BALINESE LETTER ZAL SASAK 1B4B ; OtherLetter # Lo BALINESE LETTER ASYURA SASAK 1B83 ; OtherLetter # Lo SUNDANESE LETTER A 1B84 ; OtherLetter # Lo SUNDANESE LETTER I 1B85 ; OtherLetter # Lo SUNDANESE LETTER U 1B86 ; OtherLetter # Lo SUNDANESE LETTER AE 1B87 ; OtherLetter # Lo SUNDANESE LETTER O 1B88 ; OtherLetter # Lo SUNDANESE LETTER E 1B89 ; OtherLetter # Lo SUNDANESE LETTER EU 1B8A ; OtherLetter # Lo SUNDANESE LETTER KA 1B8B ; OtherLetter # Lo SUNDANESE LETTER QA 1B8C ; OtherLetter # Lo SUNDANESE LETTER GA 1B8D ; OtherLetter # Lo SUNDANESE LETTER NGA 1B8E ; OtherLetter # Lo SUNDANESE LETTER CA 1B8F ; OtherLetter # Lo SUNDANESE LETTER JA 1B90 ; OtherLetter # Lo SUNDANESE LETTER ZA 1B91 ; OtherLetter # Lo SUNDANESE LETTER NYA 1B92 ; OtherLetter # Lo SUNDANESE LETTER TA 1B93 ; OtherLetter # Lo SUNDANESE LETTER DA 1B94 ; OtherLetter # Lo SUNDANESE LETTER NA 1B95 ; OtherLetter # Lo SUNDANESE LETTER PA 1B96 ; OtherLetter # Lo SUNDANESE LETTER FA 1B97 ; OtherLetter # Lo SUNDANESE LETTER VA 1B98 ; OtherLetter # Lo SUNDANESE LETTER BA 1B99 ; OtherLetter # Lo SUNDANESE LETTER MA 1B9A ; OtherLetter # Lo SUNDANESE LETTER YA 1B9B ; OtherLetter # Lo SUNDANESE LETTER RA 1B9C ; OtherLetter # Lo SUNDANESE LETTER LA 1B9D ; OtherLetter # Lo SUNDANESE LETTER WA 1B9E ; OtherLetter # Lo SUNDANESE LETTER SA 1B9F ; OtherLetter # Lo SUNDANESE LETTER XA 1BA0 ; OtherLetter # Lo SUNDANESE LETTER HA 1BAA ; Virama # Mc SUNDANESE SIGN PAMAAEH 1BAE ; OtherLetter # Lo SUNDANESE LETTER KHA 1BAF ; OtherLetter # Lo SUNDANESE LETTER SYA A800 ; OtherLetter # Lo SYLOTI NAGRI LETTER A A801 ; OtherLetter # Lo SYLOTI NAGRI LETTER I A803 ; OtherLetter # Lo SYLOTI NAGRI LETTER U A804 ; OtherLetter # Lo SYLOTI NAGRI LETTER E A805 ; OtherLetter # Lo SYLOTI NAGRI LETTER O A806 ; Virama # Mn SYLOTI NAGRI SIGN HASANTA A807 ; OtherLetter # Lo SYLOTI NAGRI LETTER KO A808 ; OtherLetter # Lo SYLOTI NAGRI LETTER KHO A809 ; OtherLetter # Lo SYLOTI NAGRI LETTER GO A80A ; OtherLetter # Lo SYLOTI NAGRI LETTER GHO A80C ; OtherLetter # Lo SYLOTI NAGRI LETTER CO A80D ; OtherLetter # Lo SYLOTI NAGRI LETTER CHO A80E ; OtherLetter # Lo SYLOTI NAGRI LETTER JO A80F ; OtherLetter # Lo SYLOTI NAGRI LETTER JHO A810 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTO A811 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTHO A812 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDO A813 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDHO A814 ; OtherLetter # Lo SYLOTI NAGRI LETTER TO A815 ; OtherLetter # Lo SYLOTI NAGRI LETTER THO A816 ; OtherLetter # Lo SYLOTI NAGRI LETTER DO A817 ; OtherLetter # Lo SYLOTI NAGRI LETTER DHO A818 ; OtherLetter # Lo SYLOTI NAGRI LETTER NO A819 ; OtherLetter # Lo SYLOTI NAGRI LETTER PO A81A ; OtherLetter # Lo SYLOTI NAGRI LETTER PHO A81B ; OtherLetter # Lo SYLOTI NAGRI LETTER BO A81C ; OtherLetter # Lo SYLOTI NAGRI LETTER BHO A81D ; OtherLetter # Lo SYLOTI NAGRI LETTER MO A81E ; OtherLetter # Lo SYLOTI NAGRI LETTER RO A81F ; OtherLetter # Lo SYLOTI NAGRI LETTER LO A820 ; OtherLetter # Lo SYLOTI NAGRI LETTER RRO A821 ; OtherLetter # Lo SYLOTI NAGRI LETTER SO A822 ; OtherLetter # Lo SYLOTI NAGRI LETTER HO A882 ; OtherLetter # Lo SAURASHTRA LETTER A A883 ; OtherLetter # Lo SAURASHTRA LETTER AA A884 ; OtherLetter # Lo SAURASHTRA LETTER I A885 ; OtherLetter # Lo SAURASHTRA LETTER II A886 ; OtherLetter # Lo SAURASHTRA LETTER U A887 ; OtherLetter # Lo SAURASHTRA LETTER UU A888 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC R A889 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC RR A88A ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC L A88B ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC LL A88C ; OtherLetter # Lo SAURASHTRA LETTER E A88D ; OtherLetter # Lo SAURASHTRA LETTER EE A88E ; OtherLetter # Lo SAURASHTRA LETTER AI A88F ; OtherLetter # Lo SAURASHTRA LETTER O A890 ; OtherLetter # Lo SAURASHTRA LETTER OO A891 ; OtherLetter # Lo SAURASHTRA LETTER AU A892 ; OtherLetter # Lo SAURASHTRA LETTER KA A893 ; OtherLetter # Lo SAURASHTRA LETTER KHA A894 ; OtherLetter # Lo SAURASHTRA LETTER GA A895 ; OtherLetter # Lo SAURASHTRA LETTER GHA A896 ; OtherLetter # Lo SAURASHTRA LETTER NGA A897 ; OtherLetter # Lo SAURASHTRA LETTER CA A898 ; OtherLetter # Lo SAURASHTRA LETTER CHA A899 ; OtherLetter # Lo SAURASHTRA LETTER JA A89A ; OtherLetter # Lo SAURASHTRA LETTER JHA A89B ; OtherLetter # Lo SAURASHTRA LETTER NYA A89C ; OtherLetter # Lo SAURASHTRA LETTER TTA A89D ; OtherLetter # Lo SAURASHTRA LETTER TTHA A89E ; OtherLetter # Lo SAURASHTRA LETTER DDA A89F ; OtherLetter # Lo SAURASHTRA LETTER DDHA A8A0 ; OtherLetter # Lo SAURASHTRA LETTER NNA A8A1 ; OtherLetter # Lo SAURASHTRA LETTER TA A8A2 ; OtherLetter # Lo SAURASHTRA LETTER THA A8A3 ; OtherLetter # Lo SAURASHTRA LETTER DA A8A4 ; OtherLetter # Lo SAURASHTRA LETTER DHA A8A5 ; OtherLetter # Lo SAURASHTRA LETTER NA A8A6 ; OtherLetter # Lo SAURASHTRA LETTER PA A8A7 ; OtherLetter # Lo SAURASHTRA LETTER PHA A8A8 ; OtherLetter # Lo SAURASHTRA LETTER BA A8A9 ; OtherLetter # Lo SAURASHTRA LETTER BHA A8AA ; OtherLetter # Lo SAURASHTRA LETTER MA A8AB ; OtherLetter # Lo SAURASHTRA LETTER YA A8AC ; OtherLetter # Lo SAURASHTRA LETTER RA A8AD ; OtherLetter # Lo SAURASHTRA LETTER LA A8AE ; OtherLetter # Lo SAURASHTRA LETTER VA A8AF ; OtherLetter # Lo SAURASHTRA LETTER SHA A8B0 ; OtherLetter # Lo SAURASHTRA LETTER SSA A8B1 ; OtherLetter # Lo SAURASHTRA LETTER SA A8B2 ; OtherLetter # Lo SAURASHTRA LETTER HA A8B3 ; OtherLetter # Lo SAURASHTRA LETTER LLA A8C4 ; Virama # Mn SAURASHTRA SIGN VIRAMA A930 ; OtherLetter # Lo REJANG LETTER KA A931 ; OtherLetter # Lo REJANG LETTER GA A932 ; OtherLetter # Lo REJANG LETTER NGA A933 ; OtherLetter # Lo REJANG LETTER TA A934 ; OtherLetter # Lo REJANG LETTER DA A935 ; OtherLetter # Lo REJANG LETTER NA A936 ; OtherLetter # Lo REJANG LETTER PA A937 ; OtherLetter # Lo REJANG LETTER BA A938 ; OtherLetter # Lo REJANG LETTER MA A939 ; OtherLetter # Lo REJANG LETTER CA A93A ; OtherLetter # Lo REJANG LETTER JA A93B ; OtherLetter # Lo REJANG LETTER NYA A93C ; OtherLetter # Lo REJANG LETTER SA A93D ; OtherLetter # Lo REJANG LETTER RA A93E ; OtherLetter # Lo REJANG LETTER LA A93F ; OtherLetter # Lo REJANG LETTER YA A940 ; OtherLetter # Lo REJANG LETTER WA A941 ; OtherLetter # Lo REJANG LETTER HA A942 ; OtherLetter # Lo REJANG LETTER MBA A943 ; OtherLetter # Lo REJANG LETTER NGGA A944 ; OtherLetter # Lo REJANG LETTER NDA A945 ; OtherLetter # Lo REJANG LETTER NYJA A946 ; OtherLetter # Lo REJANG LETTER A A953 ; Virama # Mc REJANG VIRAMA 10A00 ; OtherLetter # Lo KHAROSHTHI LETTER A 10A10 ; OtherLetter # Lo KHAROSHTHI LETTER KA 10A11 ; OtherLetter # Lo KHAROSHTHI LETTER KHA 10A12 ; OtherLetter # Lo KHAROSHTHI LETTER GA 10A13 ; OtherLetter # Lo KHAROSHTHI LETTER GHA 10A15 ; OtherLetter # Lo KHAROSHTHI LETTER CA 10A16 ; OtherLetter # Lo KHAROSHTHI LETTER CHA 10A17 ; OtherLetter # Lo KHAROSHTHI LETTER JA 10A19 ; OtherLetter # Lo KHAROSHTHI LETTER NYA 10A1A ; OtherLetter # Lo KHAROSHTHI LETTER TTA 10A1B ; OtherLetter # Lo KHAROSHTHI LETTER TTHA 10A1C ; OtherLetter # Lo KHAROSHTHI LETTER DDA 10A1D ; OtherLetter # Lo KHAROSHTHI LETTER DDHA 10A1E ; OtherLetter # Lo KHAROSHTHI LETTER NNA 10A1F ; OtherLetter # Lo KHAROSHTHI LETTER TA 10A20 ; OtherLetter # Lo KHAROSHTHI LETTER THA 10A21 ; OtherLetter # Lo KHAROSHTHI LETTER DA 10A22 ; OtherLetter # Lo KHAROSHTHI LETTER DHA 10A23 ; OtherLetter # Lo KHAROSHTHI LETTER NA 10A24 ; OtherLetter # Lo KHAROSHTHI LETTER PA 10A25 ; OtherLetter # Lo KHAROSHTHI LETTER PHA 10A26 ; OtherLetter # Lo KHAROSHTHI LETTER BA 10A27 ; OtherLetter # Lo KHAROSHTHI LETTER BHA 10A28 ; OtherLetter # Lo KHAROSHTHI LETTER MA 10A29 ; OtherLetter # Lo KHAROSHTHI LETTER YA 10A2A ; OtherLetter # Lo KHAROSHTHI LETTER RA 10A2B ; OtherLetter # Lo KHAROSHTHI LETTER LA 10A2C ; OtherLetter # Lo KHAROSHTHI LETTER VA 10A2D ; OtherLetter # Lo KHAROSHTHI LETTER SHA 10A2E ; OtherLetter # Lo KHAROSHTHI LETTER SSA 10A2F ; OtherLetter # Lo KHAROSHTHI LETTER SA 10A30 ; OtherLetter # Lo KHAROSHTHI LETTER ZA 10A31 ; OtherLetter # Lo KHAROSHTHI LETTER HA 10A32 ; OtherLetter # Lo KHAROSHTHI LETTER KKA 10A33 ; OtherLetter # Lo KHAROSHTHI LETTER TTTHA 10A3F ; Virama # Mn KHAROSHTHI VIRAMA sombok-2.3.1/data/LineBreak-6.1.0.custom0000664000076400007640000000014212221425417014400 00000000000000## SA characters may be categorized by their Grapheme_Cluster_Break properties. ## See [UAX #29]. sombok-2.3.1/data/Rules-5.2.0.txt0000664000076400007640000000346011737272064013162 00000000000000#### Rules for Unicode Line Breaking Algorithm. #### Based on Unicode Standard Annex #14 (UAX#14), Revision 24 (2009-09-18) #### by Asmus Freytag and Andy Heninger. http://www.unicode.org/reports/tr14/tr14-24.html ### 1 Non-tailorable Line Breaking Rules ## Resolve line breaking classes: # LB1 Assign a line breaking class to each code point of the input. ## Start and end of text: # LB2 sot × # LB3 ! eot ## Mandatory breaks: # LB4 BK ! # LB5 CR × LF CR ! LF ! NL ! # LB6 × ( BK | CR | LF | NL ) ## Explicit breaks and non-breaks: # LB7 × SP × ZW # LB8 ZW ÷ ## Combining marks: # LB9 Treat X CM* as if it were X. where X is any line break class except BK, CR, LF, NL, SP, or ZW. # LB10 Treat any remaining CM as it if were AL. ## Word joiner: # LB11 × WJ WJ × ## Non-breaking characters: # LB12 GL × ### 2 Tailorable Line Breaking Rules ## Non-breaking characters: # LB12a [^SP BA HY] × GL ## Opening and closing: # LB13 × CL × CP × EX × IS × SY # LB14 OP SP* × # LB15 QU SP* × OP # LB16 CL SP* × NS CP SP* × NS # LB17 B2 SP* × B2 ## Spaces: # LB18 SP ÷ ## Special case rules: # LB19 × QU QU × # LB20 ÷ CB CB ÷ # LB21 × BA × HY × NS BB × # LB22 AL × IN ID × IN IN × IN NU × IN ## Numbers: # LB23 ID × PO AL × NU NU × AL # LB24 PR × ID PR × AL PO × AL # LB25 CL × PO CP × PO CL × PR CP × PR NU × PO NU × PR PO × OP PO × NU PR × OP PR × NU HY × NU IS × NU NU × NU SY × NU ## Korean syllable blocks # LB26 JL × (JL | JV | H2 | H3) (JV | H2) × (JV | JT) (JT | H3) × JT # LB27 (JL | JV | JT | H2 | H3) × IN (JL | JV | JT | H2 | H3) × PO PR × (JL | JV | JT | H2 | H3) ## Finally, join alphabetic letters into words and break everything else. # LB28 AL × AL # LB29 IS × AL # LB30 (AL | NU) × OP CP × (AL | NU) # LB31 ALL ÷ ÷ ALL sombok-2.3.1/data/LineBreak-5.2.0.custom0000664000076400007640000000014212221425413014374 00000000000000## SA characters may be categorized by their Grapheme_Cluster_Break properties. ## See [UAX #29]. sombok-2.3.1/data/Rules-5.1.0.txt0000664000076400007640000000335211737272064013161 00000000000000#### Rules for Unicode Line Breaking Algorithm. #### Based on Unicode Standard Annex #14 (UAX#14), Revision 22 (2008-03-31) #### by Asmus Freytag and Andy Heninger. http://www.unicode.org/reports/tr14/ ### 1 Non-tailorable Line Breaking Rules ## Resolve line breaking classes: # LB1 Assign a line breaking class to each code point of the input. ## Start and end of text: # LB2 sot × # LB3 ! eot ## Mandatory breaks: # LB4 BK ! # LB5 CR × LF CR ! LF ! NL ! # LB6 × ( BK | CR | LF | NL ) ## Explicit breaks and non-breaks: # LB7 × SP × ZW # LB8 ZW ÷ ## Combining marks: # LB9 Treat X CM* as if it were X. where X is any line break class except BK, CR, LF, NL, SP, or ZW. # LB10 Treat any remaining CM as it if were AL. ## Word joiner: # LB11 × WJ WJ × ## Non-breaking characters: # LB12 GL × ### 2 Tailorable Line Breaking Rules ## Non-breaking characters: # LB12a [^SP BA HY] × GL ## Opening and closing: # LB13 × CL × EX × IS × SY # LB14 OP SP* × # LB15 QU SP* × OP # LB16 CL SP* × NS # LB17 B2 SP* × B2 ## Spaces: # LB18 SP ÷ ## Special case rules: # LB19 × QU QU × # LB20 ÷ CB CB ÷ # LB21 × BA × HY × NS BB × # LB22 AL × IN ID × IN IN × IN NU × IN ## Numbers: # LB23 ID × PO AL × NU NU × AL # LB24 PR × ID PR × AL PO × AL # LB25 CL × PO CL × PR NU × PO NU × PR PO × OP PO × NU PR × OP PR × NU HY × NU IS × NU NU × NU SY × NU ## Korean syllable blocks # LB26 JL × (JL | JV | H2 | H3) (JV | H2) × (JV | JT) (JT | H3) × JT # LB27 (JL | JV | JT | H2 | H3) × IN (JL | JV | JT | H2 | H3) × PO PR × (JL | JV | JT | H2 | H3) ## Finally, join alphabetic letters into words and break everything else. # LB28 AL × AL # LB29 IS × AL # LB30 - Withdrawn # LB31 ALL ÷ ÷ ALL sombok-2.3.1/data/Rules-6.1.0.txt0000664000076400007640000000363511737272064013166 00000000000000#### Rules for Unicode Line Breaking Algorithm. #### Based on Unicode Standard Annex #14 (UAX#14), Revision 28 (2012-01-17) #### by Asmus Freytag and Andy Heninger. http://www.unicode.org/reports/tr14/tr14-27.html ### 1 Non-tailorable Line Breaking Rules ## Resolve line breaking classes: # LB1 Assign a line breaking class to each code point of the input. ## Start and end of text: # LB2 sot × # LB3 ! eot ## Mandatory breaks: # LB4 BK ! # LB5 CR × LF CR ! LF ! NL ! # LB6 × ( BK | CR | LF | NL ) ## Explicit breaks and non-breaks: # LB7 × SP × ZW # LB8 ZW SP* ÷ ## Combining marks: # LB9 Treat X CM* as if it were X. where X is any line break class except BK, CR, LF, NL, SP, or ZW. # LB10 Treat any remaining CM as it if were AL. ## Word joiner: # LB11 × WJ WJ × ## Non-breaking characters: # LB12 GL × ### 2 Tailorable Line Breaking Rules ## Non-breaking characters: # LB12a [^SP BA HY] × GL ## Opening and closing: # LB13 × CL × CP × EX × IS × SY # LB14 OP SP* × # LB15 QU SP* × OP # LB16 CL SP* × NS CP SP* × NS # LB17 B2 SP* × B2 ## Spaces: # LB18 SP ÷ ## Special case rules: # LB19 × QU QU × # LB20 ÷ CB CB ÷ # LB21 × BA × HY × NS BB × # LB21a HL (HY | BA) × # LB22 (AL | HL) × IN ID × IN IN × IN NU × IN ## Numbers: # LB23 ID × PO (AL | HL) × NU NU × (AL | HL) # LB24 PR × ID PR × (AL | HL) PO × (AL | HL) # LB25 #CL × PO #CP × PO #CL × PR #CP × PR #NU × PO #NU × PR #PO × OP #PO × NU #PR × OP #PR × NU #HY × NU #IS × NU #NU × NU #SY × NU ## Korean syllable blocks # LB26 JL × (JL | JV | H2 | H3) (JV | H2) × (JV | JT) (JT | H3) × JT # LB27 (JL | JV | JT | H2 | H3) × IN (JL | JV | JT | H2 | H3) × PO PR × (JL | JV | JT | H2 | H3) ## Finally, join alphabetic letters into words and break everything else. # LB28 (AL | HL) × (AL | HL) # LB29 IS × (AL | HL) # LB30 (AL | HL | NU) × OP CP × (AL | HL | NU) # LB31 ALL ÷ ÷ ALL sombok-2.3.1/data/GraphemeBreakProperty-6.2.0.custom0000664000076400007640000021476612221425421017025 000000000000000904 ; OtherLetter # Lo DEVANAGARI LETTER SHORT A 0905 ; OtherLetter # Lo DEVANAGARI LETTER A 0906 ; OtherLetter # Lo DEVANAGARI LETTER AA 0907 ; OtherLetter # Lo DEVANAGARI LETTER I 0908 ; OtherLetter # Lo DEVANAGARI LETTER II 0909 ; OtherLetter # Lo DEVANAGARI LETTER U 090A ; OtherLetter # Lo DEVANAGARI LETTER UU 090B ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC R 090C ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC L 090D ; OtherLetter # Lo DEVANAGARI LETTER CANDRA E 090E ; OtherLetter # Lo DEVANAGARI LETTER SHORT E 090F ; OtherLetter # Lo DEVANAGARI LETTER E 0910 ; OtherLetter # Lo DEVANAGARI LETTER AI 0911 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA O 0912 ; OtherLetter # Lo DEVANAGARI LETTER SHORT O 0913 ; OtherLetter # Lo DEVANAGARI LETTER O 0914 ; OtherLetter # Lo DEVANAGARI LETTER AU 0915 ; OtherLetter # Lo DEVANAGARI LETTER KA 0916 ; OtherLetter # Lo DEVANAGARI LETTER KHA 0917 ; OtherLetter # Lo DEVANAGARI LETTER GA 0918 ; OtherLetter # Lo DEVANAGARI LETTER GHA 0919 ; OtherLetter # Lo DEVANAGARI LETTER NGA 091A ; OtherLetter # Lo DEVANAGARI LETTER CA 091B ; OtherLetter # Lo DEVANAGARI LETTER CHA 091C ; OtherLetter # Lo DEVANAGARI LETTER JA 091D ; OtherLetter # Lo DEVANAGARI LETTER JHA 091E ; OtherLetter # Lo DEVANAGARI LETTER NYA 091F ; OtherLetter # Lo DEVANAGARI LETTER TTA 0920 ; OtherLetter # Lo DEVANAGARI LETTER TTHA 0921 ; OtherLetter # Lo DEVANAGARI LETTER DDA 0922 ; OtherLetter # Lo DEVANAGARI LETTER DDHA 0923 ; OtherLetter # Lo DEVANAGARI LETTER NNA 0924 ; OtherLetter # Lo DEVANAGARI LETTER TA 0925 ; OtherLetter # Lo DEVANAGARI LETTER THA 0926 ; OtherLetter # Lo DEVANAGARI LETTER DA 0927 ; OtherLetter # Lo DEVANAGARI LETTER DHA 0928 ; OtherLetter # Lo DEVANAGARI LETTER NA 0929 ; OtherLetter # Lo DEVANAGARI LETTER NNNA 092A ; OtherLetter # Lo DEVANAGARI LETTER PA 092B ; OtherLetter # Lo DEVANAGARI LETTER PHA 092C ; OtherLetter # Lo DEVANAGARI LETTER BA 092D ; OtherLetter # Lo DEVANAGARI LETTER BHA 092E ; OtherLetter # Lo DEVANAGARI LETTER MA 092F ; OtherLetter # Lo DEVANAGARI LETTER YA 0930 ; OtherLetter # Lo DEVANAGARI LETTER RA 0931 ; OtherLetter # Lo DEVANAGARI LETTER RRA 0932 ; OtherLetter # Lo DEVANAGARI LETTER LA 0933 ; OtherLetter # Lo DEVANAGARI LETTER LLA 0934 ; OtherLetter # Lo DEVANAGARI LETTER LLLA 0935 ; OtherLetter # Lo DEVANAGARI LETTER VA 0936 ; OtherLetter # Lo DEVANAGARI LETTER SHA 0937 ; OtherLetter # Lo DEVANAGARI LETTER SSA 0938 ; OtherLetter # Lo DEVANAGARI LETTER SA 0939 ; OtherLetter # Lo DEVANAGARI LETTER HA 093D ; OtherLetter # Lo DEVANAGARI SIGN AVAGRAHA 094D ; Virama # Mn DEVANAGARI SIGN VIRAMA 0950 ; OtherLetter # Lo DEVANAGARI OM 0958 ; OtherLetter # Lo DEVANAGARI LETTER QA 0959 ; OtherLetter # Lo DEVANAGARI LETTER KHHA 095A ; OtherLetter # Lo DEVANAGARI LETTER GHHA 095B ; OtherLetter # Lo DEVANAGARI LETTER ZA 095C ; OtherLetter # Lo DEVANAGARI LETTER DDDHA 095D ; OtherLetter # Lo DEVANAGARI LETTER RHA 095E ; OtherLetter # Lo DEVANAGARI LETTER FA 095F ; OtherLetter # Lo DEVANAGARI LETTER YYA 0960 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC RR 0961 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC LL 0971 ; OtherLetter # Lm DEVANAGARI SIGN HIGH SPACING DOT 0972 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA A 0973 ; OtherLetter # Lo DEVANAGARI LETTER OE 0974 ; OtherLetter # Lo DEVANAGARI LETTER OOE 0975 ; OtherLetter # Lo DEVANAGARI LETTER AW 0976 ; OtherLetter # Lo DEVANAGARI LETTER UE 0977 ; OtherLetter # Lo DEVANAGARI LETTER UUE 0979 ; OtherLetter # Lo DEVANAGARI LETTER ZHA 097A ; OtherLetter # Lo DEVANAGARI LETTER HEAVY YA 097B ; OtherLetter # Lo DEVANAGARI LETTER GGA 097C ; OtherLetter # Lo DEVANAGARI LETTER JJA 097D ; OtherLetter # Lo DEVANAGARI LETTER GLOTTAL STOP 097E ; OtherLetter # Lo DEVANAGARI LETTER DDDA 097F ; OtherLetter # Lo DEVANAGARI LETTER BBA 0985 ; OtherLetter # Lo BENGALI LETTER A 0986 ; OtherLetter # Lo BENGALI LETTER AA 0987 ; OtherLetter # Lo BENGALI LETTER I 0988 ; OtherLetter # Lo BENGALI LETTER II 0989 ; OtherLetter # Lo BENGALI LETTER U 098A ; OtherLetter # Lo BENGALI LETTER UU 098B ; OtherLetter # Lo BENGALI LETTER VOCALIC R 098C ; OtherLetter # Lo BENGALI LETTER VOCALIC L 098F ; OtherLetter # Lo BENGALI LETTER E 0990 ; OtherLetter # Lo BENGALI LETTER AI 0993 ; OtherLetter # Lo BENGALI LETTER O 0994 ; OtherLetter # Lo BENGALI LETTER AU 0995 ; OtherLetter # Lo BENGALI LETTER KA 0996 ; OtherLetter # Lo BENGALI LETTER KHA 0997 ; OtherLetter # Lo BENGALI LETTER GA 0998 ; OtherLetter # Lo BENGALI LETTER GHA 0999 ; OtherLetter # Lo BENGALI LETTER NGA 099A ; OtherLetter # Lo BENGALI LETTER CA 099B ; OtherLetter # Lo BENGALI LETTER CHA 099C ; OtherLetter # Lo BENGALI LETTER JA 099D ; OtherLetter # Lo BENGALI LETTER JHA 099E ; OtherLetter # Lo BENGALI LETTER NYA 099F ; OtherLetter # Lo BENGALI LETTER TTA 09A0 ; OtherLetter # Lo BENGALI LETTER TTHA 09A1 ; OtherLetter # Lo BENGALI LETTER DDA 09A2 ; OtherLetter # Lo BENGALI LETTER DDHA 09A3 ; OtherLetter # Lo BENGALI LETTER NNA 09A4 ; OtherLetter # Lo BENGALI LETTER TA 09A5 ; OtherLetter # Lo BENGALI LETTER THA 09A6 ; OtherLetter # Lo BENGALI LETTER DA 09A7 ; OtherLetter # Lo BENGALI LETTER DHA 09A8 ; OtherLetter # Lo BENGALI LETTER NA 09AA ; OtherLetter # Lo BENGALI LETTER PA 09AB ; OtherLetter # Lo BENGALI LETTER PHA 09AC ; OtherLetter # Lo BENGALI LETTER BA 09AD ; OtherLetter # Lo BENGALI LETTER BHA 09AE ; OtherLetter # Lo BENGALI LETTER MA 09AF ; OtherLetter # Lo BENGALI LETTER YA 09B0 ; OtherLetter # Lo BENGALI LETTER RA 09B2 ; OtherLetter # Lo BENGALI LETTER LA 09B6 ; OtherLetter # Lo BENGALI LETTER SHA 09B7 ; OtherLetter # Lo BENGALI LETTER SSA 09B8 ; OtherLetter # Lo BENGALI LETTER SA 09B9 ; OtherLetter # Lo BENGALI LETTER HA 09BD ; OtherLetter # Lo BENGALI SIGN AVAGRAHA 09CD ; Virama # Mn BENGALI SIGN VIRAMA 09CE ; OtherLetter # Lo BENGALI LETTER KHANDA TA 09DC ; OtherLetter # Lo BENGALI LETTER RRA 09DD ; OtherLetter # Lo BENGALI LETTER RHA 09DF ; OtherLetter # Lo BENGALI LETTER YYA 09E0 ; OtherLetter # Lo BENGALI LETTER VOCALIC RR 09E1 ; OtherLetter # Lo BENGALI LETTER VOCALIC LL 09F0 ; OtherLetter # Lo BENGALI LETTER RA WITH MIDDLE DIAGONAL 09F1 ; OtherLetter # Lo BENGALI LETTER RA WITH LOWER DIAGONAL 0A05 ; OtherLetter # Lo GURMUKHI LETTER A 0A06 ; OtherLetter # Lo GURMUKHI LETTER AA 0A07 ; OtherLetter # Lo GURMUKHI LETTER I 0A08 ; OtherLetter # Lo GURMUKHI LETTER II 0A09 ; OtherLetter # Lo GURMUKHI LETTER U 0A0A ; OtherLetter # Lo GURMUKHI LETTER UU 0A0F ; OtherLetter # Lo GURMUKHI LETTER EE 0A10 ; OtherLetter # Lo GURMUKHI LETTER AI 0A13 ; OtherLetter # Lo GURMUKHI LETTER OO 0A14 ; OtherLetter # Lo GURMUKHI LETTER AU 0A15 ; OtherLetter # Lo GURMUKHI LETTER KA 0A16 ; OtherLetter # Lo GURMUKHI LETTER KHA 0A17 ; OtherLetter # Lo GURMUKHI LETTER GA 0A18 ; OtherLetter # Lo GURMUKHI LETTER GHA 0A19 ; OtherLetter # Lo GURMUKHI LETTER NGA 0A1A ; OtherLetter # Lo GURMUKHI LETTER CA 0A1B ; OtherLetter # Lo GURMUKHI LETTER CHA 0A1C ; OtherLetter # Lo GURMUKHI LETTER JA 0A1D ; OtherLetter # Lo GURMUKHI LETTER JHA 0A1E ; OtherLetter # Lo GURMUKHI LETTER NYA 0A1F ; OtherLetter # Lo GURMUKHI LETTER TTA 0A20 ; OtherLetter # Lo GURMUKHI LETTER TTHA 0A21 ; OtherLetter # Lo GURMUKHI LETTER DDA 0A22 ; OtherLetter # Lo GURMUKHI LETTER DDHA 0A23 ; OtherLetter # Lo GURMUKHI LETTER NNA 0A24 ; OtherLetter # Lo GURMUKHI LETTER TA 0A25 ; OtherLetter # Lo GURMUKHI LETTER THA 0A26 ; OtherLetter # Lo GURMUKHI LETTER DA 0A27 ; OtherLetter # Lo GURMUKHI LETTER DHA 0A28 ; OtherLetter # Lo GURMUKHI LETTER NA 0A2A ; OtherLetter # Lo GURMUKHI LETTER PA 0A2B ; OtherLetter # Lo GURMUKHI LETTER PHA 0A2C ; OtherLetter # Lo GURMUKHI LETTER BA 0A2D ; OtherLetter # Lo GURMUKHI LETTER BHA 0A2E ; OtherLetter # Lo GURMUKHI LETTER MA 0A2F ; OtherLetter # Lo GURMUKHI LETTER YA 0A30 ; OtherLetter # Lo GURMUKHI LETTER RA 0A32 ; OtherLetter # Lo GURMUKHI LETTER LA 0A33 ; OtherLetter # Lo GURMUKHI LETTER LLA 0A35 ; OtherLetter # Lo GURMUKHI LETTER VA 0A36 ; OtherLetter # Lo GURMUKHI LETTER SHA 0A38 ; OtherLetter # Lo GURMUKHI LETTER SA 0A39 ; OtherLetter # Lo GURMUKHI LETTER HA 0A4D ; Virama # Mn GURMUKHI SIGN VIRAMA 0A59 ; OtherLetter # Lo GURMUKHI LETTER KHHA 0A5A ; OtherLetter # Lo GURMUKHI LETTER GHHA 0A5B ; OtherLetter # Lo GURMUKHI LETTER ZA 0A5C ; OtherLetter # Lo GURMUKHI LETTER RRA 0A5E ; OtherLetter # Lo GURMUKHI LETTER FA 0A72 ; OtherLetter # Lo GURMUKHI IRI 0A73 ; OtherLetter # Lo GURMUKHI URA 0A74 ; OtherLetter # Lo GURMUKHI EK ONKAR 0A85 ; OtherLetter # Lo GUJARATI LETTER A 0A86 ; OtherLetter # Lo GUJARATI LETTER AA 0A87 ; OtherLetter # Lo GUJARATI LETTER I 0A88 ; OtherLetter # Lo GUJARATI LETTER II 0A89 ; OtherLetter # Lo GUJARATI LETTER U 0A8A ; OtherLetter # Lo GUJARATI LETTER UU 0A8B ; OtherLetter # Lo GUJARATI LETTER VOCALIC R 0A8C ; OtherLetter # Lo GUJARATI LETTER VOCALIC L 0A8D ; OtherLetter # Lo GUJARATI VOWEL CANDRA E 0A8F ; OtherLetter # Lo GUJARATI LETTER E 0A90 ; OtherLetter # Lo GUJARATI LETTER AI 0A91 ; OtherLetter # Lo GUJARATI VOWEL CANDRA O 0A93 ; OtherLetter # Lo GUJARATI LETTER O 0A94 ; OtherLetter # Lo GUJARATI LETTER AU 0A95 ; OtherLetter # Lo GUJARATI LETTER KA 0A96 ; OtherLetter # Lo GUJARATI LETTER KHA 0A97 ; OtherLetter # Lo GUJARATI LETTER GA 0A98 ; OtherLetter # Lo GUJARATI LETTER GHA 0A99 ; OtherLetter # Lo GUJARATI LETTER NGA 0A9A ; OtherLetter # Lo GUJARATI LETTER CA 0A9B ; OtherLetter # Lo GUJARATI LETTER CHA 0A9C ; OtherLetter # Lo GUJARATI LETTER JA 0A9D ; OtherLetter # Lo GUJARATI LETTER JHA 0A9E ; OtherLetter # Lo GUJARATI LETTER NYA 0A9F ; OtherLetter # Lo GUJARATI LETTER TTA 0AA0 ; OtherLetter # Lo GUJARATI LETTER TTHA 0AA1 ; OtherLetter # Lo GUJARATI LETTER DDA 0AA2 ; OtherLetter # Lo GUJARATI LETTER DDHA 0AA3 ; OtherLetter # Lo GUJARATI LETTER NNA 0AA4 ; OtherLetter # Lo GUJARATI LETTER TA 0AA5 ; OtherLetter # Lo GUJARATI LETTER THA 0AA6 ; OtherLetter # Lo GUJARATI LETTER DA 0AA7 ; OtherLetter # Lo GUJARATI LETTER DHA 0AA8 ; OtherLetter # Lo GUJARATI LETTER NA 0AAA ; OtherLetter # Lo GUJARATI LETTER PA 0AAB ; OtherLetter # Lo GUJARATI LETTER PHA 0AAC ; OtherLetter # Lo GUJARATI LETTER BA 0AAD ; OtherLetter # Lo GUJARATI LETTER BHA 0AAE ; OtherLetter # Lo GUJARATI LETTER MA 0AAF ; OtherLetter # Lo GUJARATI LETTER YA 0AB0 ; OtherLetter # Lo GUJARATI LETTER RA 0AB2 ; OtherLetter # Lo GUJARATI LETTER LA 0AB3 ; OtherLetter # Lo GUJARATI LETTER LLA 0AB5 ; OtherLetter # Lo GUJARATI LETTER VA 0AB6 ; OtherLetter # Lo GUJARATI LETTER SHA 0AB7 ; OtherLetter # Lo GUJARATI LETTER SSA 0AB8 ; OtherLetter # Lo GUJARATI LETTER SA 0AB9 ; OtherLetter # Lo GUJARATI LETTER HA 0ABD ; OtherLetter # Lo GUJARATI SIGN AVAGRAHA 0ACD ; Virama # Mn GUJARATI SIGN VIRAMA 0AD0 ; OtherLetter # Lo GUJARATI OM 0AE0 ; OtherLetter # Lo GUJARATI LETTER VOCALIC RR 0AE1 ; OtherLetter # Lo GUJARATI LETTER VOCALIC LL 0B05 ; OtherLetter # Lo ORIYA LETTER A 0B06 ; OtherLetter # Lo ORIYA LETTER AA 0B07 ; OtherLetter # Lo ORIYA LETTER I 0B08 ; OtherLetter # Lo ORIYA LETTER II 0B09 ; OtherLetter # Lo ORIYA LETTER U 0B0A ; OtherLetter # Lo ORIYA LETTER UU 0B0B ; OtherLetter # Lo ORIYA LETTER VOCALIC R 0B0C ; OtherLetter # Lo ORIYA LETTER VOCALIC L 0B0F ; OtherLetter # Lo ORIYA LETTER E 0B10 ; OtherLetter # Lo ORIYA LETTER AI 0B13 ; OtherLetter # Lo ORIYA LETTER O 0B14 ; OtherLetter # Lo ORIYA LETTER AU 0B15 ; OtherLetter # Lo ORIYA LETTER KA 0B16 ; OtherLetter # Lo ORIYA LETTER KHA 0B17 ; OtherLetter # Lo ORIYA LETTER GA 0B18 ; OtherLetter # Lo ORIYA LETTER GHA 0B19 ; OtherLetter # Lo ORIYA LETTER NGA 0B1A ; OtherLetter # Lo ORIYA LETTER CA 0B1B ; OtherLetter # Lo ORIYA LETTER CHA 0B1C ; OtherLetter # Lo ORIYA LETTER JA 0B1D ; OtherLetter # Lo ORIYA LETTER JHA 0B1E ; OtherLetter # Lo ORIYA LETTER NYA 0B1F ; OtherLetter # Lo ORIYA LETTER TTA 0B20 ; OtherLetter # Lo ORIYA LETTER TTHA 0B21 ; OtherLetter # Lo ORIYA LETTER DDA 0B22 ; OtherLetter # Lo ORIYA LETTER DDHA 0B23 ; OtherLetter # Lo ORIYA LETTER NNA 0B24 ; OtherLetter # Lo ORIYA LETTER TA 0B25 ; OtherLetter # Lo ORIYA LETTER THA 0B26 ; OtherLetter # Lo ORIYA LETTER DA 0B27 ; OtherLetter # Lo ORIYA LETTER DHA 0B28 ; OtherLetter # Lo ORIYA LETTER NA 0B2A ; OtherLetter # Lo ORIYA LETTER PA 0B2B ; OtherLetter # Lo ORIYA LETTER PHA 0B2C ; OtherLetter # Lo ORIYA LETTER BA 0B2D ; OtherLetter # Lo ORIYA LETTER BHA 0B2E ; OtherLetter # Lo ORIYA LETTER MA 0B2F ; OtherLetter # Lo ORIYA LETTER YA 0B30 ; OtherLetter # Lo ORIYA LETTER RA 0B32 ; OtherLetter # Lo ORIYA LETTER LA 0B33 ; OtherLetter # Lo ORIYA LETTER LLA 0B35 ; OtherLetter # Lo ORIYA LETTER VA 0B36 ; OtherLetter # Lo ORIYA LETTER SHA 0B37 ; OtherLetter # Lo ORIYA LETTER SSA 0B38 ; OtherLetter # Lo ORIYA LETTER SA 0B39 ; OtherLetter # Lo ORIYA LETTER HA 0B3D ; OtherLetter # Lo ORIYA SIGN AVAGRAHA 0B4D ; Virama # Mn ORIYA SIGN VIRAMA 0B5C ; OtherLetter # Lo ORIYA LETTER RRA 0B5D ; OtherLetter # Lo ORIYA LETTER RHA 0B5F ; OtherLetter # Lo ORIYA LETTER YYA 0B60 ; OtherLetter # Lo ORIYA LETTER VOCALIC RR 0B61 ; OtherLetter # Lo ORIYA LETTER VOCALIC LL 0B71 ; OtherLetter # Lo ORIYA LETTER WA 0B83 ; OtherLetter # Lo TAMIL SIGN VISARGA 0B85 ; OtherLetter # Lo TAMIL LETTER A 0B86 ; OtherLetter # Lo TAMIL LETTER AA 0B87 ; OtherLetter # Lo TAMIL LETTER I 0B88 ; OtherLetter # Lo TAMIL LETTER II 0B89 ; OtherLetter # Lo TAMIL LETTER U 0B8A ; OtherLetter # Lo TAMIL LETTER UU 0B8E ; OtherLetter # Lo TAMIL LETTER E 0B8F ; OtherLetter # Lo TAMIL LETTER EE 0B90 ; OtherLetter # Lo TAMIL LETTER AI 0B92 ; OtherLetter # Lo TAMIL LETTER O 0B93 ; OtherLetter # Lo TAMIL LETTER OO 0B94 ; OtherLetter # Lo TAMIL LETTER AU 0B95 ; OtherLetter # Lo TAMIL LETTER KA 0B99 ; OtherLetter # Lo TAMIL LETTER NGA 0B9A ; OtherLetter # Lo TAMIL LETTER CA 0B9C ; OtherLetter # Lo TAMIL LETTER JA 0B9E ; OtherLetter # Lo TAMIL LETTER NYA 0B9F ; OtherLetter # Lo TAMIL LETTER TTA 0BA3 ; OtherLetter # Lo TAMIL LETTER NNA 0BA4 ; OtherLetter # Lo TAMIL LETTER TA 0BA8 ; OtherLetter # Lo TAMIL LETTER NA 0BA9 ; OtherLetter # Lo TAMIL LETTER NNNA 0BAA ; OtherLetter # Lo TAMIL LETTER PA 0BAE ; OtherLetter # Lo TAMIL LETTER MA 0BAF ; OtherLetter # Lo TAMIL LETTER YA 0BB0 ; OtherLetter # Lo TAMIL LETTER RA 0BB1 ; OtherLetter # Lo TAMIL LETTER RRA 0BB2 ; OtherLetter # Lo TAMIL LETTER LA 0BB3 ; OtherLetter # Lo TAMIL LETTER LLA 0BB4 ; OtherLetter # Lo TAMIL LETTER LLLA 0BB5 ; OtherLetter # Lo TAMIL LETTER VA 0BB6 ; OtherLetter # Lo TAMIL LETTER SHA 0BB7 ; OtherLetter # Lo TAMIL LETTER SSA 0BB8 ; OtherLetter # Lo TAMIL LETTER SA 0BB9 ; OtherLetter # Lo TAMIL LETTER HA 0BCD ; Virama # Mn TAMIL SIGN VIRAMA 0BD0 ; OtherLetter # Lo TAMIL OM 0C05 ; OtherLetter # Lo TELUGU LETTER A 0C06 ; OtherLetter # Lo TELUGU LETTER AA 0C07 ; OtherLetter # Lo TELUGU LETTER I 0C08 ; OtherLetter # Lo TELUGU LETTER II 0C09 ; OtherLetter # Lo TELUGU LETTER U 0C0A ; OtherLetter # Lo TELUGU LETTER UU 0C0B ; OtherLetter # Lo TELUGU LETTER VOCALIC R 0C0C ; OtherLetter # Lo TELUGU LETTER VOCALIC L 0C0E ; OtherLetter # Lo TELUGU LETTER E 0C0F ; OtherLetter # Lo TELUGU LETTER EE 0C10 ; OtherLetter # Lo TELUGU LETTER AI 0C12 ; OtherLetter # Lo TELUGU LETTER O 0C13 ; OtherLetter # Lo TELUGU LETTER OO 0C14 ; OtherLetter # Lo TELUGU LETTER AU 0C15 ; OtherLetter # Lo TELUGU LETTER KA 0C16 ; OtherLetter # Lo TELUGU LETTER KHA 0C17 ; OtherLetter # Lo TELUGU LETTER GA 0C18 ; OtherLetter # Lo TELUGU LETTER GHA 0C19 ; OtherLetter # Lo TELUGU LETTER NGA 0C1A ; OtherLetter # Lo TELUGU LETTER CA 0C1B ; OtherLetter # Lo TELUGU LETTER CHA 0C1C ; OtherLetter # Lo TELUGU LETTER JA 0C1D ; OtherLetter # Lo TELUGU LETTER JHA 0C1E ; OtherLetter # Lo TELUGU LETTER NYA 0C1F ; OtherLetter # Lo TELUGU LETTER TTA 0C20 ; OtherLetter # Lo TELUGU LETTER TTHA 0C21 ; OtherLetter # Lo TELUGU LETTER DDA 0C22 ; OtherLetter # Lo TELUGU LETTER DDHA 0C23 ; OtherLetter # Lo TELUGU LETTER NNA 0C24 ; OtherLetter # Lo TELUGU LETTER TA 0C25 ; OtherLetter # Lo TELUGU LETTER THA 0C26 ; OtherLetter # Lo TELUGU LETTER DA 0C27 ; OtherLetter # Lo TELUGU LETTER DHA 0C28 ; OtherLetter # Lo TELUGU LETTER NA 0C2A ; OtherLetter # Lo TELUGU LETTER PA 0C2B ; OtherLetter # Lo TELUGU LETTER PHA 0C2C ; OtherLetter # Lo TELUGU LETTER BA 0C2D ; OtherLetter # Lo TELUGU LETTER BHA 0C2E ; OtherLetter # Lo TELUGU LETTER MA 0C2F ; OtherLetter # Lo TELUGU LETTER YA 0C30 ; OtherLetter # Lo TELUGU LETTER RA 0C31 ; OtherLetter # Lo TELUGU LETTER RRA 0C32 ; OtherLetter # Lo TELUGU LETTER LA 0C33 ; OtherLetter # Lo TELUGU LETTER LLA 0C35 ; OtherLetter # Lo TELUGU LETTER VA 0C36 ; OtherLetter # Lo TELUGU LETTER SHA 0C37 ; OtherLetter # Lo TELUGU LETTER SSA 0C38 ; OtherLetter # Lo TELUGU LETTER SA 0C39 ; OtherLetter # Lo TELUGU LETTER HA 0C3D ; OtherLetter # Lo TELUGU SIGN AVAGRAHA 0C4D ; Virama # Mn TELUGU SIGN VIRAMA 0C58 ; OtherLetter # Lo TELUGU LETTER TSA 0C59 ; OtherLetter # Lo TELUGU LETTER DZA 0C60 ; OtherLetter # Lo TELUGU LETTER VOCALIC RR 0C61 ; OtherLetter # Lo TELUGU LETTER VOCALIC LL 0C85 ; OtherLetter # Lo KANNADA LETTER A 0C86 ; OtherLetter # Lo KANNADA LETTER AA 0C87 ; OtherLetter # Lo KANNADA LETTER I 0C88 ; OtherLetter # Lo KANNADA LETTER II 0C89 ; OtherLetter # Lo KANNADA LETTER U 0C8A ; OtherLetter # Lo KANNADA LETTER UU 0C8B ; OtherLetter # Lo KANNADA LETTER VOCALIC R 0C8C ; OtherLetter # Lo KANNADA LETTER VOCALIC L 0C8E ; OtherLetter # Lo KANNADA LETTER E 0C8F ; OtherLetter # Lo KANNADA LETTER EE 0C90 ; OtherLetter # Lo KANNADA LETTER AI 0C92 ; OtherLetter # Lo KANNADA LETTER O 0C93 ; OtherLetter # Lo KANNADA LETTER OO 0C94 ; OtherLetter # Lo KANNADA LETTER AU 0C95 ; OtherLetter # Lo KANNADA LETTER KA 0C96 ; OtherLetter # Lo KANNADA LETTER KHA 0C97 ; OtherLetter # Lo KANNADA LETTER GA 0C98 ; OtherLetter # Lo KANNADA LETTER GHA 0C99 ; OtherLetter # Lo KANNADA LETTER NGA 0C9A ; OtherLetter # Lo KANNADA LETTER CA 0C9B ; OtherLetter # Lo KANNADA LETTER CHA 0C9C ; OtherLetter # Lo KANNADA LETTER JA 0C9D ; OtherLetter # Lo KANNADA LETTER JHA 0C9E ; OtherLetter # Lo KANNADA LETTER NYA 0C9F ; OtherLetter # Lo KANNADA LETTER TTA 0CA0 ; OtherLetter # Lo KANNADA LETTER TTHA 0CA1 ; OtherLetter # Lo KANNADA LETTER DDA 0CA2 ; OtherLetter # Lo KANNADA LETTER DDHA 0CA3 ; OtherLetter # Lo KANNADA LETTER NNA 0CA4 ; OtherLetter # Lo KANNADA LETTER TA 0CA5 ; OtherLetter # Lo KANNADA LETTER THA 0CA6 ; OtherLetter # Lo KANNADA LETTER DA 0CA7 ; OtherLetter # Lo KANNADA LETTER DHA 0CA8 ; OtherLetter # Lo KANNADA LETTER NA 0CAA ; OtherLetter # Lo KANNADA LETTER PA 0CAB ; OtherLetter # Lo KANNADA LETTER PHA 0CAC ; OtherLetter # Lo KANNADA LETTER BA 0CAD ; OtherLetter # Lo KANNADA LETTER BHA 0CAE ; OtherLetter # Lo KANNADA LETTER MA 0CAF ; OtherLetter # Lo KANNADA LETTER YA 0CB0 ; OtherLetter # Lo KANNADA LETTER RA 0CB1 ; OtherLetter # Lo KANNADA LETTER RRA 0CB2 ; OtherLetter # Lo KANNADA LETTER LA 0CB3 ; OtherLetter # Lo KANNADA LETTER LLA 0CB5 ; OtherLetter # Lo KANNADA LETTER VA 0CB6 ; OtherLetter # Lo KANNADA LETTER SHA 0CB7 ; OtherLetter # Lo KANNADA LETTER SSA 0CB8 ; OtherLetter # Lo KANNADA LETTER SA 0CB9 ; OtherLetter # Lo KANNADA LETTER HA 0CBD ; OtherLetter # Lo KANNADA SIGN AVAGRAHA 0CCD ; Virama # Mn KANNADA SIGN VIRAMA 0CDE ; OtherLetter # Lo KANNADA LETTER FA 0CE0 ; OtherLetter # Lo KANNADA LETTER VOCALIC RR 0CE1 ; OtherLetter # Lo KANNADA LETTER VOCALIC LL 0CF1 ; OtherLetter # Lo KANNADA SIGN JIHVAMULIYA 0CF2 ; OtherLetter # Lo KANNADA SIGN UPADHMANIYA 0D05 ; OtherLetter # Lo MALAYALAM LETTER A 0D06 ; OtherLetter # Lo MALAYALAM LETTER AA 0D07 ; OtherLetter # Lo MALAYALAM LETTER I 0D08 ; OtherLetter # Lo MALAYALAM LETTER II 0D09 ; OtherLetter # Lo MALAYALAM LETTER U 0D0A ; OtherLetter # Lo MALAYALAM LETTER UU 0D0B ; OtherLetter # Lo MALAYALAM LETTER VOCALIC R 0D0C ; OtherLetter # Lo MALAYALAM LETTER VOCALIC L 0D0E ; OtherLetter # Lo MALAYALAM LETTER E 0D0F ; OtherLetter # Lo MALAYALAM LETTER EE 0D10 ; OtherLetter # Lo MALAYALAM LETTER AI 0D12 ; OtherLetter # Lo MALAYALAM LETTER O 0D13 ; OtherLetter # Lo MALAYALAM LETTER OO 0D14 ; OtherLetter # Lo MALAYALAM LETTER AU 0D15 ; OtherLetter # Lo MALAYALAM LETTER KA 0D16 ; OtherLetter # Lo MALAYALAM LETTER KHA 0D17 ; OtherLetter # Lo MALAYALAM LETTER GA 0D18 ; OtherLetter # Lo MALAYALAM LETTER GHA 0D19 ; OtherLetter # Lo MALAYALAM LETTER NGA 0D1A ; OtherLetter # Lo MALAYALAM LETTER CA 0D1B ; OtherLetter # Lo MALAYALAM LETTER CHA 0D1C ; OtherLetter # Lo MALAYALAM LETTER JA 0D1D ; OtherLetter # Lo MALAYALAM LETTER JHA 0D1E ; OtherLetter # Lo MALAYALAM LETTER NYA 0D1F ; OtherLetter # Lo MALAYALAM LETTER TTA 0D20 ; OtherLetter # Lo MALAYALAM LETTER TTHA 0D21 ; OtherLetter # Lo MALAYALAM LETTER DDA 0D22 ; OtherLetter # Lo MALAYALAM LETTER DDHA 0D23 ; OtherLetter # Lo MALAYALAM LETTER NNA 0D24 ; OtherLetter # Lo MALAYALAM LETTER TA 0D25 ; OtherLetter # Lo MALAYALAM LETTER THA 0D26 ; OtherLetter # Lo MALAYALAM LETTER DA 0D27 ; OtherLetter # Lo MALAYALAM LETTER DHA 0D28 ; OtherLetter # Lo MALAYALAM LETTER NA 0D29 ; OtherLetter # Lo MALAYALAM LETTER NNNA 0D2A ; OtherLetter # Lo MALAYALAM LETTER PA 0D2B ; OtherLetter # Lo MALAYALAM LETTER PHA 0D2C ; OtherLetter # Lo MALAYALAM LETTER BA 0D2D ; OtherLetter # Lo MALAYALAM LETTER BHA 0D2E ; OtherLetter # Lo MALAYALAM LETTER MA 0D2F ; OtherLetter # Lo MALAYALAM LETTER YA 0D30 ; OtherLetter # Lo MALAYALAM LETTER RA 0D31 ; OtherLetter # Lo MALAYALAM LETTER RRA 0D32 ; OtherLetter # Lo MALAYALAM LETTER LA 0D33 ; OtherLetter # Lo MALAYALAM LETTER LLA 0D34 ; OtherLetter # Lo MALAYALAM LETTER LLLA 0D35 ; OtherLetter # Lo MALAYALAM LETTER VA 0D36 ; OtherLetter # Lo MALAYALAM LETTER SHA 0D37 ; OtherLetter # Lo MALAYALAM LETTER SSA 0D38 ; OtherLetter # Lo MALAYALAM LETTER SA 0D39 ; OtherLetter # Lo MALAYALAM LETTER HA 0D3A ; OtherLetter # Lo MALAYALAM LETTER TTTA 0D3D ; OtherLetter # Lo MALAYALAM SIGN AVAGRAHA 0D4D ; Virama # Mn MALAYALAM SIGN VIRAMA 0D4E ; OtherLetter # Lo MALAYALAM LETTER DOT REPH 0D60 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC RR 0D61 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC LL 0D7A ; OtherLetter # Lo MALAYALAM LETTER CHILLU NN 0D7B ; OtherLetter # Lo MALAYALAM LETTER CHILLU N 0D7C ; OtherLetter # Lo MALAYALAM LETTER CHILLU RR 0D7D ; OtherLetter # Lo MALAYALAM LETTER CHILLU L 0D7E ; OtherLetter # Lo MALAYALAM LETTER CHILLU LL 0D7F ; OtherLetter # Lo MALAYALAM LETTER CHILLU K 0D85 ; OtherLetter # Lo SINHALA LETTER AYANNA 0D86 ; OtherLetter # Lo SINHALA LETTER AAYANNA 0D87 ; OtherLetter # Lo SINHALA LETTER AEYANNA 0D88 ; OtherLetter # Lo SINHALA LETTER AEEYANNA 0D89 ; OtherLetter # Lo SINHALA LETTER IYANNA 0D8A ; OtherLetter # Lo SINHALA LETTER IIYANNA 0D8B ; OtherLetter # Lo SINHALA LETTER UYANNA 0D8C ; OtherLetter # Lo SINHALA LETTER UUYANNA 0D8D ; OtherLetter # Lo SINHALA LETTER IRUYANNA 0D8E ; OtherLetter # Lo SINHALA LETTER IRUUYANNA 0D8F ; OtherLetter # Lo SINHALA LETTER ILUYANNA 0D90 ; OtherLetter # Lo SINHALA LETTER ILUUYANNA 0D91 ; OtherLetter # Lo SINHALA LETTER EYANNA 0D92 ; OtherLetter # Lo SINHALA LETTER EEYANNA 0D93 ; OtherLetter # Lo SINHALA LETTER AIYANNA 0D94 ; OtherLetter # Lo SINHALA LETTER OYANNA 0D95 ; OtherLetter # Lo SINHALA LETTER OOYANNA 0D96 ; OtherLetter # Lo SINHALA LETTER AUYANNA 0D9A ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA KAYANNA 0D9B ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA KAYANNA 0D9C ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA GAYANNA 0D9D ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA GAYANNA 0D9E ; OtherLetter # Lo SINHALA LETTER KANTAJA NAASIKYAYA 0D9F ; OtherLetter # Lo SINHALA LETTER SANYAKA GAYANNA 0DA0 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA CAYANNA 0DA1 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA CAYANNA 0DA2 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA JAYANNA 0DA3 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA JAYANNA 0DA4 ; OtherLetter # Lo SINHALA LETTER TAALUJA NAASIKYAYA 0DA5 ; OtherLetter # Lo SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA 0DA6 ; OtherLetter # Lo SINHALA LETTER SANYAKA JAYANNA 0DA7 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TTAYANNA 0DA8 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TTAYANNA 0DA9 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DDAYANNA 0DAA ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DDAYANNA 0DAB ; OtherLetter # Lo SINHALA LETTER MUURDHAJA NAYANNA 0DAC ; OtherLetter # Lo SINHALA LETTER SANYAKA DDAYANNA 0DAD ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TAYANNA 0DAE ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TAYANNA 0DAF ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DAYANNA 0DB0 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DAYANNA 0DB1 ; OtherLetter # Lo SINHALA LETTER DANTAJA NAYANNA 0DB3 ; OtherLetter # Lo SINHALA LETTER SANYAKA DAYANNA 0DB4 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA PAYANNA 0DB5 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA PAYANNA 0DB6 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA BAYANNA 0DB7 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA BAYANNA 0DB8 ; OtherLetter # Lo SINHALA LETTER MAYANNA 0DB9 ; OtherLetter # Lo SINHALA LETTER AMBA BAYANNA 0DBA ; OtherLetter # Lo SINHALA LETTER YAYANNA 0DBB ; OtherLetter # Lo SINHALA LETTER RAYANNA 0DBD ; OtherLetter # Lo SINHALA LETTER DANTAJA LAYANNA 0DC0 ; OtherLetter # Lo SINHALA LETTER VAYANNA 0DC1 ; OtherLetter # Lo SINHALA LETTER TAALUJA SAYANNA 0DC2 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA SAYANNA 0DC3 ; OtherLetter # Lo SINHALA LETTER DANTAJA SAYANNA 0DC4 ; OtherLetter # Lo SINHALA LETTER HAYANNA 0DC5 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA LAYANNA 0DC6 ; OtherLetter # Lo SINHALA LETTER FAYANNA 0DCA ; Virama # Mn SINHALA SIGN AL-LAKUNA 0E01 ; OtherLetter # Lo THAI CHARACTER KO KAI 0E02 ; OtherLetter # Lo THAI CHARACTER KHO KHAI 0E03 ; OtherLetter # Lo THAI CHARACTER KHO KHUAT 0E04 ; OtherLetter # Lo THAI CHARACTER KHO KHWAI 0E05 ; OtherLetter # Lo THAI CHARACTER KHO KHON 0E06 ; OtherLetter # Lo THAI CHARACTER KHO RAKHANG 0E07 ; OtherLetter # Lo THAI CHARACTER NGO NGU 0E08 ; OtherLetter # Lo THAI CHARACTER CHO CHAN 0E09 ; OtherLetter # Lo THAI CHARACTER CHO CHING 0E0A ; OtherLetter # Lo THAI CHARACTER CHO CHANG 0E0B ; OtherLetter # Lo THAI CHARACTER SO SO 0E0C ; OtherLetter # Lo THAI CHARACTER CHO CHOE 0E0D ; OtherLetter # Lo THAI CHARACTER YO YING 0E0E ; OtherLetter # Lo THAI CHARACTER DO CHADA 0E0F ; OtherLetter # Lo THAI CHARACTER TO PATAK 0E10 ; OtherLetter # Lo THAI CHARACTER THO THAN 0E11 ; OtherLetter # Lo THAI CHARACTER THO NANGMONTHO 0E12 ; OtherLetter # Lo THAI CHARACTER THO PHUTHAO 0E13 ; OtherLetter # Lo THAI CHARACTER NO NEN 0E14 ; OtherLetter # Lo THAI CHARACTER DO DEK 0E15 ; OtherLetter # Lo THAI CHARACTER TO TAO 0E16 ; OtherLetter # Lo THAI CHARACTER THO THUNG 0E17 ; OtherLetter # Lo THAI CHARACTER THO THAHAN 0E18 ; OtherLetter # Lo THAI CHARACTER THO THONG 0E19 ; OtherLetter # Lo THAI CHARACTER NO NU 0E1A ; OtherLetter # Lo THAI CHARACTER BO BAIMAI 0E1B ; OtherLetter # Lo THAI CHARACTER PO PLA 0E1C ; OtherLetter # Lo THAI CHARACTER PHO PHUNG 0E1D ; OtherLetter # Lo THAI CHARACTER FO FA 0E1E ; OtherLetter # Lo THAI CHARACTER PHO PHAN 0E1F ; OtherLetter # Lo THAI CHARACTER FO FAN 0E20 ; OtherLetter # Lo THAI CHARACTER PHO SAMPHAO 0E21 ; OtherLetter # Lo THAI CHARACTER MO MA 0E22 ; OtherLetter # Lo THAI CHARACTER YO YAK 0E23 ; OtherLetter # Lo THAI CHARACTER RO RUA 0E24 ; OtherLetter # Lo THAI CHARACTER RU 0E25 ; OtherLetter # Lo THAI CHARACTER LO LING 0E26 ; OtherLetter # Lo THAI CHARACTER LU 0E27 ; OtherLetter # Lo THAI CHARACTER WO WAEN 0E28 ; OtherLetter # Lo THAI CHARACTER SO SALA 0E29 ; OtherLetter # Lo THAI CHARACTER SO RUSI 0E2A ; OtherLetter # Lo THAI CHARACTER SO SUA 0E2B ; OtherLetter # Lo THAI CHARACTER HO HIP 0E2C ; OtherLetter # Lo THAI CHARACTER LO CHULA 0E2D ; OtherLetter # Lo THAI CHARACTER O ANG 0E2E ; OtherLetter # Lo THAI CHARACTER HO NOKHUK 0E2F ; OtherLetter # Lo THAI CHARACTER PAIYANNOI 0E30 ; OtherLetter # Lo THAI CHARACTER SARA A 0E32 ; OtherLetter # Lo THAI CHARACTER SARA AA 0E3A ; Virama # Mn THAI CHARACTER PHINTHU 0E40 ; OtherLetter # Lo THAI CHARACTER SARA E 0E41 ; OtherLetter # Lo THAI CHARACTER SARA AE 0E42 ; OtherLetter # Lo THAI CHARACTER SARA O 0E43 ; OtherLetter # Lo THAI CHARACTER SARA AI MAIMUAN 0E44 ; OtherLetter # Lo THAI CHARACTER SARA AI MAIMALAI 0E45 ; OtherLetter # Lo THAI CHARACTER LAKKHANGYAO 0E46 ; OtherLetter # Lm THAI CHARACTER MAIYAMOK 0F00 ; OtherLetter # Lo TIBETAN SYLLABLE OM 0F40 ; OtherLetter # Lo TIBETAN LETTER KA 0F41 ; OtherLetter # Lo TIBETAN LETTER KHA 0F42 ; OtherLetter # Lo TIBETAN LETTER GA 0F43 ; OtherLetter # Lo TIBETAN LETTER GHA 0F44 ; OtherLetter # Lo TIBETAN LETTER NGA 0F45 ; OtherLetter # Lo TIBETAN LETTER CA 0F46 ; OtherLetter # Lo TIBETAN LETTER CHA 0F47 ; OtherLetter # Lo TIBETAN LETTER JA 0F49 ; OtherLetter # Lo TIBETAN LETTER NYA 0F4A ; OtherLetter # Lo TIBETAN LETTER TTA 0F4B ; OtherLetter # Lo TIBETAN LETTER TTHA 0F4C ; OtherLetter # Lo TIBETAN LETTER DDA 0F4D ; OtherLetter # Lo TIBETAN LETTER DDHA 0F4E ; OtherLetter # Lo TIBETAN LETTER NNA 0F4F ; OtherLetter # Lo TIBETAN LETTER TA 0F50 ; OtherLetter # Lo TIBETAN LETTER THA 0F51 ; OtherLetter # Lo TIBETAN LETTER DA 0F52 ; OtherLetter # Lo TIBETAN LETTER DHA 0F53 ; OtherLetter # Lo TIBETAN LETTER NA 0F54 ; OtherLetter # Lo TIBETAN LETTER PA 0F55 ; OtherLetter # Lo TIBETAN LETTER PHA 0F56 ; OtherLetter # Lo TIBETAN LETTER BA 0F57 ; OtherLetter # Lo TIBETAN LETTER BHA 0F58 ; OtherLetter # Lo TIBETAN LETTER MA 0F59 ; OtherLetter # Lo TIBETAN LETTER TSA 0F5A ; OtherLetter # Lo TIBETAN LETTER TSHA 0F5B ; OtherLetter # Lo TIBETAN LETTER DZA 0F5C ; OtherLetter # Lo TIBETAN LETTER DZHA 0F5D ; OtherLetter # Lo TIBETAN LETTER WA 0F5E ; OtherLetter # Lo TIBETAN LETTER ZHA 0F5F ; OtherLetter # Lo TIBETAN LETTER ZA 0F60 ; OtherLetter # Lo TIBETAN LETTER -A 0F61 ; OtherLetter # Lo TIBETAN LETTER YA 0F62 ; OtherLetter # Lo TIBETAN LETTER RA 0F63 ; OtherLetter # Lo TIBETAN LETTER LA 0F64 ; OtherLetter # Lo TIBETAN LETTER SHA 0F65 ; OtherLetter # Lo TIBETAN LETTER SSA 0F66 ; OtherLetter # Lo TIBETAN LETTER SA 0F67 ; OtherLetter # Lo TIBETAN LETTER HA 0F68 ; OtherLetter # Lo TIBETAN LETTER A 0F69 ; OtherLetter # Lo TIBETAN LETTER KSSA 0F6A ; OtherLetter # Lo TIBETAN LETTER FIXED-FORM RA 0F6B ; OtherLetter # Lo TIBETAN LETTER KKA 0F6C ; OtherLetter # Lo TIBETAN LETTER RRA 0F84 ; Virama # Mn TIBETAN MARK HALANTA 0F88 ; OtherLetter # Lo TIBETAN SIGN LCE TSA CAN 0F89 ; OtherLetter # Lo TIBETAN SIGN MCHU CAN 0F8A ; OtherLetter # Lo TIBETAN SIGN GRU CAN RGYINGS 0F8B ; OtherLetter # Lo TIBETAN SIGN GRU MED RGYINGS 0F8C ; OtherLetter # Lo TIBETAN SIGN INVERTED MCHU CAN 1000 ; OtherLetter # Lo MYANMAR LETTER KA 1001 ; OtherLetter # Lo MYANMAR LETTER KHA 1002 ; OtherLetter # Lo MYANMAR LETTER GA 1003 ; OtherLetter # Lo MYANMAR LETTER GHA 1004 ; OtherLetter # Lo MYANMAR LETTER NGA 1005 ; OtherLetter # Lo MYANMAR LETTER CA 1006 ; OtherLetter # Lo MYANMAR LETTER CHA 1007 ; OtherLetter # Lo MYANMAR LETTER JA 1008 ; OtherLetter # Lo MYANMAR LETTER JHA 1009 ; OtherLetter # Lo MYANMAR LETTER NYA 100A ; OtherLetter # Lo MYANMAR LETTER NNYA 100B ; OtherLetter # Lo MYANMAR LETTER TTA 100C ; OtherLetter # Lo MYANMAR LETTER TTHA 100D ; OtherLetter # Lo MYANMAR LETTER DDA 100E ; OtherLetter # Lo MYANMAR LETTER DDHA 100F ; OtherLetter # Lo MYANMAR LETTER NNA 1010 ; OtherLetter # Lo MYANMAR LETTER TA 1011 ; OtherLetter # Lo MYANMAR LETTER THA 1012 ; OtherLetter # Lo MYANMAR LETTER DA 1013 ; OtherLetter # Lo MYANMAR LETTER DHA 1014 ; OtherLetter # Lo MYANMAR LETTER NA 1015 ; OtherLetter # Lo MYANMAR LETTER PA 1016 ; OtherLetter # Lo MYANMAR LETTER PHA 1017 ; OtherLetter # Lo MYANMAR LETTER BA 1018 ; OtherLetter # Lo MYANMAR LETTER BHA 1019 ; OtherLetter # Lo MYANMAR LETTER MA 101A ; OtherLetter # Lo MYANMAR LETTER YA 101B ; OtherLetter # Lo MYANMAR LETTER RA 101C ; OtherLetter # Lo MYANMAR LETTER LA 101D ; OtherLetter # Lo MYANMAR LETTER WA 101E ; OtherLetter # Lo MYANMAR LETTER SA 101F ; OtherLetter # Lo MYANMAR LETTER HA 1020 ; OtherLetter # Lo MYANMAR LETTER LLA 1021 ; OtherLetter # Lo MYANMAR LETTER A 1022 ; OtherLetter # Lo MYANMAR LETTER SHAN A 1023 ; OtherLetter # Lo MYANMAR LETTER I 1024 ; OtherLetter # Lo MYANMAR LETTER II 1025 ; OtherLetter # Lo MYANMAR LETTER U 1026 ; OtherLetter # Lo MYANMAR LETTER UU 1027 ; OtherLetter # Lo MYANMAR LETTER E 1028 ; OtherLetter # Lo MYANMAR LETTER MON E 1029 ; OtherLetter # Lo MYANMAR LETTER O 102A ; OtherLetter # Lo MYANMAR LETTER AU 1039 ; Virama # Mn MYANMAR SIGN VIRAMA 103A ; Virama # Mn MYANMAR SIGN ASAT 103F ; OtherLetter # Lo MYANMAR LETTER GREAT SA 1050 ; OtherLetter # Lo MYANMAR LETTER SHA 1051 ; OtherLetter # Lo MYANMAR LETTER SSA 1052 ; OtherLetter # Lo MYANMAR LETTER VOCALIC R 1053 ; OtherLetter # Lo MYANMAR LETTER VOCALIC RR 1054 ; OtherLetter # Lo MYANMAR LETTER VOCALIC L 1055 ; OtherLetter # Lo MYANMAR LETTER VOCALIC LL 105A ; OtherLetter # Lo MYANMAR LETTER MON NGA 105B ; OtherLetter # Lo MYANMAR LETTER MON JHA 105C ; OtherLetter # Lo MYANMAR LETTER MON BBA 105D ; OtherLetter # Lo MYANMAR LETTER MON BBE 1061 ; OtherLetter # Lo MYANMAR LETTER SGAW KAREN SHA 1065 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN THA 1066 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN PWA 106E ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN NNA 106F ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN YWA 1070 ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN GHWA 1075 ; OtherLetter # Lo MYANMAR LETTER SHAN KA 1076 ; OtherLetter # Lo MYANMAR LETTER SHAN KHA 1077 ; OtherLetter # Lo MYANMAR LETTER SHAN GA 1078 ; OtherLetter # Lo MYANMAR LETTER SHAN CA 1079 ; OtherLetter # Lo MYANMAR LETTER SHAN ZA 107A ; OtherLetter # Lo MYANMAR LETTER SHAN NYA 107B ; OtherLetter # Lo MYANMAR LETTER SHAN DA 107C ; OtherLetter # Lo MYANMAR LETTER SHAN NA 107D ; OtherLetter # Lo MYANMAR LETTER SHAN PHA 107E ; OtherLetter # Lo MYANMAR LETTER SHAN FA 107F ; OtherLetter # Lo MYANMAR LETTER SHAN BA 1080 ; OtherLetter # Lo MYANMAR LETTER SHAN THA 1081 ; OtherLetter # Lo MYANMAR LETTER SHAN HA 108E ; OtherLetter # Lo MYANMAR LETTER RUMAI PALAUNG FA 1700 ; OtherLetter # Lo TAGALOG LETTER A 1701 ; OtherLetter # Lo TAGALOG LETTER I 1702 ; OtherLetter # Lo TAGALOG LETTER U 1703 ; OtherLetter # Lo TAGALOG LETTER KA 1704 ; OtherLetter # Lo TAGALOG LETTER GA 1705 ; OtherLetter # Lo TAGALOG LETTER NGA 1706 ; OtherLetter # Lo TAGALOG LETTER TA 1707 ; OtherLetter # Lo TAGALOG LETTER DA 1708 ; OtherLetter # Lo TAGALOG LETTER NA 1709 ; OtherLetter # Lo TAGALOG LETTER PA 170A ; OtherLetter # Lo TAGALOG LETTER BA 170B ; OtherLetter # Lo TAGALOG LETTER MA 170C ; OtherLetter # Lo TAGALOG LETTER YA 170E ; OtherLetter # Lo TAGALOG LETTER LA 170F ; OtherLetter # Lo TAGALOG LETTER WA 1710 ; OtherLetter # Lo TAGALOG LETTER SA 1711 ; OtherLetter # Lo TAGALOG LETTER HA 1714 ; Virama # Mn TAGALOG SIGN VIRAMA 1720 ; OtherLetter # Lo HANUNOO LETTER A 1721 ; OtherLetter # Lo HANUNOO LETTER I 1722 ; OtherLetter # Lo HANUNOO LETTER U 1723 ; OtherLetter # Lo HANUNOO LETTER KA 1724 ; OtherLetter # Lo HANUNOO LETTER GA 1725 ; OtherLetter # Lo HANUNOO LETTER NGA 1726 ; OtherLetter # Lo HANUNOO LETTER TA 1727 ; OtherLetter # Lo HANUNOO LETTER DA 1728 ; OtherLetter # Lo HANUNOO LETTER NA 1729 ; OtherLetter # Lo HANUNOO LETTER PA 172A ; OtherLetter # Lo HANUNOO LETTER BA 172B ; OtherLetter # Lo HANUNOO LETTER MA 172C ; OtherLetter # Lo HANUNOO LETTER YA 172D ; OtherLetter # Lo HANUNOO LETTER RA 172E ; OtherLetter # Lo HANUNOO LETTER LA 172F ; OtherLetter # Lo HANUNOO LETTER WA 1730 ; OtherLetter # Lo HANUNOO LETTER SA 1731 ; OtherLetter # Lo HANUNOO LETTER HA 1734 ; Virama # Mn HANUNOO SIGN PAMUDPOD 1780 ; OtherLetter # Lo KHMER LETTER KA 1781 ; OtherLetter # Lo KHMER LETTER KHA 1782 ; OtherLetter # Lo KHMER LETTER KO 1783 ; OtherLetter # Lo KHMER LETTER KHO 1784 ; OtherLetter # Lo KHMER LETTER NGO 1785 ; OtherLetter # Lo KHMER LETTER CA 1786 ; OtherLetter # Lo KHMER LETTER CHA 1787 ; OtherLetter # Lo KHMER LETTER CO 1788 ; OtherLetter # Lo KHMER LETTER CHO 1789 ; OtherLetter # Lo KHMER LETTER NYO 178A ; OtherLetter # Lo KHMER LETTER DA 178B ; OtherLetter # Lo KHMER LETTER TTHA 178C ; OtherLetter # Lo KHMER LETTER DO 178D ; OtherLetter # Lo KHMER LETTER TTHO 178E ; OtherLetter # Lo KHMER LETTER NNO 178F ; OtherLetter # Lo KHMER LETTER TA 1790 ; OtherLetter # Lo KHMER LETTER THA 1791 ; OtherLetter # Lo KHMER LETTER TO 1792 ; OtherLetter # Lo KHMER LETTER THO 1793 ; OtherLetter # Lo KHMER LETTER NO 1794 ; OtherLetter # Lo KHMER LETTER BA 1795 ; OtherLetter # Lo KHMER LETTER PHA 1796 ; OtherLetter # Lo KHMER LETTER PO 1797 ; OtherLetter # Lo KHMER LETTER PHO 1798 ; OtherLetter # Lo KHMER LETTER MO 1799 ; OtherLetter # Lo KHMER LETTER YO 179A ; OtherLetter # Lo KHMER LETTER RO 179B ; OtherLetter # Lo KHMER LETTER LO 179C ; OtherLetter # Lo KHMER LETTER VO 179D ; OtherLetter # Lo KHMER LETTER SHA 179E ; OtherLetter # Lo KHMER LETTER SSO 179F ; OtherLetter # Lo KHMER LETTER SA 17A0 ; OtherLetter # Lo KHMER LETTER HA 17A1 ; OtherLetter # Lo KHMER LETTER LA 17A2 ; OtherLetter # Lo KHMER LETTER QA 17A3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAQ 17A4 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAA 17A5 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QI 17A6 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QII 17A7 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QU 17A8 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUK 17A9 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUU 17AA ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUUV 17AB ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RY 17AC ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RYY 17AD ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LY 17AE ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LYY 17AF ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QE 17B0 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAI 17B1 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE ONE 17B2 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE TWO 17B3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAU 17D2 ; Virama # Mn KHMER SIGN COENG 17D7 ; OtherLetter # Lm KHMER SIGN LEK TOO 17DC ; OtherLetter # Lo KHMER SIGN AVAKRAHASANYA 1A20 ; OtherLetter # Lo TAI THAM LETTER HIGH KA 1A21 ; OtherLetter # Lo TAI THAM LETTER HIGH KHA 1A22 ; OtherLetter # Lo TAI THAM LETTER HIGH KXA 1A23 ; OtherLetter # Lo TAI THAM LETTER LOW KA 1A24 ; OtherLetter # Lo TAI THAM LETTER LOW KXA 1A25 ; OtherLetter # Lo TAI THAM LETTER LOW KHA 1A26 ; OtherLetter # Lo TAI THAM LETTER NGA 1A27 ; OtherLetter # Lo TAI THAM LETTER HIGH CA 1A28 ; OtherLetter # Lo TAI THAM LETTER HIGH CHA 1A29 ; OtherLetter # Lo TAI THAM LETTER LOW CA 1A2A ; OtherLetter # Lo TAI THAM LETTER LOW SA 1A2B ; OtherLetter # Lo TAI THAM LETTER LOW CHA 1A2C ; OtherLetter # Lo TAI THAM LETTER NYA 1A2D ; OtherLetter # Lo TAI THAM LETTER RATA 1A2E ; OtherLetter # Lo TAI THAM LETTER HIGH RATHA 1A2F ; OtherLetter # Lo TAI THAM LETTER DA 1A30 ; OtherLetter # Lo TAI THAM LETTER LOW RATHA 1A31 ; OtherLetter # Lo TAI THAM LETTER RANA 1A32 ; OtherLetter # Lo TAI THAM LETTER HIGH TA 1A33 ; OtherLetter # Lo TAI THAM LETTER HIGH THA 1A34 ; OtherLetter # Lo TAI THAM LETTER LOW TA 1A35 ; OtherLetter # Lo TAI THAM LETTER LOW THA 1A36 ; OtherLetter # Lo TAI THAM LETTER NA 1A37 ; OtherLetter # Lo TAI THAM LETTER BA 1A38 ; OtherLetter # Lo TAI THAM LETTER HIGH PA 1A39 ; OtherLetter # Lo TAI THAM LETTER HIGH PHA 1A3A ; OtherLetter # Lo TAI THAM LETTER HIGH FA 1A3B ; OtherLetter # Lo TAI THAM LETTER LOW PA 1A3C ; OtherLetter # Lo TAI THAM LETTER LOW FA 1A3D ; OtherLetter # Lo TAI THAM LETTER LOW PHA 1A3E ; OtherLetter # Lo TAI THAM LETTER MA 1A3F ; OtherLetter # Lo TAI THAM LETTER LOW YA 1A40 ; OtherLetter # Lo TAI THAM LETTER HIGH YA 1A41 ; OtherLetter # Lo TAI THAM LETTER RA 1A42 ; OtherLetter # Lo TAI THAM LETTER RUE 1A43 ; OtherLetter # Lo TAI THAM LETTER LA 1A44 ; OtherLetter # Lo TAI THAM LETTER LUE 1A45 ; OtherLetter # Lo TAI THAM LETTER WA 1A46 ; OtherLetter # Lo TAI THAM LETTER HIGH SHA 1A47 ; OtherLetter # Lo TAI THAM LETTER HIGH SSA 1A48 ; OtherLetter # Lo TAI THAM LETTER HIGH SA 1A49 ; OtherLetter # Lo TAI THAM LETTER HIGH HA 1A4A ; OtherLetter # Lo TAI THAM LETTER LLA 1A4B ; OtherLetter # Lo TAI THAM LETTER A 1A4C ; OtherLetter # Lo TAI THAM LETTER LOW HA 1A4D ; OtherLetter # Lo TAI THAM LETTER I 1A4E ; OtherLetter # Lo TAI THAM LETTER II 1A4F ; OtherLetter # Lo TAI THAM LETTER U 1A50 ; OtherLetter # Lo TAI THAM LETTER UU 1A51 ; OtherLetter # Lo TAI THAM LETTER EE 1A52 ; OtherLetter # Lo TAI THAM LETTER OO 1A53 ; OtherLetter # Lo TAI THAM LETTER LAE 1A54 ; OtherLetter # Lo TAI THAM LETTER GREAT SA 1A60 ; Virama # Mn TAI THAM SIGN SAKOT 1AA7 ; OtherLetter # Lm TAI THAM SIGN MAI YAMOK 1B05 ; OtherLetter # Lo BALINESE LETTER AKARA 1B06 ; OtherLetter # Lo BALINESE LETTER AKARA TEDUNG 1B07 ; OtherLetter # Lo BALINESE LETTER IKARA 1B08 ; OtherLetter # Lo BALINESE LETTER IKARA TEDUNG 1B09 ; OtherLetter # Lo BALINESE LETTER UKARA 1B0A ; OtherLetter # Lo BALINESE LETTER UKARA TEDUNG 1B0B ; OtherLetter # Lo BALINESE LETTER RA REPA 1B0C ; OtherLetter # Lo BALINESE LETTER RA REPA TEDUNG 1B0D ; OtherLetter # Lo BALINESE LETTER LA LENGA 1B0E ; OtherLetter # Lo BALINESE LETTER LA LENGA TEDUNG 1B0F ; OtherLetter # Lo BALINESE LETTER EKARA 1B10 ; OtherLetter # Lo BALINESE LETTER AIKARA 1B11 ; OtherLetter # Lo BALINESE LETTER OKARA 1B12 ; OtherLetter # Lo BALINESE LETTER OKARA TEDUNG 1B13 ; OtherLetter # Lo BALINESE LETTER KA 1B14 ; OtherLetter # Lo BALINESE LETTER KA MAHAPRANA 1B15 ; OtherLetter # Lo BALINESE LETTER GA 1B16 ; OtherLetter # Lo BALINESE LETTER GA GORA 1B17 ; OtherLetter # Lo BALINESE LETTER NGA 1B18 ; OtherLetter # Lo BALINESE LETTER CA 1B19 ; OtherLetter # Lo BALINESE LETTER CA LACA 1B1A ; OtherLetter # Lo BALINESE LETTER JA 1B1B ; OtherLetter # Lo BALINESE LETTER JA JERA 1B1C ; OtherLetter # Lo BALINESE LETTER NYA 1B1D ; OtherLetter # Lo BALINESE LETTER TA LATIK 1B1E ; OtherLetter # Lo BALINESE LETTER TA MURDA MAHAPRANA 1B1F ; OtherLetter # Lo BALINESE LETTER DA MURDA ALPAPRANA 1B20 ; OtherLetter # Lo BALINESE LETTER DA MURDA MAHAPRANA 1B21 ; OtherLetter # Lo BALINESE LETTER NA RAMBAT 1B22 ; OtherLetter # Lo BALINESE LETTER TA 1B23 ; OtherLetter # Lo BALINESE LETTER TA TAWA 1B24 ; OtherLetter # Lo BALINESE LETTER DA 1B25 ; OtherLetter # Lo BALINESE LETTER DA MADU 1B26 ; OtherLetter # Lo BALINESE LETTER NA 1B27 ; OtherLetter # Lo BALINESE LETTER PA 1B28 ; OtherLetter # Lo BALINESE LETTER PA KAPAL 1B29 ; OtherLetter # Lo BALINESE LETTER BA 1B2A ; OtherLetter # Lo BALINESE LETTER BA KEMBANG 1B2B ; OtherLetter # Lo BALINESE LETTER MA 1B2C ; OtherLetter # Lo BALINESE LETTER YA 1B2D ; OtherLetter # Lo BALINESE LETTER RA 1B2E ; OtherLetter # Lo BALINESE LETTER LA 1B2F ; OtherLetter # Lo BALINESE LETTER WA 1B30 ; OtherLetter # Lo BALINESE LETTER SA SAGA 1B31 ; OtherLetter # Lo BALINESE LETTER SA SAPA 1B32 ; OtherLetter # Lo BALINESE LETTER SA 1B33 ; OtherLetter # Lo BALINESE LETTER HA 1B44 ; Virama # Mc BALINESE ADEG ADEG 1B45 ; OtherLetter # Lo BALINESE LETTER KAF SASAK 1B46 ; OtherLetter # Lo BALINESE LETTER KHOT SASAK 1B47 ; OtherLetter # Lo BALINESE LETTER TZIR SASAK 1B48 ; OtherLetter # Lo BALINESE LETTER EF SASAK 1B49 ; OtherLetter # Lo BALINESE LETTER VE SASAK 1B4A ; OtherLetter # Lo BALINESE LETTER ZAL SASAK 1B4B ; OtherLetter # Lo BALINESE LETTER ASYURA SASAK 1B83 ; OtherLetter # Lo SUNDANESE LETTER A 1B84 ; OtherLetter # Lo SUNDANESE LETTER I 1B85 ; OtherLetter # Lo SUNDANESE LETTER U 1B86 ; OtherLetter # Lo SUNDANESE LETTER AE 1B87 ; OtherLetter # Lo SUNDANESE LETTER O 1B88 ; OtherLetter # Lo SUNDANESE LETTER E 1B89 ; OtherLetter # Lo SUNDANESE LETTER EU 1B8A ; OtherLetter # Lo SUNDANESE LETTER KA 1B8B ; OtherLetter # Lo SUNDANESE LETTER QA 1B8C ; OtherLetter # Lo SUNDANESE LETTER GA 1B8D ; OtherLetter # Lo SUNDANESE LETTER NGA 1B8E ; OtherLetter # Lo SUNDANESE LETTER CA 1B8F ; OtherLetter # Lo SUNDANESE LETTER JA 1B90 ; OtherLetter # Lo SUNDANESE LETTER ZA 1B91 ; OtherLetter # Lo SUNDANESE LETTER NYA 1B92 ; OtherLetter # Lo SUNDANESE LETTER TA 1B93 ; OtherLetter # Lo SUNDANESE LETTER DA 1B94 ; OtherLetter # Lo SUNDANESE LETTER NA 1B95 ; OtherLetter # Lo SUNDANESE LETTER PA 1B96 ; OtherLetter # Lo SUNDANESE LETTER FA 1B97 ; OtherLetter # Lo SUNDANESE LETTER VA 1B98 ; OtherLetter # Lo SUNDANESE LETTER BA 1B99 ; OtherLetter # Lo SUNDANESE LETTER MA 1B9A ; OtherLetter # Lo SUNDANESE LETTER YA 1B9B ; OtherLetter # Lo SUNDANESE LETTER RA 1B9C ; OtherLetter # Lo SUNDANESE LETTER LA 1B9D ; OtherLetter # Lo SUNDANESE LETTER WA 1B9E ; OtherLetter # Lo SUNDANESE LETTER SA 1B9F ; OtherLetter # Lo SUNDANESE LETTER XA 1BA0 ; OtherLetter # Lo SUNDANESE LETTER HA 1BAA ; Virama # Mc SUNDANESE SIGN PAMAAEH 1BAB ; Virama # Mn SUNDANESE SIGN VIRAMA 1BAE ; OtherLetter # Lo SUNDANESE LETTER KHA 1BAF ; OtherLetter # Lo SUNDANESE LETTER SYA 1BBA ; OtherLetter # Lo SUNDANESE AVAGRAHA 1BBB ; OtherLetter # Lo SUNDANESE LETTER REU 1BBC ; OtherLetter # Lo SUNDANESE LETTER LEU 1BBD ; OtherLetter # Lo SUNDANESE LETTER BHA 1BBE ; OtherLetter # Lo SUNDANESE LETTER FINAL K 1BBF ; OtherLetter # Lo SUNDANESE LETTER FINAL M 1BC0 ; OtherLetter # Lo BATAK LETTER A 1BC1 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN A 1BC2 ; OtherLetter # Lo BATAK LETTER HA 1BC3 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN HA 1BC4 ; OtherLetter # Lo BATAK LETTER MANDAILING HA 1BC5 ; OtherLetter # Lo BATAK LETTER BA 1BC6 ; OtherLetter # Lo BATAK LETTER KARO BA 1BC7 ; OtherLetter # Lo BATAK LETTER PA 1BC8 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN PA 1BC9 ; OtherLetter # Lo BATAK LETTER NA 1BCA ; OtherLetter # Lo BATAK LETTER MANDAILING NA 1BCB ; OtherLetter # Lo BATAK LETTER WA 1BCC ; OtherLetter # Lo BATAK LETTER SIMALUNGUN WA 1BCD ; OtherLetter # Lo BATAK LETTER PAKPAK WA 1BCE ; OtherLetter # Lo BATAK LETTER GA 1BCF ; OtherLetter # Lo BATAK LETTER SIMALUNGUN GA 1BD0 ; OtherLetter # Lo BATAK LETTER JA 1BD1 ; OtherLetter # Lo BATAK LETTER DA 1BD2 ; OtherLetter # Lo BATAK LETTER RA 1BD3 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN RA 1BD4 ; OtherLetter # Lo BATAK LETTER MA 1BD5 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN MA 1BD6 ; OtherLetter # Lo BATAK LETTER SOUTHERN TA 1BD7 ; OtherLetter # Lo BATAK LETTER NORTHERN TA 1BD8 ; OtherLetter # Lo BATAK LETTER SA 1BD9 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN SA 1BDA ; OtherLetter # Lo BATAK LETTER MANDAILING SA 1BDB ; OtherLetter # Lo BATAK LETTER YA 1BDC ; OtherLetter # Lo BATAK LETTER SIMALUNGUN YA 1BDD ; OtherLetter # Lo BATAK LETTER NGA 1BDE ; OtherLetter # Lo BATAK LETTER LA 1BDF ; OtherLetter # Lo BATAK LETTER SIMALUNGUN LA 1BE0 ; OtherLetter # Lo BATAK LETTER NYA 1BE1 ; OtherLetter # Lo BATAK LETTER CA 1BE2 ; OtherLetter # Lo BATAK LETTER NDA 1BE3 ; OtherLetter # Lo BATAK LETTER MBA 1BE4 ; OtherLetter # Lo BATAK LETTER I 1BE5 ; OtherLetter # Lo BATAK LETTER U 1BF2 ; Virama # Mc BATAK PANGOLAT 1BF3 ; Virama # Mc BATAK PANONGONAN 2D30 ; OtherLetter # Lo TIFINAGH LETTER YA 2D31 ; OtherLetter # Lo TIFINAGH LETTER YAB 2D32 ; OtherLetter # Lo TIFINAGH LETTER YABH 2D33 ; OtherLetter # Lo TIFINAGH LETTER YAG 2D34 ; OtherLetter # Lo TIFINAGH LETTER YAGHH 2D35 ; OtherLetter # Lo TIFINAGH LETTER BERBER ACADEMY YAJ 2D36 ; OtherLetter # Lo TIFINAGH LETTER YAJ 2D37 ; OtherLetter # Lo TIFINAGH LETTER YAD 2D38 ; OtherLetter # Lo TIFINAGH LETTER YADH 2D39 ; OtherLetter # Lo TIFINAGH LETTER YADD 2D3A ; OtherLetter # Lo TIFINAGH LETTER YADDH 2D3B ; OtherLetter # Lo TIFINAGH LETTER YEY 2D3C ; OtherLetter # Lo TIFINAGH LETTER YAF 2D3D ; OtherLetter # Lo TIFINAGH LETTER YAK 2D3E ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAK 2D3F ; OtherLetter # Lo TIFINAGH LETTER YAKHH 2D40 ; OtherLetter # Lo TIFINAGH LETTER YAH 2D41 ; OtherLetter # Lo TIFINAGH LETTER BERBER ACADEMY YAH 2D42 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAH 2D43 ; OtherLetter # Lo TIFINAGH LETTER YAHH 2D44 ; OtherLetter # Lo TIFINAGH LETTER YAA 2D45 ; OtherLetter # Lo TIFINAGH LETTER YAKH 2D46 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAKH 2D47 ; OtherLetter # Lo TIFINAGH LETTER YAQ 2D48 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAQ 2D49 ; OtherLetter # Lo TIFINAGH LETTER YI 2D4A ; OtherLetter # Lo TIFINAGH LETTER YAZH 2D4B ; OtherLetter # Lo TIFINAGH LETTER AHAGGAR YAZH 2D4C ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAZH 2D4D ; OtherLetter # Lo TIFINAGH LETTER YAL 2D4E ; OtherLetter # Lo TIFINAGH LETTER YAM 2D4F ; OtherLetter # Lo TIFINAGH LETTER YAN 2D50 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAGN 2D51 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YANG 2D52 ; OtherLetter # Lo TIFINAGH LETTER YAP 2D53 ; OtherLetter # Lo TIFINAGH LETTER YU 2D54 ; OtherLetter # Lo TIFINAGH LETTER YAR 2D55 ; OtherLetter # Lo TIFINAGH LETTER YARR 2D56 ; OtherLetter # Lo TIFINAGH LETTER YAGH 2D57 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAGH 2D58 ; OtherLetter # Lo TIFINAGH LETTER AYER YAGH 2D59 ; OtherLetter # Lo TIFINAGH LETTER YAS 2D5A ; OtherLetter # Lo TIFINAGH LETTER YASS 2D5B ; OtherLetter # Lo TIFINAGH LETTER YASH 2D5C ; OtherLetter # Lo TIFINAGH LETTER YAT 2D5D ; OtherLetter # Lo TIFINAGH LETTER YATH 2D5E ; OtherLetter # Lo TIFINAGH LETTER YACH 2D5F ; OtherLetter # Lo TIFINAGH LETTER YATT 2D60 ; OtherLetter # Lo TIFINAGH LETTER YAV 2D61 ; OtherLetter # Lo TIFINAGH LETTER YAW 2D62 ; OtherLetter # Lo TIFINAGH LETTER YAY 2D63 ; OtherLetter # Lo TIFINAGH LETTER YAZ 2D64 ; OtherLetter # Lo TIFINAGH LETTER TAWELLEMET YAZ 2D65 ; OtherLetter # Lo TIFINAGH LETTER YAZZ 2D66 ; OtherLetter # Lo TIFINAGH LETTER YE 2D67 ; OtherLetter # Lo TIFINAGH LETTER YO 2D6F ; OtherLetter # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK 2D7F ; Virama # Mn TIFINAGH CONSONANT JOINER A800 ; OtherLetter # Lo SYLOTI NAGRI LETTER A A801 ; OtherLetter # Lo SYLOTI NAGRI LETTER I A803 ; OtherLetter # Lo SYLOTI NAGRI LETTER U A804 ; OtherLetter # Lo SYLOTI NAGRI LETTER E A805 ; OtherLetter # Lo SYLOTI NAGRI LETTER O A806 ; Virama # Mn SYLOTI NAGRI SIGN HASANTA A807 ; OtherLetter # Lo SYLOTI NAGRI LETTER KO A808 ; OtherLetter # Lo SYLOTI NAGRI LETTER KHO A809 ; OtherLetter # Lo SYLOTI NAGRI LETTER GO A80A ; OtherLetter # Lo SYLOTI NAGRI LETTER GHO A80C ; OtherLetter # Lo SYLOTI NAGRI LETTER CO A80D ; OtherLetter # Lo SYLOTI NAGRI LETTER CHO A80E ; OtherLetter # Lo SYLOTI NAGRI LETTER JO A80F ; OtherLetter # Lo SYLOTI NAGRI LETTER JHO A810 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTO A811 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTHO A812 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDO A813 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDHO A814 ; OtherLetter # Lo SYLOTI NAGRI LETTER TO A815 ; OtherLetter # Lo SYLOTI NAGRI LETTER THO A816 ; OtherLetter # Lo SYLOTI NAGRI LETTER DO A817 ; OtherLetter # Lo SYLOTI NAGRI LETTER DHO A818 ; OtherLetter # Lo SYLOTI NAGRI LETTER NO A819 ; OtherLetter # Lo SYLOTI NAGRI LETTER PO A81A ; OtherLetter # Lo SYLOTI NAGRI LETTER PHO A81B ; OtherLetter # Lo SYLOTI NAGRI LETTER BO A81C ; OtherLetter # Lo SYLOTI NAGRI LETTER BHO A81D ; OtherLetter # Lo SYLOTI NAGRI LETTER MO A81E ; OtherLetter # Lo SYLOTI NAGRI LETTER RO A81F ; OtherLetter # Lo SYLOTI NAGRI LETTER LO A820 ; OtherLetter # Lo SYLOTI NAGRI LETTER RRO A821 ; OtherLetter # Lo SYLOTI NAGRI LETTER SO A822 ; OtherLetter # Lo SYLOTI NAGRI LETTER HO A882 ; OtherLetter # Lo SAURASHTRA LETTER A A883 ; OtherLetter # Lo SAURASHTRA LETTER AA A884 ; OtherLetter # Lo SAURASHTRA LETTER I A885 ; OtherLetter # Lo SAURASHTRA LETTER II A886 ; OtherLetter # Lo SAURASHTRA LETTER U A887 ; OtherLetter # Lo SAURASHTRA LETTER UU A888 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC R A889 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC RR A88A ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC L A88B ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC LL A88C ; OtherLetter # Lo SAURASHTRA LETTER E A88D ; OtherLetter # Lo SAURASHTRA LETTER EE A88E ; OtherLetter # Lo SAURASHTRA LETTER AI A88F ; OtherLetter # Lo SAURASHTRA LETTER O A890 ; OtherLetter # Lo SAURASHTRA LETTER OO A891 ; OtherLetter # Lo SAURASHTRA LETTER AU A892 ; OtherLetter # Lo SAURASHTRA LETTER KA A893 ; OtherLetter # Lo SAURASHTRA LETTER KHA A894 ; OtherLetter # Lo SAURASHTRA LETTER GA A895 ; OtherLetter # Lo SAURASHTRA LETTER GHA A896 ; OtherLetter # Lo SAURASHTRA LETTER NGA A897 ; OtherLetter # Lo SAURASHTRA LETTER CA A898 ; OtherLetter # Lo SAURASHTRA LETTER CHA A899 ; OtherLetter # Lo SAURASHTRA LETTER JA A89A ; OtherLetter # Lo SAURASHTRA LETTER JHA A89B ; OtherLetter # Lo SAURASHTRA LETTER NYA A89C ; OtherLetter # Lo SAURASHTRA LETTER TTA A89D ; OtherLetter # Lo SAURASHTRA LETTER TTHA A89E ; OtherLetter # Lo SAURASHTRA LETTER DDA A89F ; OtherLetter # Lo SAURASHTRA LETTER DDHA A8A0 ; OtherLetter # Lo SAURASHTRA LETTER NNA A8A1 ; OtherLetter # Lo SAURASHTRA LETTER TA A8A2 ; OtherLetter # Lo SAURASHTRA LETTER THA A8A3 ; OtherLetter # Lo SAURASHTRA LETTER DA A8A4 ; OtherLetter # Lo SAURASHTRA LETTER DHA A8A5 ; OtherLetter # Lo SAURASHTRA LETTER NA A8A6 ; OtherLetter # Lo SAURASHTRA LETTER PA A8A7 ; OtherLetter # Lo SAURASHTRA LETTER PHA A8A8 ; OtherLetter # Lo SAURASHTRA LETTER BA A8A9 ; OtherLetter # Lo SAURASHTRA LETTER BHA A8AA ; OtherLetter # Lo SAURASHTRA LETTER MA A8AB ; OtherLetter # Lo SAURASHTRA LETTER YA A8AC ; OtherLetter # Lo SAURASHTRA LETTER RA A8AD ; OtherLetter # Lo SAURASHTRA LETTER LA A8AE ; OtherLetter # Lo SAURASHTRA LETTER VA A8AF ; OtherLetter # Lo SAURASHTRA LETTER SHA A8B0 ; OtherLetter # Lo SAURASHTRA LETTER SSA A8B1 ; OtherLetter # Lo SAURASHTRA LETTER SA A8B2 ; OtherLetter # Lo SAURASHTRA LETTER HA A8B3 ; OtherLetter # Lo SAURASHTRA LETTER LLA A8C4 ; Virama # Mn SAURASHTRA SIGN VIRAMA A8F2 ; OtherLetter # Lo DEVANAGARI SIGN SPACING CANDRABINDU A8F3 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU VIRAMA A8F4 ; OtherLetter # Lo DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA A8F5 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU TWO A8F6 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU THREE A8F7 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU AVAGRAHA A8FB ; OtherLetter # Lo DEVANAGARI HEADSTROKE A930 ; OtherLetter # Lo REJANG LETTER KA A931 ; OtherLetter # Lo REJANG LETTER GA A932 ; OtherLetter # Lo REJANG LETTER NGA A933 ; OtherLetter # Lo REJANG LETTER TA A934 ; OtherLetter # Lo REJANG LETTER DA A935 ; OtherLetter # Lo REJANG LETTER NA A936 ; OtherLetter # Lo REJANG LETTER PA A937 ; OtherLetter # Lo REJANG LETTER BA A938 ; OtherLetter # Lo REJANG LETTER MA A939 ; OtherLetter # Lo REJANG LETTER CA A93A ; OtherLetter # Lo REJANG LETTER JA A93B ; OtherLetter # Lo REJANG LETTER NYA A93C ; OtherLetter # Lo REJANG LETTER SA A93D ; OtherLetter # Lo REJANG LETTER RA A93E ; OtherLetter # Lo REJANG LETTER LA A93F ; OtherLetter # Lo REJANG LETTER YA A940 ; OtherLetter # Lo REJANG LETTER WA A941 ; OtherLetter # Lo REJANG LETTER HA A942 ; OtherLetter # Lo REJANG LETTER MBA A943 ; OtherLetter # Lo REJANG LETTER NGGA A944 ; OtherLetter # Lo REJANG LETTER NDA A945 ; OtherLetter # Lo REJANG LETTER NYJA A946 ; OtherLetter # Lo REJANG LETTER A A953 ; Virama # Mc REJANG VIRAMA A984 ; OtherLetter # Lo JAVANESE LETTER A A985 ; OtherLetter # Lo JAVANESE LETTER I KAWI A986 ; OtherLetter # Lo JAVANESE LETTER I A987 ; OtherLetter # Lo JAVANESE LETTER II A988 ; OtherLetter # Lo JAVANESE LETTER U A989 ; OtherLetter # Lo JAVANESE LETTER PA CEREK A98A ; OtherLetter # Lo JAVANESE LETTER NGA LELET A98B ; OtherLetter # Lo JAVANESE LETTER NGA LELET RASWADI A98C ; OtherLetter # Lo JAVANESE LETTER E A98D ; OtherLetter # Lo JAVANESE LETTER AI A98E ; OtherLetter # Lo JAVANESE LETTER O A98F ; OtherLetter # Lo JAVANESE LETTER KA A990 ; OtherLetter # Lo JAVANESE LETTER KA SASAK A991 ; OtherLetter # Lo JAVANESE LETTER KA MURDA A992 ; OtherLetter # Lo JAVANESE LETTER GA A993 ; OtherLetter # Lo JAVANESE LETTER GA MURDA A994 ; OtherLetter # Lo JAVANESE LETTER NGA A995 ; OtherLetter # Lo JAVANESE LETTER CA A996 ; OtherLetter # Lo JAVANESE LETTER CA MURDA A997 ; OtherLetter # Lo JAVANESE LETTER JA A998 ; OtherLetter # Lo JAVANESE LETTER NYA MURDA A999 ; OtherLetter # Lo JAVANESE LETTER JA MAHAPRANA A99A ; OtherLetter # Lo JAVANESE LETTER NYA A99B ; OtherLetter # Lo JAVANESE LETTER TTA A99C ; OtherLetter # Lo JAVANESE LETTER TTA MAHAPRANA A99D ; OtherLetter # Lo JAVANESE LETTER DDA A99E ; OtherLetter # Lo JAVANESE LETTER DDA MAHAPRANA A99F ; OtherLetter # Lo JAVANESE LETTER NA MURDA A9A0 ; OtherLetter # Lo JAVANESE LETTER TA A9A1 ; OtherLetter # Lo JAVANESE LETTER TA MURDA A9A2 ; OtherLetter # Lo JAVANESE LETTER DA A9A3 ; OtherLetter # Lo JAVANESE LETTER DA MAHAPRANA A9A4 ; OtherLetter # Lo JAVANESE LETTER NA A9A5 ; OtherLetter # Lo JAVANESE LETTER PA A9A6 ; OtherLetter # Lo JAVANESE LETTER PA MURDA A9A7 ; OtherLetter # Lo JAVANESE LETTER BA A9A8 ; OtherLetter # Lo JAVANESE LETTER BA MURDA A9A9 ; OtherLetter # Lo JAVANESE LETTER MA A9AA ; OtherLetter # Lo JAVANESE LETTER YA A9AB ; OtherLetter # Lo JAVANESE LETTER RA A9AC ; OtherLetter # Lo JAVANESE LETTER RA AGUNG A9AD ; OtherLetter # Lo JAVANESE LETTER LA A9AE ; OtherLetter # Lo JAVANESE LETTER WA A9AF ; OtherLetter # Lo JAVANESE LETTER SA MURDA A9B0 ; OtherLetter # Lo JAVANESE LETTER SA MAHAPRANA A9B1 ; OtherLetter # Lo JAVANESE LETTER SA A9B2 ; OtherLetter # Lo JAVANESE LETTER HA A9C0 ; Virama # Mc JAVANESE PANGKON A9CF ; OtherLetter # Lm JAVANESE PANGRANGKEP AA60 ; OtherLetter # Lo MYANMAR LETTER KHAMTI GA AA61 ; OtherLetter # Lo MYANMAR LETTER KHAMTI CA AA62 ; OtherLetter # Lo MYANMAR LETTER KHAMTI CHA AA63 ; OtherLetter # Lo MYANMAR LETTER KHAMTI JA AA64 ; OtherLetter # Lo MYANMAR LETTER KHAMTI JHA AA65 ; OtherLetter # Lo MYANMAR LETTER KHAMTI NYA AA66 ; OtherLetter # Lo MYANMAR LETTER KHAMTI TTA AA67 ; OtherLetter # Lo MYANMAR LETTER KHAMTI TTHA AA68 ; OtherLetter # Lo MYANMAR LETTER KHAMTI DDA AA69 ; OtherLetter # Lo MYANMAR LETTER KHAMTI DDHA AA6A ; OtherLetter # Lo MYANMAR LETTER KHAMTI DHA AA6B ; OtherLetter # Lo MYANMAR LETTER KHAMTI NA AA6C ; OtherLetter # Lo MYANMAR LETTER KHAMTI SA AA6D ; OtherLetter # Lo MYANMAR LETTER KHAMTI HA AA6E ; OtherLetter # Lo MYANMAR LETTER KHAMTI HHA AA6F ; OtherLetter # Lo MYANMAR LETTER KHAMTI FA AA70 ; OtherLetter # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION AA71 ; OtherLetter # Lo MYANMAR LETTER KHAMTI XA AA72 ; OtherLetter # Lo MYANMAR LETTER KHAMTI ZA AA73 ; OtherLetter # Lo MYANMAR LETTER KHAMTI RA AA74 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI OAY AA75 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI QN AA76 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI HM AA7A ; OtherLetter # Lo MYANMAR LETTER AITON RA AAE0 ; OtherLetter # Lo MEETEI MAYEK LETTER E AAE1 ; OtherLetter # Lo MEETEI MAYEK LETTER O AAE2 ; OtherLetter # Lo MEETEI MAYEK LETTER CHA AAE3 ; OtherLetter # Lo MEETEI MAYEK LETTER NYA AAE4 ; OtherLetter # Lo MEETEI MAYEK LETTER TTA AAE5 ; OtherLetter # Lo MEETEI MAYEK LETTER TTHA AAE6 ; OtherLetter # Lo MEETEI MAYEK LETTER DDA AAE7 ; OtherLetter # Lo MEETEI MAYEK LETTER DDHA AAE8 ; OtherLetter # Lo MEETEI MAYEK LETTER NNA AAE9 ; OtherLetter # Lo MEETEI MAYEK LETTER SHA AAEA ; OtherLetter # Lo MEETEI MAYEK LETTER SSA AAF2 ; OtherLetter # Lo MEETEI MAYEK ANJI AAF3 ; OtherLetter # Lm MEETEI MAYEK SYLLABLE REPETITION MARK AAF4 ; OtherLetter # Lm MEETEI MAYEK WORD REPETITION MARK AAF6 ; Virama # Mn MEETEI MAYEK VIRAMA ABC0 ; OtherLetter # Lo MEETEI MAYEK LETTER KOK ABC1 ; OtherLetter # Lo MEETEI MAYEK LETTER SAM ABC2 ; OtherLetter # Lo MEETEI MAYEK LETTER LAI ABC3 ; OtherLetter # Lo MEETEI MAYEK LETTER MIT ABC4 ; OtherLetter # Lo MEETEI MAYEK LETTER PA ABC5 ; OtherLetter # Lo MEETEI MAYEK LETTER NA ABC6 ; OtherLetter # Lo MEETEI MAYEK LETTER CHIL ABC7 ; OtherLetter # Lo MEETEI MAYEK LETTER TIL ABC8 ; OtherLetter # Lo MEETEI MAYEK LETTER KHOU ABC9 ; OtherLetter # Lo MEETEI MAYEK LETTER NGOU ABCA ; OtherLetter # Lo MEETEI MAYEK LETTER THOU ABCB ; OtherLetter # Lo MEETEI MAYEK LETTER WAI ABCC ; OtherLetter # Lo MEETEI MAYEK LETTER YANG ABCD ; OtherLetter # Lo MEETEI MAYEK LETTER HUK ABCE ; OtherLetter # Lo MEETEI MAYEK LETTER UN ABCF ; OtherLetter # Lo MEETEI MAYEK LETTER I ABD0 ; OtherLetter # Lo MEETEI MAYEK LETTER PHAM ABD1 ; OtherLetter # Lo MEETEI MAYEK LETTER ATIYA ABD2 ; OtherLetter # Lo MEETEI MAYEK LETTER GOK ABD3 ; OtherLetter # Lo MEETEI MAYEK LETTER JHAM ABD4 ; OtherLetter # Lo MEETEI MAYEK LETTER RAI ABD5 ; OtherLetter # Lo MEETEI MAYEK LETTER BA ABD6 ; OtherLetter # Lo MEETEI MAYEK LETTER JIL ABD7 ; OtherLetter # Lo MEETEI MAYEK LETTER DIL ABD8 ; OtherLetter # Lo MEETEI MAYEK LETTER GHOU ABD9 ; OtherLetter # Lo MEETEI MAYEK LETTER DHOU ABDA ; OtherLetter # Lo MEETEI MAYEK LETTER BHAM ABDB ; OtherLetter # Lo MEETEI MAYEK LETTER KOK LONSUM ABDC ; OtherLetter # Lo MEETEI MAYEK LETTER LAI LONSUM ABDD ; OtherLetter # Lo MEETEI MAYEK LETTER MIT LONSUM ABDE ; OtherLetter # Lo MEETEI MAYEK LETTER PA LONSUM ABDF ; OtherLetter # Lo MEETEI MAYEK LETTER NA LONSUM ABE0 ; OtherLetter # Lo MEETEI MAYEK LETTER TIL LONSUM ABE1 ; OtherLetter # Lo MEETEI MAYEK LETTER NGOU LONSUM ABE2 ; OtherLetter # Lo MEETEI MAYEK LETTER I LONSUM ABED ; Virama # Mn MEETEI MAYEK APUN IYEK 10A00 ; OtherLetter # Lo KHAROSHTHI LETTER A 10A10 ; OtherLetter # Lo KHAROSHTHI LETTER KA 10A11 ; OtherLetter # Lo KHAROSHTHI LETTER KHA 10A12 ; OtherLetter # Lo KHAROSHTHI LETTER GA 10A13 ; OtherLetter # Lo KHAROSHTHI LETTER GHA 10A15 ; OtherLetter # Lo KHAROSHTHI LETTER CA 10A16 ; OtherLetter # Lo KHAROSHTHI LETTER CHA 10A17 ; OtherLetter # Lo KHAROSHTHI LETTER JA 10A19 ; OtherLetter # Lo KHAROSHTHI LETTER NYA 10A1A ; OtherLetter # Lo KHAROSHTHI LETTER TTA 10A1B ; OtherLetter # Lo KHAROSHTHI LETTER TTHA 10A1C ; OtherLetter # Lo KHAROSHTHI LETTER DDA 10A1D ; OtherLetter # Lo KHAROSHTHI LETTER DDHA 10A1E ; OtherLetter # Lo KHAROSHTHI LETTER NNA 10A1F ; OtherLetter # Lo KHAROSHTHI LETTER TA 10A20 ; OtherLetter # Lo KHAROSHTHI LETTER THA 10A21 ; OtherLetter # Lo KHAROSHTHI LETTER DA 10A22 ; OtherLetter # Lo KHAROSHTHI LETTER DHA 10A23 ; OtherLetter # Lo KHAROSHTHI LETTER NA 10A24 ; OtherLetter # Lo KHAROSHTHI LETTER PA 10A25 ; OtherLetter # Lo KHAROSHTHI LETTER PHA 10A26 ; OtherLetter # Lo KHAROSHTHI LETTER BA 10A27 ; OtherLetter # Lo KHAROSHTHI LETTER BHA 10A28 ; OtherLetter # Lo KHAROSHTHI LETTER MA 10A29 ; OtherLetter # Lo KHAROSHTHI LETTER YA 10A2A ; OtherLetter # Lo KHAROSHTHI LETTER RA 10A2B ; OtherLetter # Lo KHAROSHTHI LETTER LA 10A2C ; OtherLetter # Lo KHAROSHTHI LETTER VA 10A2D ; OtherLetter # Lo KHAROSHTHI LETTER SHA 10A2E ; OtherLetter # Lo KHAROSHTHI LETTER SSA 10A2F ; OtherLetter # Lo KHAROSHTHI LETTER SA 10A30 ; OtherLetter # Lo KHAROSHTHI LETTER ZA 10A31 ; OtherLetter # Lo KHAROSHTHI LETTER HA 10A32 ; OtherLetter # Lo KHAROSHTHI LETTER KKA 10A33 ; OtherLetter # Lo KHAROSHTHI LETTER TTTHA 10A3F ; Virama # Mn KHAROSHTHI VIRAMA 11003 ; OtherLetter # Lo BRAHMI SIGN JIHVAMULIYA 11004 ; OtherLetter # Lo BRAHMI SIGN UPADHMANIYA 11005 ; OtherLetter # Lo BRAHMI LETTER A 11006 ; OtherLetter # Lo BRAHMI LETTER AA 11007 ; OtherLetter # Lo BRAHMI LETTER I 11008 ; OtherLetter # Lo BRAHMI LETTER II 11009 ; OtherLetter # Lo BRAHMI LETTER U 1100A ; OtherLetter # Lo BRAHMI LETTER UU 1100B ; OtherLetter # Lo BRAHMI LETTER VOCALIC R 1100C ; OtherLetter # Lo BRAHMI LETTER VOCALIC RR 1100D ; OtherLetter # Lo BRAHMI LETTER VOCALIC L 1100E ; OtherLetter # Lo BRAHMI LETTER VOCALIC LL 1100F ; OtherLetter # Lo BRAHMI LETTER E 11010 ; OtherLetter # Lo BRAHMI LETTER AI 11011 ; OtherLetter # Lo BRAHMI LETTER O 11012 ; OtherLetter # Lo BRAHMI LETTER AU 11013 ; OtherLetter # Lo BRAHMI LETTER KA 11014 ; OtherLetter # Lo BRAHMI LETTER KHA 11015 ; OtherLetter # Lo BRAHMI LETTER GA 11016 ; OtherLetter # Lo BRAHMI LETTER GHA 11017 ; OtherLetter # Lo BRAHMI LETTER NGA 11018 ; OtherLetter # Lo BRAHMI LETTER CA 11019 ; OtherLetter # Lo BRAHMI LETTER CHA 1101A ; OtherLetter # Lo BRAHMI LETTER JA 1101B ; OtherLetter # Lo BRAHMI LETTER JHA 1101C ; OtherLetter # Lo BRAHMI LETTER NYA 1101D ; OtherLetter # Lo BRAHMI LETTER TTA 1101E ; OtherLetter # Lo BRAHMI LETTER TTHA 1101F ; OtherLetter # Lo BRAHMI LETTER DDA 11020 ; OtherLetter # Lo BRAHMI LETTER DDHA 11021 ; OtherLetter # Lo BRAHMI LETTER NNA 11022 ; OtherLetter # Lo BRAHMI LETTER TA 11023 ; OtherLetter # Lo BRAHMI LETTER THA 11024 ; OtherLetter # Lo BRAHMI LETTER DA 11025 ; OtherLetter # Lo BRAHMI LETTER DHA 11026 ; OtherLetter # Lo BRAHMI LETTER NA 11027 ; OtherLetter # Lo BRAHMI LETTER PA 11028 ; OtherLetter # Lo BRAHMI LETTER PHA 11029 ; OtherLetter # Lo BRAHMI LETTER BA 1102A ; OtherLetter # Lo BRAHMI LETTER BHA 1102B ; OtherLetter # Lo BRAHMI LETTER MA 1102C ; OtherLetter # Lo BRAHMI LETTER YA 1102D ; OtherLetter # Lo BRAHMI LETTER RA 1102E ; OtherLetter # Lo BRAHMI LETTER LA 1102F ; OtherLetter # Lo BRAHMI LETTER VA 11030 ; OtherLetter # Lo BRAHMI LETTER SHA 11031 ; OtherLetter # Lo BRAHMI LETTER SSA 11032 ; OtherLetter # Lo BRAHMI LETTER SA 11033 ; OtherLetter # Lo BRAHMI LETTER HA 11034 ; OtherLetter # Lo BRAHMI LETTER LLA 11035 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL LLLA 11036 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL RRA 11037 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL NNNA 11046 ; Virama # Mn BRAHMI VIRAMA 11083 ; OtherLetter # Lo KAITHI LETTER A 11084 ; OtherLetter # Lo KAITHI LETTER AA 11085 ; OtherLetter # Lo KAITHI LETTER I 11086 ; OtherLetter # Lo KAITHI LETTER II 11087 ; OtherLetter # Lo KAITHI LETTER U 11088 ; OtherLetter # Lo KAITHI LETTER UU 11089 ; OtherLetter # Lo KAITHI LETTER E 1108A ; OtherLetter # Lo KAITHI LETTER AI 1108B ; OtherLetter # Lo KAITHI LETTER O 1108C ; OtherLetter # Lo KAITHI LETTER AU 1108D ; OtherLetter # Lo KAITHI LETTER KA 1108E ; OtherLetter # Lo KAITHI LETTER KHA 1108F ; OtherLetter # Lo KAITHI LETTER GA 11090 ; OtherLetter # Lo KAITHI LETTER GHA 11091 ; OtherLetter # Lo KAITHI LETTER NGA 11092 ; OtherLetter # Lo KAITHI LETTER CA 11093 ; OtherLetter # Lo KAITHI LETTER CHA 11094 ; OtherLetter # Lo KAITHI LETTER JA 11095 ; OtherLetter # Lo KAITHI LETTER JHA 11096 ; OtherLetter # Lo KAITHI LETTER NYA 11097 ; OtherLetter # Lo KAITHI LETTER TTA 11098 ; OtherLetter # Lo KAITHI LETTER TTHA 11099 ; OtherLetter # Lo KAITHI LETTER DDA 1109A ; OtherLetter # Lo KAITHI LETTER DDDHA 1109B ; OtherLetter # Lo KAITHI LETTER DDHA 1109C ; OtherLetter # Lo KAITHI LETTER RHA 1109D ; OtherLetter # Lo KAITHI LETTER NNA 1109E ; OtherLetter # Lo KAITHI LETTER TA 1109F ; OtherLetter # Lo KAITHI LETTER THA 110A0 ; OtherLetter # Lo KAITHI LETTER DA 110A1 ; OtherLetter # Lo KAITHI LETTER DHA 110A2 ; OtherLetter # Lo KAITHI LETTER NA 110A3 ; OtherLetter # Lo KAITHI LETTER PA 110A4 ; OtherLetter # Lo KAITHI LETTER PHA 110A5 ; OtherLetter # Lo KAITHI LETTER BA 110A6 ; OtherLetter # Lo KAITHI LETTER BHA 110A7 ; OtherLetter # Lo KAITHI LETTER MA 110A8 ; OtherLetter # Lo KAITHI LETTER YA 110A9 ; OtherLetter # Lo KAITHI LETTER RA 110AA ; OtherLetter # Lo KAITHI LETTER LA 110AB ; OtherLetter # Lo KAITHI LETTER VA 110AC ; OtherLetter # Lo KAITHI LETTER SHA 110AD ; OtherLetter # Lo KAITHI LETTER SSA 110AE ; OtherLetter # Lo KAITHI LETTER SA 110AF ; OtherLetter # Lo KAITHI LETTER HA 110B9 ; Virama # Mn KAITHI SIGN VIRAMA 11103 ; OtherLetter # Lo CHAKMA LETTER AA 11104 ; OtherLetter # Lo CHAKMA LETTER I 11105 ; OtherLetter # Lo CHAKMA LETTER U 11106 ; OtherLetter # Lo CHAKMA LETTER E 11107 ; OtherLetter # Lo CHAKMA LETTER KAA 11108 ; OtherLetter # Lo CHAKMA LETTER KHAA 11109 ; OtherLetter # Lo CHAKMA LETTER GAA 1110A ; OtherLetter # Lo CHAKMA LETTER GHAA 1110B ; OtherLetter # Lo CHAKMA LETTER NGAA 1110C ; OtherLetter # Lo CHAKMA LETTER CAA 1110D ; OtherLetter # Lo CHAKMA LETTER CHAA 1110E ; OtherLetter # Lo CHAKMA LETTER JAA 1110F ; OtherLetter # Lo CHAKMA LETTER JHAA 11110 ; OtherLetter # Lo CHAKMA LETTER NYAA 11111 ; OtherLetter # Lo CHAKMA LETTER TTAA 11112 ; OtherLetter # Lo CHAKMA LETTER TTHAA 11113 ; OtherLetter # Lo CHAKMA LETTER DDAA 11114 ; OtherLetter # Lo CHAKMA LETTER DDHAA 11115 ; OtherLetter # Lo CHAKMA LETTER NNAA 11116 ; OtherLetter # Lo CHAKMA LETTER TAA 11117 ; OtherLetter # Lo CHAKMA LETTER THAA 11118 ; OtherLetter # Lo CHAKMA LETTER DAA 11119 ; OtherLetter # Lo CHAKMA LETTER DHAA 1111A ; OtherLetter # Lo CHAKMA LETTER NAA 1111B ; OtherLetter # Lo CHAKMA LETTER PAA 1111C ; OtherLetter # Lo CHAKMA LETTER PHAA 1111D ; OtherLetter # Lo CHAKMA LETTER BAA 1111E ; OtherLetter # Lo CHAKMA LETTER BHAA 1111F ; OtherLetter # Lo CHAKMA LETTER MAA 11120 ; OtherLetter # Lo CHAKMA LETTER YYAA 11121 ; OtherLetter # Lo CHAKMA LETTER YAA 11122 ; OtherLetter # Lo CHAKMA LETTER RAA 11123 ; OtherLetter # Lo CHAKMA LETTER LAA 11124 ; OtherLetter # Lo CHAKMA LETTER WAA 11125 ; OtherLetter # Lo CHAKMA LETTER SAA 11126 ; OtherLetter # Lo CHAKMA LETTER HAA 11133 ; Virama # Mn CHAKMA VIRAMA 11134 ; Virama # Mn CHAKMA MAAYYAA 11183 ; OtherLetter # Lo SHARADA LETTER A 11184 ; OtherLetter # Lo SHARADA LETTER AA 11185 ; OtherLetter # Lo SHARADA LETTER I 11186 ; OtherLetter # Lo SHARADA LETTER II 11187 ; OtherLetter # Lo SHARADA LETTER U 11188 ; OtherLetter # Lo SHARADA LETTER UU 11189 ; OtherLetter # Lo SHARADA LETTER VOCALIC R 1118A ; OtherLetter # Lo SHARADA LETTER VOCALIC RR 1118B ; OtherLetter # Lo SHARADA LETTER VOCALIC L 1118C ; OtherLetter # Lo SHARADA LETTER VOCALIC LL 1118D ; OtherLetter # Lo SHARADA LETTER E 1118E ; OtherLetter # Lo SHARADA LETTER AI 1118F ; OtherLetter # Lo SHARADA LETTER O 11190 ; OtherLetter # Lo SHARADA LETTER AU 11191 ; OtherLetter # Lo SHARADA LETTER KA 11192 ; OtherLetter # Lo SHARADA LETTER KHA 11193 ; OtherLetter # Lo SHARADA LETTER GA 11194 ; OtherLetter # Lo SHARADA LETTER GHA 11195 ; OtherLetter # Lo SHARADA LETTER NGA 11196 ; OtherLetter # Lo SHARADA LETTER CA 11197 ; OtherLetter # Lo SHARADA LETTER CHA 11198 ; OtherLetter # Lo SHARADA LETTER JA 11199 ; OtherLetter # Lo SHARADA LETTER JHA 1119A ; OtherLetter # Lo SHARADA LETTER NYA 1119B ; OtherLetter # Lo SHARADA LETTER TTA 1119C ; OtherLetter # Lo SHARADA LETTER TTHA 1119D ; OtherLetter # Lo SHARADA LETTER DDA 1119E ; OtherLetter # Lo SHARADA LETTER DDHA 1119F ; OtherLetter # Lo SHARADA LETTER NNA 111A0 ; OtherLetter # Lo SHARADA LETTER TA 111A1 ; OtherLetter # Lo SHARADA LETTER THA 111A2 ; OtherLetter # Lo SHARADA LETTER DA 111A3 ; OtherLetter # Lo SHARADA LETTER DHA 111A4 ; OtherLetter # Lo SHARADA LETTER NA 111A5 ; OtherLetter # Lo SHARADA LETTER PA 111A6 ; OtherLetter # Lo SHARADA LETTER PHA 111A7 ; OtherLetter # Lo SHARADA LETTER BA 111A8 ; OtherLetter # Lo SHARADA LETTER BHA 111A9 ; OtherLetter # Lo SHARADA LETTER MA 111AA ; OtherLetter # Lo SHARADA LETTER YA 111AB ; OtherLetter # Lo SHARADA LETTER RA 111AC ; OtherLetter # Lo SHARADA LETTER LA 111AD ; OtherLetter # Lo SHARADA LETTER LLA 111AE ; OtherLetter # Lo SHARADA LETTER VA 111AF ; OtherLetter # Lo SHARADA LETTER SHA 111B0 ; OtherLetter # Lo SHARADA LETTER SSA 111B1 ; OtherLetter # Lo SHARADA LETTER SA 111B2 ; OtherLetter # Lo SHARADA LETTER HA 111C0 ; Virama # Mc SHARADA SIGN VIRAMA 111C1 ; OtherLetter # Lo SHARADA SIGN AVAGRAHA 111C2 ; OtherLetter # Lo SHARADA SIGN JIHVAMULIYA 111C3 ; OtherLetter # Lo SHARADA SIGN UPADHMANIYA 111C4 ; OtherLetter # Lo SHARADA OM 11680 ; OtherLetter # Lo TAKRI LETTER A 11681 ; OtherLetter # Lo TAKRI LETTER AA 11682 ; OtherLetter # Lo TAKRI LETTER I 11683 ; OtherLetter # Lo TAKRI LETTER II 11684 ; OtherLetter # Lo TAKRI LETTER U 11685 ; OtherLetter # Lo TAKRI LETTER UU 11686 ; OtherLetter # Lo TAKRI LETTER E 11687 ; OtherLetter # Lo TAKRI LETTER AI 11688 ; OtherLetter # Lo TAKRI LETTER O 11689 ; OtherLetter # Lo TAKRI LETTER AU 1168A ; OtherLetter # Lo TAKRI LETTER KA 1168B ; OtherLetter # Lo TAKRI LETTER KHA 1168C ; OtherLetter # Lo TAKRI LETTER GA 1168D ; OtherLetter # Lo TAKRI LETTER GHA 1168E ; OtherLetter # Lo TAKRI LETTER NGA 1168F ; OtherLetter # Lo TAKRI LETTER CA 11690 ; OtherLetter # Lo TAKRI LETTER CHA 11691 ; OtherLetter # Lo TAKRI LETTER JA 11692 ; OtherLetter # Lo TAKRI LETTER JHA 11693 ; OtherLetter # Lo TAKRI LETTER NYA 11694 ; OtherLetter # Lo TAKRI LETTER TTA 11695 ; OtherLetter # Lo TAKRI LETTER TTHA 11696 ; OtherLetter # Lo TAKRI LETTER DDA 11697 ; OtherLetter # Lo TAKRI LETTER DDHA 11698 ; OtherLetter # Lo TAKRI LETTER NNA 11699 ; OtherLetter # Lo TAKRI LETTER TA 1169A ; OtherLetter # Lo TAKRI LETTER THA 1169B ; OtherLetter # Lo TAKRI LETTER DA 1169C ; OtherLetter # Lo TAKRI LETTER DHA 1169D ; OtherLetter # Lo TAKRI LETTER NA 1169E ; OtherLetter # Lo TAKRI LETTER PA 1169F ; OtherLetter # Lo TAKRI LETTER PHA 116A0 ; OtherLetter # Lo TAKRI LETTER BA 116A1 ; OtherLetter # Lo TAKRI LETTER BHA 116A2 ; OtherLetter # Lo TAKRI LETTER MA 116A3 ; OtherLetter # Lo TAKRI LETTER YA 116A4 ; OtherLetter # Lo TAKRI LETTER RA 116A5 ; OtherLetter # Lo TAKRI LETTER LA 116A6 ; OtherLetter # Lo TAKRI LETTER VA 116A7 ; OtherLetter # Lo TAKRI LETTER SHA 116A8 ; OtherLetter # Lo TAKRI LETTER SA 116A9 ; OtherLetter # Lo TAKRI LETTER HA 116AA ; OtherLetter # Lo TAKRI LETTER RRA 116B6 ; Virama # Mc TAKRI SIGN VIRAMA sombok-2.3.1/data/GraphemeBreakProperty-6.0.0.custom0000664000076400007640000017652512221425415017026 000000000000000904 ; OtherLetter # Lo DEVANAGARI LETTER SHORT A 0905 ; OtherLetter # Lo DEVANAGARI LETTER A 0906 ; OtherLetter # Lo DEVANAGARI LETTER AA 0907 ; OtherLetter # Lo DEVANAGARI LETTER I 0908 ; OtherLetter # Lo DEVANAGARI LETTER II 0909 ; OtherLetter # Lo DEVANAGARI LETTER U 090A ; OtherLetter # Lo DEVANAGARI LETTER UU 090B ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC R 090C ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC L 090D ; OtherLetter # Lo DEVANAGARI LETTER CANDRA E 090E ; OtherLetter # Lo DEVANAGARI LETTER SHORT E 090F ; OtherLetter # Lo DEVANAGARI LETTER E 0910 ; OtherLetter # Lo DEVANAGARI LETTER AI 0911 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA O 0912 ; OtherLetter # Lo DEVANAGARI LETTER SHORT O 0913 ; OtherLetter # Lo DEVANAGARI LETTER O 0914 ; OtherLetter # Lo DEVANAGARI LETTER AU 0915 ; OtherLetter # Lo DEVANAGARI LETTER KA 0916 ; OtherLetter # Lo DEVANAGARI LETTER KHA 0917 ; OtherLetter # Lo DEVANAGARI LETTER GA 0918 ; OtherLetter # Lo DEVANAGARI LETTER GHA 0919 ; OtherLetter # Lo DEVANAGARI LETTER NGA 091A ; OtherLetter # Lo DEVANAGARI LETTER CA 091B ; OtherLetter # Lo DEVANAGARI LETTER CHA 091C ; OtherLetter # Lo DEVANAGARI LETTER JA 091D ; OtherLetter # Lo DEVANAGARI LETTER JHA 091E ; OtherLetter # Lo DEVANAGARI LETTER NYA 091F ; OtherLetter # Lo DEVANAGARI LETTER TTA 0920 ; OtherLetter # Lo DEVANAGARI LETTER TTHA 0921 ; OtherLetter # Lo DEVANAGARI LETTER DDA 0922 ; OtherLetter # Lo DEVANAGARI LETTER DDHA 0923 ; OtherLetter # Lo DEVANAGARI LETTER NNA 0924 ; OtherLetter # Lo DEVANAGARI LETTER TA 0925 ; OtherLetter # Lo DEVANAGARI LETTER THA 0926 ; OtherLetter # Lo DEVANAGARI LETTER DA 0927 ; OtherLetter # Lo DEVANAGARI LETTER DHA 0928 ; OtherLetter # Lo DEVANAGARI LETTER NA 0929 ; OtherLetter # Lo DEVANAGARI LETTER NNNA 092A ; OtherLetter # Lo DEVANAGARI LETTER PA 092B ; OtherLetter # Lo DEVANAGARI LETTER PHA 092C ; OtherLetter # Lo DEVANAGARI LETTER BA 092D ; OtherLetter # Lo DEVANAGARI LETTER BHA 092E ; OtherLetter # Lo DEVANAGARI LETTER MA 092F ; OtherLetter # Lo DEVANAGARI LETTER YA 0930 ; OtherLetter # Lo DEVANAGARI LETTER RA 0931 ; OtherLetter # Lo DEVANAGARI LETTER RRA 0932 ; OtherLetter # Lo DEVANAGARI LETTER LA 0933 ; OtherLetter # Lo DEVANAGARI LETTER LLA 0934 ; OtherLetter # Lo DEVANAGARI LETTER LLLA 0935 ; OtherLetter # Lo DEVANAGARI LETTER VA 0936 ; OtherLetter # Lo DEVANAGARI LETTER SHA 0937 ; OtherLetter # Lo DEVANAGARI LETTER SSA 0938 ; OtherLetter # Lo DEVANAGARI LETTER SA 0939 ; OtherLetter # Lo DEVANAGARI LETTER HA 093D ; OtherLetter # Lo DEVANAGARI SIGN AVAGRAHA 094D ; Virama # Mn DEVANAGARI SIGN VIRAMA 0950 ; OtherLetter # Lo DEVANAGARI OM 0958 ; OtherLetter # Lo DEVANAGARI LETTER QA 0959 ; OtherLetter # Lo DEVANAGARI LETTER KHHA 095A ; OtherLetter # Lo DEVANAGARI LETTER GHHA 095B ; OtherLetter # Lo DEVANAGARI LETTER ZA 095C ; OtherLetter # Lo DEVANAGARI LETTER DDDHA 095D ; OtherLetter # Lo DEVANAGARI LETTER RHA 095E ; OtherLetter # Lo DEVANAGARI LETTER FA 095F ; OtherLetter # Lo DEVANAGARI LETTER YYA 0960 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC RR 0961 ; OtherLetter # Lo DEVANAGARI LETTER VOCALIC LL 0971 ; OtherLetter # Lm DEVANAGARI SIGN HIGH SPACING DOT 0972 ; OtherLetter # Lo DEVANAGARI LETTER CANDRA A 0973 ; OtherLetter # Lo DEVANAGARI LETTER OE 0974 ; OtherLetter # Lo DEVANAGARI LETTER OOE 0975 ; OtherLetter # Lo DEVANAGARI LETTER AW 0976 ; OtherLetter # Lo DEVANAGARI LETTER UE 0977 ; OtherLetter # Lo DEVANAGARI LETTER UUE 0979 ; OtherLetter # Lo DEVANAGARI LETTER ZHA 097A ; OtherLetter # Lo DEVANAGARI LETTER HEAVY YA 097B ; OtherLetter # Lo DEVANAGARI LETTER GGA 097C ; OtherLetter # Lo DEVANAGARI LETTER JJA 097D ; OtherLetter # Lo DEVANAGARI LETTER GLOTTAL STOP 097E ; OtherLetter # Lo DEVANAGARI LETTER DDDA 097F ; OtherLetter # Lo DEVANAGARI LETTER BBA 0985 ; OtherLetter # Lo BENGALI LETTER A 0986 ; OtherLetter # Lo BENGALI LETTER AA 0987 ; OtherLetter # Lo BENGALI LETTER I 0988 ; OtherLetter # Lo BENGALI LETTER II 0989 ; OtherLetter # Lo BENGALI LETTER U 098A ; OtherLetter # Lo BENGALI LETTER UU 098B ; OtherLetter # Lo BENGALI LETTER VOCALIC R 098C ; OtherLetter # Lo BENGALI LETTER VOCALIC L 098F ; OtherLetter # Lo BENGALI LETTER E 0990 ; OtherLetter # Lo BENGALI LETTER AI 0993 ; OtherLetter # Lo BENGALI LETTER O 0994 ; OtherLetter # Lo BENGALI LETTER AU 0995 ; OtherLetter # Lo BENGALI LETTER KA 0996 ; OtherLetter # Lo BENGALI LETTER KHA 0997 ; OtherLetter # Lo BENGALI LETTER GA 0998 ; OtherLetter # Lo BENGALI LETTER GHA 0999 ; OtherLetter # Lo BENGALI LETTER NGA 099A ; OtherLetter # Lo BENGALI LETTER CA 099B ; OtherLetter # Lo BENGALI LETTER CHA 099C ; OtherLetter # Lo BENGALI LETTER JA 099D ; OtherLetter # Lo BENGALI LETTER JHA 099E ; OtherLetter # Lo BENGALI LETTER NYA 099F ; OtherLetter # Lo BENGALI LETTER TTA 09A0 ; OtherLetter # Lo BENGALI LETTER TTHA 09A1 ; OtherLetter # Lo BENGALI LETTER DDA 09A2 ; OtherLetter # Lo BENGALI LETTER DDHA 09A3 ; OtherLetter # Lo BENGALI LETTER NNA 09A4 ; OtherLetter # Lo BENGALI LETTER TA 09A5 ; OtherLetter # Lo BENGALI LETTER THA 09A6 ; OtherLetter # Lo BENGALI LETTER DA 09A7 ; OtherLetter # Lo BENGALI LETTER DHA 09A8 ; OtherLetter # Lo BENGALI LETTER NA 09AA ; OtherLetter # Lo BENGALI LETTER PA 09AB ; OtherLetter # Lo BENGALI LETTER PHA 09AC ; OtherLetter # Lo BENGALI LETTER BA 09AD ; OtherLetter # Lo BENGALI LETTER BHA 09AE ; OtherLetter # Lo BENGALI LETTER MA 09AF ; OtherLetter # Lo BENGALI LETTER YA 09B0 ; OtherLetter # Lo BENGALI LETTER RA 09B2 ; OtherLetter # Lo BENGALI LETTER LA 09B6 ; OtherLetter # Lo BENGALI LETTER SHA 09B7 ; OtherLetter # Lo BENGALI LETTER SSA 09B8 ; OtherLetter # Lo BENGALI LETTER SA 09B9 ; OtherLetter # Lo BENGALI LETTER HA 09BD ; OtherLetter # Lo BENGALI SIGN AVAGRAHA 09CD ; Virama # Mn BENGALI SIGN VIRAMA 09CE ; OtherLetter # Lo BENGALI LETTER KHANDA TA 09DC ; OtherLetter # Lo BENGALI LETTER RRA 09DD ; OtherLetter # Lo BENGALI LETTER RHA 09DF ; OtherLetter # Lo BENGALI LETTER YYA 09E0 ; OtherLetter # Lo BENGALI LETTER VOCALIC RR 09E1 ; OtherLetter # Lo BENGALI LETTER VOCALIC LL 09F0 ; OtherLetter # Lo BENGALI LETTER RA WITH MIDDLE DIAGONAL 09F1 ; OtherLetter # Lo BENGALI LETTER RA WITH LOWER DIAGONAL 0A05 ; OtherLetter # Lo GURMUKHI LETTER A 0A06 ; OtherLetter # Lo GURMUKHI LETTER AA 0A07 ; OtherLetter # Lo GURMUKHI LETTER I 0A08 ; OtherLetter # Lo GURMUKHI LETTER II 0A09 ; OtherLetter # Lo GURMUKHI LETTER U 0A0A ; OtherLetter # Lo GURMUKHI LETTER UU 0A0F ; OtherLetter # Lo GURMUKHI LETTER EE 0A10 ; OtherLetter # Lo GURMUKHI LETTER AI 0A13 ; OtherLetter # Lo GURMUKHI LETTER OO 0A14 ; OtherLetter # Lo GURMUKHI LETTER AU 0A15 ; OtherLetter # Lo GURMUKHI LETTER KA 0A16 ; OtherLetter # Lo GURMUKHI LETTER KHA 0A17 ; OtherLetter # Lo GURMUKHI LETTER GA 0A18 ; OtherLetter # Lo GURMUKHI LETTER GHA 0A19 ; OtherLetter # Lo GURMUKHI LETTER NGA 0A1A ; OtherLetter # Lo GURMUKHI LETTER CA 0A1B ; OtherLetter # Lo GURMUKHI LETTER CHA 0A1C ; OtherLetter # Lo GURMUKHI LETTER JA 0A1D ; OtherLetter # Lo GURMUKHI LETTER JHA 0A1E ; OtherLetter # Lo GURMUKHI LETTER NYA 0A1F ; OtherLetter # Lo GURMUKHI LETTER TTA 0A20 ; OtherLetter # Lo GURMUKHI LETTER TTHA 0A21 ; OtherLetter # Lo GURMUKHI LETTER DDA 0A22 ; OtherLetter # Lo GURMUKHI LETTER DDHA 0A23 ; OtherLetter # Lo GURMUKHI LETTER NNA 0A24 ; OtherLetter # Lo GURMUKHI LETTER TA 0A25 ; OtherLetter # Lo GURMUKHI LETTER THA 0A26 ; OtherLetter # Lo GURMUKHI LETTER DA 0A27 ; OtherLetter # Lo GURMUKHI LETTER DHA 0A28 ; OtherLetter # Lo GURMUKHI LETTER NA 0A2A ; OtherLetter # Lo GURMUKHI LETTER PA 0A2B ; OtherLetter # Lo GURMUKHI LETTER PHA 0A2C ; OtherLetter # Lo GURMUKHI LETTER BA 0A2D ; OtherLetter # Lo GURMUKHI LETTER BHA 0A2E ; OtherLetter # Lo GURMUKHI LETTER MA 0A2F ; OtherLetter # Lo GURMUKHI LETTER YA 0A30 ; OtherLetter # Lo GURMUKHI LETTER RA 0A32 ; OtherLetter # Lo GURMUKHI LETTER LA 0A33 ; OtherLetter # Lo GURMUKHI LETTER LLA 0A35 ; OtherLetter # Lo GURMUKHI LETTER VA 0A36 ; OtherLetter # Lo GURMUKHI LETTER SHA 0A38 ; OtherLetter # Lo GURMUKHI LETTER SA 0A39 ; OtherLetter # Lo GURMUKHI LETTER HA 0A4D ; Virama # Mn GURMUKHI SIGN VIRAMA 0A59 ; OtherLetter # Lo GURMUKHI LETTER KHHA 0A5A ; OtherLetter # Lo GURMUKHI LETTER GHHA 0A5B ; OtherLetter # Lo GURMUKHI LETTER ZA 0A5C ; OtherLetter # Lo GURMUKHI LETTER RRA 0A5E ; OtherLetter # Lo GURMUKHI LETTER FA 0A72 ; OtherLetter # Lo GURMUKHI IRI 0A73 ; OtherLetter # Lo GURMUKHI URA 0A74 ; OtherLetter # Lo GURMUKHI EK ONKAR 0A85 ; OtherLetter # Lo GUJARATI LETTER A 0A86 ; OtherLetter # Lo GUJARATI LETTER AA 0A87 ; OtherLetter # Lo GUJARATI LETTER I 0A88 ; OtherLetter # Lo GUJARATI LETTER II 0A89 ; OtherLetter # Lo GUJARATI LETTER U 0A8A ; OtherLetter # Lo GUJARATI LETTER UU 0A8B ; OtherLetter # Lo GUJARATI LETTER VOCALIC R 0A8C ; OtherLetter # Lo GUJARATI LETTER VOCALIC L 0A8D ; OtherLetter # Lo GUJARATI VOWEL CANDRA E 0A8F ; OtherLetter # Lo GUJARATI LETTER E 0A90 ; OtherLetter # Lo GUJARATI LETTER AI 0A91 ; OtherLetter # Lo GUJARATI VOWEL CANDRA O 0A93 ; OtherLetter # Lo GUJARATI LETTER O 0A94 ; OtherLetter # Lo GUJARATI LETTER AU 0A95 ; OtherLetter # Lo GUJARATI LETTER KA 0A96 ; OtherLetter # Lo GUJARATI LETTER KHA 0A97 ; OtherLetter # Lo GUJARATI LETTER GA 0A98 ; OtherLetter # Lo GUJARATI LETTER GHA 0A99 ; OtherLetter # Lo GUJARATI LETTER NGA 0A9A ; OtherLetter # Lo GUJARATI LETTER CA 0A9B ; OtherLetter # Lo GUJARATI LETTER CHA 0A9C ; OtherLetter # Lo GUJARATI LETTER JA 0A9D ; OtherLetter # Lo GUJARATI LETTER JHA 0A9E ; OtherLetter # Lo GUJARATI LETTER NYA 0A9F ; OtherLetter # Lo GUJARATI LETTER TTA 0AA0 ; OtherLetter # Lo GUJARATI LETTER TTHA 0AA1 ; OtherLetter # Lo GUJARATI LETTER DDA 0AA2 ; OtherLetter # Lo GUJARATI LETTER DDHA 0AA3 ; OtherLetter # Lo GUJARATI LETTER NNA 0AA4 ; OtherLetter # Lo GUJARATI LETTER TA 0AA5 ; OtherLetter # Lo GUJARATI LETTER THA 0AA6 ; OtherLetter # Lo GUJARATI LETTER DA 0AA7 ; OtherLetter # Lo GUJARATI LETTER DHA 0AA8 ; OtherLetter # Lo GUJARATI LETTER NA 0AAA ; OtherLetter # Lo GUJARATI LETTER PA 0AAB ; OtherLetter # Lo GUJARATI LETTER PHA 0AAC ; OtherLetter # Lo GUJARATI LETTER BA 0AAD ; OtherLetter # Lo GUJARATI LETTER BHA 0AAE ; OtherLetter # Lo GUJARATI LETTER MA 0AAF ; OtherLetter # Lo GUJARATI LETTER YA 0AB0 ; OtherLetter # Lo GUJARATI LETTER RA 0AB2 ; OtherLetter # Lo GUJARATI LETTER LA 0AB3 ; OtherLetter # Lo GUJARATI LETTER LLA 0AB5 ; OtherLetter # Lo GUJARATI LETTER VA 0AB6 ; OtherLetter # Lo GUJARATI LETTER SHA 0AB7 ; OtherLetter # Lo GUJARATI LETTER SSA 0AB8 ; OtherLetter # Lo GUJARATI LETTER SA 0AB9 ; OtherLetter # Lo GUJARATI LETTER HA 0ABD ; OtherLetter # Lo GUJARATI SIGN AVAGRAHA 0ACD ; Virama # Mn GUJARATI SIGN VIRAMA 0AD0 ; OtherLetter # Lo GUJARATI OM 0AE0 ; OtherLetter # Lo GUJARATI LETTER VOCALIC RR 0AE1 ; OtherLetter # Lo GUJARATI LETTER VOCALIC LL 0B05 ; OtherLetter # Lo ORIYA LETTER A 0B06 ; OtherLetter # Lo ORIYA LETTER AA 0B07 ; OtherLetter # Lo ORIYA LETTER I 0B08 ; OtherLetter # Lo ORIYA LETTER II 0B09 ; OtherLetter # Lo ORIYA LETTER U 0B0A ; OtherLetter # Lo ORIYA LETTER UU 0B0B ; OtherLetter # Lo ORIYA LETTER VOCALIC R 0B0C ; OtherLetter # Lo ORIYA LETTER VOCALIC L 0B0F ; OtherLetter # Lo ORIYA LETTER E 0B10 ; OtherLetter # Lo ORIYA LETTER AI 0B13 ; OtherLetter # Lo ORIYA LETTER O 0B14 ; OtherLetter # Lo ORIYA LETTER AU 0B15 ; OtherLetter # Lo ORIYA LETTER KA 0B16 ; OtherLetter # Lo ORIYA LETTER KHA 0B17 ; OtherLetter # Lo ORIYA LETTER GA 0B18 ; OtherLetter # Lo ORIYA LETTER GHA 0B19 ; OtherLetter # Lo ORIYA LETTER NGA 0B1A ; OtherLetter # Lo ORIYA LETTER CA 0B1B ; OtherLetter # Lo ORIYA LETTER CHA 0B1C ; OtherLetter # Lo ORIYA LETTER JA 0B1D ; OtherLetter # Lo ORIYA LETTER JHA 0B1E ; OtherLetter # Lo ORIYA LETTER NYA 0B1F ; OtherLetter # Lo ORIYA LETTER TTA 0B20 ; OtherLetter # Lo ORIYA LETTER TTHA 0B21 ; OtherLetter # Lo ORIYA LETTER DDA 0B22 ; OtherLetter # Lo ORIYA LETTER DDHA 0B23 ; OtherLetter # Lo ORIYA LETTER NNA 0B24 ; OtherLetter # Lo ORIYA LETTER TA 0B25 ; OtherLetter # Lo ORIYA LETTER THA 0B26 ; OtherLetter # Lo ORIYA LETTER DA 0B27 ; OtherLetter # Lo ORIYA LETTER DHA 0B28 ; OtherLetter # Lo ORIYA LETTER NA 0B2A ; OtherLetter # Lo ORIYA LETTER PA 0B2B ; OtherLetter # Lo ORIYA LETTER PHA 0B2C ; OtherLetter # Lo ORIYA LETTER BA 0B2D ; OtherLetter # Lo ORIYA LETTER BHA 0B2E ; OtherLetter # Lo ORIYA LETTER MA 0B2F ; OtherLetter # Lo ORIYA LETTER YA 0B30 ; OtherLetter # Lo ORIYA LETTER RA 0B32 ; OtherLetter # Lo ORIYA LETTER LA 0B33 ; OtherLetter # Lo ORIYA LETTER LLA 0B35 ; OtherLetter # Lo ORIYA LETTER VA 0B36 ; OtherLetter # Lo ORIYA LETTER SHA 0B37 ; OtherLetter # Lo ORIYA LETTER SSA 0B38 ; OtherLetter # Lo ORIYA LETTER SA 0B39 ; OtherLetter # Lo ORIYA LETTER HA 0B3D ; OtherLetter # Lo ORIYA SIGN AVAGRAHA 0B4D ; Virama # Mn ORIYA SIGN VIRAMA 0B5C ; OtherLetter # Lo ORIYA LETTER RRA 0B5D ; OtherLetter # Lo ORIYA LETTER RHA 0B5F ; OtherLetter # Lo ORIYA LETTER YYA 0B60 ; OtherLetter # Lo ORIYA LETTER VOCALIC RR 0B61 ; OtherLetter # Lo ORIYA LETTER VOCALIC LL 0B71 ; OtherLetter # Lo ORIYA LETTER WA 0B83 ; OtherLetter # Lo TAMIL SIGN VISARGA 0B85 ; OtherLetter # Lo TAMIL LETTER A 0B86 ; OtherLetter # Lo TAMIL LETTER AA 0B87 ; OtherLetter # Lo TAMIL LETTER I 0B88 ; OtherLetter # Lo TAMIL LETTER II 0B89 ; OtherLetter # Lo TAMIL LETTER U 0B8A ; OtherLetter # Lo TAMIL LETTER UU 0B8E ; OtherLetter # Lo TAMIL LETTER E 0B8F ; OtherLetter # Lo TAMIL LETTER EE 0B90 ; OtherLetter # Lo TAMIL LETTER AI 0B92 ; OtherLetter # Lo TAMIL LETTER O 0B93 ; OtherLetter # Lo TAMIL LETTER OO 0B94 ; OtherLetter # Lo TAMIL LETTER AU 0B95 ; OtherLetter # Lo TAMIL LETTER KA 0B99 ; OtherLetter # Lo TAMIL LETTER NGA 0B9A ; OtherLetter # Lo TAMIL LETTER CA 0B9C ; OtherLetter # Lo TAMIL LETTER JA 0B9E ; OtherLetter # Lo TAMIL LETTER NYA 0B9F ; OtherLetter # Lo TAMIL LETTER TTA 0BA3 ; OtherLetter # Lo TAMIL LETTER NNA 0BA4 ; OtherLetter # Lo TAMIL LETTER TA 0BA8 ; OtherLetter # Lo TAMIL LETTER NA 0BA9 ; OtherLetter # Lo TAMIL LETTER NNNA 0BAA ; OtherLetter # Lo TAMIL LETTER PA 0BAE ; OtherLetter # Lo TAMIL LETTER MA 0BAF ; OtherLetter # Lo TAMIL LETTER YA 0BB0 ; OtherLetter # Lo TAMIL LETTER RA 0BB1 ; OtherLetter # Lo TAMIL LETTER RRA 0BB2 ; OtherLetter # Lo TAMIL LETTER LA 0BB3 ; OtherLetter # Lo TAMIL LETTER LLA 0BB4 ; OtherLetter # Lo TAMIL LETTER LLLA 0BB5 ; OtherLetter # Lo TAMIL LETTER VA 0BB6 ; OtherLetter # Lo TAMIL LETTER SHA 0BB7 ; OtherLetter # Lo TAMIL LETTER SSA 0BB8 ; OtherLetter # Lo TAMIL LETTER SA 0BB9 ; OtherLetter # Lo TAMIL LETTER HA 0BCD ; Virama # Mn TAMIL SIGN VIRAMA 0BD0 ; OtherLetter # Lo TAMIL OM 0C05 ; OtherLetter # Lo TELUGU LETTER A 0C06 ; OtherLetter # Lo TELUGU LETTER AA 0C07 ; OtherLetter # Lo TELUGU LETTER I 0C08 ; OtherLetter # Lo TELUGU LETTER II 0C09 ; OtherLetter # Lo TELUGU LETTER U 0C0A ; OtherLetter # Lo TELUGU LETTER UU 0C0B ; OtherLetter # Lo TELUGU LETTER VOCALIC R 0C0C ; OtherLetter # Lo TELUGU LETTER VOCALIC L 0C0E ; OtherLetter # Lo TELUGU LETTER E 0C0F ; OtherLetter # Lo TELUGU LETTER EE 0C10 ; OtherLetter # Lo TELUGU LETTER AI 0C12 ; OtherLetter # Lo TELUGU LETTER O 0C13 ; OtherLetter # Lo TELUGU LETTER OO 0C14 ; OtherLetter # Lo TELUGU LETTER AU 0C15 ; OtherLetter # Lo TELUGU LETTER KA 0C16 ; OtherLetter # Lo TELUGU LETTER KHA 0C17 ; OtherLetter # Lo TELUGU LETTER GA 0C18 ; OtherLetter # Lo TELUGU LETTER GHA 0C19 ; OtherLetter # Lo TELUGU LETTER NGA 0C1A ; OtherLetter # Lo TELUGU LETTER CA 0C1B ; OtherLetter # Lo TELUGU LETTER CHA 0C1C ; OtherLetter # Lo TELUGU LETTER JA 0C1D ; OtherLetter # Lo TELUGU LETTER JHA 0C1E ; OtherLetter # Lo TELUGU LETTER NYA 0C1F ; OtherLetter # Lo TELUGU LETTER TTA 0C20 ; OtherLetter # Lo TELUGU LETTER TTHA 0C21 ; OtherLetter # Lo TELUGU LETTER DDA 0C22 ; OtherLetter # Lo TELUGU LETTER DDHA 0C23 ; OtherLetter # Lo TELUGU LETTER NNA 0C24 ; OtherLetter # Lo TELUGU LETTER TA 0C25 ; OtherLetter # Lo TELUGU LETTER THA 0C26 ; OtherLetter # Lo TELUGU LETTER DA 0C27 ; OtherLetter # Lo TELUGU LETTER DHA 0C28 ; OtherLetter # Lo TELUGU LETTER NA 0C2A ; OtherLetter # Lo TELUGU LETTER PA 0C2B ; OtherLetter # Lo TELUGU LETTER PHA 0C2C ; OtherLetter # Lo TELUGU LETTER BA 0C2D ; OtherLetter # Lo TELUGU LETTER BHA 0C2E ; OtherLetter # Lo TELUGU LETTER MA 0C2F ; OtherLetter # Lo TELUGU LETTER YA 0C30 ; OtherLetter # Lo TELUGU LETTER RA 0C31 ; OtherLetter # Lo TELUGU LETTER RRA 0C32 ; OtherLetter # Lo TELUGU LETTER LA 0C33 ; OtherLetter # Lo TELUGU LETTER LLA 0C35 ; OtherLetter # Lo TELUGU LETTER VA 0C36 ; OtherLetter # Lo TELUGU LETTER SHA 0C37 ; OtherLetter # Lo TELUGU LETTER SSA 0C38 ; OtherLetter # Lo TELUGU LETTER SA 0C39 ; OtherLetter # Lo TELUGU LETTER HA 0C3D ; OtherLetter # Lo TELUGU SIGN AVAGRAHA 0C4D ; Virama # Mn TELUGU SIGN VIRAMA 0C58 ; OtherLetter # Lo TELUGU LETTER TSA 0C59 ; OtherLetter # Lo TELUGU LETTER DZA 0C60 ; OtherLetter # Lo TELUGU LETTER VOCALIC RR 0C61 ; OtherLetter # Lo TELUGU LETTER VOCALIC LL 0C85 ; OtherLetter # Lo KANNADA LETTER A 0C86 ; OtherLetter # Lo KANNADA LETTER AA 0C87 ; OtherLetter # Lo KANNADA LETTER I 0C88 ; OtherLetter # Lo KANNADA LETTER II 0C89 ; OtherLetter # Lo KANNADA LETTER U 0C8A ; OtherLetter # Lo KANNADA LETTER UU 0C8B ; OtherLetter # Lo KANNADA LETTER VOCALIC R 0C8C ; OtherLetter # Lo KANNADA LETTER VOCALIC L 0C8E ; OtherLetter # Lo KANNADA LETTER E 0C8F ; OtherLetter # Lo KANNADA LETTER EE 0C90 ; OtherLetter # Lo KANNADA LETTER AI 0C92 ; OtherLetter # Lo KANNADA LETTER O 0C93 ; OtherLetter # Lo KANNADA LETTER OO 0C94 ; OtherLetter # Lo KANNADA LETTER AU 0C95 ; OtherLetter # Lo KANNADA LETTER KA 0C96 ; OtherLetter # Lo KANNADA LETTER KHA 0C97 ; OtherLetter # Lo KANNADA LETTER GA 0C98 ; OtherLetter # Lo KANNADA LETTER GHA 0C99 ; OtherLetter # Lo KANNADA LETTER NGA 0C9A ; OtherLetter # Lo KANNADA LETTER CA 0C9B ; OtherLetter # Lo KANNADA LETTER CHA 0C9C ; OtherLetter # Lo KANNADA LETTER JA 0C9D ; OtherLetter # Lo KANNADA LETTER JHA 0C9E ; OtherLetter # Lo KANNADA LETTER NYA 0C9F ; OtherLetter # Lo KANNADA LETTER TTA 0CA0 ; OtherLetter # Lo KANNADA LETTER TTHA 0CA1 ; OtherLetter # Lo KANNADA LETTER DDA 0CA2 ; OtherLetter # Lo KANNADA LETTER DDHA 0CA3 ; OtherLetter # Lo KANNADA LETTER NNA 0CA4 ; OtherLetter # Lo KANNADA LETTER TA 0CA5 ; OtherLetter # Lo KANNADA LETTER THA 0CA6 ; OtherLetter # Lo KANNADA LETTER DA 0CA7 ; OtherLetter # Lo KANNADA LETTER DHA 0CA8 ; OtherLetter # Lo KANNADA LETTER NA 0CAA ; OtherLetter # Lo KANNADA LETTER PA 0CAB ; OtherLetter # Lo KANNADA LETTER PHA 0CAC ; OtherLetter # Lo KANNADA LETTER BA 0CAD ; OtherLetter # Lo KANNADA LETTER BHA 0CAE ; OtherLetter # Lo KANNADA LETTER MA 0CAF ; OtherLetter # Lo KANNADA LETTER YA 0CB0 ; OtherLetter # Lo KANNADA LETTER RA 0CB1 ; OtherLetter # Lo KANNADA LETTER RRA 0CB2 ; OtherLetter # Lo KANNADA LETTER LA 0CB3 ; OtherLetter # Lo KANNADA LETTER LLA 0CB5 ; OtherLetter # Lo KANNADA LETTER VA 0CB6 ; OtherLetter # Lo KANNADA LETTER SHA 0CB7 ; OtherLetter # Lo KANNADA LETTER SSA 0CB8 ; OtherLetter # Lo KANNADA LETTER SA 0CB9 ; OtherLetter # Lo KANNADA LETTER HA 0CBD ; OtherLetter # Lo KANNADA SIGN AVAGRAHA 0CCD ; Virama # Mn KANNADA SIGN VIRAMA 0CDE ; OtherLetter # Lo KANNADA LETTER FA 0CE0 ; OtherLetter # Lo KANNADA LETTER VOCALIC RR 0CE1 ; OtherLetter # Lo KANNADA LETTER VOCALIC LL 0CF1 ; OtherLetter # Lo KANNADA SIGN JIHVAMULIYA 0CF2 ; OtherLetter # Lo KANNADA SIGN UPADHMANIYA 0D05 ; OtherLetter # Lo MALAYALAM LETTER A 0D06 ; OtherLetter # Lo MALAYALAM LETTER AA 0D07 ; OtherLetter # Lo MALAYALAM LETTER I 0D08 ; OtherLetter # Lo MALAYALAM LETTER II 0D09 ; OtherLetter # Lo MALAYALAM LETTER U 0D0A ; OtherLetter # Lo MALAYALAM LETTER UU 0D0B ; OtherLetter # Lo MALAYALAM LETTER VOCALIC R 0D0C ; OtherLetter # Lo MALAYALAM LETTER VOCALIC L 0D0E ; OtherLetter # Lo MALAYALAM LETTER E 0D0F ; OtherLetter # Lo MALAYALAM LETTER EE 0D10 ; OtherLetter # Lo MALAYALAM LETTER AI 0D12 ; OtherLetter # Lo MALAYALAM LETTER O 0D13 ; OtherLetter # Lo MALAYALAM LETTER OO 0D14 ; OtherLetter # Lo MALAYALAM LETTER AU 0D15 ; OtherLetter # Lo MALAYALAM LETTER KA 0D16 ; OtherLetter # Lo MALAYALAM LETTER KHA 0D17 ; OtherLetter # Lo MALAYALAM LETTER GA 0D18 ; OtherLetter # Lo MALAYALAM LETTER GHA 0D19 ; OtherLetter # Lo MALAYALAM LETTER NGA 0D1A ; OtherLetter # Lo MALAYALAM LETTER CA 0D1B ; OtherLetter # Lo MALAYALAM LETTER CHA 0D1C ; OtherLetter # Lo MALAYALAM LETTER JA 0D1D ; OtherLetter # Lo MALAYALAM LETTER JHA 0D1E ; OtherLetter # Lo MALAYALAM LETTER NYA 0D1F ; OtherLetter # Lo MALAYALAM LETTER TTA 0D20 ; OtherLetter # Lo MALAYALAM LETTER TTHA 0D21 ; OtherLetter # Lo MALAYALAM LETTER DDA 0D22 ; OtherLetter # Lo MALAYALAM LETTER DDHA 0D23 ; OtherLetter # Lo MALAYALAM LETTER NNA 0D24 ; OtherLetter # Lo MALAYALAM LETTER TA 0D25 ; OtherLetter # Lo MALAYALAM LETTER THA 0D26 ; OtherLetter # Lo MALAYALAM LETTER DA 0D27 ; OtherLetter # Lo MALAYALAM LETTER DHA 0D28 ; OtherLetter # Lo MALAYALAM LETTER NA 0D29 ; OtherLetter # Lo MALAYALAM LETTER NNNA 0D2A ; OtherLetter # Lo MALAYALAM LETTER PA 0D2B ; OtherLetter # Lo MALAYALAM LETTER PHA 0D2C ; OtherLetter # Lo MALAYALAM LETTER BA 0D2D ; OtherLetter # Lo MALAYALAM LETTER BHA 0D2E ; OtherLetter # Lo MALAYALAM LETTER MA 0D2F ; OtherLetter # Lo MALAYALAM LETTER YA 0D30 ; OtherLetter # Lo MALAYALAM LETTER RA 0D31 ; OtherLetter # Lo MALAYALAM LETTER RRA 0D32 ; OtherLetter # Lo MALAYALAM LETTER LA 0D33 ; OtherLetter # Lo MALAYALAM LETTER LLA 0D34 ; OtherLetter # Lo MALAYALAM LETTER LLLA 0D35 ; OtherLetter # Lo MALAYALAM LETTER VA 0D36 ; OtherLetter # Lo MALAYALAM LETTER SHA 0D37 ; OtherLetter # Lo MALAYALAM LETTER SSA 0D38 ; OtherLetter # Lo MALAYALAM LETTER SA 0D39 ; OtherLetter # Lo MALAYALAM LETTER HA 0D3A ; OtherLetter # Lo MALAYALAM LETTER TTTA 0D3D ; OtherLetter # Lo MALAYALAM SIGN AVAGRAHA 0D4D ; Virama # Mn MALAYALAM SIGN VIRAMA 0D4E ; OtherLetter # Lo MALAYALAM LETTER DOT REPH 0D60 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC RR 0D61 ; OtherLetter # Lo MALAYALAM LETTER VOCALIC LL 0D7A ; OtherLetter # Lo MALAYALAM LETTER CHILLU NN 0D7B ; OtherLetter # Lo MALAYALAM LETTER CHILLU N 0D7C ; OtherLetter # Lo MALAYALAM LETTER CHILLU RR 0D7D ; OtherLetter # Lo MALAYALAM LETTER CHILLU L 0D7E ; OtherLetter # Lo MALAYALAM LETTER CHILLU LL 0D7F ; OtherLetter # Lo MALAYALAM LETTER CHILLU K 0D85 ; OtherLetter # Lo SINHALA LETTER AYANNA 0D86 ; OtherLetter # Lo SINHALA LETTER AAYANNA 0D87 ; OtherLetter # Lo SINHALA LETTER AEYANNA 0D88 ; OtherLetter # Lo SINHALA LETTER AEEYANNA 0D89 ; OtherLetter # Lo SINHALA LETTER IYANNA 0D8A ; OtherLetter # Lo SINHALA LETTER IIYANNA 0D8B ; OtherLetter # Lo SINHALA LETTER UYANNA 0D8C ; OtherLetter # Lo SINHALA LETTER UUYANNA 0D8D ; OtherLetter # Lo SINHALA LETTER IRUYANNA 0D8E ; OtherLetter # Lo SINHALA LETTER IRUUYANNA 0D8F ; OtherLetter # Lo SINHALA LETTER ILUYANNA 0D90 ; OtherLetter # Lo SINHALA LETTER ILUUYANNA 0D91 ; OtherLetter # Lo SINHALA LETTER EYANNA 0D92 ; OtherLetter # Lo SINHALA LETTER EEYANNA 0D93 ; OtherLetter # Lo SINHALA LETTER AIYANNA 0D94 ; OtherLetter # Lo SINHALA LETTER OYANNA 0D95 ; OtherLetter # Lo SINHALA LETTER OOYANNA 0D96 ; OtherLetter # Lo SINHALA LETTER AUYANNA 0D9A ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA KAYANNA 0D9B ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA KAYANNA 0D9C ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA GAYANNA 0D9D ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA GAYANNA 0D9E ; OtherLetter # Lo SINHALA LETTER KANTAJA NAASIKYAYA 0D9F ; OtherLetter # Lo SINHALA LETTER SANYAKA GAYANNA 0DA0 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA CAYANNA 0DA1 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA CAYANNA 0DA2 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA JAYANNA 0DA3 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA JAYANNA 0DA4 ; OtherLetter # Lo SINHALA LETTER TAALUJA NAASIKYAYA 0DA5 ; OtherLetter # Lo SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA 0DA6 ; OtherLetter # Lo SINHALA LETTER SANYAKA JAYANNA 0DA7 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TTAYANNA 0DA8 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TTAYANNA 0DA9 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DDAYANNA 0DAA ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DDAYANNA 0DAB ; OtherLetter # Lo SINHALA LETTER MUURDHAJA NAYANNA 0DAC ; OtherLetter # Lo SINHALA LETTER SANYAKA DDAYANNA 0DAD ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA TAYANNA 0DAE ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA TAYANNA 0DAF ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA DAYANNA 0DB0 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA DAYANNA 0DB1 ; OtherLetter # Lo SINHALA LETTER DANTAJA NAYANNA 0DB3 ; OtherLetter # Lo SINHALA LETTER SANYAKA DAYANNA 0DB4 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA PAYANNA 0DB5 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA PAYANNA 0DB6 ; OtherLetter # Lo SINHALA LETTER ALPAPRAANA BAYANNA 0DB7 ; OtherLetter # Lo SINHALA LETTER MAHAAPRAANA BAYANNA 0DB8 ; OtherLetter # Lo SINHALA LETTER MAYANNA 0DB9 ; OtherLetter # Lo SINHALA LETTER AMBA BAYANNA 0DBA ; OtherLetter # Lo SINHALA LETTER YAYANNA 0DBB ; OtherLetter # Lo SINHALA LETTER RAYANNA 0DBD ; OtherLetter # Lo SINHALA LETTER DANTAJA LAYANNA 0DC0 ; OtherLetter # Lo SINHALA LETTER VAYANNA 0DC1 ; OtherLetter # Lo SINHALA LETTER TAALUJA SAYANNA 0DC2 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA SAYANNA 0DC3 ; OtherLetter # Lo SINHALA LETTER DANTAJA SAYANNA 0DC4 ; OtherLetter # Lo SINHALA LETTER HAYANNA 0DC5 ; OtherLetter # Lo SINHALA LETTER MUURDHAJA LAYANNA 0DC6 ; OtherLetter # Lo SINHALA LETTER FAYANNA 0DCA ; Virama # Mn SINHALA SIGN AL-LAKUNA 0E01 ; OtherLetter # Lo THAI CHARACTER KO KAI 0E02 ; OtherLetter # Lo THAI CHARACTER KHO KHAI 0E03 ; OtherLetter # Lo THAI CHARACTER KHO KHUAT 0E04 ; OtherLetter # Lo THAI CHARACTER KHO KHWAI 0E05 ; OtherLetter # Lo THAI CHARACTER KHO KHON 0E06 ; OtherLetter # Lo THAI CHARACTER KHO RAKHANG 0E07 ; OtherLetter # Lo THAI CHARACTER NGO NGU 0E08 ; OtherLetter # Lo THAI CHARACTER CHO CHAN 0E09 ; OtherLetter # Lo THAI CHARACTER CHO CHING 0E0A ; OtherLetter # Lo THAI CHARACTER CHO CHANG 0E0B ; OtherLetter # Lo THAI CHARACTER SO SO 0E0C ; OtherLetter # Lo THAI CHARACTER CHO CHOE 0E0D ; OtherLetter # Lo THAI CHARACTER YO YING 0E0E ; OtherLetter # Lo THAI CHARACTER DO CHADA 0E0F ; OtherLetter # Lo THAI CHARACTER TO PATAK 0E10 ; OtherLetter # Lo THAI CHARACTER THO THAN 0E11 ; OtherLetter # Lo THAI CHARACTER THO NANGMONTHO 0E12 ; OtherLetter # Lo THAI CHARACTER THO PHUTHAO 0E13 ; OtherLetter # Lo THAI CHARACTER NO NEN 0E14 ; OtherLetter # Lo THAI CHARACTER DO DEK 0E15 ; OtherLetter # Lo THAI CHARACTER TO TAO 0E16 ; OtherLetter # Lo THAI CHARACTER THO THUNG 0E17 ; OtherLetter # Lo THAI CHARACTER THO THAHAN 0E18 ; OtherLetter # Lo THAI CHARACTER THO THONG 0E19 ; OtherLetter # Lo THAI CHARACTER NO NU 0E1A ; OtherLetter # Lo THAI CHARACTER BO BAIMAI 0E1B ; OtherLetter # Lo THAI CHARACTER PO PLA 0E1C ; OtherLetter # Lo THAI CHARACTER PHO PHUNG 0E1D ; OtherLetter # Lo THAI CHARACTER FO FA 0E1E ; OtherLetter # Lo THAI CHARACTER PHO PHAN 0E1F ; OtherLetter # Lo THAI CHARACTER FO FAN 0E20 ; OtherLetter # Lo THAI CHARACTER PHO SAMPHAO 0E21 ; OtherLetter # Lo THAI CHARACTER MO MA 0E22 ; OtherLetter # Lo THAI CHARACTER YO YAK 0E23 ; OtherLetter # Lo THAI CHARACTER RO RUA 0E24 ; OtherLetter # Lo THAI CHARACTER RU 0E25 ; OtherLetter # Lo THAI CHARACTER LO LING 0E26 ; OtherLetter # Lo THAI CHARACTER LU 0E27 ; OtherLetter # Lo THAI CHARACTER WO WAEN 0E28 ; OtherLetter # Lo THAI CHARACTER SO SALA 0E29 ; OtherLetter # Lo THAI CHARACTER SO RUSI 0E2A ; OtherLetter # Lo THAI CHARACTER SO SUA 0E2B ; OtherLetter # Lo THAI CHARACTER HO HIP 0E2C ; OtherLetter # Lo THAI CHARACTER LO CHULA 0E2D ; OtherLetter # Lo THAI CHARACTER O ANG 0E2E ; OtherLetter # Lo THAI CHARACTER HO NOKHUK 0E2F ; OtherLetter # Lo THAI CHARACTER PAIYANNOI 0E3A ; Virama # Mn THAI CHARACTER PHINTHU 0E46 ; OtherLetter # Lm THAI CHARACTER MAIYAMOK 0F00 ; OtherLetter # Lo TIBETAN SYLLABLE OM 0F40 ; OtherLetter # Lo TIBETAN LETTER KA 0F41 ; OtherLetter # Lo TIBETAN LETTER KHA 0F42 ; OtherLetter # Lo TIBETAN LETTER GA 0F43 ; OtherLetter # Lo TIBETAN LETTER GHA 0F44 ; OtherLetter # Lo TIBETAN LETTER NGA 0F45 ; OtherLetter # Lo TIBETAN LETTER CA 0F46 ; OtherLetter # Lo TIBETAN LETTER CHA 0F47 ; OtherLetter # Lo TIBETAN LETTER JA 0F49 ; OtherLetter # Lo TIBETAN LETTER NYA 0F4A ; OtherLetter # Lo TIBETAN LETTER TTA 0F4B ; OtherLetter # Lo TIBETAN LETTER TTHA 0F4C ; OtherLetter # Lo TIBETAN LETTER DDA 0F4D ; OtherLetter # Lo TIBETAN LETTER DDHA 0F4E ; OtherLetter # Lo TIBETAN LETTER NNA 0F4F ; OtherLetter # Lo TIBETAN LETTER TA 0F50 ; OtherLetter # Lo TIBETAN LETTER THA 0F51 ; OtherLetter # Lo TIBETAN LETTER DA 0F52 ; OtherLetter # Lo TIBETAN LETTER DHA 0F53 ; OtherLetter # Lo TIBETAN LETTER NA 0F54 ; OtherLetter # Lo TIBETAN LETTER PA 0F55 ; OtherLetter # Lo TIBETAN LETTER PHA 0F56 ; OtherLetter # Lo TIBETAN LETTER BA 0F57 ; OtherLetter # Lo TIBETAN LETTER BHA 0F58 ; OtherLetter # Lo TIBETAN LETTER MA 0F59 ; OtherLetter # Lo TIBETAN LETTER TSA 0F5A ; OtherLetter # Lo TIBETAN LETTER TSHA 0F5B ; OtherLetter # Lo TIBETAN LETTER DZA 0F5C ; OtherLetter # Lo TIBETAN LETTER DZHA 0F5D ; OtherLetter # Lo TIBETAN LETTER WA 0F5E ; OtherLetter # Lo TIBETAN LETTER ZHA 0F5F ; OtherLetter # Lo TIBETAN LETTER ZA 0F60 ; OtherLetter # Lo TIBETAN LETTER -A 0F61 ; OtherLetter # Lo TIBETAN LETTER YA 0F62 ; OtherLetter # Lo TIBETAN LETTER RA 0F63 ; OtherLetter # Lo TIBETAN LETTER LA 0F64 ; OtherLetter # Lo TIBETAN LETTER SHA 0F65 ; OtherLetter # Lo TIBETAN LETTER SSA 0F66 ; OtherLetter # Lo TIBETAN LETTER SA 0F67 ; OtherLetter # Lo TIBETAN LETTER HA 0F68 ; OtherLetter # Lo TIBETAN LETTER A 0F69 ; OtherLetter # Lo TIBETAN LETTER KSSA 0F6A ; OtherLetter # Lo TIBETAN LETTER FIXED-FORM RA 0F6B ; OtherLetter # Lo TIBETAN LETTER KKA 0F6C ; OtherLetter # Lo TIBETAN LETTER RRA 0F84 ; Virama # Mn TIBETAN MARK HALANTA 0F88 ; OtherLetter # Lo TIBETAN SIGN LCE TSA CAN 0F89 ; OtherLetter # Lo TIBETAN SIGN MCHU CAN 0F8A ; OtherLetter # Lo TIBETAN SIGN GRU CAN RGYINGS 0F8B ; OtherLetter # Lo TIBETAN SIGN GRU MED RGYINGS 0F8C ; OtherLetter # Lo TIBETAN SIGN INVERTED MCHU CAN 1000 ; OtherLetter # Lo MYANMAR LETTER KA 1001 ; OtherLetter # Lo MYANMAR LETTER KHA 1002 ; OtherLetter # Lo MYANMAR LETTER GA 1003 ; OtherLetter # Lo MYANMAR LETTER GHA 1004 ; OtherLetter # Lo MYANMAR LETTER NGA 1005 ; OtherLetter # Lo MYANMAR LETTER CA 1006 ; OtherLetter # Lo MYANMAR LETTER CHA 1007 ; OtherLetter # Lo MYANMAR LETTER JA 1008 ; OtherLetter # Lo MYANMAR LETTER JHA 1009 ; OtherLetter # Lo MYANMAR LETTER NYA 100A ; OtherLetter # Lo MYANMAR LETTER NNYA 100B ; OtherLetter # Lo MYANMAR LETTER TTA 100C ; OtherLetter # Lo MYANMAR LETTER TTHA 100D ; OtherLetter # Lo MYANMAR LETTER DDA 100E ; OtherLetter # Lo MYANMAR LETTER DDHA 100F ; OtherLetter # Lo MYANMAR LETTER NNA 1010 ; OtherLetter # Lo MYANMAR LETTER TA 1011 ; OtherLetter # Lo MYANMAR LETTER THA 1012 ; OtherLetter # Lo MYANMAR LETTER DA 1013 ; OtherLetter # Lo MYANMAR LETTER DHA 1014 ; OtherLetter # Lo MYANMAR LETTER NA 1015 ; OtherLetter # Lo MYANMAR LETTER PA 1016 ; OtherLetter # Lo MYANMAR LETTER PHA 1017 ; OtherLetter # Lo MYANMAR LETTER BA 1018 ; OtherLetter # Lo MYANMAR LETTER BHA 1019 ; OtherLetter # Lo MYANMAR LETTER MA 101A ; OtherLetter # Lo MYANMAR LETTER YA 101B ; OtherLetter # Lo MYANMAR LETTER RA 101C ; OtherLetter # Lo MYANMAR LETTER LA 101D ; OtherLetter # Lo MYANMAR LETTER WA 101E ; OtherLetter # Lo MYANMAR LETTER SA 101F ; OtherLetter # Lo MYANMAR LETTER HA 1020 ; OtherLetter # Lo MYANMAR LETTER LLA 1021 ; OtherLetter # Lo MYANMAR LETTER A 1022 ; OtherLetter # Lo MYANMAR LETTER SHAN A 1023 ; OtherLetter # Lo MYANMAR LETTER I 1024 ; OtherLetter # Lo MYANMAR LETTER II 1025 ; OtherLetter # Lo MYANMAR LETTER U 1026 ; OtherLetter # Lo MYANMAR LETTER UU 1027 ; OtherLetter # Lo MYANMAR LETTER E 1028 ; OtherLetter # Lo MYANMAR LETTER MON E 1029 ; OtherLetter # Lo MYANMAR LETTER O 102A ; OtherLetter # Lo MYANMAR LETTER AU 1039 ; Virama # Mn MYANMAR SIGN VIRAMA 103A ; Virama # Mn MYANMAR SIGN ASAT 103F ; OtherLetter # Lo MYANMAR LETTER GREAT SA 1050 ; OtherLetter # Lo MYANMAR LETTER SHA 1051 ; OtherLetter # Lo MYANMAR LETTER SSA 1052 ; OtherLetter # Lo MYANMAR LETTER VOCALIC R 1053 ; OtherLetter # Lo MYANMAR LETTER VOCALIC RR 1054 ; OtherLetter # Lo MYANMAR LETTER VOCALIC L 1055 ; OtherLetter # Lo MYANMAR LETTER VOCALIC LL 105A ; OtherLetter # Lo MYANMAR LETTER MON NGA 105B ; OtherLetter # Lo MYANMAR LETTER MON JHA 105C ; OtherLetter # Lo MYANMAR LETTER MON BBA 105D ; OtherLetter # Lo MYANMAR LETTER MON BBE 1061 ; OtherLetter # Lo MYANMAR LETTER SGAW KAREN SHA 1065 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN THA 1066 ; OtherLetter # Lo MYANMAR LETTER WESTERN PWO KAREN PWA 106E ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN NNA 106F ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN YWA 1070 ; OtherLetter # Lo MYANMAR LETTER EASTERN PWO KAREN GHWA 1075 ; OtherLetter # Lo MYANMAR LETTER SHAN KA 1076 ; OtherLetter # Lo MYANMAR LETTER SHAN KHA 1077 ; OtherLetter # Lo MYANMAR LETTER SHAN GA 1078 ; OtherLetter # Lo MYANMAR LETTER SHAN CA 1079 ; OtherLetter # Lo MYANMAR LETTER SHAN ZA 107A ; OtherLetter # Lo MYANMAR LETTER SHAN NYA 107B ; OtherLetter # Lo MYANMAR LETTER SHAN DA 107C ; OtherLetter # Lo MYANMAR LETTER SHAN NA 107D ; OtherLetter # Lo MYANMAR LETTER SHAN PHA 107E ; OtherLetter # Lo MYANMAR LETTER SHAN FA 107F ; OtherLetter # Lo MYANMAR LETTER SHAN BA 1080 ; OtherLetter # Lo MYANMAR LETTER SHAN THA 1081 ; OtherLetter # Lo MYANMAR LETTER SHAN HA 108E ; OtherLetter # Lo MYANMAR LETTER RUMAI PALAUNG FA 1700 ; OtherLetter # Lo TAGALOG LETTER A 1701 ; OtherLetter # Lo TAGALOG LETTER I 1702 ; OtherLetter # Lo TAGALOG LETTER U 1703 ; OtherLetter # Lo TAGALOG LETTER KA 1704 ; OtherLetter # Lo TAGALOG LETTER GA 1705 ; OtherLetter # Lo TAGALOG LETTER NGA 1706 ; OtherLetter # Lo TAGALOG LETTER TA 1707 ; OtherLetter # Lo TAGALOG LETTER DA 1708 ; OtherLetter # Lo TAGALOG LETTER NA 1709 ; OtherLetter # Lo TAGALOG LETTER PA 170A ; OtherLetter # Lo TAGALOG LETTER BA 170B ; OtherLetter # Lo TAGALOG LETTER MA 170C ; OtherLetter # Lo TAGALOG LETTER YA 170E ; OtherLetter # Lo TAGALOG LETTER LA 170F ; OtherLetter # Lo TAGALOG LETTER WA 1710 ; OtherLetter # Lo TAGALOG LETTER SA 1711 ; OtherLetter # Lo TAGALOG LETTER HA 1714 ; Virama # Mn TAGALOG SIGN VIRAMA 1720 ; OtherLetter # Lo HANUNOO LETTER A 1721 ; OtherLetter # Lo HANUNOO LETTER I 1722 ; OtherLetter # Lo HANUNOO LETTER U 1723 ; OtherLetter # Lo HANUNOO LETTER KA 1724 ; OtherLetter # Lo HANUNOO LETTER GA 1725 ; OtherLetter # Lo HANUNOO LETTER NGA 1726 ; OtherLetter # Lo HANUNOO LETTER TA 1727 ; OtherLetter # Lo HANUNOO LETTER DA 1728 ; OtherLetter # Lo HANUNOO LETTER NA 1729 ; OtherLetter # Lo HANUNOO LETTER PA 172A ; OtherLetter # Lo HANUNOO LETTER BA 172B ; OtherLetter # Lo HANUNOO LETTER MA 172C ; OtherLetter # Lo HANUNOO LETTER YA 172D ; OtherLetter # Lo HANUNOO LETTER RA 172E ; OtherLetter # Lo HANUNOO LETTER LA 172F ; OtherLetter # Lo HANUNOO LETTER WA 1730 ; OtherLetter # Lo HANUNOO LETTER SA 1731 ; OtherLetter # Lo HANUNOO LETTER HA 1734 ; Virama # Mn HANUNOO SIGN PAMUDPOD 1780 ; OtherLetter # Lo KHMER LETTER KA 1781 ; OtherLetter # Lo KHMER LETTER KHA 1782 ; OtherLetter # Lo KHMER LETTER KO 1783 ; OtherLetter # Lo KHMER LETTER KHO 1784 ; OtherLetter # Lo KHMER LETTER NGO 1785 ; OtherLetter # Lo KHMER LETTER CA 1786 ; OtherLetter # Lo KHMER LETTER CHA 1787 ; OtherLetter # Lo KHMER LETTER CO 1788 ; OtherLetter # Lo KHMER LETTER CHO 1789 ; OtherLetter # Lo KHMER LETTER NYO 178A ; OtherLetter # Lo KHMER LETTER DA 178B ; OtherLetter # Lo KHMER LETTER TTHA 178C ; OtherLetter # Lo KHMER LETTER DO 178D ; OtherLetter # Lo KHMER LETTER TTHO 178E ; OtherLetter # Lo KHMER LETTER NNO 178F ; OtherLetter # Lo KHMER LETTER TA 1790 ; OtherLetter # Lo KHMER LETTER THA 1791 ; OtherLetter # Lo KHMER LETTER TO 1792 ; OtherLetter # Lo KHMER LETTER THO 1793 ; OtherLetter # Lo KHMER LETTER NO 1794 ; OtherLetter # Lo KHMER LETTER BA 1795 ; OtherLetter # Lo KHMER LETTER PHA 1796 ; OtherLetter # Lo KHMER LETTER PO 1797 ; OtherLetter # Lo KHMER LETTER PHO 1798 ; OtherLetter # Lo KHMER LETTER MO 1799 ; OtherLetter # Lo KHMER LETTER YO 179A ; OtherLetter # Lo KHMER LETTER RO 179B ; OtherLetter # Lo KHMER LETTER LO 179C ; OtherLetter # Lo KHMER LETTER VO 179D ; OtherLetter # Lo KHMER LETTER SHA 179E ; OtherLetter # Lo KHMER LETTER SSO 179F ; OtherLetter # Lo KHMER LETTER SA 17A0 ; OtherLetter # Lo KHMER LETTER HA 17A1 ; OtherLetter # Lo KHMER LETTER LA 17A2 ; OtherLetter # Lo KHMER LETTER QA 17A3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAQ 17A4 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAA 17A5 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QI 17A6 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QII 17A7 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QU 17A8 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUK 17A9 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUU 17AA ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QUUV 17AB ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RY 17AC ; OtherLetter # Lo KHMER INDEPENDENT VOWEL RYY 17AD ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LY 17AE ; OtherLetter # Lo KHMER INDEPENDENT VOWEL LYY 17AF ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QE 17B0 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAI 17B1 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE ONE 17B2 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QOO TYPE TWO 17B3 ; OtherLetter # Lo KHMER INDEPENDENT VOWEL QAU 17D2 ; Virama # Mn KHMER SIGN COENG 17D7 ; OtherLetter # Lm KHMER SIGN LEK TOO 17DC ; OtherLetter # Lo KHMER SIGN AVAKRAHASANYA 1A20 ; OtherLetter # Lo TAI THAM LETTER HIGH KA 1A21 ; OtherLetter # Lo TAI THAM LETTER HIGH KHA 1A22 ; OtherLetter # Lo TAI THAM LETTER HIGH KXA 1A23 ; OtherLetter # Lo TAI THAM LETTER LOW KA 1A24 ; OtherLetter # Lo TAI THAM LETTER LOW KXA 1A25 ; OtherLetter # Lo TAI THAM LETTER LOW KHA 1A26 ; OtherLetter # Lo TAI THAM LETTER NGA 1A27 ; OtherLetter # Lo TAI THAM LETTER HIGH CA 1A28 ; OtherLetter # Lo TAI THAM LETTER HIGH CHA 1A29 ; OtherLetter # Lo TAI THAM LETTER LOW CA 1A2A ; OtherLetter # Lo TAI THAM LETTER LOW SA 1A2B ; OtherLetter # Lo TAI THAM LETTER LOW CHA 1A2C ; OtherLetter # Lo TAI THAM LETTER NYA 1A2D ; OtherLetter # Lo TAI THAM LETTER RATA 1A2E ; OtherLetter # Lo TAI THAM LETTER HIGH RATHA 1A2F ; OtherLetter # Lo TAI THAM LETTER DA 1A30 ; OtherLetter # Lo TAI THAM LETTER LOW RATHA 1A31 ; OtherLetter # Lo TAI THAM LETTER RANA 1A32 ; OtherLetter # Lo TAI THAM LETTER HIGH TA 1A33 ; OtherLetter # Lo TAI THAM LETTER HIGH THA 1A34 ; OtherLetter # Lo TAI THAM LETTER LOW TA 1A35 ; OtherLetter # Lo TAI THAM LETTER LOW THA 1A36 ; OtherLetter # Lo TAI THAM LETTER NA 1A37 ; OtherLetter # Lo TAI THAM LETTER BA 1A38 ; OtherLetter # Lo TAI THAM LETTER HIGH PA 1A39 ; OtherLetter # Lo TAI THAM LETTER HIGH PHA 1A3A ; OtherLetter # Lo TAI THAM LETTER HIGH FA 1A3B ; OtherLetter # Lo TAI THAM LETTER LOW PA 1A3C ; OtherLetter # Lo TAI THAM LETTER LOW FA 1A3D ; OtherLetter # Lo TAI THAM LETTER LOW PHA 1A3E ; OtherLetter # Lo TAI THAM LETTER MA 1A3F ; OtherLetter # Lo TAI THAM LETTER LOW YA 1A40 ; OtherLetter # Lo TAI THAM LETTER HIGH YA 1A41 ; OtherLetter # Lo TAI THAM LETTER RA 1A42 ; OtherLetter # Lo TAI THAM LETTER RUE 1A43 ; OtherLetter # Lo TAI THAM LETTER LA 1A44 ; OtherLetter # Lo TAI THAM LETTER LUE 1A45 ; OtherLetter # Lo TAI THAM LETTER WA 1A46 ; OtherLetter # Lo TAI THAM LETTER HIGH SHA 1A47 ; OtherLetter # Lo TAI THAM LETTER HIGH SSA 1A48 ; OtherLetter # Lo TAI THAM LETTER HIGH SA 1A49 ; OtherLetter # Lo TAI THAM LETTER HIGH HA 1A4A ; OtherLetter # Lo TAI THAM LETTER LLA 1A4B ; OtherLetter # Lo TAI THAM LETTER A 1A4C ; OtherLetter # Lo TAI THAM LETTER LOW HA 1A4D ; OtherLetter # Lo TAI THAM LETTER I 1A4E ; OtherLetter # Lo TAI THAM LETTER II 1A4F ; OtherLetter # Lo TAI THAM LETTER U 1A50 ; OtherLetter # Lo TAI THAM LETTER UU 1A51 ; OtherLetter # Lo TAI THAM LETTER EE 1A52 ; OtherLetter # Lo TAI THAM LETTER OO 1A53 ; OtherLetter # Lo TAI THAM LETTER LAE 1A54 ; OtherLetter # Lo TAI THAM LETTER GREAT SA 1A60 ; Virama # Mn TAI THAM SIGN SAKOT 1AA7 ; OtherLetter # Lm TAI THAM SIGN MAI YAMOK 1B05 ; OtherLetter # Lo BALINESE LETTER AKARA 1B06 ; OtherLetter # Lo BALINESE LETTER AKARA TEDUNG 1B07 ; OtherLetter # Lo BALINESE LETTER IKARA 1B08 ; OtherLetter # Lo BALINESE LETTER IKARA TEDUNG 1B09 ; OtherLetter # Lo BALINESE LETTER UKARA 1B0A ; OtherLetter # Lo BALINESE LETTER UKARA TEDUNG 1B0B ; OtherLetter # Lo BALINESE LETTER RA REPA 1B0C ; OtherLetter # Lo BALINESE LETTER RA REPA TEDUNG 1B0D ; OtherLetter # Lo BALINESE LETTER LA LENGA 1B0E ; OtherLetter # Lo BALINESE LETTER LA LENGA TEDUNG 1B0F ; OtherLetter # Lo BALINESE LETTER EKARA 1B10 ; OtherLetter # Lo BALINESE LETTER AIKARA 1B11 ; OtherLetter # Lo BALINESE LETTER OKARA 1B12 ; OtherLetter # Lo BALINESE LETTER OKARA TEDUNG 1B13 ; OtherLetter # Lo BALINESE LETTER KA 1B14 ; OtherLetter # Lo BALINESE LETTER KA MAHAPRANA 1B15 ; OtherLetter # Lo BALINESE LETTER GA 1B16 ; OtherLetter # Lo BALINESE LETTER GA GORA 1B17 ; OtherLetter # Lo BALINESE LETTER NGA 1B18 ; OtherLetter # Lo BALINESE LETTER CA 1B19 ; OtherLetter # Lo BALINESE LETTER CA LACA 1B1A ; OtherLetter # Lo BALINESE LETTER JA 1B1B ; OtherLetter # Lo BALINESE LETTER JA JERA 1B1C ; OtherLetter # Lo BALINESE LETTER NYA 1B1D ; OtherLetter # Lo BALINESE LETTER TA LATIK 1B1E ; OtherLetter # Lo BALINESE LETTER TA MURDA MAHAPRANA 1B1F ; OtherLetter # Lo BALINESE LETTER DA MURDA ALPAPRANA 1B20 ; OtherLetter # Lo BALINESE LETTER DA MURDA MAHAPRANA 1B21 ; OtherLetter # Lo BALINESE LETTER NA RAMBAT 1B22 ; OtherLetter # Lo BALINESE LETTER TA 1B23 ; OtherLetter # Lo BALINESE LETTER TA TAWA 1B24 ; OtherLetter # Lo BALINESE LETTER DA 1B25 ; OtherLetter # Lo BALINESE LETTER DA MADU 1B26 ; OtherLetter # Lo BALINESE LETTER NA 1B27 ; OtherLetter # Lo BALINESE LETTER PA 1B28 ; OtherLetter # Lo BALINESE LETTER PA KAPAL 1B29 ; OtherLetter # Lo BALINESE LETTER BA 1B2A ; OtherLetter # Lo BALINESE LETTER BA KEMBANG 1B2B ; OtherLetter # Lo BALINESE LETTER MA 1B2C ; OtherLetter # Lo BALINESE LETTER YA 1B2D ; OtherLetter # Lo BALINESE LETTER RA 1B2E ; OtherLetter # Lo BALINESE LETTER LA 1B2F ; OtherLetter # Lo BALINESE LETTER WA 1B30 ; OtherLetter # Lo BALINESE LETTER SA SAGA 1B31 ; OtherLetter # Lo BALINESE LETTER SA SAPA 1B32 ; OtherLetter # Lo BALINESE LETTER SA 1B33 ; OtherLetter # Lo BALINESE LETTER HA 1B44 ; Virama # Mc BALINESE ADEG ADEG 1B45 ; OtherLetter # Lo BALINESE LETTER KAF SASAK 1B46 ; OtherLetter # Lo BALINESE LETTER KHOT SASAK 1B47 ; OtherLetter # Lo BALINESE LETTER TZIR SASAK 1B48 ; OtherLetter # Lo BALINESE LETTER EF SASAK 1B49 ; OtherLetter # Lo BALINESE LETTER VE SASAK 1B4A ; OtherLetter # Lo BALINESE LETTER ZAL SASAK 1B4B ; OtherLetter # Lo BALINESE LETTER ASYURA SASAK 1B83 ; OtherLetter # Lo SUNDANESE LETTER A 1B84 ; OtherLetter # Lo SUNDANESE LETTER I 1B85 ; OtherLetter # Lo SUNDANESE LETTER U 1B86 ; OtherLetter # Lo SUNDANESE LETTER AE 1B87 ; OtherLetter # Lo SUNDANESE LETTER O 1B88 ; OtherLetter # Lo SUNDANESE LETTER E 1B89 ; OtherLetter # Lo SUNDANESE LETTER EU 1B8A ; OtherLetter # Lo SUNDANESE LETTER KA 1B8B ; OtherLetter # Lo SUNDANESE LETTER QA 1B8C ; OtherLetter # Lo SUNDANESE LETTER GA 1B8D ; OtherLetter # Lo SUNDANESE LETTER NGA 1B8E ; OtherLetter # Lo SUNDANESE LETTER CA 1B8F ; OtherLetter # Lo SUNDANESE LETTER JA 1B90 ; OtherLetter # Lo SUNDANESE LETTER ZA 1B91 ; OtherLetter # Lo SUNDANESE LETTER NYA 1B92 ; OtherLetter # Lo SUNDANESE LETTER TA 1B93 ; OtherLetter # Lo SUNDANESE LETTER DA 1B94 ; OtherLetter # Lo SUNDANESE LETTER NA 1B95 ; OtherLetter # Lo SUNDANESE LETTER PA 1B96 ; OtherLetter # Lo SUNDANESE LETTER FA 1B97 ; OtherLetter # Lo SUNDANESE LETTER VA 1B98 ; OtherLetter # Lo SUNDANESE LETTER BA 1B99 ; OtherLetter # Lo SUNDANESE LETTER MA 1B9A ; OtherLetter # Lo SUNDANESE LETTER YA 1B9B ; OtherLetter # Lo SUNDANESE LETTER RA 1B9C ; OtherLetter # Lo SUNDANESE LETTER LA 1B9D ; OtherLetter # Lo SUNDANESE LETTER WA 1B9E ; OtherLetter # Lo SUNDANESE LETTER SA 1B9F ; OtherLetter # Lo SUNDANESE LETTER XA 1BA0 ; OtherLetter # Lo SUNDANESE LETTER HA 1BAA ; Virama # Mc SUNDANESE SIGN PAMAAEH 1BAE ; OtherLetter # Lo SUNDANESE LETTER KHA 1BAF ; OtherLetter # Lo SUNDANESE LETTER SYA 1BC0 ; OtherLetter # Lo BATAK LETTER A 1BC1 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN A 1BC2 ; OtherLetter # Lo BATAK LETTER HA 1BC3 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN HA 1BC4 ; OtherLetter # Lo BATAK LETTER MANDAILING HA 1BC5 ; OtherLetter # Lo BATAK LETTER BA 1BC6 ; OtherLetter # Lo BATAK LETTER KARO BA 1BC7 ; OtherLetter # Lo BATAK LETTER PA 1BC8 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN PA 1BC9 ; OtherLetter # Lo BATAK LETTER NA 1BCA ; OtherLetter # Lo BATAK LETTER MANDAILING NA 1BCB ; OtherLetter # Lo BATAK LETTER WA 1BCC ; OtherLetter # Lo BATAK LETTER SIMALUNGUN WA 1BCD ; OtherLetter # Lo BATAK LETTER PAKPAK WA 1BCE ; OtherLetter # Lo BATAK LETTER GA 1BCF ; OtherLetter # Lo BATAK LETTER SIMALUNGUN GA 1BD0 ; OtherLetter # Lo BATAK LETTER JA 1BD1 ; OtherLetter # Lo BATAK LETTER DA 1BD2 ; OtherLetter # Lo BATAK LETTER RA 1BD3 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN RA 1BD4 ; OtherLetter # Lo BATAK LETTER MA 1BD5 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN MA 1BD6 ; OtherLetter # Lo BATAK LETTER SOUTHERN TA 1BD7 ; OtherLetter # Lo BATAK LETTER NORTHERN TA 1BD8 ; OtherLetter # Lo BATAK LETTER SA 1BD9 ; OtherLetter # Lo BATAK LETTER SIMALUNGUN SA 1BDA ; OtherLetter # Lo BATAK LETTER MANDAILING SA 1BDB ; OtherLetter # Lo BATAK LETTER YA 1BDC ; OtherLetter # Lo BATAK LETTER SIMALUNGUN YA 1BDD ; OtherLetter # Lo BATAK LETTER NGA 1BDE ; OtherLetter # Lo BATAK LETTER LA 1BDF ; OtherLetter # Lo BATAK LETTER SIMALUNGUN LA 1BE0 ; OtherLetter # Lo BATAK LETTER NYA 1BE1 ; OtherLetter # Lo BATAK LETTER CA 1BE2 ; OtherLetter # Lo BATAK LETTER NDA 1BE3 ; OtherLetter # Lo BATAK LETTER MBA 1BE4 ; OtherLetter # Lo BATAK LETTER I 1BE5 ; OtherLetter # Lo BATAK LETTER U 1BF2 ; Virama # Mc BATAK PANGOLAT 1BF3 ; Virama # Mc BATAK PANONGONAN 2D30 ; OtherLetter # Lo TIFINAGH LETTER YA 2D31 ; OtherLetter # Lo TIFINAGH LETTER YAB 2D32 ; OtherLetter # Lo TIFINAGH LETTER YABH 2D33 ; OtherLetter # Lo TIFINAGH LETTER YAG 2D34 ; OtherLetter # Lo TIFINAGH LETTER YAGHH 2D35 ; OtherLetter # Lo TIFINAGH LETTER BERBER ACADEMY YAJ 2D36 ; OtherLetter # Lo TIFINAGH LETTER YAJ 2D37 ; OtherLetter # Lo TIFINAGH LETTER YAD 2D38 ; OtherLetter # Lo TIFINAGH LETTER YADH 2D39 ; OtherLetter # Lo TIFINAGH LETTER YADD 2D3A ; OtherLetter # Lo TIFINAGH LETTER YADDH 2D3B ; OtherLetter # Lo TIFINAGH LETTER YEY 2D3C ; OtherLetter # Lo TIFINAGH LETTER YAF 2D3D ; OtherLetter # Lo TIFINAGH LETTER YAK 2D3E ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAK 2D3F ; OtherLetter # Lo TIFINAGH LETTER YAKHH 2D40 ; OtherLetter # Lo TIFINAGH LETTER YAH 2D41 ; OtherLetter # Lo TIFINAGH LETTER BERBER ACADEMY YAH 2D42 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAH 2D43 ; OtherLetter # Lo TIFINAGH LETTER YAHH 2D44 ; OtherLetter # Lo TIFINAGH LETTER YAA 2D45 ; OtherLetter # Lo TIFINAGH LETTER YAKH 2D46 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAKH 2D47 ; OtherLetter # Lo TIFINAGH LETTER YAQ 2D48 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAQ 2D49 ; OtherLetter # Lo TIFINAGH LETTER YI 2D4A ; OtherLetter # Lo TIFINAGH LETTER YAZH 2D4B ; OtherLetter # Lo TIFINAGH LETTER AHAGGAR YAZH 2D4C ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAZH 2D4D ; OtherLetter # Lo TIFINAGH LETTER YAL 2D4E ; OtherLetter # Lo TIFINAGH LETTER YAM 2D4F ; OtherLetter # Lo TIFINAGH LETTER YAN 2D50 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAGN 2D51 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YANG 2D52 ; OtherLetter # Lo TIFINAGH LETTER YAP 2D53 ; OtherLetter # Lo TIFINAGH LETTER YU 2D54 ; OtherLetter # Lo TIFINAGH LETTER YAR 2D55 ; OtherLetter # Lo TIFINAGH LETTER YARR 2D56 ; OtherLetter # Lo TIFINAGH LETTER YAGH 2D57 ; OtherLetter # Lo TIFINAGH LETTER TUAREG YAGH 2D58 ; OtherLetter # Lo TIFINAGH LETTER AYER YAGH 2D59 ; OtherLetter # Lo TIFINAGH LETTER YAS 2D5A ; OtherLetter # Lo TIFINAGH LETTER YASS 2D5B ; OtherLetter # Lo TIFINAGH LETTER YASH 2D5C ; OtherLetter # Lo TIFINAGH LETTER YAT 2D5D ; OtherLetter # Lo TIFINAGH LETTER YATH 2D5E ; OtherLetter # Lo TIFINAGH LETTER YACH 2D5F ; OtherLetter # Lo TIFINAGH LETTER YATT 2D60 ; OtherLetter # Lo TIFINAGH LETTER YAV 2D61 ; OtherLetter # Lo TIFINAGH LETTER YAW 2D62 ; OtherLetter # Lo TIFINAGH LETTER YAY 2D63 ; OtherLetter # Lo TIFINAGH LETTER YAZ 2D64 ; OtherLetter # Lo TIFINAGH LETTER TAWELLEMET YAZ 2D65 ; OtherLetter # Lo TIFINAGH LETTER YAZZ 2D6F ; OtherLetter # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK 2D7F ; Virama # Mn TIFINAGH CONSONANT JOINER A800 ; OtherLetter # Lo SYLOTI NAGRI LETTER A A801 ; OtherLetter # Lo SYLOTI NAGRI LETTER I A803 ; OtherLetter # Lo SYLOTI NAGRI LETTER U A804 ; OtherLetter # Lo SYLOTI NAGRI LETTER E A805 ; OtherLetter # Lo SYLOTI NAGRI LETTER O A806 ; Virama # Mn SYLOTI NAGRI SIGN HASANTA A807 ; OtherLetter # Lo SYLOTI NAGRI LETTER KO A808 ; OtherLetter # Lo SYLOTI NAGRI LETTER KHO A809 ; OtherLetter # Lo SYLOTI NAGRI LETTER GO A80A ; OtherLetter # Lo SYLOTI NAGRI LETTER GHO A80C ; OtherLetter # Lo SYLOTI NAGRI LETTER CO A80D ; OtherLetter # Lo SYLOTI NAGRI LETTER CHO A80E ; OtherLetter # Lo SYLOTI NAGRI LETTER JO A80F ; OtherLetter # Lo SYLOTI NAGRI LETTER JHO A810 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTO A811 ; OtherLetter # Lo SYLOTI NAGRI LETTER TTHO A812 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDO A813 ; OtherLetter # Lo SYLOTI NAGRI LETTER DDHO A814 ; OtherLetter # Lo SYLOTI NAGRI LETTER TO A815 ; OtherLetter # Lo SYLOTI NAGRI LETTER THO A816 ; OtherLetter # Lo SYLOTI NAGRI LETTER DO A817 ; OtherLetter # Lo SYLOTI NAGRI LETTER DHO A818 ; OtherLetter # Lo SYLOTI NAGRI LETTER NO A819 ; OtherLetter # Lo SYLOTI NAGRI LETTER PO A81A ; OtherLetter # Lo SYLOTI NAGRI LETTER PHO A81B ; OtherLetter # Lo SYLOTI NAGRI LETTER BO A81C ; OtherLetter # Lo SYLOTI NAGRI LETTER BHO A81D ; OtherLetter # Lo SYLOTI NAGRI LETTER MO A81E ; OtherLetter # Lo SYLOTI NAGRI LETTER RO A81F ; OtherLetter # Lo SYLOTI NAGRI LETTER LO A820 ; OtherLetter # Lo SYLOTI NAGRI LETTER RRO A821 ; OtherLetter # Lo SYLOTI NAGRI LETTER SO A822 ; OtherLetter # Lo SYLOTI NAGRI LETTER HO A882 ; OtherLetter # Lo SAURASHTRA LETTER A A883 ; OtherLetter # Lo SAURASHTRA LETTER AA A884 ; OtherLetter # Lo SAURASHTRA LETTER I A885 ; OtherLetter # Lo SAURASHTRA LETTER II A886 ; OtherLetter # Lo SAURASHTRA LETTER U A887 ; OtherLetter # Lo SAURASHTRA LETTER UU A888 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC R A889 ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC RR A88A ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC L A88B ; OtherLetter # Lo SAURASHTRA LETTER VOCALIC LL A88C ; OtherLetter # Lo SAURASHTRA LETTER E A88D ; OtherLetter # Lo SAURASHTRA LETTER EE A88E ; OtherLetter # Lo SAURASHTRA LETTER AI A88F ; OtherLetter # Lo SAURASHTRA LETTER O A890 ; OtherLetter # Lo SAURASHTRA LETTER OO A891 ; OtherLetter # Lo SAURASHTRA LETTER AU A892 ; OtherLetter # Lo SAURASHTRA LETTER KA A893 ; OtherLetter # Lo SAURASHTRA LETTER KHA A894 ; OtherLetter # Lo SAURASHTRA LETTER GA A895 ; OtherLetter # Lo SAURASHTRA LETTER GHA A896 ; OtherLetter # Lo SAURASHTRA LETTER NGA A897 ; OtherLetter # Lo SAURASHTRA LETTER CA A898 ; OtherLetter # Lo SAURASHTRA LETTER CHA A899 ; OtherLetter # Lo SAURASHTRA LETTER JA A89A ; OtherLetter # Lo SAURASHTRA LETTER JHA A89B ; OtherLetter # Lo SAURASHTRA LETTER NYA A89C ; OtherLetter # Lo SAURASHTRA LETTER TTA A89D ; OtherLetter # Lo SAURASHTRA LETTER TTHA A89E ; OtherLetter # Lo SAURASHTRA LETTER DDA A89F ; OtherLetter # Lo SAURASHTRA LETTER DDHA A8A0 ; OtherLetter # Lo SAURASHTRA LETTER NNA A8A1 ; OtherLetter # Lo SAURASHTRA LETTER TA A8A2 ; OtherLetter # Lo SAURASHTRA LETTER THA A8A3 ; OtherLetter # Lo SAURASHTRA LETTER DA A8A4 ; OtherLetter # Lo SAURASHTRA LETTER DHA A8A5 ; OtherLetter # Lo SAURASHTRA LETTER NA A8A6 ; OtherLetter # Lo SAURASHTRA LETTER PA A8A7 ; OtherLetter # Lo SAURASHTRA LETTER PHA A8A8 ; OtherLetter # Lo SAURASHTRA LETTER BA A8A9 ; OtherLetter # Lo SAURASHTRA LETTER BHA A8AA ; OtherLetter # Lo SAURASHTRA LETTER MA A8AB ; OtherLetter # Lo SAURASHTRA LETTER YA A8AC ; OtherLetter # Lo SAURASHTRA LETTER RA A8AD ; OtherLetter # Lo SAURASHTRA LETTER LA A8AE ; OtherLetter # Lo SAURASHTRA LETTER VA A8AF ; OtherLetter # Lo SAURASHTRA LETTER SHA A8B0 ; OtherLetter # Lo SAURASHTRA LETTER SSA A8B1 ; OtherLetter # Lo SAURASHTRA LETTER SA A8B2 ; OtherLetter # Lo SAURASHTRA LETTER HA A8B3 ; OtherLetter # Lo SAURASHTRA LETTER LLA A8C4 ; Virama # Mn SAURASHTRA SIGN VIRAMA A8F2 ; OtherLetter # Lo DEVANAGARI SIGN SPACING CANDRABINDU A8F3 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU VIRAMA A8F4 ; OtherLetter # Lo DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA A8F5 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU TWO A8F6 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU THREE A8F7 ; OtherLetter # Lo DEVANAGARI SIGN CANDRABINDU AVAGRAHA A8FB ; OtherLetter # Lo DEVANAGARI HEADSTROKE A930 ; OtherLetter # Lo REJANG LETTER KA A931 ; OtherLetter # Lo REJANG LETTER GA A932 ; OtherLetter # Lo REJANG LETTER NGA A933 ; OtherLetter # Lo REJANG LETTER TA A934 ; OtherLetter # Lo REJANG LETTER DA A935 ; OtherLetter # Lo REJANG LETTER NA A936 ; OtherLetter # Lo REJANG LETTER PA A937 ; OtherLetter # Lo REJANG LETTER BA A938 ; OtherLetter # Lo REJANG LETTER MA A939 ; OtherLetter # Lo REJANG LETTER CA A93A ; OtherLetter # Lo REJANG LETTER JA A93B ; OtherLetter # Lo REJANG LETTER NYA A93C ; OtherLetter # Lo REJANG LETTER SA A93D ; OtherLetter # Lo REJANG LETTER RA A93E ; OtherLetter # Lo REJANG LETTER LA A93F ; OtherLetter # Lo REJANG LETTER YA A940 ; OtherLetter # Lo REJANG LETTER WA A941 ; OtherLetter # Lo REJANG LETTER HA A942 ; OtherLetter # Lo REJANG LETTER MBA A943 ; OtherLetter # Lo REJANG LETTER NGGA A944 ; OtherLetter # Lo REJANG LETTER NDA A945 ; OtherLetter # Lo REJANG LETTER NYJA A946 ; OtherLetter # Lo REJANG LETTER A A953 ; Virama # Mc REJANG VIRAMA A984 ; OtherLetter # Lo JAVANESE LETTER A A985 ; OtherLetter # Lo JAVANESE LETTER I KAWI A986 ; OtherLetter # Lo JAVANESE LETTER I A987 ; OtherLetter # Lo JAVANESE LETTER II A988 ; OtherLetter # Lo JAVANESE LETTER U A989 ; OtherLetter # Lo JAVANESE LETTER PA CEREK A98A ; OtherLetter # Lo JAVANESE LETTER NGA LELET A98B ; OtherLetter # Lo JAVANESE LETTER NGA LELET RASWADI A98C ; OtherLetter # Lo JAVANESE LETTER E A98D ; OtherLetter # Lo JAVANESE LETTER AI A98E ; OtherLetter # Lo JAVANESE LETTER O A98F ; OtherLetter # Lo JAVANESE LETTER KA A990 ; OtherLetter # Lo JAVANESE LETTER KA SASAK A991 ; OtherLetter # Lo JAVANESE LETTER KA MURDA A992 ; OtherLetter # Lo JAVANESE LETTER GA A993 ; OtherLetter # Lo JAVANESE LETTER GA MURDA A994 ; OtherLetter # Lo JAVANESE LETTER NGA A995 ; OtherLetter # Lo JAVANESE LETTER CA A996 ; OtherLetter # Lo JAVANESE LETTER CA MURDA A997 ; OtherLetter # Lo JAVANESE LETTER JA A998 ; OtherLetter # Lo JAVANESE LETTER NYA MURDA A999 ; OtherLetter # Lo JAVANESE LETTER JA MAHAPRANA A99A ; OtherLetter # Lo JAVANESE LETTER NYA A99B ; OtherLetter # Lo JAVANESE LETTER TTA A99C ; OtherLetter # Lo JAVANESE LETTER TTA MAHAPRANA A99D ; OtherLetter # Lo JAVANESE LETTER DDA A99E ; OtherLetter # Lo JAVANESE LETTER DDA MAHAPRANA A99F ; OtherLetter # Lo JAVANESE LETTER NA MURDA A9A0 ; OtherLetter # Lo JAVANESE LETTER TA A9A1 ; OtherLetter # Lo JAVANESE LETTER TA MURDA A9A2 ; OtherLetter # Lo JAVANESE LETTER DA A9A3 ; OtherLetter # Lo JAVANESE LETTER DA MAHAPRANA A9A4 ; OtherLetter # Lo JAVANESE LETTER NA A9A5 ; OtherLetter # Lo JAVANESE LETTER PA A9A6 ; OtherLetter # Lo JAVANESE LETTER PA MURDA A9A7 ; OtherLetter # Lo JAVANESE LETTER BA A9A8 ; OtherLetter # Lo JAVANESE LETTER BA MURDA A9A9 ; OtherLetter # Lo JAVANESE LETTER MA A9AA ; OtherLetter # Lo JAVANESE LETTER YA A9AB ; OtherLetter # Lo JAVANESE LETTER RA A9AC ; OtherLetter # Lo JAVANESE LETTER RA AGUNG A9AD ; OtherLetter # Lo JAVANESE LETTER LA A9AE ; OtherLetter # Lo JAVANESE LETTER WA A9AF ; OtherLetter # Lo JAVANESE LETTER SA MURDA A9B0 ; OtherLetter # Lo JAVANESE LETTER SA MAHAPRANA A9B1 ; OtherLetter # Lo JAVANESE LETTER SA A9B2 ; OtherLetter # Lo JAVANESE LETTER HA A9C0 ; Virama # Mc JAVANESE PANGKON A9CF ; OtherLetter # Lm JAVANESE PANGRANGKEP AA60 ; OtherLetter # Lo MYANMAR LETTER KHAMTI GA AA61 ; OtherLetter # Lo MYANMAR LETTER KHAMTI CA AA62 ; OtherLetter # Lo MYANMAR LETTER KHAMTI CHA AA63 ; OtherLetter # Lo MYANMAR LETTER KHAMTI JA AA64 ; OtherLetter # Lo MYANMAR LETTER KHAMTI JHA AA65 ; OtherLetter # Lo MYANMAR LETTER KHAMTI NYA AA66 ; OtherLetter # Lo MYANMAR LETTER KHAMTI TTA AA67 ; OtherLetter # Lo MYANMAR LETTER KHAMTI TTHA AA68 ; OtherLetter # Lo MYANMAR LETTER KHAMTI DDA AA69 ; OtherLetter # Lo MYANMAR LETTER KHAMTI DDHA AA6A ; OtherLetter # Lo MYANMAR LETTER KHAMTI DHA AA6B ; OtherLetter # Lo MYANMAR LETTER KHAMTI NA AA6C ; OtherLetter # Lo MYANMAR LETTER KHAMTI SA AA6D ; OtherLetter # Lo MYANMAR LETTER KHAMTI HA AA6E ; OtherLetter # Lo MYANMAR LETTER KHAMTI HHA AA6F ; OtherLetter # Lo MYANMAR LETTER KHAMTI FA AA70 ; OtherLetter # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION AA71 ; OtherLetter # Lo MYANMAR LETTER KHAMTI XA AA72 ; OtherLetter # Lo MYANMAR LETTER KHAMTI ZA AA73 ; OtherLetter # Lo MYANMAR LETTER KHAMTI RA AA74 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI OAY AA75 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI QN AA76 ; OtherLetter # Lo MYANMAR LOGOGRAM KHAMTI HM AA7A ; OtherLetter # Lo MYANMAR LETTER AITON RA ABC0 ; OtherLetter # Lo MEETEI MAYEK LETTER KOK ABC1 ; OtherLetter # Lo MEETEI MAYEK LETTER SAM ABC2 ; OtherLetter # Lo MEETEI MAYEK LETTER LAI ABC3 ; OtherLetter # Lo MEETEI MAYEK LETTER MIT ABC4 ; OtherLetter # Lo MEETEI MAYEK LETTER PA ABC5 ; OtherLetter # Lo MEETEI MAYEK LETTER NA ABC6 ; OtherLetter # Lo MEETEI MAYEK LETTER CHIL ABC7 ; OtherLetter # Lo MEETEI MAYEK LETTER TIL ABC8 ; OtherLetter # Lo MEETEI MAYEK LETTER KHOU ABC9 ; OtherLetter # Lo MEETEI MAYEK LETTER NGOU ABCA ; OtherLetter # Lo MEETEI MAYEK LETTER THOU ABCB ; OtherLetter # Lo MEETEI MAYEK LETTER WAI ABCC ; OtherLetter # Lo MEETEI MAYEK LETTER YANG ABCD ; OtherLetter # Lo MEETEI MAYEK LETTER HUK ABCE ; OtherLetter # Lo MEETEI MAYEK LETTER UN ABCF ; OtherLetter # Lo MEETEI MAYEK LETTER I ABD0 ; OtherLetter # Lo MEETEI MAYEK LETTER PHAM ABD1 ; OtherLetter # Lo MEETEI MAYEK LETTER ATIYA ABD2 ; OtherLetter # Lo MEETEI MAYEK LETTER GOK ABD3 ; OtherLetter # Lo MEETEI MAYEK LETTER JHAM ABD4 ; OtherLetter # Lo MEETEI MAYEK LETTER RAI ABD5 ; OtherLetter # Lo MEETEI MAYEK LETTER BA ABD6 ; OtherLetter # Lo MEETEI MAYEK LETTER JIL ABD7 ; OtherLetter # Lo MEETEI MAYEK LETTER DIL ABD8 ; OtherLetter # Lo MEETEI MAYEK LETTER GHOU ABD9 ; OtherLetter # Lo MEETEI MAYEK LETTER DHOU ABDA ; OtherLetter # Lo MEETEI MAYEK LETTER BHAM ABDB ; OtherLetter # Lo MEETEI MAYEK LETTER KOK LONSUM ABDC ; OtherLetter # Lo MEETEI MAYEK LETTER LAI LONSUM ABDD ; OtherLetter # Lo MEETEI MAYEK LETTER MIT LONSUM ABDE ; OtherLetter # Lo MEETEI MAYEK LETTER PA LONSUM ABDF ; OtherLetter # Lo MEETEI MAYEK LETTER NA LONSUM ABE0 ; OtherLetter # Lo MEETEI MAYEK LETTER TIL LONSUM ABE1 ; OtherLetter # Lo MEETEI MAYEK LETTER NGOU LONSUM ABE2 ; OtherLetter # Lo MEETEI MAYEK LETTER I LONSUM ABED ; Virama # Mn MEETEI MAYEK APUN IYEK 10A00 ; OtherLetter # Lo KHAROSHTHI LETTER A 10A10 ; OtherLetter # Lo KHAROSHTHI LETTER KA 10A11 ; OtherLetter # Lo KHAROSHTHI LETTER KHA 10A12 ; OtherLetter # Lo KHAROSHTHI LETTER GA 10A13 ; OtherLetter # Lo KHAROSHTHI LETTER GHA 10A15 ; OtherLetter # Lo KHAROSHTHI LETTER CA 10A16 ; OtherLetter # Lo KHAROSHTHI LETTER CHA 10A17 ; OtherLetter # Lo KHAROSHTHI LETTER JA 10A19 ; OtherLetter # Lo KHAROSHTHI LETTER NYA 10A1A ; OtherLetter # Lo KHAROSHTHI LETTER TTA 10A1B ; OtherLetter # Lo KHAROSHTHI LETTER TTHA 10A1C ; OtherLetter # Lo KHAROSHTHI LETTER DDA 10A1D ; OtherLetter # Lo KHAROSHTHI LETTER DDHA 10A1E ; OtherLetter # Lo KHAROSHTHI LETTER NNA 10A1F ; OtherLetter # Lo KHAROSHTHI LETTER TA 10A20 ; OtherLetter # Lo KHAROSHTHI LETTER THA 10A21 ; OtherLetter # Lo KHAROSHTHI LETTER DA 10A22 ; OtherLetter # Lo KHAROSHTHI LETTER DHA 10A23 ; OtherLetter # Lo KHAROSHTHI LETTER NA 10A24 ; OtherLetter # Lo KHAROSHTHI LETTER PA 10A25 ; OtherLetter # Lo KHAROSHTHI LETTER PHA 10A26 ; OtherLetter # Lo KHAROSHTHI LETTER BA 10A27 ; OtherLetter # Lo KHAROSHTHI LETTER BHA 10A28 ; OtherLetter # Lo KHAROSHTHI LETTER MA 10A29 ; OtherLetter # Lo KHAROSHTHI LETTER YA 10A2A ; OtherLetter # Lo KHAROSHTHI LETTER RA 10A2B ; OtherLetter # Lo KHAROSHTHI LETTER LA 10A2C ; OtherLetter # Lo KHAROSHTHI LETTER VA 10A2D ; OtherLetter # Lo KHAROSHTHI LETTER SHA 10A2E ; OtherLetter # Lo KHAROSHTHI LETTER SSA 10A2F ; OtherLetter # Lo KHAROSHTHI LETTER SA 10A30 ; OtherLetter # Lo KHAROSHTHI LETTER ZA 10A31 ; OtherLetter # Lo KHAROSHTHI LETTER HA 10A32 ; OtherLetter # Lo KHAROSHTHI LETTER KKA 10A33 ; OtherLetter # Lo KHAROSHTHI LETTER TTTHA 10A3F ; Virama # Mn KHAROSHTHI VIRAMA 11003 ; OtherLetter # Lo BRAHMI SIGN JIHVAMULIYA 11004 ; OtherLetter # Lo BRAHMI SIGN UPADHMANIYA 11005 ; OtherLetter # Lo BRAHMI LETTER A 11006 ; OtherLetter # Lo BRAHMI LETTER AA 11007 ; OtherLetter # Lo BRAHMI LETTER I 11008 ; OtherLetter # Lo BRAHMI LETTER II 11009 ; OtherLetter # Lo BRAHMI LETTER U 1100A ; OtherLetter # Lo BRAHMI LETTER UU 1100B ; OtherLetter # Lo BRAHMI LETTER VOCALIC R 1100C ; OtherLetter # Lo BRAHMI LETTER VOCALIC RR 1100D ; OtherLetter # Lo BRAHMI LETTER VOCALIC L 1100E ; OtherLetter # Lo BRAHMI LETTER VOCALIC LL 1100F ; OtherLetter # Lo BRAHMI LETTER E 11010 ; OtherLetter # Lo BRAHMI LETTER AI 11011 ; OtherLetter # Lo BRAHMI LETTER O 11012 ; OtherLetter # Lo BRAHMI LETTER AU 11013 ; OtherLetter # Lo BRAHMI LETTER KA 11014 ; OtherLetter # Lo BRAHMI LETTER KHA 11015 ; OtherLetter # Lo BRAHMI LETTER GA 11016 ; OtherLetter # Lo BRAHMI LETTER GHA 11017 ; OtherLetter # Lo BRAHMI LETTER NGA 11018 ; OtherLetter # Lo BRAHMI LETTER CA 11019 ; OtherLetter # Lo BRAHMI LETTER CHA 1101A ; OtherLetter # Lo BRAHMI LETTER JA 1101B ; OtherLetter # Lo BRAHMI LETTER JHA 1101C ; OtherLetter # Lo BRAHMI LETTER NYA 1101D ; OtherLetter # Lo BRAHMI LETTER TTA 1101E ; OtherLetter # Lo BRAHMI LETTER TTHA 1101F ; OtherLetter # Lo BRAHMI LETTER DDA 11020 ; OtherLetter # Lo BRAHMI LETTER DDHA 11021 ; OtherLetter # Lo BRAHMI LETTER NNA 11022 ; OtherLetter # Lo BRAHMI LETTER TA 11023 ; OtherLetter # Lo BRAHMI LETTER THA 11024 ; OtherLetter # Lo BRAHMI LETTER DA 11025 ; OtherLetter # Lo BRAHMI LETTER DHA 11026 ; OtherLetter # Lo BRAHMI LETTER NA 11027 ; OtherLetter # Lo BRAHMI LETTER PA 11028 ; OtherLetter # Lo BRAHMI LETTER PHA 11029 ; OtherLetter # Lo BRAHMI LETTER BA 1102A ; OtherLetter # Lo BRAHMI LETTER BHA 1102B ; OtherLetter # Lo BRAHMI LETTER MA 1102C ; OtherLetter # Lo BRAHMI LETTER YA 1102D ; OtherLetter # Lo BRAHMI LETTER RA 1102E ; OtherLetter # Lo BRAHMI LETTER LA 1102F ; OtherLetter # Lo BRAHMI LETTER VA 11030 ; OtherLetter # Lo BRAHMI LETTER SHA 11031 ; OtherLetter # Lo BRAHMI LETTER SSA 11032 ; OtherLetter # Lo BRAHMI LETTER SA 11033 ; OtherLetter # Lo BRAHMI LETTER HA 11034 ; OtherLetter # Lo BRAHMI LETTER LLA 11035 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL LLLA 11036 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL RRA 11037 ; OtherLetter # Lo BRAHMI LETTER OLD TAMIL NNNA 11046 ; Virama # Mn BRAHMI VIRAMA 11083 ; OtherLetter # Lo KAITHI LETTER A 11084 ; OtherLetter # Lo KAITHI LETTER AA 11085 ; OtherLetter # Lo KAITHI LETTER I 11086 ; OtherLetter # Lo KAITHI LETTER II 11087 ; OtherLetter # Lo KAITHI LETTER U 11088 ; OtherLetter # Lo KAITHI LETTER UU 11089 ; OtherLetter # Lo KAITHI LETTER E 1108A ; OtherLetter # Lo KAITHI LETTER AI 1108B ; OtherLetter # Lo KAITHI LETTER O 1108C ; OtherLetter # Lo KAITHI LETTER AU 1108D ; OtherLetter # Lo KAITHI LETTER KA 1108E ; OtherLetter # Lo KAITHI LETTER KHA 1108F ; OtherLetter # Lo KAITHI LETTER GA 11090 ; OtherLetter # Lo KAITHI LETTER GHA 11091 ; OtherLetter # Lo KAITHI LETTER NGA 11092 ; OtherLetter # Lo KAITHI LETTER CA 11093 ; OtherLetter # Lo KAITHI LETTER CHA 11094 ; OtherLetter # Lo KAITHI LETTER JA 11095 ; OtherLetter # Lo KAITHI LETTER JHA 11096 ; OtherLetter # Lo KAITHI LETTER NYA 11097 ; OtherLetter # Lo KAITHI LETTER TTA 11098 ; OtherLetter # Lo KAITHI LETTER TTHA 11099 ; OtherLetter # Lo KAITHI LETTER DDA 1109A ; OtherLetter # Lo KAITHI LETTER DDDHA 1109B ; OtherLetter # Lo KAITHI LETTER DDHA 1109C ; OtherLetter # Lo KAITHI LETTER RHA 1109D ; OtherLetter # Lo KAITHI LETTER NNA 1109E ; OtherLetter # Lo KAITHI LETTER TA 1109F ; OtherLetter # Lo KAITHI LETTER THA 110A0 ; OtherLetter # Lo KAITHI LETTER DA 110A1 ; OtherLetter # Lo KAITHI LETTER DHA 110A2 ; OtherLetter # Lo KAITHI LETTER NA 110A3 ; OtherLetter # Lo KAITHI LETTER PA 110A4 ; OtherLetter # Lo KAITHI LETTER PHA 110A5 ; OtherLetter # Lo KAITHI LETTER BA 110A6 ; OtherLetter # Lo KAITHI LETTER BHA 110A7 ; OtherLetter # Lo KAITHI LETTER MA 110A8 ; OtherLetter # Lo KAITHI LETTER YA 110A9 ; OtherLetter # Lo KAITHI LETTER RA 110AA ; OtherLetter # Lo KAITHI LETTER LA 110AB ; OtherLetter # Lo KAITHI LETTER VA 110AC ; OtherLetter # Lo KAITHI LETTER SHA 110AD ; OtherLetter # Lo KAITHI LETTER SSA 110AE ; OtherLetter # Lo KAITHI LETTER SA 110AF ; OtherLetter # Lo KAITHI LETTER HA 110B9 ; Virama # Mn KAITHI SIGN VIRAMA sombok-2.3.1/data/EastAsianWidth-5.2.0.custom0000664000076400007640000013430212221425413015416 000000000000000000;Z # 0001;Z # 0002;Z # 0003;Z # 0004;Z # 0005;Z # 0006;Z # 0007;Z # 0008;Z # 0009;Z # 000A;Z # 000B;Z # 000C;Z # 000D;Z # 000E;Z # 000F;Z # 0010;Z # 0011;Z # 0012;Z # 0013;Z # 0014;Z # 0015;Z # 0016;Z # 0017;Z # 0018;Z # 0019;Z # 001A;Z # 001B;Z # 001C;Z # 001D;Z # 001E;Z # 001F;Z # 007F;Z # 0080;Z # 0081;Z # 0082;Z # 0083;Z # 0084;Z # 0085;Z # 0086;Z # 0087;Z # 0088;Z # 0089;Z # 008A;Z # 008B;Z # 008C;Z # 008D;Z # 008E;Z # 008F;Z # 0090;Z # 0091;Z # 0092;Z # 0093;Z # 0094;Z # 0095;Z # 0096;Z # 0097;Z # 0098;Z # 0099;Z # 009A;Z # 009B;Z # 009C;Z # 009D;Z # 009E;Z # 009F;Z # 00AD;ZA # SOFT HYPHEN 0300;ZA # COMBINING GRAVE ACCENT 0301;ZA # COMBINING ACUTE ACCENT 0302;ZA # COMBINING CIRCUMFLEX ACCENT 0303;ZA # COMBINING TILDE 0304;ZA # COMBINING MACRON 0305;ZA # COMBINING OVERLINE 0306;ZA # COMBINING BREVE 0307;ZA # COMBINING DOT ABOVE 0308;ZA # COMBINING DIAERESIS 0309;ZA # COMBINING HOOK ABOVE 030A;ZA # COMBINING RING ABOVE 030B;ZA # COMBINING DOUBLE ACUTE ACCENT 030C;ZA # COMBINING CARON 030D;ZA # COMBINING VERTICAL LINE ABOVE 030E;ZA # COMBINING DOUBLE VERTICAL LINE ABOVE 030F;ZA # COMBINING DOUBLE GRAVE ACCENT 0310;ZA # COMBINING CANDRABINDU 0311;ZA # COMBINING INVERTED BREVE 0312;ZA # COMBINING TURNED COMMA ABOVE 0313;ZA # COMBINING COMMA ABOVE 0314;ZA # COMBINING REVERSED COMMA ABOVE 0315;ZA # COMBINING COMMA ABOVE RIGHT 0316;ZA # COMBINING GRAVE ACCENT BELOW 0317;ZA # COMBINING ACUTE ACCENT BELOW 0318;ZA # COMBINING LEFT TACK BELOW 0319;ZA # COMBINING RIGHT TACK BELOW 031A;ZA # COMBINING LEFT ANGLE ABOVE 031B;ZA # COMBINING HORN 031C;ZA # COMBINING LEFT HALF RING BELOW 031D;ZA # COMBINING UP TACK BELOW 031E;ZA # COMBINING DOWN TACK BELOW 031F;ZA # COMBINING PLUS SIGN BELOW 0320;ZA # COMBINING MINUS SIGN BELOW 0321;ZA # COMBINING PALATALIZED HOOK BELOW 0322;ZA # COMBINING RETROFLEX HOOK BELOW 0323;ZA # COMBINING DOT BELOW 0324;ZA # COMBINING DIAERESIS BELOW 0325;ZA # COMBINING RING BELOW 0326;ZA # COMBINING COMMA BELOW 0327;ZA # COMBINING CEDILLA 0328;ZA # COMBINING OGONEK 0329;ZA # COMBINING VERTICAL LINE BELOW 032A;ZA # COMBINING BRIDGE BELOW 032B;ZA # COMBINING INVERTED DOUBLE ARCH BELOW 032C;ZA # COMBINING CARON BELOW 032D;ZA # COMBINING CIRCUMFLEX ACCENT BELOW 032E;ZA # COMBINING BREVE BELOW 032F;ZA # COMBINING INVERTED BREVE BELOW 0330;ZA # COMBINING TILDE BELOW 0331;ZA # COMBINING MACRON BELOW 0332;ZA # COMBINING LOW LINE 0333;ZA # COMBINING DOUBLE LOW LINE 0334;ZA # COMBINING TILDE OVERLAY 0335;ZA # COMBINING SHORT STROKE OVERLAY 0336;ZA # COMBINING LONG STROKE OVERLAY 0337;ZA # COMBINING SHORT SOLIDUS OVERLAY 0338;ZA # COMBINING LONG SOLIDUS OVERLAY 0339;ZA # COMBINING RIGHT HALF RING BELOW 033A;ZA # COMBINING INVERTED BRIDGE BELOW 033B;ZA # COMBINING SQUARE BELOW 033C;ZA # COMBINING SEAGULL BELOW 033D;ZA # COMBINING X ABOVE 033E;ZA # COMBINING VERTICAL TILDE 033F;ZA # COMBINING DOUBLE OVERLINE 0340;ZA # COMBINING GRAVE TONE MARK 0341;ZA # COMBINING ACUTE TONE MARK 0342;ZA # COMBINING GREEK PERISPOMENI 0343;ZA # COMBINING GREEK KORONIS 0344;ZA # COMBINING GREEK DIALYTIKA TONOS 0345;ZA # COMBINING GREEK YPOGEGRAMMENI 0346;ZA # COMBINING BRIDGE ABOVE 0347;ZA # COMBINING EQUALS SIGN BELOW 0348;ZA # COMBINING DOUBLE VERTICAL LINE BELOW 0349;ZA # COMBINING LEFT ANGLE BELOW 034A;ZA # COMBINING NOT TILDE ABOVE 034B;ZA # COMBINING HOMOTHETIC ABOVE 034C;ZA # COMBINING ALMOST EQUAL TO ABOVE 034D;ZA # COMBINING LEFT RIGHT ARROW BELOW 034E;ZA # COMBINING UPWARDS ARROW BELOW 034F;ZA # COMBINING GRAPHEME JOINER 0350;ZA # COMBINING RIGHT ARROWHEAD ABOVE 0351;ZA # COMBINING LEFT HALF RING ABOVE 0352;ZA # COMBINING FERMATA 0353;ZA # COMBINING X BELOW 0354;ZA # COMBINING LEFT ARROWHEAD BELOW 0355;ZA # COMBINING RIGHT ARROWHEAD BELOW 0356;ZA # COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW 0357;ZA # COMBINING RIGHT HALF RING ABOVE 0358;ZA # COMBINING DOT ABOVE RIGHT 0359;ZA # COMBINING ASTERISK BELOW 035A;ZA # COMBINING DOUBLE RING BELOW 035B;ZA # COMBINING ZIGZAG ABOVE 035C;ZA # COMBINING DOUBLE BREVE BELOW 035D;ZA # COMBINING DOUBLE BREVE 035E;ZA # COMBINING DOUBLE MACRON 035F;ZA # COMBINING DOUBLE MACRON BELOW 0360;ZA # COMBINING DOUBLE TILDE 0361;ZA # COMBINING DOUBLE INVERTED BREVE 0362;ZA # COMBINING DOUBLE RIGHTWARDS ARROW BELOW 0363;ZA # COMBINING LATIN SMALL LETTER A 0364;ZA # COMBINING LATIN SMALL LETTER E 0365;ZA # COMBINING LATIN SMALL LETTER I 0366;ZA # COMBINING LATIN SMALL LETTER O 0367;ZA # COMBINING LATIN SMALL LETTER U 0368;ZA # COMBINING LATIN SMALL LETTER C 0369;ZA # COMBINING LATIN SMALL LETTER D 036A;ZA # COMBINING LATIN SMALL LETTER H 036B;ZA # COMBINING LATIN SMALL LETTER M 036C;ZA # COMBINING LATIN SMALL LETTER R 036D;ZA # COMBINING LATIN SMALL LETTER T 036E;ZA # COMBINING LATIN SMALL LETTER V 036F;ZA # COMBINING LATIN SMALL LETTER X 0483;Z # COMBINING CYRILLIC TITLO 0484;Z # COMBINING CYRILLIC PALATALIZATION 0485;Z # COMBINING CYRILLIC DASIA PNEUMATA 0486;Z # COMBINING CYRILLIC PSILI PNEUMATA 0487;Z # COMBINING CYRILLIC POKRYTIE 0488;Z # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN 0489;Z # COMBINING CYRILLIC MILLIONS SIGN 0591;Z # HEBREW ACCENT ETNAHTA 0592;Z # HEBREW ACCENT SEGOL 0593;Z # HEBREW ACCENT SHALSHELET 0594;Z # HEBREW ACCENT ZAQEF QATAN 0595;Z # HEBREW ACCENT ZAQEF GADOL 0596;Z # HEBREW ACCENT TIPEHA 0597;Z # HEBREW ACCENT REVIA 0598;Z # HEBREW ACCENT ZARQA 0599;Z # HEBREW ACCENT PASHTA 059A;Z # HEBREW ACCENT YETIV 059B;Z # HEBREW ACCENT TEVIR 059C;Z # HEBREW ACCENT GERESH 059D;Z # HEBREW ACCENT GERESH MUQDAM 059E;Z # HEBREW ACCENT GERSHAYIM 059F;Z # HEBREW ACCENT QARNEY PARA 05A0;Z # HEBREW ACCENT TELISHA GEDOLA 05A1;Z # HEBREW ACCENT PAZER 05A2;Z # HEBREW ACCENT ATNAH HAFUKH 05A3;Z # HEBREW ACCENT MUNAH 05A4;Z # HEBREW ACCENT MAHAPAKH 05A5;Z # HEBREW ACCENT MERKHA 05A6;Z # HEBREW ACCENT MERKHA KEFULA 05A7;Z # HEBREW ACCENT DARGA 05A8;Z # HEBREW ACCENT QADMA 05A9;Z # HEBREW ACCENT TELISHA QETANA 05AA;Z # HEBREW ACCENT YERAH BEN YOMO 05AB;Z # HEBREW ACCENT OLE 05AC;Z # HEBREW ACCENT ILUY 05AD;Z # HEBREW ACCENT DEHI 05AE;Z # HEBREW ACCENT ZINOR 05AF;Z # HEBREW MARK MASORA CIRCLE 05B0;Z # HEBREW POINT SHEVA 05B1;Z # HEBREW POINT HATAF SEGOL 05B2;Z # HEBREW POINT HATAF PATAH 05B3;Z # HEBREW POINT HATAF QAMATS 05B4;Z # HEBREW POINT HIRIQ 05B5;Z # HEBREW POINT TSERE 05B6;Z # HEBREW POINT SEGOL 05B7;Z # HEBREW POINT PATAH 05B8;Z # HEBREW POINT QAMATS 05B9;Z # HEBREW POINT HOLAM 05BA;Z # HEBREW POINT HOLAM HASER FOR VAV 05BB;Z # HEBREW POINT QUBUTS 05BC;Z # HEBREW POINT DAGESH OR MAPIQ 05BD;Z # HEBREW POINT METEG 05BF;Z # HEBREW POINT RAFE 05C1;Z # HEBREW POINT SHIN DOT 05C2;Z # HEBREW POINT SIN DOT 05C4;Z # HEBREW MARK UPPER DOT 05C5;Z # HEBREW MARK LOWER DOT 05C7;Z # HEBREW POINT QAMATS QATAN 0600;Z # ARABIC NUMBER SIGN 0601;Z # ARABIC SIGN SANAH 0602;Z # ARABIC FOOTNOTE MARKER 0603;Z # ARABIC SIGN SAFHA 0610;Z # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM 0611;Z # ARABIC SIGN ALAYHE ASSALLAM 0612;Z # ARABIC SIGN RAHMATULLAH ALAYHE 0613;Z # ARABIC SIGN RADI ALLAHOU ANHU 0614;Z # ARABIC SIGN TAKHALLUS 0615;Z # ARABIC SMALL HIGH TAH 0616;Z # ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH 0617;Z # ARABIC SMALL HIGH ZAIN 0618;Z # ARABIC SMALL FATHA 0619;Z # ARABIC SMALL DAMMA 061A;Z # ARABIC SMALL KASRA 064B;Z # ARABIC FATHATAN 064C;Z # ARABIC DAMMATAN 064D;Z # ARABIC KASRATAN 064E;Z # ARABIC FATHA 064F;Z # ARABIC DAMMA 0650;Z # ARABIC KASRA 0651;Z # ARABIC SHADDA 0652;Z # ARABIC SUKUN 0653;Z # ARABIC MADDAH ABOVE 0654;Z # ARABIC HAMZA ABOVE 0655;Z # ARABIC HAMZA BELOW 0656;Z # ARABIC SUBSCRIPT ALEF 0657;Z # ARABIC INVERTED DAMMA 0658;Z # ARABIC MARK NOON GHUNNA 0659;Z # ARABIC ZWARAKAY 065A;Z # ARABIC VOWEL SIGN SMALL V ABOVE 065B;Z # ARABIC VOWEL SIGN INVERTED SMALL V ABOVE 065C;Z # ARABIC VOWEL SIGN DOT BELOW 065D;Z # ARABIC REVERSED DAMMA 065E;Z # ARABIC FATHA WITH TWO DOTS 0670;Z # ARABIC LETTER SUPERSCRIPT ALEF 06D6;Z # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA 06D7;Z # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA 06D8;Z # ARABIC SMALL HIGH MEEM INITIAL FORM 06D9;Z # ARABIC SMALL HIGH LAM ALEF 06DA;Z # ARABIC SMALL HIGH JEEM 06DB;Z # ARABIC SMALL HIGH THREE DOTS 06DC;Z # ARABIC SMALL HIGH SEEN 06DD;Z # ARABIC END OF AYAH 06DE;Z # ARABIC START OF RUB EL HIZB 06DF;Z # ARABIC SMALL HIGH ROUNDED ZERO 06E0;Z # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO 06E1;Z # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH 06E2;Z # ARABIC SMALL HIGH MEEM ISOLATED FORM 06E3;Z # ARABIC SMALL LOW SEEN 06E4;Z # ARABIC SMALL HIGH MADDA 06E7;Z # ARABIC SMALL HIGH YEH 06E8;Z # ARABIC SMALL HIGH NOON 06EA;Z # ARABIC EMPTY CENTRE LOW STOP 06EB;Z # ARABIC EMPTY CENTRE HIGH STOP 06EC;Z # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE 06ED;Z # ARABIC SMALL LOW MEEM 070F;Z # SYRIAC ABBREVIATION MARK 0711;Z # SYRIAC LETTER SUPERSCRIPT ALAPH 0730;Z # SYRIAC PTHAHA ABOVE 0731;Z # SYRIAC PTHAHA BELOW 0732;Z # SYRIAC PTHAHA DOTTED 0733;Z # SYRIAC ZQAPHA ABOVE 0734;Z # SYRIAC ZQAPHA BELOW 0735;Z # SYRIAC ZQAPHA DOTTED 0736;Z # SYRIAC RBASA ABOVE 0737;Z # SYRIAC RBASA BELOW 0738;Z # SYRIAC DOTTED ZLAMA HORIZONTAL 0739;Z # SYRIAC DOTTED ZLAMA ANGULAR 073A;Z # SYRIAC HBASA ABOVE 073B;Z # SYRIAC HBASA BELOW 073C;Z # SYRIAC HBASA-ESASA DOTTED 073D;Z # SYRIAC ESASA ABOVE 073E;Z # SYRIAC ESASA BELOW 073F;Z # SYRIAC RWAHA 0740;Z # SYRIAC FEMININE DOT 0741;Z # SYRIAC QUSHSHAYA 0742;Z # SYRIAC RUKKAKHA 0743;Z # SYRIAC TWO VERTICAL DOTS ABOVE 0744;Z # SYRIAC TWO VERTICAL DOTS BELOW 0745;Z # SYRIAC THREE DOTS ABOVE 0746;Z # SYRIAC THREE DOTS BELOW 0747;Z # SYRIAC OBLIQUE LINE ABOVE 0748;Z # SYRIAC OBLIQUE LINE BELOW 0749;Z # SYRIAC MUSIC 074A;Z # SYRIAC BARREKH 07A6;Z # THAANA ABAFILI 07A7;Z # THAANA AABAAFILI 07A8;Z # THAANA IBIFILI 07A9;Z # THAANA EEBEEFILI 07AA;Z # THAANA UBUFILI 07AB;Z # THAANA OOBOOFILI 07AC;Z # THAANA EBEFILI 07AD;Z # THAANA EYBEYFILI 07AE;Z # THAANA OBOFILI 07AF;Z # THAANA OABOAFILI 07B0;Z # THAANA SUKUN 07EB;Z # NKO COMBINING SHORT HIGH TONE 07EC;Z # NKO COMBINING SHORT LOW TONE 07ED;Z # NKO COMBINING SHORT RISING TONE 07EE;Z # NKO COMBINING LONG DESCENDING TONE 07EF;Z # NKO COMBINING LONG HIGH TONE 07F0;Z # NKO COMBINING LONG LOW TONE 07F1;Z # NKO COMBINING LONG RISING TONE 07F2;Z # NKO COMBINING NASALIZATION MARK 07F3;Z # NKO COMBINING DOUBLE DOT ABOVE 0816;Z # SAMARITAN MARK IN 0817;Z # SAMARITAN MARK IN-ALAF 0818;Z # SAMARITAN MARK OCCLUSION 0819;Z # SAMARITAN MARK DAGESH 081B;Z # SAMARITAN MARK EPENTHETIC YUT 081C;Z # SAMARITAN VOWEL SIGN LONG E 081D;Z # SAMARITAN VOWEL SIGN E 081E;Z # SAMARITAN VOWEL SIGN OVERLONG AA 081F;Z # SAMARITAN VOWEL SIGN LONG AA 0820;Z # SAMARITAN VOWEL SIGN AA 0821;Z # SAMARITAN VOWEL SIGN OVERLONG A 0822;Z # SAMARITAN VOWEL SIGN LONG A 0823;Z # SAMARITAN VOWEL SIGN A 0825;Z # SAMARITAN VOWEL SIGN SHORT A 0826;Z # SAMARITAN VOWEL SIGN LONG U 0827;Z # SAMARITAN VOWEL SIGN U 0829;Z # SAMARITAN VOWEL SIGN LONG I 082A;Z # SAMARITAN VOWEL SIGN I 082B;Z # SAMARITAN VOWEL SIGN O 082C;Z # SAMARITAN VOWEL SIGN SUKUN 082D;Z # SAMARITAN MARK NEQUDAA 0900;Z # DEVANAGARI SIGN INVERTED CANDRABINDU 0901;Z # DEVANAGARI SIGN CANDRABINDU 0902;Z # DEVANAGARI SIGN ANUSVARA 093C;Z # DEVANAGARI SIGN NUKTA 0941;Z # DEVANAGARI VOWEL SIGN U 0942;Z # DEVANAGARI VOWEL SIGN UU 0943;Z # DEVANAGARI VOWEL SIGN VOCALIC R 0944;Z # DEVANAGARI VOWEL SIGN VOCALIC RR 0945;Z # DEVANAGARI VOWEL SIGN CANDRA E 0946;Z # DEVANAGARI VOWEL SIGN SHORT E 0947;Z # DEVANAGARI VOWEL SIGN E 0948;Z # DEVANAGARI VOWEL SIGN AI 094D;Z # DEVANAGARI SIGN VIRAMA 0951;Z # DEVANAGARI STRESS SIGN UDATTA 0952;Z # DEVANAGARI STRESS SIGN ANUDATTA 0953;Z # DEVANAGARI GRAVE ACCENT 0954;Z # DEVANAGARI ACUTE ACCENT 0955;Z # DEVANAGARI VOWEL SIGN CANDRA LONG E 0962;Z # DEVANAGARI VOWEL SIGN VOCALIC L 0963;Z # DEVANAGARI VOWEL SIGN VOCALIC LL 0981;Z # BENGALI SIGN CANDRABINDU 09BC;Z # BENGALI SIGN NUKTA 09C1;Z # BENGALI VOWEL SIGN U 09C2;Z # BENGALI VOWEL SIGN UU 09C3;Z # BENGALI VOWEL SIGN VOCALIC R 09C4;Z # BENGALI VOWEL SIGN VOCALIC RR 09CD;Z # BENGALI SIGN VIRAMA 09E2;Z # BENGALI VOWEL SIGN VOCALIC L 09E3;Z # BENGALI VOWEL SIGN VOCALIC LL 0A01;Z # GURMUKHI SIGN ADAK BINDI 0A02;Z # GURMUKHI SIGN BINDI 0A3C;Z # GURMUKHI SIGN NUKTA 0A41;Z # GURMUKHI VOWEL SIGN U 0A42;Z # GURMUKHI VOWEL SIGN UU 0A47;Z # GURMUKHI VOWEL SIGN EE 0A48;Z # GURMUKHI VOWEL SIGN AI 0A4B;Z # GURMUKHI VOWEL SIGN OO 0A4C;Z # GURMUKHI VOWEL SIGN AU 0A4D;Z # GURMUKHI SIGN VIRAMA 0A51;Z # GURMUKHI SIGN UDAAT 0A70;Z # GURMUKHI TIPPI 0A71;Z # GURMUKHI ADDAK 0A75;Z # GURMUKHI SIGN YAKASH 0A81;Z # GUJARATI SIGN CANDRABINDU 0A82;Z # GUJARATI SIGN ANUSVARA 0ABC;Z # GUJARATI SIGN NUKTA 0AC1;Z # GUJARATI VOWEL SIGN U 0AC2;Z # GUJARATI VOWEL SIGN UU 0AC3;Z # GUJARATI VOWEL SIGN VOCALIC R 0AC4;Z # GUJARATI VOWEL SIGN VOCALIC RR 0AC5;Z # GUJARATI VOWEL SIGN CANDRA E 0AC7;Z # GUJARATI VOWEL SIGN E 0AC8;Z # GUJARATI VOWEL SIGN AI 0ACD;Z # GUJARATI SIGN VIRAMA 0AE2;Z # GUJARATI VOWEL SIGN VOCALIC L 0AE3;Z # GUJARATI VOWEL SIGN VOCALIC LL 0B01;Z # ORIYA SIGN CANDRABINDU 0B3C;Z # ORIYA SIGN NUKTA 0B3F;Z # ORIYA VOWEL SIGN I 0B41;Z # ORIYA VOWEL SIGN U 0B42;Z # ORIYA VOWEL SIGN UU 0B43;Z # ORIYA VOWEL SIGN VOCALIC R 0B44;Z # ORIYA VOWEL SIGN VOCALIC RR 0B4D;Z # ORIYA SIGN VIRAMA 0B56;Z # ORIYA AI LENGTH MARK 0B62;Z # ORIYA VOWEL SIGN VOCALIC L 0B63;Z # ORIYA VOWEL SIGN VOCALIC LL 0B82;Z # TAMIL SIGN ANUSVARA 0BC0;Z # TAMIL VOWEL SIGN II 0BCD;Z # TAMIL SIGN VIRAMA 0C3E;Z # TELUGU VOWEL SIGN AA 0C3F;Z # TELUGU VOWEL SIGN I 0C40;Z # TELUGU VOWEL SIGN II 0C46;Z # TELUGU VOWEL SIGN E 0C47;Z # TELUGU VOWEL SIGN EE 0C48;Z # TELUGU VOWEL SIGN AI 0C4A;Z # TELUGU VOWEL SIGN O 0C4B;Z # TELUGU VOWEL SIGN OO 0C4C;Z # TELUGU VOWEL SIGN AU 0C4D;Z # TELUGU SIGN VIRAMA 0C55;Z # TELUGU LENGTH MARK 0C56;Z # TELUGU AI LENGTH MARK 0C62;Z # TELUGU VOWEL SIGN VOCALIC L 0C63;Z # TELUGU VOWEL SIGN VOCALIC LL 0CBC;Z # KANNADA SIGN NUKTA 0CBF;Z # KANNADA VOWEL SIGN I 0CC6;Z # KANNADA VOWEL SIGN E 0CCC;Z # KANNADA VOWEL SIGN AU 0CCD;Z # KANNADA SIGN VIRAMA 0CE2;Z # KANNADA VOWEL SIGN VOCALIC L 0CE3;Z # KANNADA VOWEL SIGN VOCALIC LL 0D41;Z # MALAYALAM VOWEL SIGN U 0D42;Z # MALAYALAM VOWEL SIGN UU 0D43;Z # MALAYALAM VOWEL SIGN VOCALIC R 0D44;Z # MALAYALAM VOWEL SIGN VOCALIC RR 0D4D;Z # MALAYALAM SIGN VIRAMA 0D62;Z # MALAYALAM VOWEL SIGN VOCALIC L 0D63;Z # MALAYALAM VOWEL SIGN VOCALIC LL 0DCA;Z # SINHALA SIGN AL-LAKUNA 0DD2;Z # SINHALA VOWEL SIGN KETTI IS-PILLA 0DD3;Z # SINHALA VOWEL SIGN DIGA IS-PILLA 0DD4;Z # SINHALA VOWEL SIGN KETTI PAA-PILLA 0DD6;Z # SINHALA VOWEL SIGN DIGA PAA-PILLA 0E31;Z # THAI CHARACTER MAI HAN-AKAT 0E34;Z # THAI CHARACTER SARA I 0E35;Z # THAI CHARACTER SARA II 0E36;Z # THAI CHARACTER SARA UE 0E37;Z # THAI CHARACTER SARA UEE 0E38;Z # THAI CHARACTER SARA U 0E39;Z # THAI CHARACTER SARA UU 0E3A;Z # THAI CHARACTER PHINTHU 0E47;Z # THAI CHARACTER MAITAIKHU 0E48;Z # THAI CHARACTER MAI EK 0E49;Z # THAI CHARACTER MAI THO 0E4A;Z # THAI CHARACTER MAI TRI 0E4B;Z # THAI CHARACTER MAI CHATTAWA 0E4C;Z # THAI CHARACTER THANTHAKHAT 0E4D;Z # THAI CHARACTER NIKHAHIT 0E4E;Z # THAI CHARACTER YAMAKKAN 0EB1;Z # LAO VOWEL SIGN MAI KAN 0EB4;Z # LAO VOWEL SIGN I 0EB5;Z # LAO VOWEL SIGN II 0EB6;Z # LAO VOWEL SIGN Y 0EB7;Z # LAO VOWEL SIGN YY 0EB8;Z # LAO VOWEL SIGN U 0EB9;Z # LAO VOWEL SIGN UU 0EBB;Z # LAO VOWEL SIGN MAI KON 0EBC;Z # LAO SEMIVOWEL SIGN LO 0EC8;Z # LAO TONE MAI EK 0EC9;Z # LAO TONE MAI THO 0ECA;Z # LAO TONE MAI TI 0ECB;Z # LAO TONE MAI CATAWA 0ECC;Z # LAO CANCELLATION MARK 0ECD;Z # LAO NIGGAHITA 0F18;Z # TIBETAN ASTROLOGICAL SIGN -KHYUD PA 0F19;Z # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS 0F35;Z # TIBETAN MARK NGAS BZUNG NYI ZLA 0F37;Z # TIBETAN MARK NGAS BZUNG SGOR RTAGS 0F39;Z # TIBETAN MARK TSA -PHRU 0F71;Z # TIBETAN VOWEL SIGN AA 0F72;Z # TIBETAN VOWEL SIGN I 0F73;Z # TIBETAN VOWEL SIGN II 0F74;Z # TIBETAN VOWEL SIGN U 0F75;Z # TIBETAN VOWEL SIGN UU 0F76;Z # TIBETAN VOWEL SIGN VOCALIC R 0F77;Z # TIBETAN VOWEL SIGN VOCALIC RR 0F78;Z # TIBETAN VOWEL SIGN VOCALIC L 0F79;Z # TIBETAN VOWEL SIGN VOCALIC LL 0F7A;Z # TIBETAN VOWEL SIGN E 0F7B;Z # TIBETAN VOWEL SIGN EE 0F7C;Z # TIBETAN VOWEL SIGN O 0F7D;Z # TIBETAN VOWEL SIGN OO 0F7E;Z # TIBETAN SIGN RJES SU NGA RO 0F80;Z # TIBETAN VOWEL SIGN REVERSED I 0F81;Z # TIBETAN VOWEL SIGN REVERSED II 0F82;Z # TIBETAN SIGN NYI ZLA NAA DA 0F83;Z # TIBETAN SIGN SNA LDAN 0F84;Z # TIBETAN MARK HALANTA 0F86;Z # TIBETAN SIGN LCI RTAGS 0F87;Z # TIBETAN SIGN YANG RTAGS 0F90;Z # TIBETAN SUBJOINED LETTER KA 0F91;Z # TIBETAN SUBJOINED LETTER KHA 0F92;Z # TIBETAN SUBJOINED LETTER GA 0F93;Z # TIBETAN SUBJOINED LETTER GHA 0F94;Z # TIBETAN SUBJOINED LETTER NGA 0F95;Z # TIBETAN SUBJOINED LETTER CA 0F96;Z # TIBETAN SUBJOINED LETTER CHA 0F97;Z # TIBETAN SUBJOINED LETTER JA 0F99;Z # TIBETAN SUBJOINED LETTER NYA 0F9A;Z # TIBETAN SUBJOINED LETTER TTA 0F9B;Z # TIBETAN SUBJOINED LETTER TTHA 0F9C;Z # TIBETAN SUBJOINED LETTER DDA 0F9D;Z # TIBETAN SUBJOINED LETTER DDHA 0F9E;Z # TIBETAN SUBJOINED LETTER NNA 0F9F;Z # TIBETAN SUBJOINED LETTER TA 0FA0;Z # TIBETAN SUBJOINED LETTER THA 0FA1;Z # TIBETAN SUBJOINED LETTER DA 0FA2;Z # TIBETAN SUBJOINED LETTER DHA 0FA3;Z # TIBETAN SUBJOINED LETTER NA 0FA4;Z # TIBETAN SUBJOINED LETTER PA 0FA5;Z # TIBETAN SUBJOINED LETTER PHA 0FA6;Z # TIBETAN SUBJOINED LETTER BA 0FA7;Z # TIBETAN SUBJOINED LETTER BHA 0FA8;Z # TIBETAN SUBJOINED LETTER MA 0FA9;Z # TIBETAN SUBJOINED LETTER TSA 0FAA;Z # TIBETAN SUBJOINED LETTER TSHA 0FAB;Z # TIBETAN SUBJOINED LETTER DZA 0FAC;Z # TIBETAN SUBJOINED LETTER DZHA 0FAD;Z # TIBETAN SUBJOINED LETTER WA 0FAE;Z # TIBETAN SUBJOINED LETTER ZHA 0FAF;Z # TIBETAN SUBJOINED LETTER ZA 0FB0;Z # TIBETAN SUBJOINED LETTER -A 0FB1;Z # TIBETAN SUBJOINED LETTER YA 0FB2;Z # TIBETAN SUBJOINED LETTER RA 0FB3;Z # TIBETAN SUBJOINED LETTER LA 0FB4;Z # TIBETAN SUBJOINED LETTER SHA 0FB5;Z # TIBETAN SUBJOINED LETTER SSA 0FB6;Z # TIBETAN SUBJOINED LETTER SA 0FB7;Z # TIBETAN SUBJOINED LETTER HA 0FB8;Z # TIBETAN SUBJOINED LETTER A 0FB9;Z # TIBETAN SUBJOINED LETTER KSSA 0FBA;Z # TIBETAN SUBJOINED LETTER FIXED-FORM WA 0FBB;Z # TIBETAN SUBJOINED LETTER FIXED-FORM YA 0FBC;Z # TIBETAN SUBJOINED LETTER FIXED-FORM RA 0FC6;Z # TIBETAN SYMBOL PADMA GDAN 102D;Z # MYANMAR VOWEL SIGN I 102E;Z # MYANMAR VOWEL SIGN II 102F;Z # MYANMAR VOWEL SIGN U 1030;Z # MYANMAR VOWEL SIGN UU 1032;Z # MYANMAR VOWEL SIGN AI 1033;Z # MYANMAR VOWEL SIGN MON II 1034;Z # MYANMAR VOWEL SIGN MON O 1035;Z # MYANMAR VOWEL SIGN E ABOVE 1036;Z # MYANMAR SIGN ANUSVARA 1037;Z # MYANMAR SIGN DOT BELOW 1039;Z # MYANMAR SIGN VIRAMA 103A;Z # MYANMAR SIGN ASAT 103D;Z # MYANMAR CONSONANT SIGN MEDIAL WA 103E;Z # MYANMAR CONSONANT SIGN MEDIAL HA 1058;Z # MYANMAR VOWEL SIGN VOCALIC L 1059;Z # MYANMAR VOWEL SIGN VOCALIC LL 105E;Z # MYANMAR CONSONANT SIGN MON MEDIAL NA 105F;Z # MYANMAR CONSONANT SIGN MON MEDIAL MA 1060;Z # MYANMAR CONSONANT SIGN MON MEDIAL LA 1071;Z # MYANMAR VOWEL SIGN GEBA KAREN I 1072;Z # MYANMAR VOWEL SIGN KAYAH OE 1073;Z # MYANMAR VOWEL SIGN KAYAH U 1074;Z # MYANMAR VOWEL SIGN KAYAH EE 1082;Z # MYANMAR CONSONANT SIGN SHAN MEDIAL WA 1085;Z # MYANMAR VOWEL SIGN SHAN E ABOVE 1086;Z # MYANMAR VOWEL SIGN SHAN FINAL Y 108D;Z # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE 109D;Z # MYANMAR VOWEL SIGN AITON AI 135F;Z # ETHIOPIC COMBINING GEMINATION MARK 1712;Z # TAGALOG VOWEL SIGN I 1713;Z # TAGALOG VOWEL SIGN U 1714;Z # TAGALOG SIGN VIRAMA 1732;Z # HANUNOO VOWEL SIGN I 1733;Z # HANUNOO VOWEL SIGN U 1734;Z # HANUNOO SIGN PAMUDPOD 1752;Z # BUHID VOWEL SIGN I 1753;Z # BUHID VOWEL SIGN U 1772;Z # TAGBANWA VOWEL SIGN I 1773;Z # TAGBANWA VOWEL SIGN U 17B4;Z # KHMER VOWEL INHERENT AQ 17B5;Z # KHMER VOWEL INHERENT AA 17B7;Z # KHMER VOWEL SIGN I 17B8;Z # KHMER VOWEL SIGN II 17B9;Z # KHMER VOWEL SIGN Y 17BA;Z # KHMER VOWEL SIGN YY 17BB;Z # KHMER VOWEL SIGN U 17BC;Z # KHMER VOWEL SIGN UU 17BD;Z # KHMER VOWEL SIGN UA 17C6;Z # KHMER SIGN NIKAHIT 17C9;Z # KHMER SIGN MUUSIKATOAN 17CA;Z # KHMER SIGN TRIISAP 17CB;Z # KHMER SIGN BANTOC 17CC;Z # KHMER SIGN ROBAT 17CD;Z # KHMER SIGN TOANDAKHIAT 17CE;Z # KHMER SIGN KAKABAT 17CF;Z # KHMER SIGN AHSDA 17D0;Z # KHMER SIGN SAMYOK SANNYA 17D1;Z # KHMER SIGN VIRIAM 17D2;Z # KHMER SIGN COENG 17D3;Z # KHMER SIGN BATHAMASAT 17DD;Z # KHMER SIGN ATTHACAN 180B;Z # MONGOLIAN FREE VARIATION SELECTOR ONE 180C;Z # MONGOLIAN FREE VARIATION SELECTOR TWO 180D;Z # MONGOLIAN FREE VARIATION SELECTOR THREE 18A9;Z # MONGOLIAN LETTER ALI GALI DAGALGA 1920;Z # LIMBU VOWEL SIGN A 1921;Z # LIMBU VOWEL SIGN I 1922;Z # LIMBU VOWEL SIGN U 1927;Z # LIMBU VOWEL SIGN E 1928;Z # LIMBU VOWEL SIGN O 1932;Z # LIMBU SMALL LETTER ANUSVARA 1939;Z # LIMBU SIGN MUKPHRENG 193A;Z # LIMBU SIGN KEMPHRENG 193B;Z # LIMBU SIGN SA-I 1A17;Z # BUGINESE VOWEL SIGN I 1A18;Z # BUGINESE VOWEL SIGN U 1A56;Z # TAI THAM CONSONANT SIGN MEDIAL LA 1A58;Z # TAI THAM SIGN MAI KANG LAI 1A59;Z # TAI THAM CONSONANT SIGN FINAL NGA 1A5A;Z # TAI THAM CONSONANT SIGN LOW PA 1A5B;Z # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA 1A5C;Z # TAI THAM CONSONANT SIGN MA 1A5D;Z # TAI THAM CONSONANT SIGN BA 1A5E;Z # TAI THAM CONSONANT SIGN SA 1A60;Z # TAI THAM SIGN SAKOT 1A62;Z # TAI THAM VOWEL SIGN MAI SAT 1A65;Z # TAI THAM VOWEL SIGN I 1A66;Z # TAI THAM VOWEL SIGN II 1A67;Z # TAI THAM VOWEL SIGN UE 1A68;Z # TAI THAM VOWEL SIGN UUE 1A69;Z # TAI THAM VOWEL SIGN U 1A6A;Z # TAI THAM VOWEL SIGN UU 1A6B;Z # TAI THAM VOWEL SIGN O 1A6C;Z # TAI THAM VOWEL SIGN OA BELOW 1A73;Z # TAI THAM VOWEL SIGN OA ABOVE 1A74;Z # TAI THAM SIGN MAI KANG 1A75;Z # TAI THAM SIGN TONE-1 1A76;Z # TAI THAM SIGN TONE-2 1A77;Z # TAI THAM SIGN KHUEN TONE-3 1A78;Z # TAI THAM SIGN KHUEN TONE-4 1A79;Z # TAI THAM SIGN KHUEN TONE-5 1A7A;Z # TAI THAM SIGN RA HAAM 1A7B;Z # TAI THAM SIGN MAI SAM 1A7C;Z # TAI THAM SIGN KHUEN-LUE KARAN 1A7F;Z # TAI THAM COMBINING CRYPTOGRAMMIC DOT 1B00;Z # BALINESE SIGN ULU RICEM 1B01;Z # BALINESE SIGN ULU CANDRA 1B02;Z # BALINESE SIGN CECEK 1B03;Z # BALINESE SIGN SURANG 1B34;Z # BALINESE SIGN REREKAN 1B36;Z # BALINESE VOWEL SIGN ULU 1B37;Z # BALINESE VOWEL SIGN ULU SARI 1B38;Z # BALINESE VOWEL SIGN SUKU 1B39;Z # BALINESE VOWEL SIGN SUKU ILUT 1B3A;Z # BALINESE VOWEL SIGN RA REPA 1B3C;Z # BALINESE VOWEL SIGN LA LENGA 1B42;Z # BALINESE VOWEL SIGN PEPET 1B6B;Z # BALINESE MUSICAL SYMBOL COMBINING TEGEH 1B6C;Z # BALINESE MUSICAL SYMBOL COMBINING ENDEP 1B6D;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL 1B6E;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI 1B6F;Z # BALINESE MUSICAL SYMBOL COMBINING JEGOGAN 1B70;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN 1B71;Z # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN 1B72;Z # BALINESE MUSICAL SYMBOL COMBINING BENDE 1B73;Z # BALINESE MUSICAL SYMBOL COMBINING GONG 1B80;Z # SUNDANESE SIGN PANYECEK 1B81;Z # SUNDANESE SIGN PANGLAYAR 1BA2;Z # SUNDANESE CONSONANT SIGN PANYAKRA 1BA3;Z # SUNDANESE CONSONANT SIGN PANYIKU 1BA4;Z # SUNDANESE VOWEL SIGN PANGHULU 1BA5;Z # SUNDANESE VOWEL SIGN PANYUKU 1BA8;Z # SUNDANESE VOWEL SIGN PAMEPET 1BA9;Z # SUNDANESE VOWEL SIGN PANEULEUNG 1C2C;Z # LEPCHA VOWEL SIGN E 1C2D;Z # LEPCHA CONSONANT SIGN K 1C2E;Z # LEPCHA CONSONANT SIGN M 1C2F;Z # LEPCHA CONSONANT SIGN L 1C30;Z # LEPCHA CONSONANT SIGN N 1C31;Z # LEPCHA CONSONANT SIGN P 1C32;Z # LEPCHA CONSONANT SIGN R 1C33;Z # LEPCHA CONSONANT SIGN T 1C36;Z # LEPCHA SIGN RAN 1C37;Z # LEPCHA SIGN NUKTA 1CD0;Z # VEDIC TONE KARSHANA 1CD1;Z # VEDIC TONE SHARA 1CD2;Z # VEDIC TONE PRENKHA 1CD4;Z # VEDIC SIGN YAJURVEDIC MIDLINE SVARITA 1CD5;Z # VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA 1CD6;Z # VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA 1CD7;Z # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA 1CD8;Z # VEDIC TONE CANDRA BELOW 1CD9;Z # VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER 1CDA;Z # VEDIC TONE DOUBLE SVARITA 1CDB;Z # VEDIC TONE TRIPLE SVARITA 1CDC;Z # VEDIC TONE KATHAKA ANUDATTA 1CDD;Z # VEDIC TONE DOT BELOW 1CDE;Z # VEDIC TONE TWO DOTS BELOW 1CDF;Z # VEDIC TONE THREE DOTS BELOW 1CE0;Z # VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA 1CE2;Z # VEDIC SIGN VISARGA SVARITA 1CE3;Z # VEDIC SIGN VISARGA UDATTA 1CE4;Z # VEDIC SIGN REVERSED VISARGA UDATTA 1CE5;Z # VEDIC SIGN VISARGA ANUDATTA 1CE6;Z # VEDIC SIGN REVERSED VISARGA ANUDATTA 1CE7;Z # VEDIC SIGN VISARGA UDATTA WITH TAIL 1CE8;Z # VEDIC SIGN VISARGA ANUDATTA WITH TAIL 1CED;Z # VEDIC SIGN TIRYAK 1DC0;Z # COMBINING DOTTED GRAVE ACCENT 1DC1;Z # COMBINING DOTTED ACUTE ACCENT 1DC2;Z # COMBINING SNAKE BELOW 1DC3;Z # COMBINING SUSPENSION MARK 1DC4;Z # COMBINING MACRON-ACUTE 1DC5;Z # COMBINING GRAVE-MACRON 1DC6;Z # COMBINING MACRON-GRAVE 1DC7;Z # COMBINING ACUTE-MACRON 1DC8;Z # COMBINING GRAVE-ACUTE-GRAVE 1DC9;Z # COMBINING ACUTE-GRAVE-ACUTE 1DCA;Z # COMBINING LATIN SMALL LETTER R BELOW 1DCB;Z # COMBINING BREVE-MACRON 1DCC;Z # COMBINING MACRON-BREVE 1DCD;Z # COMBINING DOUBLE CIRCUMFLEX ABOVE 1DCE;Z # COMBINING OGONEK ABOVE 1DCF;Z # COMBINING ZIGZAG BELOW 1DD0;Z # COMBINING IS BELOW 1DD1;Z # COMBINING UR ABOVE 1DD2;Z # COMBINING US ABOVE 1DD3;Z # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE 1DD4;Z # COMBINING LATIN SMALL LETTER AE 1DD5;Z # COMBINING LATIN SMALL LETTER AO 1DD6;Z # COMBINING LATIN SMALL LETTER AV 1DD7;Z # COMBINING LATIN SMALL LETTER C CEDILLA 1DD8;Z # COMBINING LATIN SMALL LETTER INSULAR D 1DD9;Z # COMBINING LATIN SMALL LETTER ETH 1DDA;Z # COMBINING LATIN SMALL LETTER G 1DDB;Z # COMBINING LATIN LETTER SMALL CAPITAL G 1DDC;Z # COMBINING LATIN SMALL LETTER K 1DDD;Z # COMBINING LATIN SMALL LETTER L 1DDE;Z # COMBINING LATIN LETTER SMALL CAPITAL L 1DDF;Z # COMBINING LATIN LETTER SMALL CAPITAL M 1DE0;Z # COMBINING LATIN SMALL LETTER N 1DE1;Z # COMBINING LATIN LETTER SMALL CAPITAL N 1DE2;Z # COMBINING LATIN LETTER SMALL CAPITAL R 1DE3;Z # COMBINING LATIN SMALL LETTER R ROTUNDA 1DE4;Z # COMBINING LATIN SMALL LETTER S 1DE5;Z # COMBINING LATIN SMALL LETTER LONG S 1DE6;Z # COMBINING LATIN SMALL LETTER Z 1DFD;Z # COMBINING ALMOST EQUAL TO BELOW 1DFE;Z # COMBINING LEFT ARROWHEAD ABOVE 1DFF;Z # COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW 200B;Z # ZERO WIDTH SPACE 200C;Z # ZERO WIDTH NON-JOINER 200D;Z # ZERO WIDTH JOINER 200E;Z # LEFT-TO-RIGHT MARK 200F;Z # RIGHT-TO-LEFT MARK 2028;Z # LINE SEPARATOR 2029;Z # PARAGRAPH SEPARATOR 202A;Z # LEFT-TO-RIGHT EMBEDDING 202B;Z # RIGHT-TO-LEFT EMBEDDING 202C;Z # POP DIRECTIONAL FORMATTING 202D;Z # LEFT-TO-RIGHT OVERRIDE 202E;Z # RIGHT-TO-LEFT OVERRIDE 2060;Z # WORD JOINER 2061;Z # FUNCTION APPLICATION 2062;Z # INVISIBLE TIMES 2063;Z # INVISIBLE SEPARATOR 2064;Z # INVISIBLE PLUS 206A;Z # INHIBIT SYMMETRIC SWAPPING 206B;Z # ACTIVATE SYMMETRIC SWAPPING 206C;Z # INHIBIT ARABIC FORM SHAPING 206D;Z # ACTIVATE ARABIC FORM SHAPING 206E;Z # NATIONAL DIGIT SHAPES 206F;Z # NOMINAL DIGIT SHAPES 20D0;Z # COMBINING LEFT HARPOON ABOVE 20D1;Z # COMBINING RIGHT HARPOON ABOVE 20D2;Z # COMBINING LONG VERTICAL LINE OVERLAY 20D3;Z # COMBINING SHORT VERTICAL LINE OVERLAY 20D4;Z # COMBINING ANTICLOCKWISE ARROW ABOVE 20D5;Z # COMBINING CLOCKWISE ARROW ABOVE 20D6;Z # COMBINING LEFT ARROW ABOVE 20D7;Z # COMBINING RIGHT ARROW ABOVE 20D8;Z # COMBINING RING OVERLAY 20D9;Z # COMBINING CLOCKWISE RING OVERLAY 20DA;Z # COMBINING ANTICLOCKWISE RING OVERLAY 20DB;Z # COMBINING THREE DOTS ABOVE 20DC;Z # COMBINING FOUR DOTS ABOVE 20DD;Z # COMBINING ENCLOSING CIRCLE 20DE;Z # COMBINING ENCLOSING SQUARE 20DF;Z # COMBINING ENCLOSING DIAMOND 20E0;Z # COMBINING ENCLOSING CIRCLE BACKSLASH 20E1;Z # COMBINING LEFT RIGHT ARROW ABOVE 20E2;Z # COMBINING ENCLOSING SCREEN 20E3;Z # COMBINING ENCLOSING KEYCAP 20E4;Z # COMBINING ENCLOSING UPWARD POINTING TRIANGLE 20E5;Z # COMBINING REVERSE SOLIDUS OVERLAY 20E6;Z # COMBINING DOUBLE VERTICAL STROKE OVERLAY 20E7;Z # COMBINING ANNUITY SYMBOL 20E8;Z # COMBINING TRIPLE UNDERDOT 20E9;Z # COMBINING WIDE BRIDGE ABOVE 20EA;Z # COMBINING LEFTWARDS ARROW OVERLAY 20EB;Z # COMBINING LONG DOUBLE SOLIDUS OVERLAY 20EC;Z # COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS 20ED;Z # COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS 20EE;Z # COMBINING LEFT ARROW BELOW 20EF;Z # COMBINING RIGHT ARROW BELOW 20F0;Z # COMBINING ASTERISK ABOVE 2CEF;Z # COPTIC COMBINING NI ABOVE 2CF0;Z # COPTIC COMBINING SPIRITUS ASPER 2CF1;Z # COPTIC COMBINING SPIRITUS LENIS 2DE0;Z # COMBINING CYRILLIC LETTER BE 2DE1;Z # COMBINING CYRILLIC LETTER VE 2DE2;Z # COMBINING CYRILLIC LETTER GHE 2DE3;Z # COMBINING CYRILLIC LETTER DE 2DE4;Z # COMBINING CYRILLIC LETTER ZHE 2DE5;Z # COMBINING CYRILLIC LETTER ZE 2DE6;Z # COMBINING CYRILLIC LETTER KA 2DE7;Z # COMBINING CYRILLIC LETTER EL 2DE8;Z # COMBINING CYRILLIC LETTER EM 2DE9;Z # COMBINING CYRILLIC LETTER EN 2DEA;Z # COMBINING CYRILLIC LETTER O 2DEB;Z # COMBINING CYRILLIC LETTER PE 2DEC;Z # COMBINING CYRILLIC LETTER ER 2DED;Z # COMBINING CYRILLIC LETTER ES 2DEE;Z # COMBINING CYRILLIC LETTER TE 2DEF;Z # COMBINING CYRILLIC LETTER HA 2DF0;Z # COMBINING CYRILLIC LETTER TSE 2DF1;Z # COMBINING CYRILLIC LETTER CHE 2DF2;Z # COMBINING CYRILLIC LETTER SHA 2DF3;Z # COMBINING CYRILLIC LETTER SHCHA 2DF4;Z # COMBINING CYRILLIC LETTER FITA 2DF5;Z # COMBINING CYRILLIC LETTER ES-TE 2DF6;Z # COMBINING CYRILLIC LETTER A 2DF7;Z # COMBINING CYRILLIC LETTER IE 2DF8;Z # COMBINING CYRILLIC LETTER DJERV 2DF9;Z # COMBINING CYRILLIC LETTER MONOGRAPH UK 2DFA;Z # COMBINING CYRILLIC LETTER YAT 2DFB;Z # COMBINING CYRILLIC LETTER YU 2DFC;Z # COMBINING CYRILLIC LETTER IOTIFIED A 2DFD;Z # COMBINING CYRILLIC LETTER LITTLE YUS 2DFE;Z # COMBINING CYRILLIC LETTER BIG YUS 2DFF;Z # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS 302A;ZW # IDEOGRAPHIC LEVEL TONE MARK 302B;ZW # IDEOGRAPHIC RISING TONE MARK 302C;ZW # IDEOGRAPHIC DEPARTING TONE MARK 302D;ZW # IDEOGRAPHIC ENTERING TONE MARK 302E;ZW # HANGUL SINGLE DOT TONE MARK 302F;ZW # HANGUL DOUBLE DOT TONE MARK 3099;ZW # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK 309A;ZW # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK A66F;Z # COMBINING CYRILLIC VZMET A670;Z # COMBINING CYRILLIC TEN MILLIONS SIGN A671;Z # COMBINING CYRILLIC HUNDRED MILLIONS SIGN A672;Z # COMBINING CYRILLIC THOUSAND MILLIONS SIGN A67C;Z # COMBINING CYRILLIC KAVYKA A67D;Z # COMBINING CYRILLIC PAYEROK A6F0;Z # BAMUM COMBINING MARK KOQNDON A6F1;Z # BAMUM COMBINING MARK TUKWENTIS A802;Z # SYLOTI NAGRI SIGN DVISVARA A806;Z # SYLOTI NAGRI SIGN HASANTA A80B;Z # SYLOTI NAGRI SIGN ANUSVARA A825;Z # SYLOTI NAGRI VOWEL SIGN U A826;Z # SYLOTI NAGRI VOWEL SIGN E A8C4;Z # SAURASHTRA SIGN VIRAMA A8E0;Z # COMBINING DEVANAGARI DIGIT ZERO A8E1;Z # COMBINING DEVANAGARI DIGIT ONE A8E2;Z # COMBINING DEVANAGARI DIGIT TWO A8E3;Z # COMBINING DEVANAGARI DIGIT THREE A8E4;Z # COMBINING DEVANAGARI DIGIT FOUR A8E5;Z # COMBINING DEVANAGARI DIGIT FIVE A8E6;Z # COMBINING DEVANAGARI DIGIT SIX A8E7;Z # COMBINING DEVANAGARI DIGIT SEVEN A8E8;Z # COMBINING DEVANAGARI DIGIT EIGHT A8E9;Z # COMBINING DEVANAGARI DIGIT NINE A8EA;Z # COMBINING DEVANAGARI LETTER A A8EB;Z # COMBINING DEVANAGARI LETTER U A8EC;Z # COMBINING DEVANAGARI LETTER KA A8ED;Z # COMBINING DEVANAGARI LETTER NA A8EE;Z # COMBINING DEVANAGARI LETTER PA A8EF;Z # COMBINING DEVANAGARI LETTER RA A8F0;Z # COMBINING DEVANAGARI LETTER VI A8F1;Z # COMBINING DEVANAGARI SIGN AVAGRAHA A926;Z # KAYAH LI VOWEL UE A927;Z # KAYAH LI VOWEL E A928;Z # KAYAH LI VOWEL U A929;Z # KAYAH LI VOWEL EE A92A;Z # KAYAH LI VOWEL O A92B;Z # KAYAH LI TONE PLOPHU A92C;Z # KAYAH LI TONE CALYA A92D;Z # KAYAH LI TONE CALYA PLOPHU A947;Z # REJANG VOWEL SIGN I A948;Z # REJANG VOWEL SIGN U A949;Z # REJANG VOWEL SIGN E A94A;Z # REJANG VOWEL SIGN AI A94B;Z # REJANG VOWEL SIGN O A94C;Z # REJANG VOWEL SIGN AU A94D;Z # REJANG VOWEL SIGN EU A94E;Z # REJANG VOWEL SIGN EA A94F;Z # REJANG CONSONANT SIGN NG A950;Z # REJANG CONSONANT SIGN N A951;Z # REJANG CONSONANT SIGN R A980;Z # JAVANESE SIGN PANYANGGA A981;Z # JAVANESE SIGN CECAK A982;Z # JAVANESE SIGN LAYAR A9B3;Z # JAVANESE SIGN CECAK TELU A9B6;Z # JAVANESE VOWEL SIGN WULU A9B7;Z # JAVANESE VOWEL SIGN WULU MELIK A9B8;Z # JAVANESE VOWEL SIGN SUKU A9B9;Z # JAVANESE VOWEL SIGN SUKU MENDUT A9BC;Z # JAVANESE VOWEL SIGN PEPET AA29;Z # CHAM VOWEL SIGN AA AA2A;Z # CHAM VOWEL SIGN I AA2B;Z # CHAM VOWEL SIGN II AA2C;Z # CHAM VOWEL SIGN EI AA2D;Z # CHAM VOWEL SIGN U AA2E;Z # CHAM VOWEL SIGN OE AA31;Z # CHAM VOWEL SIGN AU AA32;Z # CHAM VOWEL SIGN UE AA35;Z # CHAM CONSONANT SIGN LA AA36;Z # CHAM CONSONANT SIGN WA AA43;Z # CHAM CONSONANT SIGN FINAL NG AA4C;Z # CHAM CONSONANT SIGN FINAL M AAB0;Z # TAI VIET MAI KANG AAB2;Z # TAI VIET VOWEL I AAB3;Z # TAI VIET VOWEL UE AAB4;Z # TAI VIET VOWEL U AAB7;Z # TAI VIET MAI KHIT AAB8;Z # TAI VIET VOWEL IA AABE;Z # TAI VIET VOWEL AM AABF;Z # TAI VIET TONE MAI EK AAC1;Z # TAI VIET TONE MAI THO ABE5;Z # MEETEI MAYEK VOWEL SIGN ANAP ABE8;Z # MEETEI MAYEK VOWEL SIGN UNAP ABED;Z # MEETEI MAYEK APUN IYEK FB1E;Z # HEBREW POINT JUDEO-SPANISH VARIKA FE00;ZA # VARIATION SELECTOR-1 FE01;ZA # VARIATION SELECTOR-2 FE02;ZA # VARIATION SELECTOR-3 FE03;ZA # VARIATION SELECTOR-4 FE04;ZA # VARIATION SELECTOR-5 FE05;ZA # VARIATION SELECTOR-6 FE06;ZA # VARIATION SELECTOR-7 FE07;ZA # VARIATION SELECTOR-8 FE08;ZA # VARIATION SELECTOR-9 FE09;ZA # VARIATION SELECTOR-10 FE0A;ZA # VARIATION SELECTOR-11 FE0B;ZA # VARIATION SELECTOR-12 FE0C;ZA # VARIATION SELECTOR-13 FE0D;ZA # VARIATION SELECTOR-14 FE0E;ZA # VARIATION SELECTOR-15 FE0F;ZA # VARIATION SELECTOR-16 FE20;Z # COMBINING LIGATURE LEFT HALF FE21;Z # COMBINING LIGATURE RIGHT HALF FE22;Z # COMBINING DOUBLE TILDE LEFT HALF FE23;Z # COMBINING DOUBLE TILDE RIGHT HALF FE24;Z # COMBINING MACRON LEFT HALF FE25;Z # COMBINING MACRON RIGHT HALF FE26;Z # COMBINING CONJOINING MACRON FEFF;Z # ZERO WIDTH NO-BREAK SPACE FFF9;Z # INTERLINEAR ANNOTATION ANCHOR FFFA;Z # INTERLINEAR ANNOTATION SEPARATOR FFFB;Z # INTERLINEAR ANNOTATION TERMINATOR 101FD;Z # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE 10A01;Z # KHAROSHTHI VOWEL SIGN I 10A02;Z # KHAROSHTHI VOWEL SIGN U 10A03;Z # KHAROSHTHI VOWEL SIGN VOCALIC R 10A05;Z # KHAROSHTHI VOWEL SIGN E 10A06;Z # KHAROSHTHI VOWEL SIGN O 10A0C;Z # KHAROSHTHI VOWEL LENGTH MARK 10A0D;Z # KHAROSHTHI SIGN DOUBLE RING BELOW 10A0E;Z # KHAROSHTHI SIGN ANUSVARA 10A0F;Z # KHAROSHTHI SIGN VISARGA 10A38;Z # KHAROSHTHI SIGN BAR ABOVE 10A39;Z # KHAROSHTHI SIGN CAUDA 10A3A;Z # KHAROSHTHI SIGN DOT BELOW 10A3F;Z # KHAROSHTHI VIRAMA 11080;Z # KAITHI SIGN CANDRABINDU 11081;Z # KAITHI SIGN ANUSVARA 110B3;Z # KAITHI VOWEL SIGN U 110B4;Z # KAITHI VOWEL SIGN UU 110B5;Z # KAITHI VOWEL SIGN E 110B6;Z # KAITHI VOWEL SIGN AI 110B9;Z # KAITHI SIGN VIRAMA 110BA;Z # KAITHI SIGN NUKTA 110BD;Z # KAITHI NUMBER SIGN 1D167;Z # MUSICAL SYMBOL COMBINING TREMOLO-1 1D168;Z # MUSICAL SYMBOL COMBINING TREMOLO-2 1D169;Z # MUSICAL SYMBOL COMBINING TREMOLO-3 1D173;Z # MUSICAL SYMBOL BEGIN BEAM 1D174;Z # MUSICAL SYMBOL END BEAM 1D175;Z # MUSICAL SYMBOL BEGIN TIE 1D176;Z # MUSICAL SYMBOL END TIE 1D177;Z # MUSICAL SYMBOL BEGIN SLUR 1D178;Z # MUSICAL SYMBOL END SLUR 1D179;Z # MUSICAL SYMBOL BEGIN PHRASE 1D17A;Z # MUSICAL SYMBOL END PHRASE 1D17B;Z # MUSICAL SYMBOL COMBINING ACCENT 1D17C;Z # MUSICAL SYMBOL COMBINING STACCATO 1D17D;Z # MUSICAL SYMBOL COMBINING TENUTO 1D17E;Z # MUSICAL SYMBOL COMBINING STACCATISSIMO 1D17F;Z # MUSICAL SYMBOL COMBINING MARCATO 1D180;Z # MUSICAL SYMBOL COMBINING MARCATO-STACCATO 1D181;Z # MUSICAL SYMBOL COMBINING ACCENT-STACCATO 1D182;Z # MUSICAL SYMBOL COMBINING LOURE 1D185;Z # MUSICAL SYMBOL COMBINING DOIT 1D186;Z # MUSICAL SYMBOL COMBINING RIP 1D187;Z # MUSICAL SYMBOL COMBINING FLIP 1D188;Z # MUSICAL SYMBOL COMBINING SMEAR 1D189;Z # MUSICAL SYMBOL COMBINING BEND 1D18A;Z # MUSICAL SYMBOL COMBINING DOUBLE TONGUE 1D18B;Z # MUSICAL SYMBOL COMBINING TRIPLE TONGUE 1D1AA;Z # MUSICAL SYMBOL COMBINING DOWN BOW 1D1AB;Z # MUSICAL SYMBOL COMBINING UP BOW 1D1AC;Z # MUSICAL SYMBOL COMBINING HARMONIC 1D1AD;Z # MUSICAL SYMBOL COMBINING SNAP PIZZICATO 1D242;Z # COMBINING GREEK MUSICAL TRISEME 1D243;Z # COMBINING GREEK MUSICAL TETRASEME 1D244;Z # COMBINING GREEK MUSICAL PENTASEME E0001;Z # LANGUAGE TAG E0020;Z # TAG SPACE E0021;Z # TAG EXCLAMATION MARK E0022;Z # TAG QUOTATION MARK E0023;Z # TAG NUMBER SIGN E0024;Z # TAG DOLLAR SIGN E0025;Z # TAG PERCENT SIGN E0026;Z # TAG AMPERSAND E0027;Z # TAG APOSTROPHE E0028;Z # TAG LEFT PARENTHESIS E0029;Z # TAG RIGHT PARENTHESIS E002A;Z # TAG ASTERISK E002B;Z # TAG PLUS SIGN E002C;Z # TAG COMMA E002D;Z # TAG HYPHEN-MINUS E002E;Z # TAG FULL STOP E002F;Z # TAG SOLIDUS E0030;Z # TAG DIGIT ZERO E0031;Z # TAG DIGIT ONE E0032;Z # TAG DIGIT TWO E0033;Z # TAG DIGIT THREE E0034;Z # TAG DIGIT FOUR E0035;Z # TAG DIGIT FIVE E0036;Z # TAG DIGIT SIX E0037;Z # TAG DIGIT SEVEN E0038;Z # TAG DIGIT EIGHT E0039;Z # TAG DIGIT NINE E003A;Z # TAG COLON E003B;Z # TAG SEMICOLON E003C;Z # TAG LESS-THAN SIGN E003D;Z # TAG EQUALS SIGN E003E;Z # TAG GREATER-THAN SIGN E003F;Z # TAG QUESTION MARK E0040;Z # TAG COMMERCIAL AT E0041;Z # TAG LATIN CAPITAL LETTER A E0042;Z # TAG LATIN CAPITAL LETTER B E0043;Z # TAG LATIN CAPITAL LETTER C E0044;Z # TAG LATIN CAPITAL LETTER D E0045;Z # TAG LATIN CAPITAL LETTER E E0046;Z # TAG LATIN CAPITAL LETTER F E0047;Z # TAG LATIN CAPITAL LETTER G E0048;Z # TAG LATIN CAPITAL LETTER H E0049;Z # TAG LATIN CAPITAL LETTER I E004A;Z # TAG LATIN CAPITAL LETTER J E004B;Z # TAG LATIN CAPITAL LETTER K E004C;Z # TAG LATIN CAPITAL LETTER L E004D;Z # TAG LATIN CAPITAL LETTER M E004E;Z # TAG LATIN CAPITAL LETTER N E004F;Z # TAG LATIN CAPITAL LETTER O E0050;Z # TAG LATIN CAPITAL LETTER P E0051;Z # TAG LATIN CAPITAL LETTER Q E0052;Z # TAG LATIN CAPITAL LETTER R E0053;Z # TAG LATIN CAPITAL LETTER S E0054;Z # TAG LATIN CAPITAL LETTER T E0055;Z # TAG LATIN CAPITAL LETTER U E0056;Z # TAG LATIN CAPITAL LETTER V E0057;Z # TAG LATIN CAPITAL LETTER W E0058;Z # TAG LATIN CAPITAL LETTER X E0059;Z # TAG LATIN CAPITAL LETTER Y E005A;Z # TAG LATIN CAPITAL LETTER Z E005B;Z # TAG LEFT SQUARE BRACKET E005C;Z # TAG REVERSE SOLIDUS E005D;Z # TAG RIGHT SQUARE BRACKET E005E;Z # TAG CIRCUMFLEX ACCENT E005F;Z # TAG LOW LINE E0060;Z # TAG GRAVE ACCENT E0061;Z # TAG LATIN SMALL LETTER A E0062;Z # TAG LATIN SMALL LETTER B E0063;Z # TAG LATIN SMALL LETTER C E0064;Z # TAG LATIN SMALL LETTER D E0065;Z # TAG LATIN SMALL LETTER E E0066;Z # TAG LATIN SMALL LETTER F E0067;Z # TAG LATIN SMALL LETTER G E0068;Z # TAG LATIN SMALL LETTER H E0069;Z # TAG LATIN SMALL LETTER I E006A;Z # TAG LATIN SMALL LETTER J E006B;Z # TAG LATIN SMALL LETTER K E006C;Z # TAG LATIN SMALL LETTER L E006D;Z # TAG LATIN SMALL LETTER M E006E;Z # TAG LATIN SMALL LETTER N E006F;Z # TAG LATIN SMALL LETTER O E0070;Z # TAG LATIN SMALL LETTER P E0071;Z # TAG LATIN SMALL LETTER Q E0072;Z # TAG LATIN SMALL LETTER R E0073;Z # TAG LATIN SMALL LETTER S E0074;Z # TAG LATIN SMALL LETTER T E0075;Z # TAG LATIN SMALL LETTER U E0076;Z # TAG LATIN SMALL LETTER V E0077;Z # TAG LATIN SMALL LETTER W E0078;Z # TAG LATIN SMALL LETTER X E0079;Z # TAG LATIN SMALL LETTER Y E007A;Z # TAG LATIN SMALL LETTER Z E007B;Z # TAG LEFT CURLY BRACKET E007C;Z # TAG VERTICAL LINE E007D;Z # TAG RIGHT CURLY BRACKET E007E;Z # TAG TILDE E007F;Z # CANCEL TAG E0100;ZA # VARIATION SELECTOR-17 E0101;ZA # VARIATION SELECTOR-18 E0102;ZA # VARIATION SELECTOR-19 E0103;ZA # VARIATION SELECTOR-20 E0104;ZA # VARIATION SELECTOR-21 E0105;ZA # VARIATION SELECTOR-22 E0106;ZA # VARIATION SELECTOR-23 E0107;ZA # VARIATION SELECTOR-24 E0108;ZA # VARIATION SELECTOR-25 E0109;ZA # VARIATION SELECTOR-26 E010A;ZA # VARIATION SELECTOR-27 E010B;ZA # VARIATION SELECTOR-28 E010C;ZA # VARIATION SELECTOR-29 E010D;ZA # VARIATION SELECTOR-30 E010E;ZA # VARIATION SELECTOR-31 E010F;ZA # VARIATION SELECTOR-32 E0110;ZA # VARIATION SELECTOR-33 E0111;ZA # VARIATION SELECTOR-34 E0112;ZA # VARIATION SELECTOR-35 E0113;ZA # VARIATION SELECTOR-36 E0114;ZA # VARIATION SELECTOR-37 E0115;ZA # VARIATION SELECTOR-38 E0116;ZA # VARIATION SELECTOR-39 E0117;ZA # VARIATION SELECTOR-40 E0118;ZA # VARIATION SELECTOR-41 E0119;ZA # VARIATION SELECTOR-42 E011A;ZA # VARIATION SELECTOR-43 E011B;ZA # VARIATION SELECTOR-44 E011C;ZA # VARIATION SELECTOR-45 E011D;ZA # VARIATION SELECTOR-46 E011E;ZA # VARIATION SELECTOR-47 E011F;ZA # VARIATION SELECTOR-48 E0120;ZA # VARIATION SELECTOR-49 E0121;ZA # VARIATION SELECTOR-50 E0122;ZA # VARIATION SELECTOR-51 E0123;ZA # VARIATION SELECTOR-52 E0124;ZA # VARIATION SELECTOR-53 E0125;ZA # VARIATION SELECTOR-54 E0126;ZA # VARIATION SELECTOR-55 E0127;ZA # VARIATION SELECTOR-56 E0128;ZA # VARIATION SELECTOR-57 E0129;ZA # VARIATION SELECTOR-58 E012A;ZA # VARIATION SELECTOR-59 E012B;ZA # VARIATION SELECTOR-60 E012C;ZA # VARIATION SELECTOR-61 E012D;ZA # VARIATION SELECTOR-62 E012E;ZA # VARIATION SELECTOR-63 E012F;ZA # VARIATION SELECTOR-64 E0130;ZA # VARIATION SELECTOR-65 E0131;ZA # VARIATION SELECTOR-66 E0132;ZA # VARIATION SELECTOR-67 E0133;ZA # VARIATION SELECTOR-68 E0134;ZA # VARIATION SELECTOR-69 E0135;ZA # VARIATION SELECTOR-70 E0136;ZA # VARIATION SELECTOR-71 E0137;ZA # VARIATION SELECTOR-72 E0138;ZA # VARIATION SELECTOR-73 E0139;ZA # VARIATION SELECTOR-74 E013A;ZA # VARIATION SELECTOR-75 E013B;ZA # VARIATION SELECTOR-76 E013C;ZA # VARIATION SELECTOR-77 E013D;ZA # VARIATION SELECTOR-78 E013E;ZA # VARIATION SELECTOR-79 E013F;ZA # VARIATION SELECTOR-80 E0140;ZA # VARIATION SELECTOR-81 E0141;ZA # VARIATION SELECTOR-82 E0142;ZA # VARIATION SELECTOR-83 E0143;ZA # VARIATION SELECTOR-84 E0144;ZA # VARIATION SELECTOR-85 E0145;ZA # VARIATION SELECTOR-86 E0146;ZA # VARIATION SELECTOR-87 E0147;ZA # VARIATION SELECTOR-88 E0148;ZA # VARIATION SELECTOR-89 E0149;ZA # VARIATION SELECTOR-90 E014A;ZA # VARIATION SELECTOR-91 E014B;ZA # VARIATION SELECTOR-92 E014C;ZA # VARIATION SELECTOR-93 E014D;ZA # VARIATION SELECTOR-94 E014E;ZA # VARIATION SELECTOR-95 E014F;ZA # VARIATION SELECTOR-96 E0150;ZA # VARIATION SELECTOR-97 E0151;ZA # VARIATION SELECTOR-98 E0152;ZA # VARIATION SELECTOR-99 E0153;ZA # VARIATION SELECTOR-100 E0154;ZA # VARIATION SELECTOR-101 E0155;ZA # VARIATION SELECTOR-102 E0156;ZA # VARIATION SELECTOR-103 E0157;ZA # VARIATION SELECTOR-104 E0158;ZA # VARIATION SELECTOR-105 E0159;ZA # VARIATION SELECTOR-106 E015A;ZA # VARIATION SELECTOR-107 E015B;ZA # VARIATION SELECTOR-108 E015C;ZA # VARIATION SELECTOR-109 E015D;ZA # VARIATION SELECTOR-110 E015E;ZA # VARIATION SELECTOR-111 E015F;ZA # VARIATION SELECTOR-112 E0160;ZA # VARIATION SELECTOR-113 E0161;ZA # VARIATION SELECTOR-114 E0162;ZA # VARIATION SELECTOR-115 E0163;ZA # VARIATION SELECTOR-116 E0164;ZA # VARIATION SELECTOR-117 E0165;ZA # VARIATION SELECTOR-118 E0166;ZA # VARIATION SELECTOR-119 E0167;ZA # VARIATION SELECTOR-120 E0168;ZA # VARIATION SELECTOR-121 E0169;ZA # VARIATION SELECTOR-122 E016A;ZA # VARIATION SELECTOR-123 E016B;ZA # VARIATION SELECTOR-124 E016C;ZA # VARIATION SELECTOR-125 E016D;ZA # VARIATION SELECTOR-126 E016E;ZA # VARIATION SELECTOR-127 E016F;ZA # VARIATION SELECTOR-128 E0170;ZA # VARIATION SELECTOR-129 E0171;ZA # VARIATION SELECTOR-130 E0172;ZA # VARIATION SELECTOR-131 E0173;ZA # VARIATION SELECTOR-132 E0174;ZA # VARIATION SELECTOR-133 E0175;ZA # VARIATION SELECTOR-134 E0176;ZA # VARIATION SELECTOR-135 E0177;ZA # VARIATION SELECTOR-136 E0178;ZA # VARIATION SELECTOR-137 E0179;ZA # VARIATION SELECTOR-138 E017A;ZA # VARIATION SELECTOR-139 E017B;ZA # VARIATION SELECTOR-140 E017C;ZA # VARIATION SELECTOR-141 E017D;ZA # VARIATION SELECTOR-142 E017E;ZA # VARIATION SELECTOR-143 E017F;ZA # VARIATION SELECTOR-144 E0180;ZA # VARIATION SELECTOR-145 E0181;ZA # VARIATION SELECTOR-146 E0182;ZA # VARIATION SELECTOR-147 E0183;ZA # VARIATION SELECTOR-148 E0184;ZA # VARIATION SELECTOR-149 E0185;ZA # VARIATION SELECTOR-150 E0186;ZA # VARIATION SELECTOR-151 E0187;ZA # VARIATION SELECTOR-152 E0188;ZA # VARIATION SELECTOR-153 E0189;ZA # VARIATION SELECTOR-154 E018A;ZA # VARIATION SELECTOR-155 E018B;ZA # VARIATION SELECTOR-156 E018C;ZA # VARIATION SELECTOR-157 E018D;ZA # VARIATION SELECTOR-158 E018E;ZA # VARIATION SELECTOR-159 E018F;ZA # VARIATION SELECTOR-160 E0190;ZA # VARIATION SELECTOR-161 E0191;ZA # VARIATION SELECTOR-162 E0192;ZA # VARIATION SELECTOR-163 E0193;ZA # VARIATION SELECTOR-164 E0194;ZA # VARIATION SELECTOR-165 E0195;ZA # VARIATION SELECTOR-166 E0196;ZA # VARIATION SELECTOR-167 E0197;ZA # VARIATION SELECTOR-168 E0198;ZA # VARIATION SELECTOR-169 E0199;ZA # VARIATION SELECTOR-170 E019A;ZA # VARIATION SELECTOR-171 E019B;ZA # VARIATION SELECTOR-172 E019C;ZA # VARIATION SELECTOR-173 E019D;ZA # VARIATION SELECTOR-174 E019E;ZA # VARIATION SELECTOR-175 E019F;ZA # VARIATION SELECTOR-176 E01A0;ZA # VARIATION SELECTOR-177 E01A1;ZA # VARIATION SELECTOR-178 E01A2;ZA # VARIATION SELECTOR-179 E01A3;ZA # VARIATION SELECTOR-180 E01A4;ZA # VARIATION SELECTOR-181 E01A5;ZA # VARIATION SELECTOR-182 E01A6;ZA # VARIATION SELECTOR-183 E01A7;ZA # VARIATION SELECTOR-184 E01A8;ZA # VARIATION SELECTOR-185 E01A9;ZA # VARIATION SELECTOR-186 E01AA;ZA # VARIATION SELECTOR-187 E01AB;ZA # VARIATION SELECTOR-188 E01AC;ZA # VARIATION SELECTOR-189 E01AD;ZA # VARIATION SELECTOR-190 E01AE;ZA # VARIATION SELECTOR-191 E01AF;ZA # VARIATION SELECTOR-192 E01B0;ZA # VARIATION SELECTOR-193 E01B1;ZA # VARIATION SELECTOR-194 E01B2;ZA # VARIATION SELECTOR-195 E01B3;ZA # VARIATION SELECTOR-196 E01B4;ZA # VARIATION SELECTOR-197 E01B5;ZA # VARIATION SELECTOR-198 E01B6;ZA # VARIATION SELECTOR-199 E01B7;ZA # VARIATION SELECTOR-200 E01B8;ZA # VARIATION SELECTOR-201 E01B9;ZA # VARIATION SELECTOR-202 E01BA;ZA # VARIATION SELECTOR-203 E01BB;ZA # VARIATION SELECTOR-204 E01BC;ZA # VARIATION SELECTOR-205 E01BD;ZA # VARIATION SELECTOR-206 E01BE;ZA # VARIATION SELECTOR-207 E01BF;ZA # VARIATION SELECTOR-208 E01C0;ZA # VARIATION SELECTOR-209 E01C1;ZA # VARIATION SELECTOR-210 E01C2;ZA # VARIATION SELECTOR-211 E01C3;ZA # VARIATION SELECTOR-212 E01C4;ZA # VARIATION SELECTOR-213 E01C5;ZA # VARIATION SELECTOR-214 E01C6;ZA # VARIATION SELECTOR-215 E01C7;ZA # VARIATION SELECTOR-216 E01C8;ZA # VARIATION SELECTOR-217 E01C9;ZA # VARIATION SELECTOR-218 E01CA;ZA # VARIATION SELECTOR-219 E01CB;ZA # VARIATION SELECTOR-220 E01CC;ZA # VARIATION SELECTOR-221 E01CD;ZA # VARIATION SELECTOR-222 E01CE;ZA # VARIATION SELECTOR-223 E01CF;ZA # VARIATION SELECTOR-224 E01D0;ZA # VARIATION SELECTOR-225 E01D1;ZA # VARIATION SELECTOR-226 E01D2;ZA # VARIATION SELECTOR-227 E01D3;ZA # VARIATION SELECTOR-228 E01D4;ZA # VARIATION SELECTOR-229 E01D5;ZA # VARIATION SELECTOR-230 E01D6;ZA # VARIATION SELECTOR-231 E01D7;ZA # VARIATION SELECTOR-232 E01D8;ZA # VARIATION SELECTOR-233 E01D9;ZA # VARIATION SELECTOR-234 E01DA;ZA # VARIATION SELECTOR-235 E01DB;ZA # VARIATION SELECTOR-236 E01DC;ZA # VARIATION SELECTOR-237 E01DD;ZA # VARIATION SELECTOR-238 E01DE;ZA # VARIATION SELECTOR-239 E01DF;ZA # VARIATION SELECTOR-240 E01E0;ZA # VARIATION SELECTOR-241 E01E1;ZA # VARIATION SELECTOR-242 E01E2;ZA # VARIATION SELECTOR-243 E01E3;ZA # VARIATION SELECTOR-244 E01E4;ZA # VARIATION SELECTOR-245 E01E5;ZA # VARIATION SELECTOR-246 E01E6;ZA # VARIATION SELECTOR-247 E01E7;ZA # VARIATION SELECTOR-248 E01E8;ZA # VARIATION SELECTOR-249 E01E9;ZA # VARIATION SELECTOR-250 E01EA;ZA # VARIATION SELECTOR-251 E01EB;ZA # VARIATION SELECTOR-252 E01EC;ZA # VARIATION SELECTOR-253 E01ED;ZA # VARIATION SELECTOR-254 E01EE;ZA # VARIATION SELECTOR-255 E01EF;ZA # VARIATION SELECTOR-256 sombok-2.3.1/COPYING0000644000076400007640000003053012210015236010764 00000000000000 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program 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 1, or (at your option) any later version. This program 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 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! sombok-2.3.1/INSTALL.ja_JP0000664000076400007640000000133212210017170011743 00000000000000====================== ソンボクのインストール ====================== 要件 ==== * ANSI C コンパイラ (たとえば GCC C Compiler) が要ります。 * 必須ではありませんが、タイ語の単語分節に対応するには libthai パッケー ジをインストールする必要があります。次の場所で入手できます。 http://linux.thai.net/projects/libthai この場合、pkg-config も要ります。 インストール ============ 配布物を展開し、次のように実行します。 ./configure [オプション……] make make check make install ``./configure --help`` を実行すれば、どんなオプションが使えるかわかりま す。 sombok-2.3.1/debian/0000775000076400007640000000000012221427042011240 500000000000000sombok-2.3.1/debian/compat0000664000076400007640000000000212210015234012350 000000000000008 sombok-2.3.1/debian/libsombok-dev.doc-base0000664000076400007640000000043612210015234015311 00000000000000Document: libsombok-dev Title: Sombok Documentation Author: Hatuka*nezumi - IKEDA Soji Abstract: This document describes the Sombok API Section: Programming Format: HTML Index: /usr/share/doc/libsombok-dev/html/index.html Files: /usr/share/doc/libsombok-dev/html/* sombok-2.3.1/debian/libsombok3.dirs0000664000076400007640000000001012210015234014070 00000000000000usr/lib sombok-2.3.1/debian/copyright0000664000076400007640000000232412210015234013106 00000000000000Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=174 Upstream-Name: sombok Upstream-Contact: Hatuka*nezumi - IKEDA Soji Source: http://sourceforge.net/projects/linefold/files Files: * Copyright: 2011, Hatuka*nezumi - IKEDA Soji License: GPL-2+ Files: debian/* Copyright: 2011, Emmanuel Bouthenot 2011, Hatuka*nezumi - IKEDA Soji License: GPL-2+ License: GPL-2+ This program 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 of the License, or (at your option) any later version. . This package 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 this program. If not, see . . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". sombok-2.3.1/debian/libsombok-dev.install0000664000076400007640000000020012210015234015267 00000000000000usr/include/* usr/lib/lib*.a usr/lib/lib*.so usr/lib/pkgconfig/* usr/share/doc/sombok-*/html/* usr/share/doc/libsombok-dev/html sombok-2.3.1/debian/source/0000775000076400007640000000000012210015234012532 500000000000000sombok-2.3.1/debian/source/.svn/0000775000076400007640000000000012221426765013437 500000000000000sombok-2.3.1/debian/source/.svn/text-base/0000775000076400007640000000000012210015234015312 500000000000000sombok-2.3.1/debian/source/.svn/text-base/options.svn-base0000444000076400007640000000005212210015234020356 00000000000000unapply-patches abort-on-upstream-changes sombok-2.3.1/debian/source/.svn/text-base/format.svn-base0000444000076400007640000000001412210015234020151 000000000000003.0 (quilt) sombok-2.3.1/debian/source/.svn/prop-base/0000775000076400007640000000000012210015234015306 500000000000000sombok-2.3.1/debian/source/.svn/props/0000775000076400007640000000000012210015234014561 500000000000000sombok-2.3.1/debian/source/.svn/all-wcprops0000444000076400007640000000055312210015234015523 00000000000000K 25 svn:wc:ra_dav:version-url V 70 /p/linefold/code/!svn/ver/113/branches/sombok-2.2-branch/debian/source END options K 25 svn:wc:ra_dav:version-url V 78 /p/linefold/code/!svn/ver/113/branches/sombok-2.2-branch/debian/source/options END format K 25 svn:wc:ra_dav:version-url V 77 /p/linefold/code/!svn/ver/113/branches/sombok-2.2-branch/debian/source/format END sombok-2.3.1/debian/source/.svn/tmp/0000775000076400007640000000000012221240453014223 500000000000000sombok-2.3.1/debian/source/.svn/tmp/text-base/0000775000076400007640000000000012210015234016112 500000000000000sombok-2.3.1/debian/source/.svn/tmp/prop-base/0000775000076400007640000000000012210015234016106 500000000000000sombok-2.3.1/debian/source/.svn/tmp/props/0000775000076400007640000000000012210015234015361 500000000000000sombok-2.3.1/debian/source/.svn/entries0000444000076400007640000000102012221240453014724 0000000000000010 dir 126 https://svn.code.sf.net/p/linefold/code/branches/sombok-2.2-branch/debian/source https://svn.code.sf.net/p/linefold/code 2011-10-25T12:45:59.715677Z 63 hatukanezumi cdf81a54-7d14-0410-9a44-e5a6cc86c1d9 options file 2013-08-30T04:07:56.000000Z 9d501a7f46f9cc8d199986b034c5d011 2011-10-25T12:45:59.715677Z 63 hatukanezumi 42 format file 2013-08-30T04:07:56.000000Z d3a10140af54ec7371d3b9b084b07c14 2011-10-25T12:45:59.715677Z 63 hatukanezumi 12 sombok-2.3.1/debian/source/options0000664000076400007640000000005212210015234014065 00000000000000unapply-patches abort-on-upstream-changes sombok-2.3.1/debian/source/format0000664000076400007640000000001412210015234013660 000000000000003.0 (quilt) sombok-2.3.1/debian/libsombok-dev.links0000664000076400007640000000012612210015234014750 00000000000000/usr/share/javascript/jquery/jquery.min.js usr/share/doc/libsombok-dev/html/jquery.js sombok-2.3.1/debian/watch0000664000076400007640000000013012210015234012175 00000000000000version=3 opts="uversionmangle=s/2011/1.9/" http://sf.net/linefold/sombok-(.*)\.tar\.gz sombok-2.3.1/debian/docs0000664000076400007640000000006212210015234012023 00000000000000README README.ja_JP ChangeLog ChangeLog.REL1 NEWS sombok-2.3.1/debian/rules0000775000076400007640000000035412210015234012234 00000000000000#!/usr/bin/make -f override_dh_clean: rm -rf doc/html dh_clean # removing JQuery embedded copy override_dh_install: rm -f debian/libsombok-dev/usr/share/doc/libsombok-dev/html/jquery.js dh_install %: dh $@ --with=autotools-dev sombok-2.3.1/debian/changelog0000664000076400007640000000061612210015234013027 00000000000000sombok (2.0.5-2) unstable; urgency=low * Add a patch to fix a FTBFS on kFreeBSD (Closes: #630776) * Add some fixes in copyright file. * Update Vcs-* fields. -- Emmanuel Bouthenot Fri, 17 Jun 2011 14:34:04 +0000 sombok (2.0.5-1) unstable; urgency=low * Initial Release (Closes: #625754). -- Emmanuel Bouthenot Thu, 05 May 2011 11:33:46 +0000 sombok-2.3.1/debian/libsombok-dev.dirs0000664000076400007640000000002412210015234014566 00000000000000usr/lib usr/include sombok-2.3.1/debian/libsombok3.install0000664000076400007640000000002212210015234014600 00000000000000usr/lib/lib*.so.* sombok-2.3.1/debian/control0000664000076400007640000000271012210015234012555 00000000000000Source: sombok Priority: optional Maintainer: Emmanuel Bouthenot Build-Depends: libthai-dev (>= 0.1.9), pkg-config, debhelper (>= 8.0.0), autotools-dev, doxygen Standards-Version: 3.9.2 Section: libs Homepage: http://sourceforge.net/projects/linefold/ Vcs-Git: git://anonscm.debian.org/users/kolter/sombok.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=users/kolter/sombok.git Package: libsombok-dev Section: libdevel Architecture: any Depends: libc6-dev, ${misc:Depends}, libsombok3 (= ${binary:Version}), libjs-jquery Description: Unicode Text Segmentation library (development files) Sombok library performs Line Breaking Algorithm described in Unicode Standards Annex #14 (UAX #14). East_Asian_Width informative properties defined by Annex #11 (UAX #11) may be concerned to determin breaking positions. This library also implements “default” Grapheme Cluster segmentation described in Annex #29 (UAX #29). . This package contains the development files. Package: libsombok3 Architecture: any Depends: libthai0 (>= 0.1.9~), ${shlibs:Depends}, ${misc:Depends} Description: Unicode Text Segmentation library Sombok library performs Line Breaking Algorithm described in Unicode Standards Annex #14 (UAX #14). East_Asian_Width informative properties defined by Annex #11 (UAX #11) may be concerned to determin breaking positions. This library also implements “default” Grapheme Cluster segmentation described in Annex #29 (UAX #29). sombok-2.3.1/Makefile.in0000664000076400007640000014206412221426342012014 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } 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@ @MALLOC_DEBUG_TRUE@am__append_1 = src/mymalloc.c check_PROGRAMS = sombok$(EXEEXT) @HAVE_STRERROR_FALSE@am__append_2 = src/strerror.c @HAVE_STRCASECMP_FALSE@am__append_3 = src/strcasecmp.c subdir = . DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \ $(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/config.h.in $(srcdir)/sombok.pc.in \ $(srcdir)/sombok.spec.in $(top_srcdir)/configure \ $(top_srcdir)/doc/doxyfile.in \ $(top_srcdir)/include/sombok.h.in AUTHORS COPYING ChangeLog \ INSTALL NEWS TODO compile config.guess config.sub depcomp \ install-sh ltmain.sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = include/sombok.h sombok.pc sombok.spec \ doc/doxyfile CONFIG_CLEAN_VPATH_FILES = 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__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(htmldir)" \ "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)" \ "$(DESTDIR)$(includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libsombok_la_LIBADD = am__libsombok_la_SOURCES_DIST = lib/break.c lib/charprop.c \ lib/gcstring.c lib/linebreak.c lib/utf8.c lib/utils.c \ lib/southeastasian.c lib/@UNICODE_VERSION@.c src/mymalloc.c @MALLOC_DEBUG_TRUE@am__objects_1 = libsombok_la-mymalloc.lo am_libsombok_la_OBJECTS = libsombok_la-break.lo \ libsombok_la-charprop.lo libsombok_la-gcstring.lo \ libsombok_la-linebreak.lo libsombok_la-utf8.lo \ libsombok_la-utils.lo libsombok_la-southeastasian.lo \ libsombok_la-@UNICODE_VERSION@.lo $(am__objects_1) libsombok_la_OBJECTS = $(am_libsombok_la_OBJECTS) libsombok_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libsombok_la_CFLAGS) \ $(CFLAGS) $(libsombok_la_LDFLAGS) $(LDFLAGS) -o $@ am__sombok_SOURCES_DIST = src/sombok.c src/strerror.c src/strcasecmp.c @HAVE_STRERROR_FALSE@am__objects_2 = sombok-strerror.$(OBJEXT) @HAVE_STRCASECMP_FALSE@am__objects_3 = sombok-strcasecmp.$(OBJEXT) am_sombok_OBJECTS = sombok-sombok.$(OBJEXT) $(am__objects_2) \ $(am__objects_3) sombok_OBJECTS = $(am_sombok_OBJECTS) sombok_DEPENDENCIES = libsombok.la sombok_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(sombok_CFLAGS) $(CFLAGS) \ $(sombok_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsombok_la_SOURCES) $(sombok_SOURCES) DIST_SOURCES = $(am__libsombok_la_SOURCES_DIST) \ $(am__sombok_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(html_DATA) $(pkgconfig_DATA) HEADERS = $(include_HEADERS) $(nodist_include_HEADERS) \ $(noinst_HEADERS) ETAGS = etags CTAGS = ctags am__tty_colors = \ red=; grn=; lgn=; blu=; std= DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTHAI_CFLAGS = @LIBTHAI_CFLAGS@ LIBTHAI_LIBS = @LIBTHAI_LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MALLOC_DEBUG = @MALLOC_DEBUG@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOMBOK_UNICHAR_T = @SOMBOK_UNICHAR_T@ SOMBOK_UNICHAR_T_IS_UNSIGNED_INT = @SOMBOK_UNICHAR_T_IS_UNSIGNED_INT@ SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG = @SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG@ SOMBOK_UNICHAR_T_IS_WCHAR_T = @SOMBOK_UNICHAR_T_IS_WCHAR_T@ STRIP = @STRIP@ UNICODE_VERSION = @UNICODE_VERSION@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ lib_LTLIBRARIES = libsombok.la libsombok_la_SOURCES = lib/break.c lib/charprop.c lib/gcstring.c \ lib/linebreak.c lib/utf8.c lib/utils.c lib/southeastasian.c \ lib/@UNICODE_VERSION@.c $(am__append_1) libsombok_la_CFLAGS = -I. -Iinclude @LIBTHAI_CFLAGS@ libsombok_la_LDFLAGS = -version-info 4:6:1 @LIBTHAI_LIBS@ include_HEADERS = include/sombok_constants.h nodist_include_HEADERS = include/sombok.h noinst_HEADERS = src/mymalloc.h pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = sombok.pc sombok_SOURCES = src/sombok.c $(am__append_2) $(am__append_3) sombok_CFLAGS = -Iinclude sombok_LDFLAGS = sombok_LDADD = libsombok.la TESTS = tests/*.t @ENABLE_DOC_TRUE@html_DATA = doc/html/* @ENABLE_DOC_TRUE@MOSTLYCLEANFILES = stamp-html $(html_DATA) EXTRA_DIST = sombok.spec debian/* \ lib/?.?.?.c \ tests/lb.sh $(TESTS) test-data/* \ data/makefile data/constants.pl data/custom.pl data/data.pl \ data/*.custom data/Rules-*.txt data/LBCLASSES \ ARTISTIC ChangeLog.REL1 INSTALL.ja_JP README.ja_JP \ UNICODE VERSION all: config.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then rm -f stamp-h1; else :; fi @if test ! -f $@; then $(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 config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 include/sombok.h: $(top_builddir)/config.status $(top_srcdir)/include/sombok.h.in cd $(top_builddir) && $(SHELL) ./config.status $@ sombok.pc: $(top_builddir)/config.status $(srcdir)/sombok.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ sombok.spec: $(top_builddir)/config.status $(srcdir)/sombok.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ doc/doxyfile: $(top_builddir)/config.status $(top_srcdir)/doc/doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsombok.la: $(libsombok_la_OBJECTS) $(libsombok_la_DEPENDENCIES) $(EXTRA_libsombok_la_DEPENDENCIES) $(libsombok_la_LINK) -rpath $(libdir) $(libsombok_la_OBJECTS) $(libsombok_la_LIBADD) $(LIBS) clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list sombok$(EXEEXT): $(sombok_OBJECTS) $(sombok_DEPENDENCIES) $(EXTRA_sombok_DEPENDENCIES) @rm -f sombok$(EXEEXT) $(sombok_LINK) $(sombok_OBJECTS) $(sombok_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsombok_la-@UNICODE_VERSION@.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsombok_la-break.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsombok_la-charprop.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsombok_la-gcstring.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsombok_la-linebreak.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsombok_la-mymalloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsombok_la-southeastasian.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsombok_la-utf8.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsombok_la-utils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sombok-sombok.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sombok-strcasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sombok-strerror.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsombok_la-break.lo: lib/break.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -MT libsombok_la-break.lo -MD -MP -MF $(DEPDIR)/libsombok_la-break.Tpo -c -o libsombok_la-break.lo `test -f 'lib/break.c' || echo '$(srcdir)/'`lib/break.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsombok_la-break.Tpo $(DEPDIR)/libsombok_la-break.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/break.c' object='libsombok_la-break.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -c -o libsombok_la-break.lo `test -f 'lib/break.c' || echo '$(srcdir)/'`lib/break.c libsombok_la-charprop.lo: lib/charprop.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -MT libsombok_la-charprop.lo -MD -MP -MF $(DEPDIR)/libsombok_la-charprop.Tpo -c -o libsombok_la-charprop.lo `test -f 'lib/charprop.c' || echo '$(srcdir)/'`lib/charprop.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsombok_la-charprop.Tpo $(DEPDIR)/libsombok_la-charprop.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/charprop.c' object='libsombok_la-charprop.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -c -o libsombok_la-charprop.lo `test -f 'lib/charprop.c' || echo '$(srcdir)/'`lib/charprop.c libsombok_la-gcstring.lo: lib/gcstring.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -MT libsombok_la-gcstring.lo -MD -MP -MF $(DEPDIR)/libsombok_la-gcstring.Tpo -c -o libsombok_la-gcstring.lo `test -f 'lib/gcstring.c' || echo '$(srcdir)/'`lib/gcstring.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsombok_la-gcstring.Tpo $(DEPDIR)/libsombok_la-gcstring.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/gcstring.c' object='libsombok_la-gcstring.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -c -o libsombok_la-gcstring.lo `test -f 'lib/gcstring.c' || echo '$(srcdir)/'`lib/gcstring.c libsombok_la-linebreak.lo: lib/linebreak.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -MT libsombok_la-linebreak.lo -MD -MP -MF $(DEPDIR)/libsombok_la-linebreak.Tpo -c -o libsombok_la-linebreak.lo `test -f 'lib/linebreak.c' || echo '$(srcdir)/'`lib/linebreak.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsombok_la-linebreak.Tpo $(DEPDIR)/libsombok_la-linebreak.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/linebreak.c' object='libsombok_la-linebreak.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -c -o libsombok_la-linebreak.lo `test -f 'lib/linebreak.c' || echo '$(srcdir)/'`lib/linebreak.c libsombok_la-utf8.lo: lib/utf8.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -MT libsombok_la-utf8.lo -MD -MP -MF $(DEPDIR)/libsombok_la-utf8.Tpo -c -o libsombok_la-utf8.lo `test -f 'lib/utf8.c' || echo '$(srcdir)/'`lib/utf8.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsombok_la-utf8.Tpo $(DEPDIR)/libsombok_la-utf8.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/utf8.c' object='libsombok_la-utf8.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -c -o libsombok_la-utf8.lo `test -f 'lib/utf8.c' || echo '$(srcdir)/'`lib/utf8.c libsombok_la-utils.lo: lib/utils.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -MT libsombok_la-utils.lo -MD -MP -MF $(DEPDIR)/libsombok_la-utils.Tpo -c -o libsombok_la-utils.lo `test -f 'lib/utils.c' || echo '$(srcdir)/'`lib/utils.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsombok_la-utils.Tpo $(DEPDIR)/libsombok_la-utils.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/utils.c' object='libsombok_la-utils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -c -o libsombok_la-utils.lo `test -f 'lib/utils.c' || echo '$(srcdir)/'`lib/utils.c libsombok_la-southeastasian.lo: lib/southeastasian.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -MT libsombok_la-southeastasian.lo -MD -MP -MF $(DEPDIR)/libsombok_la-southeastasian.Tpo -c -o libsombok_la-southeastasian.lo `test -f 'lib/southeastasian.c' || echo '$(srcdir)/'`lib/southeastasian.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsombok_la-southeastasian.Tpo $(DEPDIR)/libsombok_la-southeastasian.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/southeastasian.c' object='libsombok_la-southeastasian.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -c -o libsombok_la-southeastasian.lo `test -f 'lib/southeastasian.c' || echo '$(srcdir)/'`lib/southeastasian.c libsombok_la-@UNICODE_VERSION@.lo: lib/@UNICODE_VERSION@.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -MT libsombok_la-@UNICODE_VERSION@.lo -MD -MP -MF $(DEPDIR)/libsombok_la-@UNICODE_VERSION@.Tpo -c -o libsombok_la-@UNICODE_VERSION@.lo `test -f 'lib/@UNICODE_VERSION@.c' || echo '$(srcdir)/'`lib/@UNICODE_VERSION@.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsombok_la-@UNICODE_VERSION@.Tpo $(DEPDIR)/libsombok_la-@UNICODE_VERSION@.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/@UNICODE_VERSION@.c' object='libsombok_la-@UNICODE_VERSION@.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -c -o libsombok_la-@UNICODE_VERSION@.lo `test -f 'lib/@UNICODE_VERSION@.c' || echo '$(srcdir)/'`lib/@UNICODE_VERSION@.c libsombok_la-mymalloc.lo: src/mymalloc.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -MT libsombok_la-mymalloc.lo -MD -MP -MF $(DEPDIR)/libsombok_la-mymalloc.Tpo -c -o libsombok_la-mymalloc.lo `test -f 'src/mymalloc.c' || echo '$(srcdir)/'`src/mymalloc.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsombok_la-mymalloc.Tpo $(DEPDIR)/libsombok_la-mymalloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mymalloc.c' object='libsombok_la-mymalloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsombok_la_CFLAGS) $(CFLAGS) -c -o libsombok_la-mymalloc.lo `test -f 'src/mymalloc.c' || echo '$(srcdir)/'`src/mymalloc.c sombok-sombok.o: src/sombok.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -MT sombok-sombok.o -MD -MP -MF $(DEPDIR)/sombok-sombok.Tpo -c -o sombok-sombok.o `test -f 'src/sombok.c' || echo '$(srcdir)/'`src/sombok.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/sombok-sombok.Tpo $(DEPDIR)/sombok-sombok.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/sombok.c' object='sombok-sombok.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -c -o sombok-sombok.o `test -f 'src/sombok.c' || echo '$(srcdir)/'`src/sombok.c sombok-sombok.obj: src/sombok.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -MT sombok-sombok.obj -MD -MP -MF $(DEPDIR)/sombok-sombok.Tpo -c -o sombok-sombok.obj `if test -f 'src/sombok.c'; then $(CYGPATH_W) 'src/sombok.c'; else $(CYGPATH_W) '$(srcdir)/src/sombok.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/sombok-sombok.Tpo $(DEPDIR)/sombok-sombok.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/sombok.c' object='sombok-sombok.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -c -o sombok-sombok.obj `if test -f 'src/sombok.c'; then $(CYGPATH_W) 'src/sombok.c'; else $(CYGPATH_W) '$(srcdir)/src/sombok.c'; fi` sombok-strerror.o: src/strerror.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -MT sombok-strerror.o -MD -MP -MF $(DEPDIR)/sombok-strerror.Tpo -c -o sombok-strerror.o `test -f 'src/strerror.c' || echo '$(srcdir)/'`src/strerror.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/sombok-strerror.Tpo $(DEPDIR)/sombok-strerror.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/strerror.c' object='sombok-strerror.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -c -o sombok-strerror.o `test -f 'src/strerror.c' || echo '$(srcdir)/'`src/strerror.c sombok-strerror.obj: src/strerror.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -MT sombok-strerror.obj -MD -MP -MF $(DEPDIR)/sombok-strerror.Tpo -c -o sombok-strerror.obj `if test -f 'src/strerror.c'; then $(CYGPATH_W) 'src/strerror.c'; else $(CYGPATH_W) '$(srcdir)/src/strerror.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/sombok-strerror.Tpo $(DEPDIR)/sombok-strerror.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/strerror.c' object='sombok-strerror.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -c -o sombok-strerror.obj `if test -f 'src/strerror.c'; then $(CYGPATH_W) 'src/strerror.c'; else $(CYGPATH_W) '$(srcdir)/src/strerror.c'; fi` sombok-strcasecmp.o: src/strcasecmp.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -MT sombok-strcasecmp.o -MD -MP -MF $(DEPDIR)/sombok-strcasecmp.Tpo -c -o sombok-strcasecmp.o `test -f 'src/strcasecmp.c' || echo '$(srcdir)/'`src/strcasecmp.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/sombok-strcasecmp.Tpo $(DEPDIR)/sombok-strcasecmp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/strcasecmp.c' object='sombok-strcasecmp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -c -o sombok-strcasecmp.o `test -f 'src/strcasecmp.c' || echo '$(srcdir)/'`src/strcasecmp.c sombok-strcasecmp.obj: src/strcasecmp.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -MT sombok-strcasecmp.obj -MD -MP -MF $(DEPDIR)/sombok-strcasecmp.Tpo -c -o sombok-strcasecmp.obj `if test -f 'src/strcasecmp.c'; then $(CYGPATH_W) 'src/strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/src/strcasecmp.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/sombok-strcasecmp.Tpo $(DEPDIR)/sombok-strcasecmp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/strcasecmp.c' object='sombok-strcasecmp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sombok_CFLAGS) $(CFLAGS) -c -o sombok-strcasecmp.obj `if test -f 'src/strcasecmp.c'; then $(CYGPATH_W) 'src/strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/src/strcasecmp.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-htmlDATA: $(html_DATA) @$(NORMAL_INSTALL) @list='$(html_DATA)'; test -n "$(htmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ fi; \ 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_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ done uninstall-htmlDATA: @$(NORMAL_UNINSTALL) @list='$(html_DATA)'; test -n "$(htmldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(htmldir)'; $(am__uninstall_files_from_dir) install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ 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_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ 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)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) install-nodist_includeHEADERS: $(nodist_include_HEADERS) @$(NORMAL_INSTALL) @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ 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)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-nodist_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) 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-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all $$tests failed"; \ else \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ col="$$grn"; \ else \ col="$$red"; \ fi; \ echo "$${col}$$dashes$${std}"; \ echo "$${col}$$banner$${std}"; \ test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ test -z "$$report" || echo "$${col}$$report$${std}"; \ echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod u+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) config.h installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(htmldir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) 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-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-htmlDATA install-includeHEADERS \ install-nodist_includeHEADERS install-pkgconfigDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES 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 $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-htmlDATA uninstall-includeHEADERS \ uninstall-libLTLIBRARIES uninstall-nodist_includeHEADERS \ uninstall-pkgconfigDATA .MAKE: all check-am install-am install-strip .PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \ clean clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool ctags dist dist-all dist-bzip2 dist-gzip \ dist-lzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags distcleancheck \ distdir distuninstallcheck 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-htmlDATA \ install-includeHEADERS install-info install-info-am \ install-libLTLIBRARIES install-man \ install-nodist_includeHEADERS install-pdf install-pdf-am \ install-pkgconfigDATA install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-htmlDATA \ uninstall-includeHEADERS uninstall-libLTLIBRARIES \ uninstall-nodist_includeHEADERS uninstall-pkgconfigDATA @ENABLE_DOC_TRUE@$(html_DATA): stamp-html @ENABLE_DOC_TRUE@stamp-html: doc/doxyfile $(include_HEADERS) $(nodist_include_HEADERS) \ @ENABLE_DOC_TRUE@ $(libsombok_la_SOURCES) @ENABLE_DOC_TRUE@ $(DOXYGEN) doc/doxyfile @ENABLE_DOC_TRUE@ touch stamp-html # 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: