This commit was manufactured by cvs2svn to create tag
'release-2-8-d01'.

X-SVN-Rev: 13870
diff --git a/.cvsignore b/.cvsignore
new file mode 100644
index 0000000..45e1a6b
--- /dev/null
+++ b/.cvsignore
@@ -0,0 +1,5 @@
+build
+*-stamp
+bin
+include
+lib
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..b482bf4
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,67 @@
+* text=auto !eol
+
+*.c text !eol
+*.cc text !eol
+*.classpath text !eol
+*.cpp text !eol
+*.css text !eol
+*.dsp text !eol
+*.dsw text !eol
+*.filters text !eol
+*.h text !eol
+*.htm text !eol
+*.html text !eol
+*.in text !eol
+*.java text !eol
+*.launch text !eol
+*.mak text !eol
+*.md text !eol
+*.MF text !eol
+*.mk text !eol
+*.pl text !eol
+*.pm text !eol
+*.project text !eol
+*.properties text !eol
+*.py text !eol
+*.rc text !eol
+*.sh text eol=lf
+*.sln text !eol
+*.stub text !eol
+*.txt text !eol
+*.ucm text !eol
+*.vcproj text !eol
+*.vcxproj text !eol
+*.xml text !eol
+*.xsl text !eol
+*.xslt text !eol
+Makefile text !eol
+configure text !eol
+LICENSE text !eol
+README text !eol
+
+*.bin -text
+*.brk -text
+*.cnv -text
+*.icu -text
+*.res -text
+*.nrm -text
+*.spp -text
+*.tri2 -text
+
+source/data/brkitr/thaidict.brk -text
+source/data/unidata/UCARules.txt -text
+source/samples/ucnv/data02.bin -text
+source/test/testdata/importtest.bin -text
+source/test/testdata/iscii.bin -text
+source/test/testdata/testdata_icu26_testtypes.res -text
+source/test/testdata/testdata_icu26e_testtypes.res -text
+source/test/testdata/uni-text.bin -text
+
+# The following file types are stored in Git-LFS.
+*.jar filter=lfs diff=lfs merge=lfs -text
+*.dat filter=lfs diff=lfs merge=lfs -text
+*.zip filter=lfs diff=lfs merge=lfs -text
+*.gz filter=lfs diff=lfs merge=lfs -text
+*.bz2 filter=lfs diff=lfs merge=lfs -text
+*.gif filter=lfs diff=lfs merge=lfs -text
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d990ddb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,339 @@
+/*-stamp
+/bin
+/build
+debian/*.debhelper
+debian/*.substvars
+debian/*files
+debian/*libicu[0-9]*
+debian/control
+debian/docs
+debian/icu
+debian/icu-data
+debian/icu-doc
+debian/icu-i18ndata
+debian/icu-locales
+debian/icu.postinst
+debian/icu.prerm
+debian/libicu-dev
+debian/postinst
+debian/prerm
+debian/tmp
+/include
+/lib
+source/Makefile
+source/README
+source/allinone/*.ncb
+source/allinone/*.opt
+source/allinone/*.suo
+source/allinone/all/*.plg
+source/common/*.ao
+source/common/*.d
+source/common/*.plg
+source/common/Debug
+source/common/Makefile
+source/common/Release
+source/common/icucfg.h
+source/common/libicu*.*
+source/common/unicode/platform.h
+source/config.cache
+source/config.log
+source/config.status
+source/config/Makefile.inc
+source/config/icu-config
+source/data/*.plg
+source/data/Makefile
+source/data/icupkg.inc
+source/data/out
+source/extra/Makefile
+source/extra/scrptrun/Makefile
+source/extra/uconv/*.d
+source/extra/uconv/Debug
+source/extra/uconv/Makefile
+source/extra/uconv/Release
+source/extra/uconv/pkgdata.inc
+source/extra/uconv/pkgdatain.txt
+source/extra/uconv/resources/*.res
+source/extra/uconv/uconv
+source/extra/uconv/uconv.1
+source/extra/uconv/uconv.ncb
+source/extra/uconv/uconv.opt
+source/extra/uconv/uconv.plg
+source/extra/uconv/uconvmsg
+source/extra/ustdio/*.d
+source/extra/ustdio/Debug
+source/extra/ustdio/Makefile
+source/extra/ustdio/Release
+source/extra/ustdio/libicuio.*
+source/i18n/*.ao
+source/i18n/*.d
+source/i18n/*.plg
+source/i18n/Debug
+source/i18n/Makefile
+source/i18n/Release
+source/i18n/libicu*.*
+source/icudefs.mk
+source/layout/*.d
+source/layout/*.pdb
+source/layout/Debug
+source/layout/Makefile
+source/layout/Release
+source/layout/libicule.*
+source/layout/tmp
+source/layoutex/*.d
+source/layoutex/*.pdb
+source/layoutex/Debug
+source/layoutex/Makefile
+source/layoutex/Release
+source/layoutex/libicu*.*
+source/samples/Makefile
+source/samples/cal/*.d
+source/samples/cal/*.pdb
+source/samples/cal/Debug
+source/samples/cal/Makefile
+source/samples/cal/Release
+source/samples/cal/icucal
+source/samples/date/*.d
+source/samples/date/*.pdb
+source/samples/date/Debug
+source/samples/date/Makefile
+source/samples/date/Release
+source/samples/date/icudate
+source/samples/layout/*.d
+source/samples/layout/*.pdb
+source/samples/layout/.#*
+source/samples/layout/Debug
+source/samples/layout/Makefile
+source/samples/layout/Release
+source/samples/layout/tmp
+source/stubdata/*.ao
+source/stubdata/*.d
+source/stubdata/*.plg
+source/stubdata/Debug
+source/stubdata/Makefile
+source/stubdata/Release
+source/stubdata/libicu*.*
+source/stubdata/stubdatabuilt.txt
+source/test/Makefile
+source/test/cintltst/*.d
+source/test/cintltst/*.plg
+source/test/cintltst/Debug
+source/test/cintltst/Makefile
+source/test/cintltst/Release
+source/test/cintltst/cintltst
+source/test/collperf/Makefile
+source/test/ieeetest/*.d
+source/test/ieeetest/*.plg
+source/test/ieeetest/Debug
+source/test/ieeetest/Makefile
+source/test/ieeetest/Release
+source/test/ieeetest/ieeetest
+source/test/intltest/*.d
+source/test/intltest/*.plg
+source/test/intltest/Debug
+source/test/intltest/Makefile
+source/test/intltest/Release
+source/test/intltest/intltest
+source/test/iotest/*.d
+source/test/iotest/*.ncb
+source/test/iotest/*.opt
+source/test/iotest/*.plg
+source/test/iotest/Debug
+source/test/iotest/Makefile
+source/test/iotest/Release
+source/test/letest/*.d
+source/test/letest/*.pdb
+source/test/letest/.#*
+source/test/letest/Debug
+source/test/letest/Makefile
+source/test/letest/Release
+source/test/letest/tmp
+source/test/testdata/Makefile
+source/test/testdata/out
+source/test/testmap/*.d
+source/test/testmap/Debug
+source/test/testmap/Makefile
+source/test/testmap/Release
+source/test/testmap/testmap
+source/test/testmap/testmap.plg
+source/test/thaitest/Makefile
+source/test/threadtest/Makefile
+source/tools/*.d
+source/tools/*.pdb
+source/tools/*.plg
+source/tools/Debug
+source/tools/Makefile
+source/tools/Release
+source/tools/ctestfw/*.d
+source/tools/ctestfw/*.pdb
+source/tools/ctestfw/Debug
+source/tools/ctestfw/Makefile
+source/tools/ctestfw/Release
+source/tools/ctestfw/libicuctestfw*
+source/tools/ctestfw/pkgdata
+source/tools/ctestfw/tmp
+source/tools/dumpce/*.css
+source/tools/dumpce/*.d
+source/tools/dumpce/*.html
+source/tools/dumpce/*.o
+source/tools/dumpce/Makefile
+source/tools/dumpce/dumpce
+source/tools/genbrk/*.d
+source/tools/genbrk/*.pdb
+source/tools/genbrk/*.plg
+source/tools/genbrk/Debug
+source/tools/genbrk/Makefile
+source/tools/genbrk/Release
+source/tools/genbrk/genbrk
+source/tools/genccode/*.d
+source/tools/genccode/*.pdb
+source/tools/genccode/*.plg
+source/tools/genccode/Debug
+source/tools/genccode/Makefile
+source/tools/genccode/Release
+source/tools/genccode/genccode
+source/tools/genccode/genccode.8
+source/tools/genccode/tmp
+source/tools/gencmn/*.d
+source/tools/gencmn/*.pdb
+source/tools/gencmn/*.plg
+source/tools/gencmn/Debug
+source/tools/gencmn/Makefile
+source/tools/gencmn/Release
+source/tools/gencmn/decmn
+source/tools/gencmn/decmn.[0-9]
+source/tools/gencmn/decmn_win32_Debug
+source/tools/gencmn/decmn_win32_Release
+source/tools/gencmn/gencmn
+source/tools/gencmn/gencmn.[0-9]
+source/tools/gencnval/*.d
+source/tools/gencnval/*.pdb
+source/tools/gencnval/Debug
+source/tools/gencnval/Makefile
+source/tools/gencnval/Release
+source/tools/gencnval/convrtrs.txt.[0-9]
+source/tools/gencnval/gencnval
+source/tools/gencnval/gencnval.[0-9]
+source/tools/gencnval/tmp
+source/tools/gennames/*.d
+source/tools/gennames/*.pdb
+source/tools/gennames/Debug
+source/tools/gennames/Makefile
+source/tools/gennames/Release
+source/tools/gennames/gennames
+source/tools/gennames/gennames.8
+source/tools/gennames/tmp
+source/tools/gennorm/*.d
+source/tools/gennorm/*.pdb
+source/tools/gennorm/*.plg
+source/tools/gennorm/Debug
+source/tools/gennorm/Makefile
+source/tools/gennorm/Release
+source/tools/gennorm/gennorm
+source/tools/gennorm/gennorm.[0-9]
+source/tools/gennorm/tmp
+source/tools/genpname/*.d
+source/tools/genpname/*.pdb
+source/tools/genpname/*.plg
+source/tools/genpname/Debug
+source/tools/genpname/Makefile
+source/tools/genpname/Release
+source/tools/genpname/genpname
+source/tools/genprops/*.d
+source/tools/genprops/*.pdb
+source/tools/genprops/Debug
+source/tools/genprops/Makefile
+source/tools/genprops/Release
+source/tools/genprops/genprops
+source/tools/genprops/genprops.[0-9]
+source/tools/genprops/tmp
+source/tools/genrb/*.d
+source/tools/genrb/*.pdb
+source/tools/genrb/*.plg
+source/tools/genrb/Debug
+source/tools/genrb/Makefile
+source/tools/genrb/Release
+source/tools/genrb/derb
+source/tools/genrb/derb.[0-9]
+source/tools/genrb/derb_*
+source/tools/genrb/genjp/Debug
+source/tools/genrb/genjp/genjp.ncb
+source/tools/genrb/genjp/genjp.opt
+source/tools/genrb/genjp/genjp.plg
+source/tools/genrb/genjp/genjp.positions
+source/tools/genrb/genrb
+source/tools/genrb/genrb.[0-9]
+source/tools/genrb/tmp
+source/tools/gensprep/*.d
+source/tools/gensprep/*.pdb
+source/tools/gensprep/Debug
+source/tools/gensprep/Makefile
+source/tools/gensprep/Release
+source/tools/gensprep/gensprep
+source/tools/gensprep/gensprep.8
+source/tools/gensprep/gensprep.plg
+source/tools/gentest/*.d
+source/tools/gentest/*.pdb
+source/tools/gentest/Debug
+source/tools/gentest/Makefile
+source/tools/gentest/Release
+source/tools/gentest/gentest
+source/tools/gentest/pkgdata
+source/tools/gentest/tmp
+source/tools/gentz/*.d
+source/tools/gentz/*.pdb
+source/tools/gentz/*.plg
+source/tools/gentz/Debug
+source/tools/gentz/Makefile
+source/tools/gentz/Release
+source/tools/gentz/gentz
+source/tools/gentz/gentz.[0-9]
+source/tools/gentz/tmp
+source/tools/genuca/*.d
+source/tools/genuca/*.pdb
+source/tools/genuca/Debug
+source/tools/genuca/Makefile
+source/tools/genuca/Release
+source/tools/genuca/genuca
+source/tools/genuca/genuca.8
+source/tools/genuca/tmp
+source/tools/icupkg.inc
+source/tools/icuswap/*.d
+source/tools/icuswap/*.ncb
+source/tools/icuswap/*.opt
+source/tools/icuswap/*.pdb
+source/tools/icuswap/*.plg
+source/tools/icuswap/Debug
+source/tools/icuswap/Makefile
+source/tools/icuswap/Release
+source/tools/icuswap/icuswap
+source/tools/icuswap/icuswap.[0-9]
+source/tools/icuswap/tmp
+source/tools/makeconv/*.d
+source/tools/makeconv/*.pdb
+source/tools/makeconv/*.plg
+source/tools/makeconv/Debug
+source/tools/makeconv/Makefile
+source/tools/makeconv/Release
+source/tools/makeconv/makeconv
+source/tools/makeconv/makeconv.[0-9]
+source/tools/makeconv/tmp
+source/tools/pkgdata/*.d
+source/tools/pkgdata/*.ncb
+source/tools/pkgdata/*.opt
+source/tools/pkgdata/*.pdb
+source/tools/pkgdata/Debug
+source/tools/pkgdata/Makefile
+source/tools/pkgdata/Release
+source/tools/pkgdata/icupkg.inc
+source/tools/pkgdata/pkgdata
+source/tools/pkgdata/pkgdata.[0-9]
+source/tools/pkgdata/tmp
+source/tools/tmp*
+source/tools/toolutil/*.d
+source/tools/toolutil/*.pdb
+source/tools/toolutil/Debug
+source/tools/toolutil/Makefile
+source/tools/toolutil/Release
+source/tools/toolutil/libicu*
+source/tools/toolutil/pkgdata
+source/tools/toolutil/tmp
diff --git a/as_is/os390/unpax-icu.sh b/as_is/os390/unpax-icu.sh
new file mode 100755
index 0000000..6a8bbeb
--- /dev/null
+++ b/as_is/os390/unpax-icu.sh
@@ -0,0 +1,127 @@
+#!/bin/sh
+# Copyright (C) 2001 - 2002, International Business Machines Corporation.      
+# All Rights Reserved.                                                       
+#
+# Authors:
+# Ami Fixler
+# Steven R. Loomis <srl@jtcsv.com>
+# George Rhoten
+#
+# Shell script to unpax ICU and convert the files to an EBCDIC codepage.
+# After extracting to EBCDIC, binary files are re-extracted without the
+# EBCDIC conversion, thus restoring them to original codepage.
+#
+# Set the following variable to the list of binary file suffixes (extensions)
+
+#binary_suffixes='ico ICO bmp BMP jpg JPG gif GIF brk BRK'
+#ICU specific binary files
+binary_suffixes='brk BRK bin BIN'
+
+usage()
+{
+  echo "Enter archive filename as a parameter: $0 icu-archive.tar [strip]"
+  echo "(strip is an option to remove hex '0D' carraige returns)"
+}
+# first make sure we at least one arg and it's a file we can read
+if [ $# -eq 0 ]; then
+  usage
+  exit
+fi
+if [ ! -r $1 ]; then
+  echo "$1 does not exist or cannot be read."
+  usage
+  exit
+fi
+# set up a few variables
+
+echo ""
+echo "Extracting from $1 ..."
+echo ""
+# extract files while converting them to EBCDIC
+pax -rvf $1 -o to=IBM-1047,from=ISO8859-1
+
+if [ $# -gt 1 ]; then 
+  if [ $2 -eq strip ]; then
+    echo ""
+    echo "Stripping hex 0d characters ..."
+    for i in $(pax -f $1 2>/dev/null)
+    do
+      case $i in
+        */)
+         # then this entry is a directory
+         ;;
+        *)
+          # then this entry is NOT a directory
+          tr -d 
+ <$i >@@@icu@tmp
+          chmod +w $i
+          rm $i
+          mv @@@icu@tmp $i
+          ;;
+       esac
+    done
+  fi
+fi
+
+echo ""
+echo "Determining binary files ..."
+echo ""
+
+#for dir in `find ./icu -type d \( -name CVS -o -print \)`; do
+#    if [ -f $dir/CVS/Entries ]; then
+#        binary_files="$binary_files`cat $dir/CVS/Entries | fgrep -- -kb \
+#                      | cut -d / -f2 | sed -e "s%^%$dir/%" \
+#                      | sed -e "s%^\./%%" | tr '\n' ' '`"
+#    fi
+#done
+#echo "Detecting Unicode files"
+for file in `find icu \( -name \*.txt -print \)`; do
+    bom8=`head -c 3 $file|\
+          od -t x1|\
+          head -n 1|\
+          sed 's/  */ /g'|\
+          cut -f2-4 -d ' '|\
+          tr 'A-Z' 'a-z'`;
+    #Find a converted UTF-8 BOM
+    if test "$bom8" = "57 8b ab"
+    then
+        binary_files="$binary_files $file";
+    fi
+done
+
+for i in $(pax -f $1 2>/dev/null)
+do
+  case $i in
+    */)
+#    then this entry is a directory
+     ;;
+    *.*)
+#    then this entry has a dot in the filename
+     for j in $binary_suffixes
+     do
+       suf=${i#*.*}
+       if [ "$suf" = "$j" ]
+       then
+         binary_files="$binary_files $i"
+         break
+       fi
+     done
+     ;;
+    *)
+#    then this entry does not have a dot in it
+     ;;
+  esac
+done
+
+# now see if a re-extract of binary files is necessary
+if [ ${#binary_files} -eq 0 ]; then
+  echo ""
+  echo "There are no binary files to restore."
+else
+  echo "Restoring binary files ..."
+  echo ""
+  rm $binary_files
+  pax -rvf $1 $binary_files
+fi
+echo ""
+echo "$0 has completed extracting ICU from $1."
diff --git a/as_is/os400/configure b/as_is/os400/configure
new file mode 100755
index 0000000..e52a06f
--- /dev/null
+++ b/as_is/os400/configure
@@ -0,0 +1,4662 @@
+#! /usr/bin/qsh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+  --enable-strict         compile with strict compiler options [default=no]"
+ac_help="$ac_help
+  --enable-64bit-libs     build 64-bit libraries [default=yes]"
+ac_help="$ac_help
+  --enable-hpuxcma        build ICU with HPUX CMA threads (only ver>=11) [default=no]"
+ac_help="$ac_help
+  --enable-shared[=PKGS]  build shared libraries [default=yes]"
+ac_help="$ac_help
+  --enable-static[=PKGS]  build static libraries [default=no]"
+ac_help="$ac_help
+  --enable-renaming       add a version suffix to symbols [default=yes]"
+ac_help="$ac_help
+  --enable-rpath          use rpath when linking [default is only if necessary]"
+ac_help="$ac_help
+  --enable-threads        build ICU with threads [default=yes]"
+ac_help="$ac_help
+  --with-iostream=version specify the version of iostream to use (none, old, std, auto) [default=auto]"
+ac_help="$ac_help
+  --enable-extras         build ICU extras [default=yes]"
+ac_help="$ac_help
+  --enable-ustdio         build ICU's ustdio library [default=yes]"
+ac_help="$ac_help
+  --enable-layout         build ICU's layout library [default=yes]"
+ac_help="$ac_help
+  --with-data-packaging=type specify how to package ICU data (files, archive, library, auto) [default=auto]"
+ac_help="$ac_help
+"
+ac_help="$ac_help
+  --with-library-suffix=suffix    tag a suffix to the library names [default=]"
+ac_help="$ac_help
+  --enable-tests          build ICU tests [default=yes]"
+ac_help="$ac_help
+  --enable-samples        build ICU samples [default=yes]  
+Additionally, the variable FORCE_LIBS may be set before calling configure. If set, it will REPLACE any automatic list of libraries."
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/usr/bin/qsh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+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=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -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 ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build="$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" ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir="$ac_optarg" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_${ac_feature}='$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)
+    # 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 << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --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
+EOF
+    cat << EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$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" ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    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)
+    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" ;;
+
+  -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 ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.13"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=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" ;;
+
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *)
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'del -f conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+del -f conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=common/unicode/utypes.h
+
+# 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 its parent.
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  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
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+
+PACKAGE="icu"
+
+
+echo $ac_n "checking for ICU version numbers""... $ac_c" 1>&6
+echo "configure:566: checking for ICU version numbers" >&5
+
+geticuversion() {
+    sed -n 's/^[ 	]*#[ 	]*define[ 	]*U_ICU_VERSION[ 	]*"\([^"]*\)".*/\1/p' "$@"
+}
+VERSION=`geticuversion $srcdir/common/unicode/uversion.h`
+if test x"$VERSION" = x; then
+    VERSION=`geticuversion $srcdir/common/unicode/*.h`
+    if test x"$VERSION" = x; then
+        { echo "configure: error: Cannot determine ICU version number from header files" 1>&2; exit 1; }
+    fi
+fi
+LIB_VERSION=`echo $VERSION | sed -e 's/\.//' -e 's/^\([^.]*\)$/\1.0/'`
+LIB_VERSION_MAJOR=`echo $LIB_VERSION | sed 's/\..*//'`
+
+
+
+echo "$ac_t""release $VERSION, library $LIB_VERSION" 1>&6
+
+UNICODE_VERSION="4"
+
+
+CPPFLAGS="${CPPFLAGS} -I."
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:593: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+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
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:623: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_prog_rejected=no
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+	continue
+      fi
+      ac_cv_prog_CC="cc"
+      break
+    fi
+  done
+  IFS="$ac_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 $# -gt 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
+    set dummy "$ac_dir/$ac_word" "$@"
+    shift
+    ac_cv_prog_CC="$@"
+  fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:674: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:706: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 717 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  ac_cv_prog_cc_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cc_cross=no
+  else
+    ac_cv_prog_cc_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cc_works=no
+fi
+del -f conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:748: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:753: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -c qpponly conftest.c'; { (eval echo configure:767: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:781: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_cc_g=yes
+else
+  ac_cv_prog_cc_g=no
+fi
+del -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&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
+
+for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:817: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_CXX="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CXX="$ac_cv_prog_CXX"
+if test -n "$CXX"; then
+  echo "$ac_t""$CXX" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$CXX" && break
+done
+test -n "$CXX" || CXX="gcc"
+
+
+echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:849: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 860 "configure"
+#include "confdefs.h"
+
+int main(){return(0);}
+EOF
+if { (eval echo configure:865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  ac_cv_prog_cxx_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cxx_cross=no
+  else
+    ac_cv_prog_cxx_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cxx_works=no
+fi
+del -f conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6
+if test $ac_cv_prog_cxx_works = no; then
+  { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:891: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
+cross_compiling=$ac_cv_prog_cxx_cross
+
+echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
+echo "configure:896: checking whether we are using GNU C++" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.C <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CXX-g++} -c qpponly conftest.C'; { (eval echo configure:905: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gxx=yes
+else
+  ac_cv_prog_gxx=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gxx" 1>&6
+
+if test $ac_cv_prog_gxx = yes; then
+  GXX=yes
+else
+  GXX=
+fi
+
+ac_test_CXXFLAGS="${CXXFLAGS+set}"
+ac_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS=
+echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
+echo "configure:924: checking whether ${CXX-g++} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.cc
+if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
+  ac_cv_prog_cxx_g=yes
+else
+  ac_cv_prog_cxx_g=no
+fi
+del -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS="$ac_save_CXXFLAGS"
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+
+for ac_declaration in \
+   ''\
+   '#include <stdlib.h>' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat > conftest.$ac_ext <<EOF
+#line 965 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+$ac_declaration
+int main() {
+exit (42);
+; return 0; }
+EOF
+if { (eval echo configure:973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  continue
+fi
+del -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#line 983 "configure"
+#include "confdefs.h"
+$ac_declaration
+int main() {
+exit (42);
+; return 0; }
+EOF
+if { (eval echo configure:990: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  del -f conftest*
+  break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+done
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+
+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
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# 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
+# 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"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:1037: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/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
+        if test -f $ac_dir/$ac_prog; then
+	  if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  else
+	    ac_cv_path_install="$ac_dir/$ac_prog -c"
+	    break 2
+	  fi
+	fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
+
+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.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL="$ac_install_sh"
+  fi
+fi
+echo "$ac_t""$INSTALL" 1>&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_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+# make sure install is relative to srcdir - if a script
+if test "$srcdir" = "."; then
+  # If srcdir isn't just ., then (srcdir) is already prepended.
+  if test "${ac_install_sh}" = "${INSTALL}"; then
+   INSTALL="\\\$(top_srcdir)/${ac_install_sh}"
+  fi
+fi
+
+# Extract the first word of "autoconf", so it can be a program name with args.
+set dummy autoconf; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1101: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_AUTOCONF'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$AUTOCONF"; then
+  ac_cv_prog_AUTOCONF="$AUTOCONF" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_AUTOCONF="autoconf"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_AUTOCONF" && ac_cv_prog_AUTOCONF="true"
+fi
+fi
+AUTOCONF="$ac_cv_prog_AUTOCONF"
+if test -n "$AUTOCONF"; then
+  echo "$ac_t""$AUTOCONF" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+# Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1131: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_STRIP="strip"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP="true"
+fi
+fi
+STRIP="$ac_cv_prog_STRIP"
+if test -n "$STRIP"; then
+  echo "$ac_t""$STRIP" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+for ac_prog in gmake gnumake
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1164: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_U_MAKE'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$U_MAKE" in
+  /*)
+  ac_cv_path_U_MAKE="$U_MAKE" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_U_MAKE="$U_MAKE" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_path_U_MAKE="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+U_MAKE="$ac_cv_path_U_MAKE"
+if test -n "$U_MAKE"; then
+  echo "$ac_t""$U_MAKE" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$U_MAKE" && break
+done
+test -n "$U_MAKE" || U_MAKE="make"
+
+
+
+# Extract the first word of "doxygen", so it can be a program name with args.
+set dummy doxygen; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1205: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_DOXYGEN'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$DOXYGEN" in
+  /*)
+  ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH:/usr/local/bin:/usr/bin"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_path_DOXYGEN="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+DOXYGEN="$ac_cv_path_DOXYGEN"
+if test -n "$DOXYGEN"; then
+  echo "$ac_t""$DOXYGEN" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+
+# Make sure we can run config.sub.
+if ${CONFIG_SHELL-/usr/bin/qsh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking host system type""... $ac_c" 1>&6
+echo "configure:1245: checking host system type" >&5
+
+host_alias=$host
+case "$host_alias" in
+NONE)
+  case $nonopt in
+  NONE)
+    if host_alias=`${CONFIG_SHELL-/usr/bin/qsh} $ac_config_guess`; then :
+    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+    fi ;;
+  *) host_alias=$nonopt ;;
+  esac ;;
+esac
+
+host=`${CONFIG_SHELL-/usr/bin/qsh} $ac_config_sub $host_alias`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$host" 1>&6
+
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+echo "configure:1266: checking for Cygwin environment" >&5
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1271 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifndef __CYGWIN__
+#define __CYGWIN__ __CYGWIN32__
+#endif
+return __CYGWIN__;
+; return 0; }
+EOF
+if { (eval echo configure:1282: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_cygwin=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_cygwin=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_cygwin" 1>&6
+CYGWIN=
+test "$ac_cv_cygwin" = yes && CYGWIN=yes
+echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
+echo "configure:1299: checking for mingw32 environment" >&5
+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1304 "configure"
+#include "confdefs.h"
+
+int main() {
+return __MINGW32__;
+; return 0; }
+EOF
+if { (eval echo configure:1311: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_mingw32=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_mingw32=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_mingw32" 1>&6
+MINGW32=
+test "$ac_cv_mingw32" = yes && MINGW32=yes
+
+
+echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+echo "configure:1330: checking for executable suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+  ac_cv_exeext=.exe
+else
+  rm -f conftest*
+  echo 'int main () { return 0; }' > conftest.$ac_ext
+  ac_cv_exeext=
+  if { (eval echo configure:1340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+    for file in conftest.*; do
+      case $file in
+      *.c | *.o | *.obj) ;;
+      *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+      esac
+    done
+  else
+    { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
+  fi
+  rm -f conftest*
+  test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
+fi
+fi
+
+EXEEXT=""
+test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
+echo "$ac_t""${ac_cv_exeext}" 1>&6
+ac_exeext=$EXEEXT
+
+
+
+    echo $ac_n "checking whether strict compiling is on""... $ac_c" 1>&6
+echo "configure:1363: checking whether strict compiling is on" >&5
+    # Check whether --enable-strict or --disable-strict was given.
+if test "${enable_strict+set}" = set; then
+  enableval="$enable_strict"
+  
+    	if test "$enableval" = no
+    	then
+	    ac_use_strict_options=no
+        else
+	    ac_use_strict_options=yes
+        fi
+      
+else
+  ac_use_strict_options=no
+fi
+
+    echo "$ac_t""$ac_use_strict_options" 1>&6
+
+    if test "$ac_use_strict_options" = yes
+    then
+        if test "$GCC" = yes
+        then
+            CFLAGS="$CFLAGS -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings"
+            case "${host}" in
+            *-*-solaris*)
+                CFLAGS="$CFLAGS -D__STDC__=0";;
+            esac
+        fi
+        if test "$GXX" = yes
+        then
+            CXXFLAGS="$CXXFLAGS -W -Wall -ansi -pedantic -Wpointer-arith -Wmissing-prototypes -Wwrite-strings"
+            case "${host}" in
+            *-*-solaris*)
+                CXXFLAGS="$CXXFLAGS -D__STDC__=0";;
+            esac
+        fi
+    fi
+
+
+
+    # Check whether --enable-64bit-libs or --disable-64bit-libs was given.
+if test "${enable_64bit_libs+set}" = set; then
+  enableval="$enable_64bit_libs"
+  ENABLE_64BIT_LIBS=${enableval}
+else
+  ENABLE_64BIT_LIBS=yes
+    
+fi
+
+        echo $ac_n "checking for 64-bit executable support""... $ac_c" 1>&6
+echo "configure:1413: checking for 64-bit executable support" >&5
+    if test "$ENABLE_64BIT_LIBS" = no; then
+        case "${host}" in
+        *-*-hpux*)
+            case "${CXX}" in
+            *CC)
+                CFLAGS="${CFLAGS} +DAportable"
+                CXXFLAGS="${CXXFLAGS} +DAportable"
+                ;;
+            esac;;
+        esac
+    else
+        case "${host}" in
+        *-*-solaris*)
+            if test "$ac_cv_prog_gcc" = no; then
+                SOL64=`$CXX -xarch=v9 2>&1 && $CC -xarch=v9 2>&1 | grep -v usage:`
+                SPARCV9=`isainfo -n 2>&1 | grep sparcv9`
+                if test -z "$SOL64" && test -n "$SPARCV9"; then
+                    CFLAGS="${CFLAGS} -xtarget=ultra -xarch=v9"
+                    CXXFLAGS="${CXXFLAGS} -xtarget=ultra -xarch=v9"
+                    LDFLAGS="${LDFLAGS} -xtarget=ultra -xarch=v9"
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            else
+                ENABLE_64BIT_LIBS=no
+            fi
+            ;;
+        *-*-aix*)
+            OLD_CFLAGS="${CFLAGS}"
+            OLD_CXXFLAGS="${CXXFLAGS}"
+            OLD_LDFLAGS="${LDFLAGS}"
+            CFLAGS="${CFLAGS} -q64"
+            CXXFLAGS="${CXXFLAGS} -q64"
+            LDFLAGS="${LDFLAGS} -q64"
+            if test "$cross_compiling" = yes; then
+  ENABLE_64BIT_LIBS=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1453 "configure"
+#include "confdefs.h"
+int main(void) {return 0;}
+EOF
+if { (eval echo configure:1457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ENABLE_64BIT_LIBS=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ENABLE_64BIT_LIBS=no
+fi
+rm -fr conftest*
+fi
+
+            if test "$ENABLE_64BIT_LIBS" = no; then
+                CFLAGS="${OLD_CFLAGS}"
+                CXXFLAGS="${OLD_CXXFLAGS}"
+                LDFLAGS="${OLD_LDFLAGS}"
+            else
+                ARFLAGS="${ARFLAGS} -X64"
+            fi
+            ;;
+        *-*-hpux*)
+            OLD_CFLAGS="${CFLAGS}"
+            OLD_CXXFLAGS="${CXXFLAGS}"
+            CFLAGS="${CFLAGS} +DA2.0W"
+            CXXFLAGS="${CXXFLAGS} +DA2.0W"
+            if test "$cross_compiling" = yes; then
+  ENABLE_64BIT_LIBS=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1486 "configure"
+#include "confdefs.h"
+int main(void) {return 0;}
+EOF
+if { (eval echo configure:1490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ENABLE_64BIT_LIBS=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ENABLE_64BIT_LIBS=no
+fi
+rm -fr conftest*
+fi
+
+            if test "$ENABLE_64BIT_LIBS" = no; then
+                CFLAGS="${OLD_CFLAGS}"
+                CXXFLAGS="${OLD_CXXFLAGS}"
+            fi
+            ;;
+        *)
+            ENABLE_64BIT_LIBS=no
+            ;;
+        esac
+    fi
+        echo "$ac_t""$ENABLE_64BIT_LIBS" 1>&6
+
+
+
+
+	echo $ac_n "checking which Makefile fragment to use""... $ac_c" 1>&6
+echo "configure:1518: checking which Makefile fragment to use" >&5
+if eval "test \"`echo '$''{'icu_cv_host_frag'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+case "${host}" in
+*-*-solaris*)
+	if test "$ac_cv_prog_gcc" = yes; then	
+		icu_cv_host_frag=mh-solaris-gcc 
+	else
+		icu_cv_host_frag=mh-solaris
+	fi ;;
+alpha*-*-linux-gnu)
+	if test "$ac_cv_prog_gcc" = yes; then
+		icu_cv_host_frag=mh-alpha-linux-gcc
+	else  
+		icu_cv_host_frag=mh-alpha-linux-cc
+	fi ;;
+*-*-linux*) icu_cv_host_frag=mh-linux ;;
+*-*-cygwin)
+	if test "$ac_cv_prog_gcc" = yes; then
+	  	icu_cv_host_frag=mh-cygwin
+	else
+	  	icu_cv_host_frag=mh-cygwin-msvc
+	fi ;;
+*-*-*bsd*) 	icu_cv_host_frag=mh-bsd-gcc ;;
+*-*-aix*)
+	if test -n "`$CXX --help 2>&1 | grep 'IBM C and C++ Compilers$'`"; then
+		icu_cv_host_frag=mh-aix
+	else
+		icu_cv_host_frag=mh-aix-va
+	fi ;;
+*-*-hpux*)
+	if test "$ac_cv_prog_gcc" = yes; then
+		icu_cv_host_frag=mh-hpux-gcc
+	else
+		case "$CXX" in
+		*aCC)    icu_cv_host_frag=mh-hpux-acc ;;
+		*CC)     icu_cv_host_frag=mh-hpux-cc ;;
+		esac
+	fi ;;
+*-*ibm-openedition*|*-*-os390*)	icu_cv_host_frag=mh-os390 ;;
+*-*-os400*)	icu_cv_host_frag=mh-os400 ;;
+*-apple-rhapsody*)	icu_cv_host_frag=mh-darwin ;;
+*-apple-darwin*)	icu_cv_host_frag=mh-darwin ;;
+*-*-irix*)	icu_cv_host_frag=mh-irix ;;
+*-dec-osf*) icu_cv_host_frag=mh-alpha-osf ;;
+*-*-nto*)	icu_cv_host_frag=mh-qnx ;;
+*-sequent-*) 	icu_cv_host_frag=mh-ptx ;;
+*) 		icu_cv_host_frag=mh-unknown ;;
+esac
+		
+	
+fi
+
+echo "$ac_t""$icu_cv_host_frag" 1>&6
+
+
+hpuxcma=false
+
+case "${host}" in
+	*-*-hpux10*)    hpuxcma=true
+			echo $ac_n "checking for floor in -lm""... $ac_c" 1>&6
+echo "configure:1581: checking for floor in -lm" >&5
+ac_lib_var=`echo m'_'floor | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1589 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char floor();
+
+int main() {
+floor()
+; return 0; }
+EOF
+if { (eval echo configure:1600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIB_M="-lm"
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+	*-*-hpux*) 	echo $ac_n "checking for floor in -lm""... $ac_c" 1>&6
+echo "configure:1621: checking for floor in -lm" >&5
+ac_lib_var=`echo m'_'floor | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1629 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char floor();
+
+int main() {
+floor()
+; return 0; }
+EOF
+if { (eval echo configure:1640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIB_M="-lm"
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+	
+	*) 		echo $ac_n "checking for floor in -lm""... $ac_c" 1>&6
+echo "configure:1662: checking for floor in -lm" >&5
+ac_lib_var=`echo m'_'floor | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1670 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char floor();
+
+int main() {
+floor()
+; return 0; }
+EOF
+if { (eval echo configure:1681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lm $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+ 
+			LIB_M="" ;;
+esac
+
+
+
+if test $hpuxcma = false; then
+ # Check whether --enable-hpuxcma or --disable-hpuxcma was given.
+if test "${enable_hpuxcma+set}" = set; then
+  enableval="$enable_hpuxcma"
+  case "${enableval}" in
+	     yes) hpuxcma=true;;
+	     no) hpuxcma=false;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-hpuxcma" 1>&2; exit 1; } ;;
+		esac
+fi
+
+fi
+
+
+
+if test "$hpuxcma" = true; then
+  HPUX_CMA_TRUE=
+  HPUX_CMA_FALSE='#'
+else
+  HPUX_CMA_TRUE='#'
+  HPUX_CMA_FALSE=
+fi
+
+if test $hpuxcma = true; then
+  case "${host}" in
+	*-*-hpux*)	hpuxcma=true ;;
+	*)		{ echo "configure: error: --enable-hpuxcma is not valid on this platform ${host}" 1>&2; exit 1; } ;;
+  esac
+fi
+
+echo $ac_n "checking whether to build shared libraries""... $ac_c" 1>&6
+echo "configure:1744: checking whether to build shared libraries" >&5
+enabled=no
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval="$enable_shared"
+   case "${enableval}" in
+	     yes|"") enabled=yes; ENABLE_SHARED=YES ;;
+	     no);;
+	     *) ;;
+    esac
+else
+  enabled=yes; ENABLE_SHARED=YES
+
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+echo $ac_n "checking whether to build static libraries""... $ac_c" 1>&6
+echo "configure:1763: checking whether to build static libraries" >&5
+enabled=no
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+  enableval="$enable_static"
+   case "${enableval}" in
+	     yes|"") enabled=yes; ENABLE_STATIC=YES ;;
+	     no) ;;
+	     *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1781: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+# Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1811: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_AR'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$AR" in
+  /*)
+  ac_cv_path_AR="$AR" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_AR="$AR" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH:/bin:/usr/bin:/usr/ccs/bin"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_AR="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_AR" && ac_cv_path_AR="echo archiver ar not found re-run configure ; false"
+  ;;
+esac
+fi
+AR="$ac_cv_path_AR"
+if test -n "$AR"; then
+  echo "$ac_t""$AR" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking whether to enable renaming of symbols""... $ac_c" 1>&6
+echo "configure:1846: checking whether to enable renaming of symbols" >&5
+enabled=yes
+U_DISABLE_RENAMING=0
+# Check whether --enable-renaming or --disable-renaming was given.
+if test "${enable_renaming+set}" = set; then
+  enableval="$enable_renaming"
+   case "${enableval}" in
+	     yes|"") enabled=yes ;;
+	     no) enabled=no; U_DISABLE_RENAMING=1 ;;
+	     *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+# Check whether --enable-rpath or --disable-rpath was given.
+if test "${enable_rpath+set}" = set; then
+  enableval="$enable_rpath"
+   case "${enableval}" in
+	     yes|"") ENABLE_RPATH=YES ;;
+	     no) ;;
+	     *) ;;
+    esac
+else
+  ENABLE_RPATH=NO
+
+fi
+
+
+
+
+echo $ac_n "checking for definition of U_INLINE for C""... $ac_c" 1>&6
+echo "configure:1879: checking for definition of U_INLINE for C" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat > conftest.$ac_ext <<EOF
+#line 1886 "configure"
+#include "confdefs.h"
+
+int main() {
+} $ac_kw foo() {
+; return 0; }
+EOF
+if { (eval echo configure:1893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  del -f conftest*
+  ac_cv_c_inline=$ac_kw; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+  done
+  
+fi
+
+echo "$ac_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
+      yes)       U_INLINE= "inline" ;;
+	  no )       U_INLINE= ;;
+	    *)       U_INLINE=$ac_cv_c_inline ;;
+esac
+
+
+threads=true
+
+# Check whether --enable-threads or --disable-threads was given.
+if test "${enable_threads+set}" = set; then
+  enableval="$enable_threads"
+  case "${enableval}" in
+		yes) threads=true ;;
+		no)  threads=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-threads" 1>&2; exit 1; } ;;
+		esac
+else
+  threads=true
+fi
+
+
+
+if test "$threads" = true; then
+  THREADS_TRUE=
+  THREADS_FALSE='#'
+else
+  THREADS_TRUE='#'
+  THREADS_FALSE=
+fi
+
+ICU_USE_THREADS=0
+
+if test $threads = true; then
+  if test $hpuxcma = true; then
+    echo $ac_n "checking for pthread_create in -lcma""... $ac_c" 1>&6
+echo "configure:1942: checking for pthread_create in -lcma" >&5
+ac_lib_var=`echo cma'_'pthread_create | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lcma  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1950 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_create();
+
+int main() {
+pthread_create()
+; return 0; }
+EOF
+if { (eval echo configure:1961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo cma | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lcma $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test $ac_cv_lib_cma_pthread_create = yes; then
+   ICU_USE_THREADS=1
+  fi
+ else 
+           
+  echo $ac_n "checking for pthread_attr_init in -lpthread""... $ac_c" 1>&6
+echo "configure:1994: checking for pthread_attr_init in -lpthread" >&5
+ac_lib_var=`echo pthread'_'pthread_attr_init | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lpthread  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2002 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_attr_init();
+
+int main() {
+pthread_attr_init()
+; return 0; }
+EOF
+if { (eval echo configure:2013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo pthread | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lpthread $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test $ac_cv_lib_pthread_pthread_attr_init = yes; then
+   ICU_USE_THREADS=1
+  else
+                  
+   
+echo $ac_n "checking for library containing pthread_mutex_destroy""... $ac_c" 1>&6
+echo "configure:2046: checking for library containing pthread_mutex_destroy" >&5
+if eval "test \"`echo '$''{'ac_cv_search_pthread_mutex_destroy'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_pthread_mutex_destroy="no"
+for i in pthread pthreads c_r cma; do
+LIBS="-l$i  $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2055 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_destroy();
+
+int main() {
+pthread_mutex_destroy()
+; return 0; }
+EOF
+if { (eval echo configure:2066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_pthread_mutex_destroy="-l$i"
+break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+done
+if test "$ac_cv_search_pthread_mutex_destroy" = "no"; then
+cat > conftest.$ac_ext <<EOF
+#line 2078 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_destroy();
+
+int main() {
+pthread_mutex_destroy()
+; return 0; }
+EOF
+if { (eval echo configure:2089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_pthread_mutex_destroy="none required"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+fi
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_pthread_mutex_destroy" 1>&6
+if test "$ac_cv_search_pthread_mutex_destroy" != "no"; then
+  test "$ac_cv_search_pthread_mutex_destroy" = "none required" || LIBS="$ac_cv_search_pthread_mutex_destroy $LIBS"
+  
+else :
+  
+fi
+
+   if test "$ac_cv_search_pthread_mutex_destroy" != no; then
+    ICU_USE_THREADS=1
+   else
+        echo $ac_n "checking for pthread_mutex_init in -lpthread""... $ac_c" 1>&6
+echo "configure:2113: checking for pthread_mutex_init in -lpthread" >&5
+ac_lib_var=`echo pthread'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lpthread  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2121 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_init();
+
+int main() {
+pthread_mutex_init()
+; return 0; }
+EOF
+if { (eval echo configure:2132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo pthread | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lpthread $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+    if test $ac_cv_lib_pthread_pthread_mutex_init = yes; then
+      ICU_USE_THREADS=1
+    fi
+   fi
+
+   echo $ac_n "checking for pthread_mutex_lock""... $ac_c" 1>&6
+echo "configure:2165: checking for pthread_mutex_lock" >&5
+if eval "test \"`echo '$''{'ac_cv_func_pthread_mutex_lock'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2170 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char pthread_mutex_lock(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_lock();
+
+int main() {
+
+/* 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_pthread_mutex_lock) || defined (__stub___pthread_mutex_lock)
+choke me
+#else
+pthread_mutex_lock();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_pthread_mutex_lock=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_pthread_mutex_lock=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'pthread_mutex_lock`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+   if test $ac_cv_func_pthread_mutex_lock = yes; then
+     ICU_USE_THREADS=1
+   fi
+  fi
+ fi
+fi
+
+
+
+
+# The AC_FUNC_MMAP macro doesn't work properly.  It seems to be too specific.
+# Do this check instead.
+HAVE_MMAP=0
+echo $ac_n "checking for mmap""... $ac_c" 1>&6
+echo "configure:2227: checking for mmap" >&5
+if eval "test \"`echo '$''{'ac_cv_func_mmap_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2232 "configure"
+#include "confdefs.h"
+    
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+    
+int main() {
+    mmap((void *)0, 0, PROT_READ, 0, 0, 0);
+; return 0; }
+EOF
+if { (eval echo configure:2244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_func_mmap_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_func_mmap_ok=no
+fi
+del -f conftest* 
+fi
+
+echo "$ac_t""$ac_cv_func_mmap_ok" 1>&6
+if test $ac_cv_func_mmap_ok = yes
+then
+    HAVE_MMAP=1
+fi
+
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:2264: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -c -qpponly"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 2279 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2285: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CPP="${CC-cc} -c qpponly -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 2296 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CPP="${CC-cc} -nologo -c -qpponly"
+  cat > conftest.$ac_ext <<EOF
+#line 2313 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2319: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CPP=/usr/bin/icc
+fi
+del -f conftest*
+fi
+del -f conftest*
+fi
+del -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+for ac_hdr in inttypes.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2347: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2352 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2357: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+del -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+if test $ac_cv_header_inttypes_h = no; then
+ U_HAVE_INTTYPES_H=0
+else
+ U_HAVE_INTTYPES_H=1
+fi
+if test "$CC" = ccc; then
+ echo "$ac_t"""C compiler set to CCC ${CC}" " 1>&6
+ case "${host}" in
+        alpha*-*-*) U_HAVE_INTTYPES_H=0;
+ esac
+fi
+
+
+
+# Check whether --with-iostream or --without-iostream was given.
+if test "${with_iostream+set}" = set; then
+  withval="$with_iostream"
+  case "${withval}" in
+		none) streams=none ;;
+		old) streams=198506 ;;
+		std) streams=199711 ;;
+		auto) streams= ;;
+		*) { echo "configure: error: bad value ${withval} for --with-iostream" 1>&2; exit 1; } ;;
+		esac
+else
+  streams=
+fi
+
+
+U_IOSTREAM_SOURCE=0
+if test x$streams != xnone
+then
+    
+    ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+    echo $ac_n "checking iostream usability""... $ac_c" 1>&6
+echo "configure:2424: checking iostream usability" >&5
+    cat > conftest.$ac_ext <<EOF
+#line 2426 "configure"
+#include "confdefs.h"
+#include <iostream>
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:2433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_header_iostream=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_iostream=no
+fi
+rm -f conftest*
+    echo "$ac_t""$ac_cv_header_iostream" 1>&6
+    if test $ac_cv_header_iostream = yes
+    then
+        U_IOSTREAM_SOURCE=199711
+    else
+        echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
+echo "configure:2449: checking how to run the C++ preprocessor" >&5
+if test -z "$CXXCPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+  CXXCPP="${CXX-g++} -c -qpponly"
+  cat > conftest.$ac_ext <<EOF
+#line 2462 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2467: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CXXCPP=/usr/bin/icc
+fi
+del -f conftest*
+  ac_cv_prog_CXXCPP="$CXXCPP"
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+fi
+fi
+CXXCPP="$ac_cv_prog_CXXCPP"
+echo "$ac_t""$CXXCPP" 1>&6
+
+ac_safe=`echo "iostream.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for iostream.h""... $ac_c" 1>&6
+echo "configure:2493: checking for iostream.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2498 "configure"
+#include "confdefs.h"
+#include <iostream.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2503: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+del -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+        if test $ac_cv_header_iostream_h = yes; then
+            echo $ac_n "checking whether ostream is really defined""... $ac_c" 1>&6
+echo "configure:2526: checking whether ostream is really defined" >&5
+            if eval "test \"`echo '$''{'ac_cv_iostream_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2531 "configure"
+#include "confdefs.h"
+#include <iostream.h>
+int main() {
+ostream &testout = cout; testout << "test" << endl;
+; return 0; }
+EOF
+if { (eval echo configure:2538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_iostream_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_iostream_ok=no
+fi
+del -f conftest*
+fi
+
+            echo "$ac_t""$ac_cv_iostream_ok" 1>&6
+            if test $ac_cv_iostream_ok = yes
+            then
+                U_IOSTREAM_SOURCE=198506
+            fi
+        fi
+    fi
+    if test x$streams != x
+    then
+        if test $U_IOSTREAM_SOURCE -ge $streams
+        then
+            U_IOSTREAM_SOURCE=$streams
+        else
+            { echo "configure: error: ${withval} iostream is not available" 1>&2; exit 1; }
+        fi
+    fi
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+
+echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
+echo "configure:2577: checking whether byte ordering is bigendian" >&5
+if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_c_bigendian=unknown
+# See if sys/param.h defines the BYTE_ORDER macro.
+cat > conftest.$ac_ext <<EOF
+#line 2584 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/param.h>
+int main() {
+
+#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+ bogus endian macros
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:2595: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  del -f conftest*
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+cat > conftest.$ac_ext <<EOF
+#line 2599 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/param.h>
+int main() {
+
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:2610: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  del -f conftest*
+  ac_cv_c_bigendian=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_c_bigendian=no
+fi
+del -f conftest*
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+if test $ac_cv_c_bigendian = unknown; then
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2630 "configure"
+#include "confdefs.h"
+main () {
+  /* Are we little or big endian?  From Harbison&Steele.  */
+  union
+  {
+    long l;
+    char c[sizeof (long)];
+  } u;
+  u.l = 1;
+  exit (u.c[sizeof (long) - 1] == 1);
+}
+EOF
+if { (eval echo configure:2643: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_c_bigendian=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_c_bigendian=yes
+fi
+del -f conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_c_bigendian" 1>&6
+if test $ac_cv_c_bigendian = yes; then
+  cat >> confdefs.h <<\EOF
+#define WORDS_BIGENDIAN 1
+EOF
+
+fi
+
+if test $ac_cv_c_bigendian = no; then
+U_IS_BIG_ENDIAN=0
+U_ENDIAN_CHAR="l"
+else
+U_IS_BIG_ENDIAN=1
+U_ENDIAN_CHAR="b"
+fi
+
+
+U_HAVE_NL_LANGINFO_CODESET=0
+U_NL_LANGINFO_CODESET=-1
+echo $ac_n "checking for nl_langinfo""... $ac_c" 1>&6
+echo "configure:2678: checking for nl_langinfo" >&5
+if eval "test \"`echo '$''{'ac_cv_func_nl_langinfo'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2683 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char nl_langinfo(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char nl_langinfo();
+
+int main() {
+
+/* 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_nl_langinfo) || defined (__stub___nl_langinfo)
+choke me
+#else
+nl_langinfo();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_nl_langinfo=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_nl_langinfo=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'nl_langinfo`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  U_HAVE_NL_LANGINFO=1
+else
+  echo "$ac_t""no" 1>&6
+U_HAVE_NL_LANGINFO=0
+fi
+
+
+if test $U_HAVE_NL_LANGINFO -eq 1; then
+  echo $ac_n "checking for nl_langinfo's argument to obtain the codeset""... $ac_c" 1>&6
+echo "configure:2729: checking for nl_langinfo's argument to obtain the codeset" >&5
+if eval "test \"`echo '$''{'ac_cv_nl_langinfo_codeset'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_nl_langinfo_codeset="unknown"
+  for a in CODESET _NL_CTYPE_CODESET_NAME; do
+  cat > conftest.$ac_ext <<EOF
+#line 2736 "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+int main() {
+nl_langinfo($a);
+; return 0; }
+EOF
+if { (eval echo configure:2743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_nl_langinfo_codeset="$a"; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+  done
+fi
+
+echo "$ac_t""$ac_cv_nl_langinfo_codeset" 1>&6
+  if test x$ac_cv_nl_langinfo_codeset != xunknown
+  then
+      U_HAVE_NL_LANGINFO_CODESET=1
+      U_NL_LANGINFO_CODESET=$ac_cv_nl_langinfo_codeset
+  fi
+fi
+
+
+
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+echo $ac_n "checking for namespace support""... $ac_c" 1>&6
+echo "configure:2772: checking for namespace support" >&5
+if eval "test \"`echo '$''{'ac_cv_namespace_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2777 "configure"
+#include "confdefs.h"
+    namespace x_version {void f(){}};
+    namespace x = x_version;
+    using namespace x_version;
+    
+int main() {
+    f();
+; return 0; }
+EOF
+if { (eval echo configure:2787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_namespace_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_namespace_ok=no
+fi
+del -f conftest* 
+fi
+
+echo "$ac_t""$ac_cv_namespace_ok" 1>&6
+U_HAVE_NAMESPACE=1
+if test $ac_cv_namespace_ok = no
+then
+    U_HAVE_NAMESPACE=0
+fi
+
+
+echo $ac_n "checking for properly overriding new and delete""... $ac_c" 1>&6
+echo "configure:2808: checking for properly overriding new and delete" >&5
+U_OVERRIDE_CXX_ALLOCATION=0
+U_HAVE_PLACEMENT_NEW=0
+if eval "test \"`echo '$''{'ac_cv_override_cxx_allocation_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2815 "configure"
+#include "confdefs.h"
+    #include <stdlib.h>
+    class UObject {
+    void *operator new(size_t size) {return malloc(size);}
+    void *operator new[](size_t size) {return malloc(size);}
+    void operator delete(void *p) {free(p);}
+    void operator delete[](void *p) {free(p);}
+    };
+    
+int main() {
+    
+; return 0; }
+EOF
+if { (eval echo configure:2829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_override_cxx_allocation_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_override_cxx_allocation_ok=no
+fi
+del -f conftest* 
+fi
+
+echo "$ac_t""$ac_cv_override_cxx_allocation_ok" 1>&6
+if test $ac_cv_override_cxx_allocation_ok = yes
+then
+    U_OVERRIDE_CXX_ALLOCATION=1
+    echo $ac_n "checking for placement new and delete""... $ac_c" 1>&6
+echo "configure:2846: checking for placement new and delete" >&5
+    if eval "test \"`echo '$''{'ac_cv_override_placement_new_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2851 "configure"
+#include "confdefs.h"
+        #include <stdlib.h>
+        class UObject {
+        void *operator new(size_t size) {return malloc(size);}
+        void *operator new[](size_t size) {return malloc(size);}
+        void operator delete(void *p) {free(p);}
+        void operator delete[](void *p) {free(p);}
+        void * operator new(size_t, void *ptr) { return ptr; }
+        void operator delete(void *, void *) {}
+        };
+        
+int main() {
+        
+; return 0; }
+EOF
+if { (eval echo configure:2867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_override_placement_new_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_override_placement_new_ok=no
+fi
+del -f conftest* 
+fi
+
+    echo "$ac_t""$ac_cv_override_placement_new_ok" 1>&6
+    if test $ac_cv_override_placement_new_ok = yes
+    then
+        U_HAVE_PLACEMENT_NEW=1
+    fi
+fi
+
+
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking for popen""... $ac_c" 1>&6
+echo "configure:2896: checking for popen" >&5
+if eval "test \"`echo '$''{'ac_cv_func_popen'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2901 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char popen(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char popen();
+
+int main() {
+
+/* 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_popen) || defined (__stub___popen)
+choke me
+#else
+popen();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_popen=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_popen=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'popen`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test x$ac_cv_func_popen = xyes
+then
+     U_HAVE_POPEN=1
+else
+     U_HAVE_POPEN=0
+fi
+
+
+echo $ac_n "checking for tzset""... $ac_c" 1>&6
+echo "configure:2952: checking for tzset" >&5
+if eval "test \"`echo '$''{'ac_cv_func_tzset'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2957 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char tzset(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char tzset();
+
+int main() {
+
+/* 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_tzset) || defined (__stub___tzset)
+choke me
+#else
+tzset();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_tzset=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_tzset=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'tzset`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test x$ac_cv_func_tzset = xyes
+then
+    U_TZSET=tzset
+else
+    echo $ac_n "checking for _tzset""... $ac_c" 1>&6
+echo "configure:3004: checking for _tzset" >&5
+if eval "test \"`echo '$''{'ac_cv_func__tzset'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3009 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char _tzset(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char _tzset();
+
+int main() {
+
+/* 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__tzset) || defined (__stub____tzset)
+choke me
+#else
+_tzset();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func__tzset=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func__tzset=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'_tzset`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+    if test x$ac_cv_func__tzset = xyes
+    then
+	U_TZSET=_tzset
+    fi
+fi
+
+echo $ac_n "checking for tzname""... $ac_c" 1>&6
+echo "configure:3058: checking for tzname" >&5
+if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3063 "configure"
+#include "confdefs.h"
+#ifndef __USE_POSIX
+#define __USE_POSIX
+#endif
+#include <time.h>
+#ifndef tzname /* For SGI.  */
+extern char *tzname[]; /* RS6000 and others reject char **tzname.  */
+#endif
+int main() {
+atoi(*tzname);
+; return 0; }
+EOF
+if { (eval echo configure:3076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var_tzname=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var_tzname=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var_tzname" 1>&6
+if test $ac_cv_var_tzname = yes; then
+  U_TZNAME=tzname
+else
+  echo $ac_n "checking for _tzname""... $ac_c" 1>&6
+echo "configure:3093: checking for _tzname" >&5
+if eval "test \"`echo '$''{'ac_cv_var__tzname'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3098 "configure"
+#include "confdefs.h"
+  #include <time.h>
+  extern char *_tzname[];
+  
+int main() {
+  atoi(*_tzname);
+; return 0; }
+EOF
+if { (eval echo configure:3107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var__tzname=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var__tzname=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var__tzname" 1>&6
+    if test $ac_cv_var__tzname = yes; then
+      U_TZNAME=_tzname
+    fi
+fi
+
+
+echo $ac_n "checking for timezone""... $ac_c" 1>&6
+echo "configure:3127: checking for timezone" >&5
+if eval "test \"`echo '$''{'ac_cv_var_timezone'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3132 "configure"
+#include "confdefs.h"
+#ifndef __USE_POSIX
+#define __USE_POSIX
+#endif
+#ifndef __USE_XOPEN
+#define __USE_XOPEN
+#endif
+#include <time.h>
+
+int main() {
+timezone = 1;
+; return 0; }
+EOF
+if { (eval echo configure:3146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var_timezone=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var_timezone=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var_timezone" 1>&6
+U_HAVE_TIMEZONE=0
+if test $ac_cv_var_timezone = yes; then
+  U_TIMEZONE=timezone
+  U_HAVE_TIMEZONE=1
+else
+  echo $ac_n "checking for __timezone""... $ac_c" 1>&6
+echo "configure:3165: checking for __timezone" >&5
+if eval "test \"`echo '$''{'ac_cv_var___timezone'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3170 "configure"
+#include "confdefs.h"
+  #include <time.h>
+  
+int main() {
+  __timezone = 1;
+; return 0; }
+EOF
+if { (eval echo configure:3178: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var___timezone=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var___timezone=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var___timezone" 1>&6
+  if test $ac_cv_var___timezone = yes; then
+    U_TIMEZONE=__timezone
+    U_HAVE_TIMEZONE=1
+  else
+    echo $ac_n "checking for _timezone""... $ac_c" 1>&6
+echo "configure:3196: checking for _timezone" >&5
+if eval "test \"`echo '$''{'ac_cv_var__timezone'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3201 "configure"
+#include "confdefs.h"
+    #include <time.h>
+    
+int main() {
+    _timezone = 1;
+; return 0; }
+EOF
+if { (eval echo configure:3209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var__timezone=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var__timezone=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var__timezone" 1>&6
+    if test $ac_cv_var__timezone = yes; then
+      U_TIMEZONE=_timezone
+      U_HAVE_TIMEZONE=1
+    fi
+  fi
+fi
+
+
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:3232: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3237 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3245: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  ac_cv_header_stdc=yes
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 3262 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 &&
+  egrep "memchr" conftest.i >/dev/null 2>&1; then
+  :
+else
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -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 > conftest.$ac_ext <<EOF
+#line 3280 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 &&
+  egrep "free" conftest.i >/dev/null 2>&1; then
+  :
+else
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -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 > conftest.$ac_ext <<EOF
+#line 3301 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#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)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:3312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; # && (./conftest; exit) 2>/dev/null
+then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -f conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+echo $ac_n "checking for int8_t""... $ac_c" 1>&6
+echo "configure:3336: checking for int8_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int8_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3341 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int8_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int8_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int8_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int8_t" 1>&6
+if test $ac_cv_type_int8_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int8_t signed char
+EOF
+
+fi
+
+echo $ac_n "checking for uint8_t""... $ac_c" 1>&6
+echo "configure:3369: checking for uint8_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint8_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3374 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint8_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint8_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint8_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint8_t" 1>&6
+if test $ac_cv_type_uint8_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint8_t unsigned char
+EOF
+
+fi
+
+echo $ac_n "checking for int16_t""... $ac_c" 1>&6
+echo "configure:3402: checking for int16_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int16_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3407 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int16_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int16_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int16_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int16_t" 1>&6
+if test $ac_cv_type_int16_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int16_t signed short
+EOF
+
+fi
+
+echo $ac_n "checking for uint16_t""... $ac_c" 1>&6
+echo "configure:3435: checking for uint16_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint16_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3440 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint16_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint16_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint16_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint16_t" 1>&6
+if test $ac_cv_type_uint16_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint16_t unsigned short
+EOF
+
+fi
+
+echo $ac_n "checking for int32_t""... $ac_c" 1>&6
+echo "configure:3468: checking for int32_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int32_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3473 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int32_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int32_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int32_t" 1>&6
+if test $ac_cv_type_int32_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int32_t signed long
+EOF
+
+fi
+
+echo $ac_n "checking for uint32_t""... $ac_c" 1>&6
+echo "configure:3501: checking for uint32_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint32_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3506 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint32_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint32_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint32_t" 1>&6
+if test $ac_cv_type_uint32_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint32_t unsigned long
+EOF
+
+fi
+
+echo $ac_n "checking for int64_t""... $ac_c" 1>&6
+echo "configure:3534: checking for int64_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int64_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3539 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int64_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int64_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int64_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int64_t" 1>&6
+if test $ac_cv_type_int64_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int64_t signed long long
+EOF
+
+fi
+
+echo $ac_n "checking for uint64_t""... $ac_c" 1>&6
+echo "configure:3567: checking for uint64_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint64_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3572 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint64_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint64_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint64_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint64_t" 1>&6
+if test $ac_cv_type_uint64_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint64_t unsigned long long
+EOF
+
+fi
+
+
+if test $ac_cv_type_int8_t = no; then
+HAVE_INT8_T=0
+else
+HAVE_INT8_T=1
+fi
+
+
+if test $ac_cv_type_uint8_t = no; then
+HAVE_UINT8_T=0
+else
+HAVE_UINT8_T=1
+fi
+
+
+if test $ac_cv_type_int16_t = no; then
+HAVE_INT16_T=0
+else
+HAVE_INT16_T=1
+fi
+
+
+if test $ac_cv_type_uint16_t = no; then
+HAVE_UINT16_T=0
+else
+HAVE_UINT16_T=1
+fi
+
+
+if test $ac_cv_type_int32_t = no; then
+HAVE_INT32_T=0
+else
+HAVE_INT32_T=1
+fi
+
+
+if test $ac_cv_type_uint32_t = no; then
+HAVE_UINT32_T=0
+else
+HAVE_UINT32_T=1
+fi
+
+
+if test $ac_cv_type_int64_t = no; then
+HAVE_INT64_T=0
+else
+HAVE_INT64_T=1
+fi
+
+
+if test $ac_cv_type_uint64_t = no; then
+HAVE_UINT64_T=0
+else
+HAVE_UINT64_T=1
+fi
+
+
+ac_safe=`echo "wchar.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for wchar.h""... $ac_c" 1>&6
+echo "configure:3658: checking for wchar.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3663 "configure"
+#include "confdefs.h"
+#include <wchar.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3668: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+del -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test "$ac_cv_header_wchar_h" = no
+then
+    U_HAVE_WCHAR_H=0
+    U_HAVE_WCSCPY=0
+else
+    cat >> confdefs.h <<\EOF
+#define HAVE_WCHAR_H 1
+EOF
+
+    U_HAVE_WCHAR_H=1
+        
+echo $ac_n "checking for library containing wcscpy""... $ac_c" 1>&6
+echo "configure:3701: checking for library containing wcscpy" >&5
+if eval "test \"`echo '$''{'ac_cv_search_wcscpy'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_wcscpy="no"
+cat > conftest.$ac_ext <<EOF
+#line 3708 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char wcscpy();
+
+int main() {
+wcscpy()
+; return 0; }
+EOF
+if { (eval echo configure:3719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_wcscpy="none required"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+test "$ac_cv_search_wcscpy" = "no" && for i in wcs w; do
+LIBS="-l$i  $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3730 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char wcscpy();
+
+int main() {
+wcscpy()
+; return 0; }
+EOF
+if { (eval echo configure:3741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_wcscpy="-l$i"
+break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_wcscpy" 1>&6
+if test "$ac_cv_search_wcscpy" != "no"; then
+  test "$ac_cv_search_wcscpy" = "none required" || LIBS="$ac_cv_search_wcscpy $LIBS"
+  
+else :
+  
+fi
+    if test "$ac_cv_search_wcscpy" != no; then
+      U_HAVE_WCSCPY=1
+    else
+      U_HAVE_WCSCPY=0
+    fi
+fi
+
+
+
+ac_default_sizeof_wchar_t=4
+echo $ac_n "checking size of wchar_t""... $ac_c" 1>&6
+echo "configure:3772: checking size of wchar_t" >&5
+if eval "test \"`echo '$''{'ac_cv_sizeof_wchar_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_sizeof_wchar_t=$ac_default_sizeof_wchar_t
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3780 "configure"
+#include "confdefs.h"
+#if STDC_HEADERS
+#include <stddef.h>
+#endif
+#if HAVE_WCHAR_H
+#include <string.h>
+#include <wchar.h>
+#endif
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(wchar_t));
+  exit(0);
+}
+EOF
+if { (eval echo configure:3798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_sizeof_wchar_t=`cat conftestval`
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_sizeof_wchar_t=0
+fi
+del -f conftest*
+fi
+
+fi
+echo "$ac_t""$ac_cv_sizeof_wchar_t" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t
+EOF
+
+
+U_SIZEOF_WCHAR_T=$ac_cv_sizeof_wchar_t
+if test $U_SIZEOF_WCHAR_T = 0; then
+	if test $U_HAVE_WCHAR_H=1; then
+	   { echo "configure: error: There is wchar.h but the size of wchar_t is 0" 1>&2; exit 1; }
+	fi
+fi
+
+
+ECHO_N=$ac_n
+ECHO_C=$ac_c
+
+
+
+# Check whether --enable-extras or --disable-extras was given.
+if test "${enable_extras+set}" = set; then
+  enableval="$enable_extras"
+  case "${enableval}" in
+		yes) extras=true ;;
+		no)  extras=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-extras" 1>&2; exit 1; } ;;
+		esac
+else
+  extras=true
+fi
+
+
+
+if test "$extras" = true; then
+  EXTRAS_TRUE=
+  EXTRAS_FALSE='#'
+else
+  EXTRAS_TRUE='#'
+  EXTRAS_FALSE=
+fi
+# Check whether --enable-extras or --disable-extras was given.
+if test "${enable_extras+set}" = set; then
+  enableval="$enable_extras"
+  case "${enableval}" in
+		yes) ustdio=true ;;
+		no)  ustdio=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-ustdio" 1>&2; exit 1; } ;;
+		esac
+else
+  ustdio=true
+fi
+
+
+
+if test "$ustdio" = true; then
+  USTDIO_TRUE=
+  USTDIO_FALSE='#'
+else
+  USTDIO_TRUE='#'
+  USTDIO_FALSE=
+fi
+
+# Check whether --enable-layout or --disable-layout was given.
+if test "${enable_layout+set}" = set; then
+  enableval="$enable_layout"
+  case "${enableval}" in
+		yes) layout=true ;;
+		no)  layout=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-layout" 1>&2; exit 1; } ;;
+		esac
+else
+  layout=true
+fi
+
+
+
+if test "$layout" = true; then
+  LAYOUT_TRUE=
+  LAYOUT_FALSE='#'
+else
+  LAYOUT_TRUE='#'
+  LAYOUT_FALSE=
+fi
+
+# Check whether --with-data-packaging or --without-data-packaging was given.
+if test "${with_data_packaging+set}" = set; then
+  withval="$with_data_packaging"
+  case "${withval}" in
+                files|archive|library) datapackaging=$withval ;;
+		auto) datapackaging=$withval ;;
+		common) datapackaging=archive ;;
+		dll) datapackaging=library ;;
+		*) { echo "configure: error: bad value ${withval} for --with-iostream" 1>&2; exit 1; } ;;
+		esac
+else
+  datapackaging=
+fi
+
+
+thesysconfdir=`eval echo $sysconfdir`
+
+thedatadir=`eval echo $datadir`
+
+thelibdir=`test "x$exec_prefix" = xNONE && exec_prefix="$prefix"; eval echo $libdir`
+
+case $datapackaging in
+    common)
+	pkgicudatadir=$datadir
+	thepkgicudatadir=$thedatadir
+	;;
+    *)
+	pkgicudatadir=$libdir
+	thepkgicudatadir=$thelibdir
+	;;
+esac
+
+
+
+
+# Check whether --enable-mapped or --disable-mapped was given.
+if test "${enable_mapped+set}" = set; then
+  enableval="$enable_mapped"
+  case "${enableval}" in
+               yes) mapped=archive ;;
+               no)  mapped=library ;;
+               *) { echo "configure: error: bad value ${enableval} for --enable-mapped; use --with-data-packaging now" 1>&2; exit 1; } ;;
+	esac
+else
+  mapped=
+fi
+
+
+if test x"$mapped" != x; then
+    case $mapped in
+	archive)
+    	    echo "configure: warning: use --with-data-packaging=archive instead of --enable-mapped" 1>&2
+	    ;;
+	library)
+    	    echo "configure: warning: use --with-data-packaging=library instead of --disable-mapped" 1>&2
+	    ;;
+    esac
+    if test x"$datapackaging" != x -a x"$mapped" != x"$datapackaging"; then
+	{ echo "configure: error: conflicting values used for --with-data-packaging and deprecated --enable-mapped" 1>&2; exit 1; }
+    fi
+    datapackaging=$mapped
+fi
+
+if test x"$datapackaging" = x -o x"$datapackaging" = xauto; then
+	datapackaging=library
+fi
+
+case "$datapackaging" in
+    files)
+	DATA_PACKAGING_CPPFLAGS=-DUDATA_FILES
+	DATA_PACKAGING_MODE=files
+	;;
+    archive)
+	DATA_PACKAGING_CPPFLAGS=-DUDATA_MAP
+	DATA_PACKAGING_MODE=common
+	;;
+    library)
+	DATA_PACKAGING_CPPFLAGS=-DUDATA_DLL
+	DATA_PACKAGING_MODE=dll
+	;;
+esac
+
+
+
+echo $ac_n "checking for a library suffix to use""... $ac_c" 1>&6
+echo "configure:3980: checking for a library suffix to use" >&5
+# Check whether --with-library-suffix or --without-library-suffix was given.
+if test "${with_library_suffix+set}" = set; then
+  withval="$with_library_suffix"
+  ICULIBSUFFIX="${withval}"
+else
+  ICULIBSUFFIX=
+fi
+
+msg=$ICULIBSUFFIX
+if test "$msg" = ""; then
+    msg=none
+fi
+echo "$ac_t""$msg" 1>&6
+
+if test "$ICULIBSUFFIX" != ""
+then
+    U_HAVE_LIB_SUFFIX=1
+    ICULIBSUFFIXCNAME=`echo _$ICULIBSUFFIX | sed 's/[^A-Za-z0-9_]/_/g'`
+else
+    U_HAVE_LIB_SUFFIX=0
+fi
+
+
+
+# Check whether --enable-tests or --disable-tests was given.
+if test "${enable_tests+set}" = set; then
+  enableval="$enable_tests"
+  case "${enableval}" in
+		yes) tests=true ;;
+		no)  tests=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-tests" 1>&2; exit 1; } ;;
+		esac
+else
+  tests=true
+fi
+
+
+
+if test "$tests" = true; then
+  TESTS_TRUE=
+  TESTS_FALSE='#'
+else
+  TESTS_TRUE='#'
+  TESTS_FALSE=
+fi
+
+# Check whether --enable-samples or --disable-samples was given.
+if test "${enable_samples+set}" = set; then
+  enableval="$enable_samples"
+  case "${enableval}" in
+		yes) samples=true ;;
+		no)  samples=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-samples" 1>&2; exit 1; } ;;
+		esac
+else
+  samples=true
+fi
+
+
+
+if test "$samples" = true; then
+  SAMPLES_TRUE=
+  SAMPLES_FALSE='#'
+else
+  SAMPLES_TRUE='#'
+  SAMPLES_FALSE=
+fi
+
+ICUDATA_CHAR=$U_ENDIAN_CHAR
+
+case "${host}" in
+	*-*-solaris*) 	platform=U_SOLARIS ;;
+	*-*-linux*) 	platform=U_LINUX ;;
+	*-*-*bsd*) 	platform=U_BSD ;;
+	*-*-aix*) 	platform=AIX ;;
+	*-*-hpux*) 	platform=HPUX ;;
+	*-apple-darwin*|*-apple-rhapsody*)	platform=U_DARWIN ;;
+	*-*-cygwin*|*-*-mingw*)	platform=U_CYGWIN ;;
+	*-*ibm-openedition*|*-*-os390*)	platform=OS390
+			ICUDATA_CHAR="e" ;;
+	*-*-os400*)	platform=OS400
+			ICUDATA_CHAR="e" ;;
+	*-*-nto*)	platform=U_QNX ;;
+	*-dec-osf*) 	platform=U_OSF ;;
+	*-*-irix*)      platform=IRIX ;;
+	*-sequent-*)	platform=PTX ;;
+	*) 		platform=U_UNKNOWN_PLATFORM ;;
+esac
+
+
+platform_make_fragment_name="$icu_cv_host_frag"
+platform_make_fragment='$(top_srcdir)/config/'"$platform_make_fragment_name"
+
+
+
+case "${host}" in
+	*-*-solaris*) 	ld_rpath_suf=":" ;;
+	*-*-linux*) 	ld_rpath_suf=" " ;;
+	*-*-*bsd*) 	ld_rpath_suf=" " ;;
+	*-*-aix*) 	ld_rpath_suf="" ;;
+	*-*-hpux*) 	ld_rpath_suf=":" ;;
+	*-*ibm-openedition*|*-*-os390*)	ld_rpath_suf="" ;;
+	*-*-os400*)	ld_rpath_suf=" " ;;
+	*-sequent-*)	ld_rpath_suf="" ;;
+	*-*-irix*)      ld_rpath_suf=" " ;;
+	*) 		ld_rpath_suf="" ;;
+esac
+
+
+case "${host}" in
+	*-*-hpux*) 	
+		if test "$ac_cv_prog_gcc" != yes; then
+			for file in samples/date/date \
+			  samples/cal/cal test/cintltst/cintltst \
+			  tools/makeconv/makeconv tools/genrb/genrb \
+			  tools/genrb/derb tools/genccode/genccode \
+			  tools/gencmn/gencmn tools/gencmn/decmn \
+			  tools/gencnval/gencnval tools/gennorm/gennorm \
+			  tools/gennames/gennames tools/gentest/gentest \
+			  tools/pkgdata/pkgdata tools/genprops/genprops \
+			  tools/pkgdata/pkgdata tools/genidna/genidna
+			do
+			  if test -f $file.c; then
+			    mv $file.c $file.cpp
+			  else
+			    echo "# $file.c does not exist or is already renamed [warning]"
+			  fi
+			done
+		fi
+	;;
+esac
+
+if test "${FORCE_LIBS}" != ""; then
+   echo " *** Overriding automatically chosen LIBS=$LIBS, using instead FORCE_LIBS=${FORCE_LIBS}"  1>&6
+   LIBS=${FORCE_LIBS}
+fi
+
+
+if test "${AIX_SHLIB}" != ""; then
+   echo " *** setting AIX_SHLIB (AIX only) to ${AIX_SHLIB}]"  1>&6
+else
+   AIX_SHLIB=makeC++SharedLib_r
+fi
+
+
+
+
+if test $hpuxcma = true; then
+	CPPFLAGS="${CPPFLAGS} -D_PTHREADS_DRAFT_4 -DHPUX_CMA"
+fi
+
+
+if test $ICU_USE_THREADS -ne 0
+then
+    CPPFLAGS="$CPPFLAGS \$(THREADSCPPFLAGS)"
+    CFLAGS="$CFLAGS \$(THREADSCFLAGS)"
+    CXXFLAGS="$CXXFLAGS \$(THREADSCXXFLAGS)"
+fi
+
+if test "$ac_cv_lib_dld_shl_load" = "yes"; then
+	CPPFLAGS="${CPPFLAGS} -DICU_USE_SHL_LOAD"
+fi
+
+
+if test "$ac_cv_func_dllload" = "yes"; then
+    CPPFLAGS="${CPPFLAGS} -DICU_USE_SHL_LOAD"
+fi
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# 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.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# 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.
+(set) 2>&1 |
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+del -f confcache
+
+trap 'del -f conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'del -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+del -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /usr/bin/qsh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/usr/bin/qsh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/usr/bin/qsh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'del -f `echo "README icudefs.mk \
+		Makefile \
+		data/Makefile data/icupkg.inc \
+		common/Makefile config/Makefile.inc i18n/Makefile \
+		layout/Makefile \
+		layoutex/Makefile \
+		extra/Makefile extra/ustdio/Makefile \
+                extra/uconv/Makefile extra/scrptrun/Makefile
+		stubdata/Makefile \
+		tools/Makefile tools/ctestfw/Makefile tools/makeconv/Makefile \
+		tools/genrb/Makefile  \
+		tools/genuca/Makefile  \
+		tools/pkgdata/Makefile \
+		tools/genccode/Makefile tools/gencmn/Makefile \
+		tools/gencnval/Makefile tools/gentz/Makefile \
+                tools/gennames/Makefile tools/toolutil/Makefile \
+                tools/gentest/Makefile \
+		tools/gennorm/Makefile \
+		tools/genprops/Makefile \
+		tools/genpname/Makefile \
+		tools/genbrk/Makefile \
+		tools/genidna/Makefile \
+		tools/dumpce/Makefile \
+		test/Makefile test/testdata/Makefile test/intltest/Makefile \
+                test/cintltst/Makefile test/iotest/Makefile \
+		test/ieeetest/Makefile \
+		test/collperf/Makefile \
+		test/perf/normperf/Makefile \
+		test/thaitest/Makefile \
+		test/letest/Makefile \
+		test/threadtest/Makefile \
+		samples/Makefile samples/date/Makefile \
+                samples/cal/Makefile samples/layout/Makefile \
+		common/unicode/platform.h common/icucfg.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@LIB_VERSION@%$LIB_VERSION%g
+s%@LIB_VERSION_MAJOR@%$LIB_VERSION_MAJOR%g
+s%@UNICODE_VERSION@%$UNICODE_VERSION%g
+s%@CC@%$CC%g
+s%@CXX@%$CXX%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@AUTOCONF@%$AUTOCONF%g
+s%@STRIP@%$STRIP%g
+s%@U_MAKE@%$U_MAKE%g
+s%@DOXYGEN@%$DOXYGEN%g
+s%@host@%$host%g
+s%@host_alias@%$host_alias%g
+s%@host_cpu@%$host_cpu%g
+s%@host_vendor@%$host_vendor%g
+s%@host_os@%$host_os%g
+s%@EXEEXT@%$EXEEXT%g
+s%@ARFLAGS@%$ARFLAGS%g
+s%@LIB_M@%$LIB_M%g
+s%@HPUX_CMA_TRUE@%$HPUX_CMA_TRUE%g
+s%@HPUX_CMA_FALSE@%$HPUX_CMA_FALSE%g
+s%@ENABLE_SHARED@%$ENABLE_SHARED%g
+s%@ENABLE_STATIC@%$ENABLE_STATIC%g
+s%@RANLIB@%$RANLIB%g
+s%@AR@%$AR%g
+s%@U_DISABLE_RENAMING@%$U_DISABLE_RENAMING%g
+s%@ENABLE_RPATH@%$ENABLE_RPATH%g
+s%@U_INLINE@%$U_INLINE%g
+s%@THREADS_TRUE@%$THREADS_TRUE%g
+s%@THREADS_FALSE@%$THREADS_FALSE%g
+s%@ICU_USE_THREADS@%$ICU_USE_THREADS%g
+s%@HAVE_MMAP@%$HAVE_MMAP%g
+s%@CPP@%$CPP%g
+s%@U_HAVE_INTTYPES_H@%$U_HAVE_INTTYPES_H%g
+s%@CXXCPP@%$CXXCPP%g
+s%@U_IOSTREAM_SOURCE@%$U_IOSTREAM_SOURCE%g
+s%@U_IS_BIG_ENDIAN@%$U_IS_BIG_ENDIAN%g
+s%@U_HAVE_NL_LANGINFO@%$U_HAVE_NL_LANGINFO%g
+s%@U_HAVE_NL_LANGINFO_CODESET@%$U_HAVE_NL_LANGINFO_CODESET%g
+s%@U_NL_LANGINFO_CODESET@%$U_NL_LANGINFO_CODESET%g
+s%@U_HAVE_NAMESPACE@%$U_HAVE_NAMESPACE%g
+s%@U_OVERRIDE_CXX_ALLOCATION@%$U_OVERRIDE_CXX_ALLOCATION%g
+s%@U_HAVE_PLACEMENT_NEW@%$U_HAVE_PLACEMENT_NEW%g
+s%@U_HAVE_POPEN@%$U_HAVE_POPEN%g
+s%@U_TZSET@%$U_TZSET%g
+s%@U_TZNAME@%$U_TZNAME%g
+s%@U_HAVE_TIMEZONE@%$U_HAVE_TIMEZONE%g
+s%@U_TIMEZONE@%$U_TIMEZONE%g
+s%@HAVE_INT8_T@%$HAVE_INT8_T%g
+s%@HAVE_UINT8_T@%$HAVE_UINT8_T%g
+s%@HAVE_INT16_T@%$HAVE_INT16_T%g
+s%@HAVE_UINT16_T@%$HAVE_UINT16_T%g
+s%@HAVE_INT32_T@%$HAVE_INT32_T%g
+s%@HAVE_UINT32_T@%$HAVE_UINT32_T%g
+s%@HAVE_INT64_T@%$HAVE_INT64_T%g
+s%@HAVE_UINT64_T@%$HAVE_UINT64_T%g
+s%@U_HAVE_WCHAR_H@%$U_HAVE_WCHAR_H%g
+s%@U_HAVE_WCSCPY@%$U_HAVE_WCSCPY%g
+s%@U_SIZEOF_WCHAR_T@%$U_SIZEOF_WCHAR_T%g
+s%@ECHO_N@%$ECHO_N%g
+s%@ECHO_C@%$ECHO_C%g
+s%@EXTRAS_TRUE@%$EXTRAS_TRUE%g
+s%@EXTRAS_FALSE@%$EXTRAS_FALSE%g
+s%@USTDIO_TRUE@%$USTDIO_TRUE%g
+s%@USTDIO_FALSE@%$USTDIO_FALSE%g
+s%@LAYOUT_TRUE@%$LAYOUT_TRUE%g
+s%@LAYOUT_FALSE@%$LAYOUT_FALSE%g
+s%@thesysconfdir@%$thesysconfdir%g
+s%@thedatadir@%$thedatadir%g
+s%@thelibdir@%$thelibdir%g
+s%@pkgicudatadir@%$pkgicudatadir%g
+s%@thepkgicudatadir@%$thepkgicudatadir%g
+s%@DATA_PACKAGING_CPPFLAGS@%$DATA_PACKAGING_CPPFLAGS%g
+s%@DATA_PACKAGING_MODE@%$DATA_PACKAGING_MODE%g
+s%@ICULIBSUFFIX@%$ICULIBSUFFIX%g
+s%@U_HAVE_LIB_SUFFIX@%$U_HAVE_LIB_SUFFIX%g
+s%@ICULIBSUFFIXCNAME@%$ICULIBSUFFIXCNAME%g
+s%@TESTS_TRUE@%$TESTS_TRUE%g
+s%@TESTS_FALSE@%$TESTS_FALSE%g
+s%@SAMPLES_TRUE@%$SAMPLES_TRUE%g
+s%@SAMPLES_FALSE@%$SAMPLES_FALSE%g
+s%@ICUDATA_CHAR@%$ICUDATA_CHAR%g
+s%@platform@%$platform%g
+s%@platform_make_fragment_name@%$platform_make_fragment_name%g
+s%@platform_make_fragment@%$platform_make_fragment%g
+s%@ld_rpath_suf@%$ld_rpath_suf%g
+s%@AIX_SHLIB@%$AIX_SHLIB%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    del -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
+    else
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+    fi
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+  fi
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"README icudefs.mk \
+		Makefile \
+		data/Makefile data/icupkg.inc \
+		common/Makefile config/Makefile.inc i18n/Makefile \
+		layout/Makefile \
+		layoutex/Makefile \
+		extra/Makefile extra/ustdio/Makefile \
+                extra/uconv/Makefile extra/scrptrun/Makefile
+		stubdata/Makefile \
+		tools/Makefile tools/ctestfw/Makefile tools/makeconv/Makefile \
+		tools/genrb/Makefile  \
+		tools/genuca/Makefile  \
+		tools/pkgdata/Makefile \
+		tools/genccode/Makefile tools/gencmn/Makefile \
+		tools/gencnval/Makefile tools/gentz/Makefile \
+                tools/gennames/Makefile tools/toolutil/Makefile \
+                tools/gentest/Makefile \
+		tools/gennorm/Makefile \
+		tools/genprops/Makefile \
+		tools/genpname/Makefile \
+		tools/genbrk/Makefile \
+		tools/genidna/Makefile \
+		tools/dumpce/Makefile \
+		test/Makefile test/testdata/Makefile test/intltest/Makefile \
+                test/cintltst/Makefile test/iotest/Makefile \
+		test/ieeetest/Makefile \
+		test/collperf/Makefile \
+		test/perf/normperf/Makefile \
+		test/thaitest/Makefile \
+		test/letest/Makefile \
+		test/threadtest/Makefile \
+		samples/Makefile samples/date/Makefile \
+                samples/cal/Makefile samples/layout/Makefile \
+		common/unicode/platform.h"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
+
+  echo creating "$ac_file"
+  del -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+del -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='\([ 	]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+  CONFIG_HEADERS="common/icucfg.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  echo creating $ac_file
+
+  del -f conftest.frag conftest.in conftest.out
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+del -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+del -f conftest.hdr
+
+# This sed command replaces #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.
+cat >> conftest.vals <<\EOF
+s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+del -f conftest.tail
+while :
+do
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  echo 'CEOF
+  sed -f conftest.frag conftest.in > conftest.out
+  del -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  del -f conftest.vals
+  mv conftest.tail conftest.vals
+done
+del -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+  del -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  del -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    echo "$ac_file is unchanged"
+    del -f conftest.h
+  else
+    # Remove last slash and all that follows it.  Not all systems have dirname.
+      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+      # The file is in a subdirectory.
+      test ! -d "$ac_dir" && mkdir "$ac_dir"
+    fi
+    del -f $ac_file
+    mv conftest.h $ac_file
+  fi
+fi; done
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+del -f confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/usr/bin/qsh} $CONFIG_STATUS || exit 1
+
+
+if test $ICU_USE_THREADS = 0; then
+  echo  " *** Note: configuring the ICU without pthread support or testing. If this isn't what you want, then run configure with --enable-threads=yes or check the messages above to see why we couldn't find pthread_create()" 1>&6
+fi
+
+echo "You must use $U_MAKE to build ICU."
\ No newline at end of file
diff --git a/as_is/os400/unpax-icu.sh b/as_is/os400/unpax-icu.sh
new file mode 100755
index 0000000..e69b122
--- /dev/null
+++ b/as_is/os400/unpax-icu.sh
@@ -0,0 +1,139 @@
+#!/usr/bin/qsh
+#   Copyright (C) 2000-2003, International Business Machines
+#   Corporation and others.  All Rights Reserved.
+#
+# Authors:
+# Ami Fixler
+# Barry Novinger
+# Steven R. Loomis <srl@jtcsv.com>
+# George Rhoten
+#
+# Shell script to unpax ICU and convert the files to an EBCDIC codepage.
+# After extracting to EBCDIC, binary files are re-extracted without the
+# EBCDIC conversion, thus restoring them to original codepage.
+#
+# Set the following variable to the list of binary file suffixes (extensions)
+
+#binary_suffixes='ico ICO bmp BMP jpg JPG gif GIF brk BRK'
+#ICU specific binary files
+binary_suffixes='brk BRK bin BIN'
+data_files='icu/source/data/brkitr/* icu/source/data/locales/* icu/source/data/mappings/* icu/source/data/misc/* icu/source/data/translit/* icu/source/data/unidata/* icu/source/test/testdata/*'
+
+usage()
+{
+  echo "Enter archive filename as a parameter: $0 icu-archive.tar [strip]"
+  echo "(strip is an option to remove hex '0D' carraige returns)"
+}
+# first make sure we at least one arg and it's a file we can read
+if [ $# -eq 0 ]; then
+  usage
+  exit
+fi
+if [ ! -r $1 ]; then
+  echo "$1 does not exist or cannot be read."
+  usage
+  exit
+fi
+# set up a few variables
+
+echo ""
+echo "Extracting from $1 ..."
+echo ""
+# extract everything as iso-8859-1 except these directories
+pax -C 819 -rcvf $1 $data_files
+
+# extract files while converting them to EBCDIC
+echo ""
+echo "Extracting files which must be in ibm-37 ..."
+echo ""
+pax -C 37 -rvf $1 $data_files
+
+if [ $# -gt 1 ]; then 
+  if [ $2 -eq strip ]; then
+    echo ""
+    echo "Stripping hex 0d characters ..."
+    for i in $(pax -f $1 2>/dev/null)
+    do
+      case $i in
+        */)
+         # then this entry is a directory
+         ;;
+        *)
+          # then this entry is NOT a directory
+          tr -d 
+ <$i >@@@icu@tmp
+          chmod +w $i
+          rm $i
+          mv @@@icu@tmp $i
+          ;;
+       esac
+    done
+  fi
+fi
+
+echo ""
+echo "Determining binary files ..."
+echo ""
+
+#for dir in `find ./icu -type d \( -name CVS -o -print \)`; do
+#    if [ -f $dir/CVS/Entries ]; then
+#        binary_files="$binary_files`cat $dir/CVS/Entries | fgrep -- -kb \
+#                      | cut -d / -f2 | sed -e "s%^%$dir/%" \
+#                      | sed -e "s%^\./%%" | tr '\n' ' '`"
+#    fi
+#done
+#echo "Detecting Unicode files"
+for file in `find ./icu \( -name \*.txt -print \)`; do
+    bom8=`head -n 1 $file|\
+          od -t x1|\
+          head -n 1|\
+          sed 's/  */ /g'|\
+          cut -f2-4 -d ' '|\
+          tr 'A-Z' 'a-z'`;
+#    echo "bom8 is" $bom8 "for" $file
+#    bom8=`head -c 3 $file|od -t x1|head -n 1|cut -d ' ' -f2-4`;
+    #Find a converted UTF-8 BOM
+    if [ "$bom8" = "057 08b 0ab" -o "$bom8" = "57 8b ab" ]
+    then
+        binary_files="$binary_files `echo $file | cut -d / -f2-`";
+    fi
+done
+
+#echo $binary_files
+
+for i in $(pax -f $1 2>/dev/null)
+do
+  case $i in
+    */)
+#    then this entry is a directory
+     ;;
+    *.*)
+#    then this entry has a dot in the filename
+     for j in $binary_suffixes
+     do
+       suf=${i#*.*}
+       if [ "$suf" = "$j" ]
+       then
+         binary_files="$binary_files $i"
+         break
+       fi
+     done
+     ;;
+    *)
+#    then this entry does not have a dot in it
+     ;;
+  esac
+done
+
+# now see if a re-extract of binary files is necessary
+if [ ${#binary_files} -eq 0 ]; then
+  echo ""
+  echo "There are no binary files to restore."
+else
+  echo "Restoring binary files ..."
+  echo ""
+  rm $binary_files
+  pax -C 819 -rvf $1 $binary_files
+fi
+echo ""
+echo "$0 has completed extracting ICU from $1."
diff --git a/debian/.cvsignore b/debian/.cvsignore
new file mode 100644
index 0000000..2fe3e9b
--- /dev/null
+++ b/debian/.cvsignore
@@ -0,0 +1,17 @@
+*.debhelper
+docs
+*files
+*.substvars
+libicu-dev
+*libicu[0-9]*
+icu
+icu-locales
+icu-data
+icu-i18ndata
+tmp
+control
+postinst
+prerm
+icu.postinst
+icu.prerm
+icu-doc
diff --git a/debian/README.Debian.libicu-dev b/debian/README.Debian.libicu-dev
new file mode 100644
index 0000000..32a2fec
--- /dev/null
+++ b/debian/README.Debian.libicu-dev
@@ -0,0 +1,11 @@
+Copyright (C) 2000-2003, International Business Machines
+Corporation and others.  All Rights Reserved.
+
+libicu-dev for Debian
+---------------------
+
+The documentation in /usr/share/doc/libicu-dev/docs/ provides a high-level
+overview of ICU. Detailed API documentation is provided by the icu-docs
+package.
+
+ -- Yves Arrouye <yves@debian.org>, Wed, 11 Oct 2000 19:37:57 -0700
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..2c79240
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,113 @@
+icu (2.1-1) unstable; urgency=low
+
+  * ICU 2.1 release.
+  * Changed the icu package description. Closes: 142886
+  * Use -O1 for CXXFLAGS for OS/390. Closes: 143021
+
+ -- Yves Arrouye <yves@debian.org>  Mon, 15 Apr 2002 14:03:12 -0700
+
+icu (2.0.2-1) unstable; urgency=low
+
+  * Minor release of ICU with fixes for threading and strTo/FromWCS
+
+ -- Yves Arrouye <yves@debian.org>  Tue,  2 Apr 2002 09:06:00 -0800
+
+icu (2.0-2.1pre20020318-1) unstable; urgency=low
+
+  * Use the library number in the development package too.
+  * ICU changed to version 2.1.
+
+ -- Yves Arrouye <yves@debian.org>  Tue, 19 Mar 2002 18:38:37 -0800
+
+icu (2.0-2.1pre20020303-1) unstable; urgency=low
+
+  * Fixed a crash in uconv when no argument is passed to -f or -t.
+  * Other upstream changes.
+  * Fresh upload with an up to date orig tar file so that future
+    diffs won't be 6 megabytes long!
+
+ -- Yves Arrouye <yves@debian.org>  Sun,  3 Mar 2002 15:31:13 -0800
+
+icu (2.0-2.1pre-1) unstable; urgency=low
+
+  * Prerelease of 2.1 with a working upgraded uconv(1).
+
+ -- Yves Arrouye <yves@debian.org>  Fri,  1 Mar 2002 21:51:47 -0800
+
+icu (2.0-3) unstable; urgency=low
+
+  * Renamed doc-base to icu-doc.doc-base. Closes: 127487
+
+ -- Yves Arrouye <yves@debian.org>  Fri, 18 Jan 2002 22:33:53 -0800
+
+icu (2.0-2) unstable; urgency=low
+
+  * Fixed a bug in uprv_uca_cloneTempTable().  Closes: 128484
+  * Update Debian bugs status.  Closes: 104642
+  * Use the official 2.0 tarball as the original tar.
+  * Added manual pages for every tool.
+
+ -- Yves Arrouye <yves@debian.org>  Wed, 16 Jan 2002 20:45:42 -0800
+
+icu (2.0-1) unstable; urgency=low
+
+  * Update to ICU version 2.0.
+
+ -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:58:19 -0800
+
+icu (1.8.1-2) unstable; urgency=low
+
+  * Updated copyright file. Closes: 112488
+  * Updated icu-locales description. Closes: 75499
+
+ -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:24:58 -0800
+
+icu (1.8.1-1.1) unstable; urgency=low
+
+  * NMU to resolve build failures on ia64 and (hopefully) hppa.
+  * config.{sub|guess} update
+  * source/tools/ctestfw/ctest.c: Add static declaration to global
+    variables local to that module to avoid @gprel relocation errors.
+    Closes: 104642
+
+ -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:24:44 -0800
+
+icu (1.8.1-1) unstable; urgency=low
+
+  * Update to ICU version 1.8.1.
+
+ -- root <yves@debian.org>  Mon, 21 May 2001 15:27:36 -0700
+
+icu (1.7-1) unstable; urgency=low
+
+  * Update to ICU version 1.7.
+
+ -- Yves Arrouye <yves@debian.org>  Tue, 21 Nov 2000 22:54:52 -0800
+
+icu (1.6.0.1-20001113-2) unstable; urgency=low
+
+  * New snapshot with better ISO-2022.
+
+ -- Yves Arrouye <yves@debian.org>  Mon, 13 Nov 2000 21:05:00 -0800
+
+icu (1.6.0.1-20001027-1) unstable; urgency=low
+
+  * Move architecture-dependent files into /usr/lib, instead of
+    /usr/share.
+  * Move convrtrs.txt into /etc/icu, make it a conffile, and generate
+    /usr/lib/icu/1.6.0.1/cnvalias.dat from it at postinst time.
+  * Manage a /usr/lib/icu/current symbolic link across installations
+    of the libicuXX packages. The symlink will always point to the
+    highest numbered version of ICU.
+
+ -- Yves Arrouye <yves@debian.org>  Fri, 27 Oct 2000 15:40:12 -0700
+
+icu (1.6.0.1-20001017-1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Yves Arrouye <yves@debian.org>  Tue, 24 Oct 2000 16:14:12 -0700
+
+Local variables:
+mode: debian-changelog
+End:
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..8b3e6ed
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,89 @@
+Source: icu
+Section: libs
+Priority: optional
+Maintainer: Yves Arrouye <yves@debian.org>
+Standards-Version: 3.5.6
+Build-Depends: debhelper, doxygen
+
+Package: libicu21-dev
+Section: devel
+Architecture: any
+Depends: libicu${major} (= ${Source-Version}), libc6-dev
+Provides: libicu-dev
+Conflicts: libicu-dev
+Suggests: icu-doc
+Description: International Components for Unicode (development files)
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale support. This package contains the development files for ICU.
+
+Package: icu-doc
+Section: doc
+Architecture: all
+Description: API documentation for ICU classes and functions
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale support. This package contains HTML files documenting the ICU
+ APIs.
+ 
+Package: libicu21
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}
+Recommends: icu
+Description: International Components for Unicode (libraries)
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale support. This package contains the runtime libraries for
+ ICU. It does not contain any of the data files needed at runtime and
+ present in the `icu' and `icu-locales` packages.
+
+Package: icu
+Section: libs
+Architecture: any
+Depends: libicu${major} (>= ${Source-Version}), make
+Recommends: icu-locales
+Description: International Components for Unicode (non locale data)
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale support. The library provides calendar support, conversions
+ for more than 230 character sets, language-sensitive collation, date
+ and time formatting, support for more than 140 locales, message catalogs
+ and resources, message formatting, normalization, number and currency
+ formatting, time zones support, transliteration, word, line and
+ sentence breaking, etc. 
+ .
+ This package contains the Unicode character database and derived
+ properties, along with converters and time zones data.
+ It also contains the tools needed to manipulate these data.
+
+Package: icu-locales
+Section: libs
+Architecture: any
+Depends: libicu${major} (>= ${Source-Version})
+Description: Locale data for ICU
+ The locale data are used by ICU to provide localization (l10n) and
+ internationalization (i18n) support to applications using the ICU library.
+ This package also contains break data for various languages, and
+ transliteration data. 
+
+Package: icu-data
+Priority: extra
+Section: libs
+Architecture: all
+Depends: icu
+Description: Data for ICU (source files)
+ These data describe the Unicode data (normative and informative), and
+ also all the table-based converters provided in the ICU distribution.
+ .
+ This package contains uncompiled source data. Precompiled data are in the
+ `libicu${major}' package.
+
+Package: icu-i18ndata
+Priority: extra
+Section: libs
+Architecture: all
+Depends: icu
+Description: Locale data for ICU (source files)
+ The locale data are used by ICU to provide localization (l10n) and
+ internationalization (i18n) support to ICU applications. This package
+ also contains break data for various languages, and transliteration data.
+ .
+ This package contains uncompiled source data. Precompiled data are in the
+ `icu-locales' package.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..eddd3b4
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,35 @@
+ICU License - ICU 1.8.1 and later
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1995-2001 International Business Machines Corporation and others
+All rights reserved.
+
+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, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+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
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
+
+--------------------------------------------------------------------------------
+All trademarks and registered trademarks mentioned herein are the property of their respective owners.
+
diff --git a/debian/icu-doc.doc-base b/debian/icu-doc.doc-base
new file mode 100644
index 0000000..9810e67
--- /dev/null
+++ b/debian/icu-doc.doc-base
@@ -0,0 +1,13 @@
+Document: icu-doc
+Title: ICU API Documentation
+Author: IBM Corporation and Others
+Abstract: This manual describes the APIs of the
+  International Components for Unicode C/C++
+  library. It is a useful reference for the
+  ICU programmer.
+Section: Libs
+
+Format: HTML
+Index: /usr/share/doc/icu-doc/html/index.html
+Files: /usr/share/doc/icu-doc/html/*.html
+
diff --git a/debian/icu.conffiles.in b/debian/icu.conffiles.in
new file mode 100644
index 0000000..95162dc
--- /dev/null
+++ b/debian/icu.conffiles.in
@@ -0,0 +1 @@
+/etc/icu/convrtrs.txt
diff --git a/debian/icu.postinst.in b/debian/icu.postinst.in
new file mode 100644
index 0000000..23ccbee
--- /dev/null
+++ b/debian/icu.postinst.in
@@ -0,0 +1,77 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# postinst script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+    configure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+
+	    # Set ICU_DATA for ease of testing files. It is not necessary to
+	    # export it as we are guaranteed that the binaries we invoke will
+	    # use the right directory. But we're not taking chances with the
+	    # future :)
+
+	    ICU_DATA=@libdir@/@PACKAGE@/@VERSION@
+	    export ICU_DATA
+
+	    if test ! -f $ICU_DATA/cnvalias.dat -o @sysconfdir@/icu/convrtrs.txt -nt $ICU_DATA/cnvalias.dat
+	    then
+	        echo Compiling converters and aliases list from @sysconfdir@/@PACKAGE@/convrtrs.txt
+	        @sbindir@/gencnval @sysconfdir@/@PACKAGE@/convrtrs.txt
+	    fi
+
+	fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/debian/icu.prerm.in b/debian/icu.prerm.in
new file mode 100644
index 0000000..28d8c01
--- /dev/null
+++ b/debian/icu.prerm.in
@@ -0,0 +1,56 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# prerm script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+
+#       install-info --quiet --remove /usr/info/foo.info.gz
+        ;;
+
+    failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/libicu.postinst b/debian/libicu.postinst
new file mode 100644
index 0000000..a262d90
--- /dev/null
+++ b/debian/libicu.postinst
@@ -0,0 +1,70 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# postinst script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+# Call ldconfig in a way that makes lintian happy.
+
+if [ "$1" = "configure" ]; then ldconfig; fi
+
+# And now do the rest of the configuration
+
+case "$1" in
+    configure)
+
+	# Adjust the current ICU link in /usr/lib/icu
+
+	if [ -d /usr/lib/icu ]
+	then
+
+	icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	cd /usr/lib/icu
+	rm -f current
+	if test x"$icucurrent" != x
+	then
+	    ln -s "$icucurrent" current
+	    ln -sf current/Makefile.inc .
+	fi
+
+	fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/libicu.prerm.in b/debian/libicu.prerm.in
new file mode 100644
index 0000000..a06ac25
--- /dev/null
+++ b/debian/libicu.prerm.in
@@ -0,0 +1,55 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# prerm script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+
+#       install-info --quiet --remove /usr/info/foo.info.gz
+        ;;
+    failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/postinst.in b/debian/postinst.in
new file mode 100644
index 0000000..1e7a3f7
--- /dev/null
+++ b/debian/postinst.in
@@ -0,0 +1,63 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# postinst script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+    configure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/prerm.in b/debian/prerm.in
new file mode 100644
index 0000000..a06ac25
--- /dev/null
+++ b/debian/prerm.in
@@ -0,0 +1,55 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# prerm script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+
+#       install-info --quiet --remove /usr/info/foo.info.gz
+        ;;
+    failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..44b8acb
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,250 @@
+#!/usr/bin/make -f
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# ICU debian/rules that uses debhelper.
+
+# The Debian packages for ICU are created and maintained by
+# Yves Arrouye <yves@debian.org>. They are part of Debian GNU/Linux
+# since the Debian woody release.
+
+# Decide whether we want to automatically manage the repackaging of
+# the common data from individual files or not.
+ICU_AUTO_COMMON=NO
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatability version to use.
+export DH_COMPAT=2
+#firstdir := $(shell sed -n 's/Package: \(.*\)/\1/p' debian/control | head -1)else
+
+# Where the source for ICU is, where to build
+srcdir = source
+builddir = build
+# How to get to $(srcdir) from $(builddir)
+builddir_relative_topdir = ..
+builddir_relative_srcdir = $(builddir_relative_topdir)/$(srcdir)
+
+# Getting the ICU version numbers, stolen from configure.in (that's okay, I
+# wrote the configure.in part anyway)
+
+version := $(shell sed -n -e 's/^[ 	]*\#[ 	]*define[ 	]*U_ICU_VERSION[ 	]*"\([^"]*\)".*/\1/p' $(srcdir)/common/unicode/uversion.h)
+libversion := $(shell echo $(version) | sed -e 's/\.//' -e 's/^\([^.]*\)$$/\1.0/')
+major := $(shell echo $(libversion) | sed 's/\..*//')
+
+# ICU installation directories, w/o the initial slash
+pkgdatadir = usr/share/icu
+icudatadir = $(pkgdatadir)/$(version)
+pkglibdir = usr/lib/icu
+iculibdir = $(pkglibdir)/$(version)
+datasrcdir = usr/share/icu/$(version)/data
+# This is where data needs to be moved
+ifeq ($(ICU_AUTO_COMMON),YES)
+icufildir = $(iculibdir)/files
+else
+icufildir = $(iculibdir)
+endif
+
+# Build flags
+
+CFLAGS = -O2 # -Wall
+ifeq ($(shell uname -m),s390)
+CXXFLAGS = -O1 # -Wall
+else
+CXXFLAGS = -O2 # -Wall
+endif
+
+INSTALL_PROGRAM = /usr/bin/install
+
+ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+CFLAGS += -g
+CXXFLAGS += -g
+endif
+ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+INSTALL_PROGRAM += -s
+endif
+
+all: build
+
+configure: $(builddir)/configure-stamp
+$(builddir)/configure-stamp:
+	# Add here commands to configure the package.
+	test -d $(builddir) || mkdir $(builddir)
+	cd $(builddir); CFLAGS='$(CFLAGS)' CXXFLAGS='$(CXXFLAGS)' INSTALL_PROGRAM='$(INSTALL_PROGRAM)' $(SHELL) $(builddir_relative_srcdir)/configure --srcdir=$(builddir_relative_srcdir) --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --with-data-packaging=files --disable-rpath --enable-shared --enable-static --disable-samples
+	touch $@
+
+build: $(builddir)/configure-stamp debian-files $(builddir)/build-stamp
+
+# Build some Debian files
+DEBIAN_FILES=icu.conffiles postinst prerm icu.postinst icu.prerm libicu$(major).postinst README.Debian.libicu$(major)-dev
+
+debian/%: debian/%.in
+	cd $(builddir) \
+	  && CONFIG_FILES=$(builddir_relative_topdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+debian/libicu$(major)%: debian/libicu%
+	cp $< $@
+debian/README.Debian.libicu$(major)%: debian/README.Debian.libicu%
+	cp $< $@
+
+debian-files: $(addprefix debian/,$(DEBIAN_FILES))
+
+$(builddir)/build-stamp:
+	dh_testdir
+
+	# Add here commands to compile the package.
+	$(MAKE) -C $(builddir)
+
+	touch $@
+
+clean: update-debian-files
+	dh_testdir
+	dh_testroot
+	 $(RM) $(builddir)/build-stamp $(builddir)/configure-stamp
+
+	# Add here commands to clean up after the build process.
+	-$(MAKE) -C $(builddir) distclean
+	#-$(RM) `find $(builddir)/samples $(builddir)/test -name Makefile -print`
+	-$(RM) `find $(builddir) -name Makefile -print`
+	dh_clean
+	$(RM) $(addprefix debian/,$(DEBIAN_FILES)) debian/control.new
+
+	#if test -d $(builddir) -a $(builddir) != $(srcdir); then rmdir `find $(builddir) -type d -print | sort -r`; fi
+	if test -d $(builddir) -a $(builddir) != $(srcdir); then $(RM) -r $(builddir); fi
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+
+	# Add here commands to install the package into debian/tmp
+	$(MAKE) -C $(builddir) install DESTDIR=`pwd`/debian/tmp
+
+# Build architecture-independent files here.
+binary-indep: build install
+	#
+	# build icu-doc package by moving files
+	#
+	mv debian/tmp/usr/share/doc/icu debian/tmp/usr/share/doc/icu-doc
+	dh_movefiles -picu-doc \
+	    usr/share/doc/icu-doc
+	#
+	# build icu-i18ndata from the source data
+	#
+	for d in locales translit brkitr; do \
+	    test -d debian/icu-i18ndata/$(datasrcdir)/$$d || \
+	        mkdir -p debian/icu-i18ndata/$(datasrcdir)/$$d; \
+	    install -m 644 $(srcdir)/data/$$d/*.* \
+	        debian/icu-i18ndata/$(datasrcdir)/$$d; \
+	done
+	#
+	# build icu-data from the source data
+	#
+	for d in mappings unidata misc; do \
+	    test -d debian/icu-data/$(datasrcdir)/$$d || \
+	        mkdir -p debian/icu-data/$(datasrcdir)/$$d; \
+	    install -m 644 $(srcdir)/data/$$d/*.* \
+	        debian/icu-data/$(datasrcdir)/$$d; \
+	done
+	cd debian/icu-data/$(datasrcdir)/mappings && \
+	    $(RM) convrtrs.txt && ln -s /etc/icu/convrtrs.txt .
+
+# Build architecture-dependent files here.
+binary-arch: build install
+#	dh_testversion
+	dh_testdir
+	dh_testroot
+	#
+	# build libicu${major} package by moving files from icu-dev
+	#
+	$(RM) debian/tmp/usr/lib/libicuctestfw.*
+	dh_movefiles -plibicu$(major) \
+	    usr/lib/*.so.*
+	mkdir debian/libicu$(major)/usr/lib/icu
+	#
+	# massage data files
+	#
+	$(RM) debian/tmp/$(iculibdir)/cnvalias.dat
+ifneq ($(iculibdir),$(icufildir))
+	test -d debian/tmp/$(icufildir) || mkdir debian/tmp/$(icufildir)
+	mv debian/tmp/$(iculibdir)/*.* debian/tmp/$(icufildir)
+	mv debian/tmp/$(icufildir)/*msg.dat debian/tmp/$(iculibdir)
+	mv debian/tmp/$(icufildir)/*.inc debian/tmp/$(iculibdir)
+endif
+	#
+	# build icu package by moving files from icu-dev
+	#
+	$(RM) debian/tmp/$(iculibdir)/../Makefile.inc debian/tmp/$(iculibdir)/../current
+ifneq ($(iculibdir),$(icufildir))
+	dh_movefiles -picu \
+	    $(iculibdir)/*msg.dat
+endif
+	dh_movefiles -picu \
+	    etc \
+	    usr/bin \
+	    usr/sbin \
+	    $(icudatadir)/README \
+	    $(icudatadir)/license.html \
+	    $(iculibdir)/*.inc \
+	    $(icufildir)/*.cnv \
+	    $(icufildir)/*.dat \
+	    usr/share/man
+	#
+	# build icu-locales package by moving files from icu-dev
+	#
+	dh_movefiles -picu-locales \
+	    $(icufildir)/*.res \
+	    $(icufildir)/*.brk
+	#
+	# move the rest of the development files
+	# in their package
+	#
+	dh_movefiles usr
+	#
+	# do a bit of cleanup
+	#
+	$(RM) -r debian/tmp/etc debian/tmp/usr/sbin \
+	    debian/tmp/usr/share/man
+	#
+	# continue to prepare packages
+	#
+#	dh_installdebconf
+	dh_installdocs
+	dh_installexamples $(srcdir)/samples/*
+	find debian/libicu$(major)-dev -name CVS -o -name .cvsignore | xargs $(RM) -r
+	dh_installmenu
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installinit
+	dh_installcron
+	dh_installmanpages -picu
+	dh_installinfo
+	# dh_undocumented -picu
+	dh_installchangelogs 
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+	# You may want to make some executables suid here.
+	dh_makeshlibs
+	dh_installdeb
+#	dh_perl
+	dh_shlibdeps -ldebian/libicu$(major)/usr/lib
+	dh_gencontrol -- -Vversion=$(version) -Vmajor=$(major)
+	dh_md5sums
+	dh_builddeb
+
+# Automatically update changelog and control
+update-debian-files:
+	if [ x"$$NO_AUTO_DCH" = x ]; \
+	then \
+	    cvers=`sed -n 's/^icu (\([^)]*\)).*/\1/p' debian/changelog | head -1`; if dpkg --compare-versions $$cvers lt $(version)-1; then \
+	        dch -v $(version)-1 "Update to ICU version $(version). (This comment is generated.)"; \
+	        sed 's/libicu[0-9][0-9]*/libicu$(major)/g' debian/control >debian/control.new && mv debian/control.new debian/control; \
+	    fi; \
+	fi
+
+binary: update-debian-files binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install debian-files update-changelog
+
diff --git a/license.html b/license.html
new file mode 100644
index 0000000..2a2c8e5
--- /dev/null
+++ b/license.html
@@ -0,0 +1,45 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></meta>
+<title>ICU License - ICU 1.8.1 and later</title>
+</head>
+
+<body>
+<h1>ICU License - ICU 1.8.1 and later</h1>
+<pre>
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1995-2003 International Business Machines Corporation and others
+All rights reserved.
+
+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, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+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
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
+
+--------------------------------------------------------------------------------
+All trademarks and registered trademarks mentioned herein are the property of their respective owners.
+</pre>
+</body>
+</html>
diff --git a/packaging/PACKAGES b/packaging/PACKAGES
new file mode 100644
index 0000000..12b3523
--- /dev/null
+++ b/packaging/PACKAGES
@@ -0,0 +1,159 @@
+Copyright (C) 2000-2003, International Business Machines
+Corporation and others.  All Rights Reserved.
+ICU is packaged into a number of small, interdependent packages. This
+file describes what these packages are, what their name should be
+like, and what their contents are. It is useful as a reference and a
+guide when packaging ICU on a new system.
+
++ List of ICU packages.
+
+ICU is distributed as the following packages:
+
+- ICU libraries. This package contains the runtime libraries needed by
+applications that use ICU. All the other packages require this package
+to be installed.
+- ICU. This package contains the converters data, the timezones data,
+and all the ICU tools.
+- ICU locales. This package adds locales and break data.
+- ICU development. This package contains the files necessary to build
+applications that use ICU, i.e. header files, links to shared
+libraries used by the linker, static libraries, etc... It also
+contains sample applications and documentation.
+- ICU docs. This package contains further documentation for ICU,
+including a complete API reference.
+- ICU data. This package contains the source for the compiled data
+contained by the ICU package.
+- ICU international data. This package contains the source for the
+compiled data contained by the ICU locales package.
+
+In this file, we will refer to Autoconf variables as in $(bindir). In
+addition to these, we will use the following variables to denote
+ICU-specific directories or information:
+
+  VERSION       ICU's dotted version number, e.g. 1.6.0.1 as of this
+		writing.
+
+  ICUDATADIR	The directory where portable ICU data are. This is
+	        defined as $(datadir)/icu/$(VERSION).
+  ICULIBDIR	The directory where platform-specific ICU data
+		are. This is defined as $(libdir)/icu/$(VERSION).
+  ICUSYSCONFDIR	The directory where ICU configuration files are. This
+		is defined as $(sysconfdir)/icu.
+
+When referring to libraries, .so will be used to denote the extension
+of a shared library, and .a to denote the extension of a static
+library. These extensions will actually be different on some platforms.
+
++ Configuration and compilation of ICU
+
+ICU should be configured with the following options:
+
+  --with-data-packaging=files
+  --disable-rpath
+  --enable-shared
+  --enable-static
+  --without-samples
+
+in addition to platform-specific settings (like a specific mandir or
+sysconfdir). Note that the use of --disable-rpath assumes that the
+packaging is made for a standard location, or that the package
+installation/deinstallation will correctly manage the configuration
+of the system's dyanmic loader. This is the right way of doing things.
+
+The configure script invokation should also be done with
+
+  CFLAGS="-O2"
+
+set, as in:
+
+  $ CFLAGS="-O2" ./configure ...
+
+The files packaging mode is chosen because it offers the maximum
+flexibility. Packages can be split easily, and system administrators
+can add converters, aliases, and other resources with little
+effort. Ideally, the ICU build will be modified to allow for distributing a
+libicudata.so with all the converters and locales, but indexes and aliases
+as separate files. But for now, this is the easiest way to get started.
+
++ The ICU libraries package
+
+The ICU libraries package is typically named `libicuXX' where XX is
+the major number of ICU's libraries. This number is ICU's version
+number multiplied by 10 and rounded down to the nearest integer (it is
+also the value of the LIB_VERSION_MAJOR configure substitution
+variable). For example, for ICU 1.6.0.1, it is 16, so the package name
+is `libicu16'. The major version is part of the package name to allow
+for the simultaneous installation of different ICU releases.
+
+This package contains:
+
+- All the shared libraries, and their major number symbolic link, but
+not the .so symbolic link that is only used at link time (this one is
+part of the development package). These are $(libdir)/libicu*.so.* and
+$(libdir)/libustdio.so.* at the time of this writing.
+
++ The ICU package
+
+The ICU package is simply named `icu'.  It provides data used by the ICU
+libraries package and commands to create and manipulate that data.
+
+This package contains:
+
+- The Unicode data files (uprops.dat and unames.dat as of this writing).
+- The time zones data files (tz.dat).
+- All the binary data files for converters (.cnv files).
+- All the ICU commands.
+- The manual pages for ICU commands and file formats.
+
++ The ICU locales package
+
+The ICU locales package is named `icu-locales'. It provides data used by
+internationalization support in ICU.
+
+This package contains:
+
+- All the data for locales in ICU (.dat files).
+- All the break data for specific locales (.brk files).
+
++ The ICU development package
+
+The ICU developpment package is named `libicu-dev'. It provides all
+the files necessary to write applications that use ICU, along with
+examples and some documentation.
+
+This package contains:
+
+- The /usr/include/unicode directory which contains all the ICU
+headers.
+- The .so symbolic links used by the linker to link against the
+latest version of the libraries.
+- A sample Makefile fragment that can be included by applications
+using ICU, to faciliate their building, along with a platform-specific
+configuration file included by this fragment.
+- The sample applications from the ICU source tree, in an appropriate
+location for the system that the package is installed on (for example,
+on Debian, in /usr/share/doc/libicu-dev/examples).
+
+This package depends on the ICU libraries package with the exact same
+version, since it provides .so symbolic links to the latest libraries.
+
++ The ICU docs package
+
+The ICU docs package is named `libicu-doc'. It contains the files
+generated by doxygen when the `make doc' command is executed, in a
+location appropriate for the system that the package is installed on.
+
++ The ICU data package
+
+The ICU data package is named `icu-data'. It contains source files for
+the data found in the ICU package. These files are installed in
+$(ICUDATADIR).
+
++ The ICU international data package
+
+The ICU data package is named `icu-i18ndata'. It contains source files for
+the dat founf in the ICU locales package. These files are installed in
+$(ICUDATADIR).
+
+----
+Yves Arrouye <yves@realnames.com>
diff --git a/packaging/README b/packaging/README
new file mode 100644
index 0000000..1bfe85a
--- /dev/null
+++ b/packaging/README
@@ -0,0 +1,13 @@
+Copyright (C) 2000-2003, International Business Machines
+Corporation and others.  All Rights Reserved.
+
+This directory contains information, input files and scripts for
+packaging ICU using specific packaging tools. We assume that the
+packager is familiar with the tools and procedures needed to build a
+package for a given packaging method (for example, how to use
+dpkg-buildpackage(1) on Debian GNU/Linux, or rpm(8) on distributions that
+use RPM packages).
+
+Please read the file PACKAGES if you are interested in packaging ICU
+yourself. It describes what the different packages should be, and what
+their contents are.
diff --git a/packaging/debian/README b/packaging/debian/README
new file mode 100644
index 0000000..0388625
--- /dev/null
+++ b/packaging/debian/README
@@ -0,0 +1,5 @@
+// Copyright (c) 2000-2003 International Business Machines
+// Corporation and others. All Rights Reserved.
+The Debian packaging is in the debian directory at the toplevel of ICU's
+distribution.
+
diff --git a/packaging/rpm/icu.spec b/packaging/rpm/icu.spec
new file mode 100644
index 0000000..8a6d940
--- /dev/null
+++ b/packaging/rpm/icu.spec
@@ -0,0 +1,230 @@
+#   Copyright (C) 2000-2003, International Business Machines
+#   Corporation and others.  All Rights Reserved.
+#
+# RPM specification file for ICU.
+#
+# Neal Probert <nprobert@walid.com> is the current maintainer.
+# Yves Arrouye <yves@realnames.com> is the original author.
+
+# This file can be freely redistributed under the same license as ICU.
+
+Name: icu
+Version: 2.6.1
+Release: 1
+Requires: libicu26 >= 2.6.1
+Summary: International Components for Unicode
+Packager: Ian Holsman (CNET Networks) <ianh@cnet.com>
+Copyright: X License
+Group: System Environment/Libraries
+Source: icu-2.6.1.tar.gz
+BuildRoot: /var/tmp/%{name}
+%description
+ICU is a C++ and C library that provides robust and full-featured Unicode
+support. This package contains the runtime libraries for ICU. It does
+not contain any of the data files needed at runtime and present in the
+`icu' and `icu-locales` packages.
+
+%package -n libicu26
+Summary: International Components for Unicode (libraries)
+Group: Development/Libraries
+%description -n libicu26
+ICU is a C++ and C library that provides robust and full-featured Unicode
+support. This package contains the runtime libraries for ICU. It does
+not contain any of the data files needed at runtime and present in the
+`icu' and `icu-locales` packages.
+
+%package -n libicu-devel
+Summary: International Components for Unicode (development files)
+Group: Development/Libraries
+Requires: libicu26 = 2.6.1
+%description -n libicu-devel
+ICU is a C++ and C library that provides robust and full-featured Unicode
+support. This package contains the development files for ICU.
+
+%package locales
+Summary: Locale data for ICU
+Group: System Environment/Libraries
+Requires: libicu26 >= 2.6.1
+%description locales
+The locale data are used by ICU to provide localization (l10n) and
+internationalization (i18n) support to ICU applications. This package
+also contains break data for various languages, and transliteration data.
+
+%post
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+    ln -s "$icucurrent" current
+fi
+
+ICU_DATA=/usr/lib/icu/2.6.1
+export ICU_DATA
+if test ! -f $ICU_DATA/cnvalias.dat -o /etc/icu/convrtrs.txt -nt $ICU_DATA/cnvalias.dat
+then
+    echo Compiling converters and aliases list from /etc/icu/convrtrs.txt
+    /usr/bin/gencnval /etc/icu/convrtrs.txt
+fi
+
+%preun
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n -e '/\/2.6.1\//d' -e 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+    ln -s "$icucurrent" current
+fi
+
+%post -n libicu26
+ldconfig
+
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+    ln -s "$icucurrent" current
+fi
+
+%preun -n libicu26
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n -e '/\/2.6.1\//d' -e 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+    ln -s "$icucurrent" current
+fi
+
+%prep
+%setup -q
+
+%build
+cd source
+chmod a+x ./configure
+CFLAGS="-O3" CXXFLAGS="-O" ./configure --prefix=/usr --sysconfdir=/etc --with-data-packaging=files  --enable-shared --enable-static --disable-samples
+echo 'CPPFLAGS += -DICU_DATA_DIR=\"/usr/lib/icu/2.6.1\"' >> icudefs.mk
+make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
+
+%install
+rm -rf $RPM_BUILD_ROOT
+cd source
+make install DESTDIR=$RPM_BUILD_ROOT
+# static causes a static icudata lib to be built... - it's not needed, remove it.
+##cp stubdata/libicudata.a $RPM_BUILD_ROOT/usr/lib/icu/2.6.1/
+rm -f $RPM_BUILD_ROOT/usr/lib/icu/2.6.1/libicudata.a
+
+
+%files
+%defattr(-,root,root)
+%doc readme.html
+%doc license.html
+%config /etc/icu/convrtrs.txt
+/usr/share/icu/2.6.1/README
+/usr/share/icu/2.6.1/license.html
+/usr/lib/icu/2.6.1/*.cnv
+/usr/lib/icu/2.6.1/*.icu
+
+/usr/bin/derb
+/usr/bin/gencnval
+/usr/bin/genbrk
+/usr/bin/genrb
+/usr/bin/makeconv
+/usr/bin/icu-config
+/usr/bin/pkgdata
+/usr/bin/uconv
+
+/usr/sbin/decmn
+/usr/sbin/genccode
+/usr/sbin/gencmn
+/usr/sbin/genpname
+/usr/sbin/gennames
+/usr/sbin/gennorm
+/usr/sbin/genprops
+/usr/sbin/gentz
+/usr/sbin/genuca
+/usr/sbin/genidna
+/usr/share/icu/2.6.1/mkinstalldirs
+
+/usr/man/man1/gencnval.1.gz
+/usr/man/man1/genrb.1.gz
+/usr/man/man1/icu-config.1.gz
+/usr/man/man1/makeconv.1.gz
+/usr/man/man1/pkgdata.1.gz
+/usr/man/man1/uconv.1.gz
+/usr/man/man5/convrtrs.txt.5.gz
+/usr/man/man5/cnvalias.dat.5.gz
+/usr/man/man8/decmn.8.gz
+/usr/man/man8/genccode.8.gz
+/usr/man/man8/gencmn.8.gz
+/usr/man/man8/gennames.8.gz
+/usr/man/man8/gennorm.8.gz
+/usr/man/man8/genprops.8.gz
+/usr/man/man8/genuca.8.gz
+/usr/man/man8/genidna.8.gz
+
+%files -n icu-locales
+/usr/lib/icu/2.6.1/*.brk
+/usr/lib/icu/2.6.1/*.res
+%files -n libicu26
+%doc license.html
+/usr/lib/libicui18n.so.26
+/usr/lib/libicui18n.so.26.1
+/usr/lib/libicutoolutil.so.26
+/usr/lib/libicutoolutil.so.26.1
+/usr/lib/libicuuc.so.26
+/usr/lib/libicuuc.so.26.1
+/usr/lib/libicudata.so.26
+/usr/lib/libicudata.so.26.1
+/usr/lib/libicuio.so.26
+/usr/lib/libicuio.so.26.1
+/usr/lib/libiculx.so.26
+/usr/lib/libiculx.so.26.1
+/usr/lib/libicule.so.26
+/usr/lib/libicule.so.26.1
+
+%files -n libicu-devel
+%doc readme.html
+%doc license.html
+/usr/lib/libicui18n.so
+/usr/lib/libicui18n.a
+/usr/lib/libicuuc.so
+/usr/lib/libicuuc.a
+/usr/lib/libicutoolutil.so
+/usr/lib/libicutoolutil.a
+/usr/lib/libicuio.so
+/usr/lib/libicuio.a
+/usr/lib/libicudata.so
+/usr/lib/libicudata.a
+/usr/lib/libicule.so
+/usr/lib/libiculx.so
+/usr/lib/libicule.a
+/usr/lib/libiculx.a
+/usr/include/unicode/*.h
+/usr/include/layout/*.h
+/usr/lib/icu/2.6.1/Makefile.inc
+/usr/lib/icu/Makefile.inc
+/usr/share/icu/2.6.1/config
+/usr/share/icu/2.6.1/README
+/usr/share/doc/icu-2.6.1/*
+
+%changelog
+* Tue Aug 16 2003 Steven Loomis <srl@jtcsv.com>
+- update to 2.6.1 - include license
+* Thu Jun 05 2003 Steven Loomis <srl@jtcsv.com>
+- Update to 2.6
+* Fri Dec 27 2002 Steven Loomis <srl@jtcsv.com>
+- Update to 2.4 spec
+* Fri Sep 27 2002 Steven Loomis <srl@jtcsv.com>
+- minor updates to 2.2 spec. Rpath is off by default, don't pass it as an option.
+* Mon Sep 16 2002 Ian Holsman <ian@holsman.net> 
+- update to icu 2.2
+
diff --git a/readme.html b/readme.html
new file mode 100644
index 0000000..57eecac
--- /dev/null
+++ b/readme.html
@@ -0,0 +1,2013 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html lang="en-US">
+  <head>
+    <meta name="COPYRIGHT" content=
+    "Copyright (c) 1997-2003 IBM Corporation and others. All Rights Reserved.">
+    <meta name="KEYWORDS" content=
+    "ICU; International Components for Unicode; what's new; readme; read me; introduction; downloads; downloading; building; installation;">
+    <meta name="DESCRIPTION" content=
+    "The introduction to the International Components for Unicode with instructions on building, installation, usage and other information about ICU.">
+    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
+    <title>ReadMe for ICU</title>
+<style type="text/css">
+      h1 {border-width: 2px; border-style: solid; text-align: center; width: 100%; font-size: 200%; font-weight: bold}
+      h2 {margin-top: 3em; text-decoration: underline; page-break-before: always}
+      h2.TOC {page-break-before: auto}
+      h3 {margin-top: 2em; text-decoration: underline}
+      h4 {text-decoration: underline}
+      h5 {text-decoration: underline}
+      caption {font-weight: bold; text-align: left}
+      div.indent {margin-left: 2em}
+      ul.TOC {list-style-type: none}
+      samp {margin-left: 1em; border-style: groove; padding: 1em; display: block; background-color: #EEEEEE}
+</style>
+  </head>
+
+  <body>
+    <h1>International Components for Unicode<br>
+     <abbr title="International Components for Unicode">ICU</abbr> 2.8
+    ReadMe</h1>
+
+    <p>Version: 2003-Nov-04<br>
+     Copyright &copy; 1997-2003 International Business Machines Corporation and
+    others. All Rights Reserved.</p>
+    <!-- Remember that there is a copyright at the end too -->
+    <hr>
+
+    <h2 class="TOC">Table of Contents</h2>
+
+    <ul class="TOC">
+      <li><a href="#Introduction">Introduction</a></li>
+
+      <li><a href="#GettingStarted">Getting Started</a></li>
+
+      <li><a href="#News">What Is New In This release?</a></li>
+
+      <li><a href="#Download">How To Download the Source Code</a></li>
+
+      <li><a href="#SourceCode">ICU Source Code Organization</a></li>
+
+      <li>
+        <a href="#HowToBuild">How To Build And Install ICU</a> 
+
+        <ul class="TOC">
+          <li><a href="#HowToBuildSupported">Supported Platforms</a></li>
+
+          <li><a href="#HowToBuildWindows">Windows</a></li>
+
+          <li><a href="#HowToBuildWindowsXP64">Windows XP on IA64</a></li>
+
+          <li><a href="#HowToBuildUNIX">UNIX</a></li>
+
+          <li><a href="#HowToBuildZOS">z/OS (os/390)</a></li>
+
+          <li><a href="#HowToBuildOS400">OS/400 (iSeries)</a></li>
+        </ul>
+      </li>
+
+      <li><a href="#HowToPackage">How To Package ICU</a></li>
+
+      <li>
+        <a href="#ImportantNotes">Important Notes About Using ICU</a> 
+
+        <ul class="TOC">
+          <li><a href="#ImportantNotesCPlusPlus">Using ICU in a Multithreaded
+          Environment</a></li>
+
+          <li><a href="#CharStrings">char * strings in ICU</a></li>
+
+          <li><a href="#ImportantNotesDefaultCP">Using the Default
+          Codepage</a></li>
+
+          <li><a href="#ImportantNotesWindows">Windows Platform</a></li>
+
+          <li><a href="#ImportantNotesUNIX">UNIX Type Platforms</a></li>
+        </ul>
+      </li>
+
+      <li>
+        <a href="#PlatformDependencies">Platform Dependencies</a> 
+
+        <ul class="TOC">
+          <li><a href="#PlatformDependenciesNew">Porting To A New
+          Platform</a></li>
+
+          <li><a href="#PlatformDependenciesImpl">Platform Dependent
+          Implementations</a></li>
+
+          <li><a href="#PlatformDependenciesBuildOrder">Build Order Without
+          Using ICU's Makefiles</a></li>
+        </ul>
+      </li>
+    </ul>
+    <hr>
+
+    <h2><a name="Introduction" href="#Introduction">Introduction</a></h2>
+
+    <p>Today's software market is a global one in which it is desirable to
+    develop and maintain one application (single source/single binary) that
+    supports a wide variety of languages. The International Components for
+    Unicode (ICU) libraries provide robust and full-featured Unicode services
+    on a wide variety of platforms to help this design goal. The ICU libraries
+    provide support for:</p>
+
+    <ul>
+      <li>The latest version of the Unicode standard</li>
+
+      <li>Character set conversions with support for over 200 codepages</li>
+
+      <li>Locale data for more than 230 locales</li>
+
+      <li>Language sensitive text collation (sorting) and searching based on
+      the Unicode Collation Algorithm (=ISO 14651)</li>
+
+      <li>Regular expression matching and Unicode sets</li>
+
+      <li>Transformations for normalization, upper/lowercase, script
+      transliterations (50+ pairs)</li>
+
+      <li>Resource bundles for storing and accessing localized information</li>
+
+      <li>Date/Number/Message formatting and parsing of culture specific
+      input/output formats</li>
+
+      <li>Calendar specific date and time manipulation</li>
+
+      <li>Complex text layout for Arabic, Hebrew, Indic and Thai</li>
+
+      <li>Text boundary analysis for finding characters, word and sentence
+      boundaries</li>
+    </ul>
+
+    <p>ICU has a sister project <a href=
+    "http://oss.software.ibm.com/icu4j/index.html">ICU4J</a> that extends the
+    internationalization capabilities of Java to a level similar to ICU. The
+    ICU C/C++ project is also called ICU4C when a distinction is necessary.</p>
+
+    <h2><a name="GettingStarted" href="#GettingStarted">Getting
+    started</a></h2>
+
+    <p>This document describes how to build and install ICU on your machine.
+    For other information about ICU please see the following table of
+    links.<br>
+     The ICU homepage also links to related information about writing
+    internationalized software.</p>
+
+    <table border="1" cellpadding="3" width="100%" summary=
+    "These are some useful links regarding ICU and internationalization in general.">
+      <caption>
+        Here are some useful links regarding ICU and internationalization in
+        general.
+      </caption>
+
+      <tr>
+        <td>ICU Homepage</td>
+
+        <td><a href=
+        "http://oss.software.ibm.com/icu/index.html">http://oss.software.ibm.com/icu/index.html</a></td>
+      </tr>
+
+      <tr>
+        <td>ICU4J Homepage</td>
+
+        <td><a href=
+        "http://oss.software.ibm.com/icu4j/index.html">http://oss.software.ibm.com/icu4j/index.html</a></td>
+      </tr>
+
+      <tr>
+        <td>FAQ - Frequently Asked Questions about ICU</td>
+
+        <td><a href=
+        "http://oss.software.ibm.com/icu/userguide/icufaq.html">http://oss.software.ibm.com/icu/userguide/icufaq.html</a></td>
+      </tr>
+
+      <tr>
+        <td>ICU User's Guide</td>
+
+        <td><a href=
+        "http://oss.software.ibm.com/icu/userguide/index.html">http://oss.software.ibm.com/icu/userguide/index.html</a></td>
+      </tr>
+
+      <tr>
+        <td>Download ICU Releases</td>
+
+        <td><a href=
+        "http://oss.software.ibm.com/icu/download/index.html">http://oss.software.ibm.com/icu/download/index.html</a></td>
+      </tr>
+
+      <tr>
+        <td>API Documentation Online</td>
+
+        <td><a href=
+        "http://oss.software.ibm.com/icu/apiref/index.html">http://oss.software.ibm.com/icu/apiref/index.html</a></td>
+      </tr>
+
+      <tr>
+        <td>Online ICU Demos</td>
+
+        <td><a href=
+        "http://oss.software.ibm.com/icu/demo/index.html">http://oss.software.ibm.com/icu/demo/index.html</a></td>
+      </tr>
+
+      <tr>
+        <td>Contacts and Bug Reports/Feature Requests</td>
+
+        <td><a href=
+        "http://oss.software.ibm.com/icu/archives/index.html">http://oss.software.ibm.com/icu/archives/index.html</a></td>
+      </tr>
+    </table>
+
+    <p><strong>Important:</strong> Please make sure you understand the <a href=
+    "license.html">Copyright and License Information</a>.</p>
+
+    <h2><a name="News" href="#News">What is new in this release?</a></h2>
+
+    <p>The following list concentrates on <em>changes that affect existing
+    applications migrating from previous ICU releases</em>. For more news about
+    this release, see the <a href=
+    "http://oss.software.ibm.com/icu/download/2.8/index.html">ICU 2.8 download
+    page</a>.</p>
+
+    <h3>Library Initialization</h3>
+
+    <p>ICU4C 2.6 introduces a library initialization function. It is required
+    to call it before using any ICU services in a multi-threaded environment.
+    For details please see the <a href=
+    "http://oss.software.ibm.com/icu/apiref/index.html">documentation</a> of
+    <code>u_init()</code> in the <code>unicode/uclean.h</code> header file.</p>
+    <hr>
+
+    <h2><a name="Download" href="#Download">How To Download the Source
+    Code</a></h2>
+
+    <p>There are two ways to download ICU releases:</p>
+
+    <ul>
+      <li><strong>Official Release Snapshot:</strong><br>
+       If you want to use ICU (as opposed to developing it), you should
+      download an official packaged version of the ICU source code. These
+      versions are tested more thoroughly than day-to-day development builds of
+      the system, and they are packaged in zip and tar files for convenient
+      download. These packaged files can be found at <a href=
+      "http://oss.software.ibm.com/icu/download/index.html">http://oss.software.ibm.com/icu/download/index.html</a>.<br>
+
+       The packaged snapshots are named <strong>icu-nnnn.zip</strong> or
+      <strong>icu-nnnn.tgz</strong>, where nnnn is the version number. The .zip
+      file is used for Windows platforms, while the .tgz file is preferred on
+      most other platforms.<br>
+       Please unzip this file. It will reconstruct the source directory, which
+      includes anonymous CVS control directories (see below).</li>
+
+      <li><strong>CVS Source Repository:</strong><br>
+       If you are interested in developing features, patches, or bug fixes for
+      ICU, you should probably be working with the latest version of the ICU
+      source code. You will need to check the code out of our CVS repository to
+      ensure that you have the most recent version of all of the files. See our
+      <a href="http://oss.software.ibm.com/icu/develop/cvs.html">CVS page</a>
+      for details.</li>
+    </ul>
+
+    <h2><a name="SourceCode" href="#SourceCode">ICU Source Code
+    Organization</a></h2>
+
+    <p>In the descriptions below, <strong><i>&lt;ICU&gt;</i></strong> is the
+    full path name of the ICU directory (the top level directory from the
+    distribution archives) in your file system. You can also view the <a href=
+    "http://oss.software.ibm.com/icu/userguide/design.html">ICU Architectural
+    Design</a> section of the User's Guide to see which libraries you need for
+    your software product. You need at least the data (<code>[lib]icudt</code>)
+    and the common (<code>[lib]icuuc</code>) libraries in order to use ICU.</p>
+
+    <table border="1" cellpadding="0" width="100%" summary=
+    "The following files describe the code drop.">
+      <caption>
+        The following files describe the code drop.
+      </caption>
+
+      <tr>
+        <th scope="col">File</th>
+
+        <th scope="col">Description</th>
+      </tr>
+
+      <tr>
+        <td>readme.html</td>
+
+        <td>Describes the International Components for Unicode (this file)</td>
+      </tr>
+
+      <tr>
+        <td>license.html</td>
+
+        <td>Contains the text of the ICU license</td>
+      </tr>
+    </table>
+
+    <p><br>
+    </p>
+
+    <table border="1" cellpadding="0" width="100%" summary=
+    "The following directories contain source code and data files.">
+      <caption>
+        The following directories contain source code and data files.
+      </caption>
+
+      <tr>
+        <th scope="col">Directory</th>
+
+        <th scope="col">Description</th>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>common</b>/</td>
+
+        <td>The core Unicode and support functionality, such as resource
+        bundles, character properties, locales, codepage conversion,
+        normalization, Unicode properties, Locale, and UnicodeString.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>i18n</b>/</td>
+
+        <td>Modules in i18n are generally the more data-driven, that is to say
+        resource bundle driven, components. These deal with higher-level
+        internationalization issues such as formatting, collation, text break
+        analysis, and transliteration.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>data</b>/</td>
+
+        <td>
+          <p>This directory contains the source data in text format, which is
+          compiled into binary form during the ICU build process. It contains
+          several subdirectories, in which the data files are grouped by
+          function. Note that the build process must be run again after any
+          changes are made to this directory.</p>
+
+          <ul>
+            <li><b>brkitr/</b> Data files for character, word, sentence, title
+            casing and line boundary analysis.</li>
+
+            <li><b>locales/</b> These .txt files contain ICU language and
+            culture-specific localization data. Two special bundles are
+            <b>root</b>, which is the fallback data and parent of other
+            bundles, and <b>index</b>, which contains a list of installed
+            bundles. The makefile <b>resfiles.mk</b> contains the list of
+            resource bundle files.</li>
+
+            <li><b>mappings/</b> Here are the code page converter tables. These
+            .ucm files contain mappings to and from Unicode. These are compiled
+            into .cnv files. <b>convrtrs.txt</b> is the alias mapping table
+            from various converter name formats to ICU internal format and vice
+            versa. It produces cnvalias.icu. The makefiles <b>ucmfiles.mk,
+            ucmcore.mk,</b> and <b>ucmebcdic.mk</b> contain the list of
+            converters to be built.</li>
+
+            <li><b>translit/</b> This directory contains transliterator rules
+            as resource bundles, a makefile <b>trnsfiles.mk</b> containing the
+            list of installed system translitaration files, and as well the
+            special bundle <b>translit_index</b> which lists the system
+            transliterator aliases.</li>
+
+            <li><b>unidata/</b> This directory contains the Unicode data files.
+            Please see <a href=
+            "http://www.unicode.org/">http://www.unicode.org/</a> for more
+            information.</li>
+
+            <li><b>misc/</b> The misc directory contains other data files which
+            did not fit into the above categories. Currently it only contains
+            time zone information, and a name preperation file for <a href=
+            "http://www.ietf.org/rfc/rfc3490.txt">IDNA</a>.</li>
+
+            <li><b>out/</b> This directory contains the assembled memory mapped
+            files.</li>
+
+            <li><b>out/build/</b> This directory contains intermediate
+            (compiled) files, such as .cnv, .res, etc.</li>
+          </ul>
+
+          <p>If you are creating a special ICU build, you can set the ICU_DATA
+          environment variable to the out/ or the out/build/ directories, but
+          this is generally discouraged because most people set it incorrectly.
+          You can view the <a href=
+          "http://oss.software.ibm.com/icu/userguide/icudata.html">ICU Data
+          Management</a> section of the ICU User's Guide for details.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/test/<b>intltest</b>/</td>
+
+        <td>A test suite including all C++ APIs. For information about running
+        the test suite, see the users' guide.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/test/<b>cintltst</b>/</td>
+
+        <td>A test suite written in C, including all C APIs. For information
+        about running the test suite, see the users' guide.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/test/<b>testdata</b>/</td>
+
+        <td>Source text files for data, which are read by the tests. It
+        contains the subdirectories <b>out/build/</b> which is used for
+        intermediate files, and <b>out/</b> which contains
+        <b>testdata.dat.</b></td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>tools</b>/</td>
+
+        <td>Tools for generating the data files. Data files are generated by
+        invoking <i>&lt;ICU&gt;</i>/source/data/build/makedata.bat on Win32 or
+        <i>&lt;ICU&gt;</i>/source/make on UNIX.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>samples</b>/</td>
+
+        <td>Various sample programs that use ICU</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>extra</b>/</td>
+
+        <td>Non-supported API additions. Currently, it contains the 'ustdio'
+        file i/o library</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>layout</b>/</td>
+
+        <td>Contains the ICU layout engine (not a rasterizer).</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/<b>packaging</b>/<br>
+         <i>&lt;ICU&gt;</i>/<b>debian</b>/</td>
+
+        <td>These directories contain scripts and tools for packaging the final
+        ICU build for various release platforms.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>config</b>/</td>
+
+        <td>Contains helper makefiles for platform specific build commands.
+        Used by 'configure'.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>allinone</b>/</td>
+
+        <td>Contains top-level ICU workspace and project files, for instance to
+        build all of ICU under one MSVC project.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/<b>include</b>/</td>
+
+        <td>Contains the headers needed for developing software that uses ICU
+        on Windows.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/<b>lib</b>/</td>
+
+        <td>Contains the import libraries for linking ICU into your Windows
+        application.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/<b>bin</b>/</td>
+
+        <td>Contains the libraries and executables for using ICU on
+        Windows.</td>
+      </tr>
+    </table>
+    <!-- end of ICU structure ==================================== -->
+
+    <h2><a name="HowToBuild" href="#HowToBuild">How To Build And Install
+    ICU</a></h2>
+
+    <h3><a name="HowToBuildSupported" href="#HowToBuildSupported">Supported
+    Platforms</a></h3>
+
+    <table border="1" cellpadding="3" summary=
+    "ICU can be built on many platforms.">
+      <caption>
+        Here is a status of functionality of ICU on several different
+        platforms.
+      </caption>
+
+      <tr>
+        <th scope="col">Operating system</th>
+
+        <th scope="col">Compiler</th>
+
+        <th scope="col">Testing frequency</th>
+      </tr>
+
+      <tr>
+        <td>Windows 2000/XP</td>
+
+        <td>Microsoft Visual C++ 6.0</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>Windows XP</td>
+
+        <td>Microsoft Visual C++ .NET 2002 (7.0)</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>Red Hat Linux 7.2</td>
+
+        <td>gcc 2.96</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>AIX 5.1.0 L</td>
+
+        <td>Visual Age C++ 5.0</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>Solaris 7 (SunOS 5.7)</td>
+
+        <td>Workshop Pro (Forte) CC 6.0</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>HP-UX 11.01</td>
+
+        <td>aCC A.03.13<br>
+         cc A.11.01.00</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>Windows NT/98</td>
+
+        <td>Microsoft Visual C++ 6.0</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Mac OS X (10.2)</td>
+
+        <td>gcc 3.1<br>
+         (Developer Tools, July 2002)</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Solaris 8 (SunOS 5.8)</td>
+
+        <td>Workshop Pro CC 4.2<br>
+         (use 'runConfigureICU SOLARISCC/W4.2')</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Solaris 2.6 (SunOS 5.6)</td>
+
+        <td>gcc 2.95.2</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>FreeBSD 4.8</td>
+
+        <td>gcc 2.95.4</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Red Hat Alpha Linux 7.2</td>
+
+        <td>gcc 2.96</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>z/OS 1.2</td>
+
+        <td>cxx 1.2</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>OS/400 (iSeries) V5R1</td>
+
+        <td>iCC</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Red Hat Alpha Linux 7.2</td>
+
+        <td>Compaq C++ Compiler 3.2<br>
+         Compaq C Compiler 6.5.6</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>AIX 4.3.3</td>
+
+        <td>xlC_r 4.0.2.1</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>QNX</td>
+
+        <td>gcc</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>NetBSD, OpenBSD</td>
+
+        <td>gcc</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>BeOS</td>
+
+        <td>gcc</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>CygWin</td>
+
+        <td>gcc 2.95.3</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>CygWin</td>
+
+        <td>Microsoft Visual C++ 6.0</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>SGI/IRIX</td>
+
+        <td>&nbsp;</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>Tru64 (OSF)</td>
+
+        <td>Compaq's cxx compiler</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>HP-UX 11.01</td>
+
+        <td>CC A.03.10</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>MP-RAS</td>
+
+        <td>NCR MP-RAS C/C++ Compiler</td>
+
+        <td>Rarely tested</td>
+      </tr>
+    </table>
+
+    <p><br>
+    </p>
+
+    <h4>Key to testing frequency</h4>
+
+    <dl>
+      <dt><i>Reference platform</i></dt>
+
+      <dd>ICU will work on these platforms with these compilers</dd>
+
+      <dt><i>Regularly tested</i></dt>
+
+      <dd>ICU should work on these platforms with these compilers</dd>
+
+      <dt><i>Rarely tested</i></dt>
+
+      <dd>ICU has been ported to these platforms but may not have been tested
+      there recently</dd>
+    </dl>
+
+    <h3><a name="HowToBuildWindows" href="#HowToBuildWindows">How To Build And
+    Install On Windows</a></h3>
+
+    <p>Building International Components for Unicode requires:</p>
+
+    <ul>
+      <li>Microsoft NT 4.0 and above, or Windows 98 and above</li>
+
+      <li>Microsoft Visual C++ 6.0 (Service Pack 2 is required to work with the
+      release build of max speed optimization).</li>
+    </ul>
+
+    <p>(If you want to build with Microsoft Visual C++ .NET, please refer to
+    the <a href="#HowToBuildWindowsDotNet">note about building with Visual
+    Studio .NET</a> below.)</p>
+
+    <p>The steps are:</p>
+
+    <ol>
+      <li>Unzip the icu-XXXX.zip file into any convenient location. Using
+      command line zip, type "unzip -a icu-XXXX.zip -d drive:\directory", or
+      just use WinZip.</li>
+
+      <li>Be sure that the ICU binary directory, <i>&lt;ICU&gt;</i>\bin\, is
+      included in the <strong>PATH</strong> environment variable. The tests
+      will not work without the location of the ICU DLL files in the path.</li>
+
+      <li>Open the "<i>&lt;ICU&gt;</i>\source\allinone\allinone.dsw" workspace
+      file in Microsoft Visual C++ 6.0. (This workspace includes all the
+      International Components for Unicode libraries, necessary ICU building
+      tools, and the intltest and cintltest test suite projects). Please see
+      the note below if you want to build from the command line instead.</li>
+
+      <li>Set the active Project to the "all" project. To do this: Choose
+      "Project" menu, and select "Set active project". In the submenu, select
+      the "all" workspace.</li>
+
+      <li>Set the active configuration to "Win32 Debug" or "Win32 Release" (See
+      <a href="#HowToBuildWindowsConfig">Windows configuration note</a>
+      below).</li>
+
+      <li>Choose the "Build" menu and select "Rebuild All". If you want to
+      build the Debug and Release at the same time, see the <a href=
+      "#HowToBuildWindowsBatch">batch configuration note</a> below.</li>
+
+      <li>Run the C++ test suite, "intltest". To do this: set the active
+      project to "intltest", and press F5 to run it.</li>
+
+      <li>Run the C test suite, "cintltst". To do this: set the active project
+      to "cintltst", and press F5 to run it.</li>
+
+      <li>Make sure that both "cintltst" and "intltest" passed without any
+      errors. The return codes are non-zero when they do not pass. Visual C++
+      will display the return codes in the debug tag of the output window. When
+      "intltest" and "cintltest" return 0, it means that everything is
+      installed correctly. You can press Ctrl+F5 on the test project to run the
+      test and see what error messages were displayed (if any tests
+      failed).</li>
+
+      <li>You are now able to develop applications with ICU by using the
+      libraries and tools in <i>&lt;ICU&gt;</i>\bin\. The headers are in
+      <i>&lt;ICU&gt;</i>\include\ and the link libraries are in
+      <i>&lt;ICU&gt;</i>\lib\. To install the ICU runtime on a machine, or ship
+      it with your application, copy the needed components from
+      <i>&lt;ICU&gt;</i>\bin\ to a location on the system PATH or to your
+      application directory.</li>
+    </ol>
+
+    <p><a name="HowToBuildWindowsCommandLine"><strong>Using MSDEV At The
+    Command Line Note:</strong></a> You can build ICU from the command line.
+    Assuming that you have properly installed Microsoft Visual C++ to support
+    command line execution, you can run the following command, 'msdev
+    <i>&lt;ICU&gt;</i>\source\allinone\allinone.dsw /MAKE "ALL"'.</p>
+
+    <p><a name="HowToBuildWindowsConfig"><strong>Setting Active Configuration
+    Note:</strong></a> To set the active configuration, two different
+    possibilities are:</p>
+
+    <ul>
+      <li>Choose "Build" menu, select "Set Active Configuration", and select
+      "Win32 Release" or "Win32 Debug".</li>
+
+      <li>Another way is to select "Customize" in the "Tools" menu, select the
+      "Toolbars" tab, enable "Build" instead of "Build Minibar", and click on
+      "Close". This will bring up a toolbar which you can move aside the other
+      permanent toolbars at the top of the MSVC window. The advantage is that
+      you now have an easy-to-reach pop-up menu that will always show the
+      currently selected active configuration. Or, you can drag the project and
+      configuration selections and drop them on the menu bar for later
+      selection.</li>
+    </ul>
+
+    <p><a name="HowToBuildWindowsBatch"><strong>Batch Configuration
+    Note:</strong></a> If you want to build the Debug and Release
+    configurations at the same time, choose "Build" menu and select "Batch
+    Build..." instead (and mark all configurations as checked), then click the
+    button named "Rebuild All". The "all" workspace will build all the
+    libraries, test programs and various ICU tools (e.g. genrb for generating
+    binary locale data files).</p>
+
+    <p><a name="HowToBuildWindowsDotNet"><strong>Microsoft Visual Studio .NET
+    Note:</strong></a> ICU will build with Microsoft Visual Studio .NET 2002.
+    It is recommended that you use the
+    "<i>&lt;ICU&gt;</i>\source\allinone\allinone.sln" solution workspace to
+    build ICU. The instructions for building with Visual Studio .NET are
+    similar to the instructions for Visual Studio .NET. If you have Microsoft
+    Visual Studio .NET 2003 the Visual Studio .NET 2002 project files will
+    automatically be converted to 2003 project files when you open the solution
+    workspace for the first time.</p>
+
+    <h3><a name="HowToBuildWindowsXP64" href="#HowToBuildWindowsXP64">How To
+    Build And Install On Windows XP on IA64</a></h3>
+
+    <p>Building International Components for Unicode requires:</p>
+
+    <ul>
+      <li>Microsoft XP on an IA64 (Itanium&reg;) machine</li>
+
+      <li>Microsoft Visual C++ 6.0 (Service Pack 2 is required to work with the
+      release build of max speed optimization).</li>
+
+      <li>Microsoft Platform SDK.</li>
+    </ul>
+
+    <p>The steps are:</p>
+
+    <ol>
+      <li>Follow steps 1-3 in the <a href="#HowToBuildWindows">in the previous
+      section</a>.</li>
+
+      <li>Open the "Set Windows XP 64-bit Build Environment (Retail)" command
+      window from the Microsoft Platform SDK.</li>
+
+      <li>If your computer is not set up to do command line builds, then run
+      "set PATH=C:\Program Files (x86)\Microsoft Visual
+      Studio\Common\MSDev98\Bin;%PATH%" or include the path where MSDEV.EXE is
+      located.</li>
+
+      <li>Use cd to get into the <i>&lt;ICU&gt;</i> directory.</li>
+
+      <li>Run this command: 'msdev /USEENV
+      <i>&lt;ICU&gt;</i>\source\allinone\allinone.dsw /MAKE "all - Win64
+      Release"'</li>
+
+      <li>Run "cd source\test\intltest\Release"</li>
+
+      <li>Run the C++ test suite, "intltest". There should be no errors.</li>
+
+      <li>Run "cd ..\..\cintltst\Release"</li>
+
+      <li>Run the C test suite, "cintltst". There should be no errors.</li>
+
+      <li>Follow the last step in the <a href="#HowToBuildWindows">in the
+      previous section</a>.</li>
+    </ol>
+
+    <h3><a name="HowToBuildUNIX" href="#HowToBuildUNIX">How To Build And
+    Install On UNIX</a></h3>
+
+    <p>Building International Components for Unicode on UNIX requires:</p>
+
+    <ul>
+      <li>A C++ compiler installed on the target machine (for example: gcc, CC,
+      xlC_r, aCC, cxx, etc...).</li>
+
+      <li>An ANSI C compiler installed on the target machine (for example:
+      cc).</li>
+
+      <li>A recent version of GNU make (3.77+).</li>
+
+      <li>For a list of z/OS tools please view the <a href=
+      "#HowToBuildZOS">z/OS build section</a> of this document for further
+      details.</li>
+    </ul>
+
+    <p>Here are the steps to build ICU:</p>
+
+    <ol>
+      <li>Decompress the icu-<i>X</i>.<i>Y</i>.tgz (or
+      icu-<i>X</i>.<i>Y</i>.tar.gz) file. For example, <tt>"gunzip -d &lt;
+      icu-<i>X</i>.<i>Y</i>.tgz | tar xvf -"</tt></li>
+
+      <li>Change directory to the "icu/source".</li>
+
+      <li>Run <tt>"chmod +x runConfigureICU configure install-sh"</tt> because
+      these files may have the wrong permissions.</li>
+
+      <li>Run the <tt><a href="source/runConfigureICU">runConfigureICU</a></tt>
+      script for your platform. (See <a href="#HowToConfigureICU">configuration
+      note</a> below).</li>
+
+      <li>Type <tt>"gmake"</tt> (or "make" if GNU make is the default make on
+      your platform) to compile the libraries and all the data files. The
+      proper name of the GNU make command is printed at the end of the
+      configuration run, as in "You must use gmake to compile ICU".</li>
+
+      <li>Optionally, type <tt>"gmake check"</tt> to run the test suite, which
+      checks for ICU's functionality integrity (See <a href=
+      "#HowToTestWithoutGmake">testing note</a> below).</li>
+
+      <li>Type <tt>"gmake install"</tt> to install ICU. If you used the
+      --prefix= option on configure or runConfigureICU, ICU will be installed
+      to the directory you specified. (See <a href=
+      "#HowToInstallICU">installation note</a> below).</li>
+    </ol>
+
+    <p><a name="HowToConfigureICU"><strong>Configuring ICU NOTE:</strong></a>
+    Type <tt>"./runConfigureICU --help"</tt> for help on how to run it and a
+    list of supported platforms. You may also want to type <tt>"./configure
+    --help"</tt> to print the available configure options that you may want to
+    give runConfigureICU. If you are not using the runConfigureICU script, or
+    your platform is not supported by the script, you may need to set your CC,
+    CXX, CFLAGS and CXXFLAGS environment variables, and type
+    <tt>"./configure"</tt>. Some of the more frequently used options to
+    configure are --disable-64bit-libs to create 32-bit libraries, and --srcdir
+    to do out of source builds (build the libraries in the current location).
+    HP-UX user's, please see this <a href="#ImportantNotesHPUX">note regarding
+    multithreaded build issues</a> with newer compilers.</p>
+
+    <p><a name="HowToTestWithoutGmake"><strong>Running The Tests From The
+    Command Line NOTE:</strong></a> You may have to set certain variables if
+    you with to run test programs individually, that is apart from "gmake
+    check". The environment variable <strong>ICU_DATA</strong> can be set to
+    the full pathname of the data directory to indicate where the locale data
+    files and conversion mapping tables are when you are not using the shared
+    library (e.g. by using the .dat archive or the individual data files). The
+    trailing "/" is required after the directory name (e.g.
+    "$Root/source/data/out/" will work, but the value "$Root/source/data/out"
+    is not acceptable). You do not need to set <strong>ICU_DATA</strong> if the
+    complete shared data library is in your library path.</p>
+
+    <p><a name="HowToInstallICU"><strong>Installing ICU NOTE:</strong></a> Some
+    platforms use package management tools to control the installation and
+    uninstallation of files on the system, as well as the integrity of the
+    system configuration. You may want to check if ICU can be packaged for your
+    package management tools by looking into the "packaging" directory. (Please
+    note that if you are using a snapshot of ICU from CVS, it is probable that
+    the packaging scripts or related files are not up to date with the contents
+    of ICU at this time, so use them with caution).</p>
+
+    <h3><a name="HowToBuildZOS" href="#HowToBuildZOS">How To Build And Install
+    On z/OS (OS/390)</a></h3>
+
+    <p>You can install ICU on z/OS or OS/390 (the previous name of z/OS), but
+    IBM tests only the z/OS installation. These platforms commonly are called
+    "MVS". You install ICU in a z/OS UNIX system services file system such as
+    HFS or zFS. On this platform, it is important that you understand a few
+    details:</p>
+
+    <ul>
+      <li>APAR PQ58392 may be needed by z/OS 1.2 or 1.3 in order to get some
+      ICU number formatting functions to work properly. The APAR affects C and
+      C++ code.</li>
+
+      <li>The gnu utilities gmake and gzip/gunzip are needed and can be
+      obtained for z/OS from <a href=
+      "http://www.ibm.com/servers/eserver/zseries/zos/unix/bpxa1ty1.html#opensrc">
+      z/OS UNIX - Tools and Toys</a>. Documentation on these tools can be found
+      at the <a href=
+      "http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg245944.html">
+      Open Source Software for z/OS UNIX</a> Red Book.</li>
+
+      <li>Encoding considerations: The source code assumes that it is compiled
+      with codepage ibm-1047 (to be exact, the UNIX System Services variant of
+      it). The pax command converts all of the source code files from ASCII to
+      codepage ibm-1047 (USS) EBCDIC. However, some files are binary files and
+      must not be converted, or must be converted back to their original state.
+      You can use the <a href="as_is/os390/unpax-icu.sh">unpax-icu.sh</a>
+      script to do this for you automatically. It will unpackage the tar file
+      and convert all the necessary files for you automatically.</li>
+
+      <li>
+        <p>z/OS supports both native S/390 hexadecimal floating point and (with
+        OS/390 2.6 and later) IEEE 754 binary floating point. This is a compile
+        time option. Applications built with IEEE should use ICU DLLs that are
+        built with IEEE (and vice versa). The environment variable IEEE390=0
+        will cause the z/OS version of ICU to be built without IEEE floating
+        point support and use the native hexadecimal floating point. By default
+        ICU is built with IEEE 754 support.</p>
+
+        <p><em>Important:</em> Currently (ICU 1.4.2), native floating point
+        support is sufficient for codepage conversion, resource bundle and
+        UnicodeString operations, but the Format APIs require IEEE binary
+        floating point.</p>
+
+        <p>Examples for configuring ICU:<br>
+         Debug build: <code>./runConfigureICU --enable-debug zOS</code><br>
+         Release build: <code>./runConfigureICU zOS</code></p>
+      </li>
+
+      <li>
+        <p>z/OS introduced the concept of Extra Performance Linkage (XPLINK) to
+        bring performance improvement opportunities to call-intensive C and C++
+        applications such as ICU. XPLINK is enabled on a DLL-by-DLL basis, so
+        if you are considering using XPLINK in your application that uses ICU,
+        you should consider building the XPLINK-enabled version of ICU. You
+        need to set ICU's environment variable <code>OS390_XPLINK=1</code>
+        prior to invoking the make process to produce binaries that are enabled
+        for XPLINK.</p>
+
+        <p>Note: XPLINK, which is enabled for z/OS 1.2 and later, requires the
+        PTF PQ69418 to build XPLINK-enabled binaries.</p>
+      </li>
+
+      <li>Since the default make on z/OS is not gmake, the pkgdata tool
+      requires that the "make" command is aliased to your installed version of
+      gmake. You may also need to set $MAKE equal to the fully qualified path
+      of GNU make. GNU make is available with the "z/OS UNIX - Tools and Toys"
+      that was mentioned above. The required version is the same UNIX build
+      instructions.</li>
+
+      <li>The makedep executable that is used with the z/OS ICU build process
+      is not shipped with ICU. It is available at the <a href=
+      "http://www.ibm.com/servers/eserver/zseries/zos/unix/bpxa1ty1.html#opensrc">
+      z/OS UNIX - Tools and Toys</a> site. The PATH environment variable should
+      be updated to contain the location of this executable prior to build.
+      Alternatively, makedep may be moved into an existing PATH directory.</li>
+
+      <li>
+        <p>When you build ICU on a system such as z/OS 1.2, the binaries that
+        result can run on that level of the operating system and later, such as
+        z/OS 1.3 and z/OS 1.4. It's possible that you may have a z/OS 1.4
+        system, but you may need to deliver binaries on z/OS 1.2 and above.
+        z/OS gives you this ability by targeting the complier and linker to run
+        at the older level, thereby producing the desired binaries.</p>
+
+        <p>To set the compiler and LE environment to OS/390 2.10, specify the
+        following, "<code>./runConfigureICU OS390V2R10</code>"</p>
+
+        <p>To set the compiler and LE environment to z/OS 1.2 specify the
+        following, "<code>./runConfigureICU zOSV1R2</code>"</p>
+      </li>
+
+      <li>The rest of the instructions for building and testing ICU on z/OS
+      with UNIX System Services are the same as the <a href=
+      "#HowToBuildUNIX">How To Build And Install On UNIX</a> section.</li>
+    </ul>
+
+    <h4>z/OS (Batch/PDS) support outside the UNIX system services
+    environment</h4>
+
+    <p>By default, ICU builds its libraries into the UNIX file system (HFS). In
+    addition, there is a z/OS specific environment variable (OS390BATCH) to
+    build some libraries into the z/OS native file system. This is useful, for
+    example, when your application is externalized via Job Control Language
+    (JCL).</p>
+
+    <p>The OS390BATCH environment variable enables non-UNIX support including
+    the batch environment. When OS390BATCH is set, the libicuuc<i>XX</i>.dll,
+    libicudt<i>XX</i>e.dll, and libicudt<i>XX</i>e_stub.dll binaries are built
+    into data sets (the native file system). Turning on OS390BATCH does not
+    turn off the normal z/OS UNIX build. This means that the z/OS UNIX (HFS)
+    DLLs will always be created.</p>
+
+    <p>Two additional environment variables indicate the names of the z/OS data
+    sets to use. The LOADMOD environment variable identifies the name of the
+    data set that contains the dynamic link libraries (DLLs) and the LOADEXP
+    environment variable identifies the name of the data set that contains the
+    side decks, which are normally the files with the .x suffix in the UNIX
+    file system.</p>
+
+    <p>A data set is roughly equivalent to a UNIX or Windows file. For most
+    kinds of data sets the operating system maintains record boundaries. UNIX
+    and Windows files are byte streams. Two kinds of data sets are PDS and
+    PDSE. Each data set of these two types contains a directory. It is like a
+    UNIX directory. Each "file" is called a "member". Each member name is
+    limited to eight bytes, normally EBCDIC.</p>
+
+    <p>Here is an example of some environment variables that you can set prior
+    to building ICU:</p>
+<pre>
+<samp>OS390BATCH=1
+LOADMOD=<i>USER</i>.ICU.LOAD
+LOADEXP=<i>USER</i>.ICU.EXP</samp>
+</pre>
+
+    <p>The PDS member names for the DLL file names are as follows:</p>
+<pre>
+<samp>IXMI<i>XX</i>IN --&gt; libicui18n<i>XX</i>.dll
+IXMI<i>XX</i>UC --&gt; libicuuc<i>XX</i>.dll
+IXMI<i>XX</i>DA --&gt; libicudt<i>XX</i>e.dll
+IXMI<i>XX</i>D1 --&gt; libicudt<i>XX</i>e_stub.dll <i>(Only when OS390_STUBDATA=1)</i></samp>
+</pre>
+
+    <p>You should point the LOADMOD environment variable at a partitioned data
+    set extended (PDSE) and point the LOADEXP environment variable at a
+    partitioned data set (PDS). The PDSE can be allocated with the following
+    attributes:</p>
+<pre>
+<samp>Data Set Name . . . : <i>USER</i>.ICU.LOAD
+Management class. . : <i>**None**</i>
+Storage class . . . : <i>BASE</i>
+Volume serial . . . : <i>TSO007</i>
+Device type . . . . : <i>3390</i>
+Data class. . . . . : LOAD
+Organization  . . . : PO
+Record format . . . : U
+Record length . . . : 0
+Block size  . . . . : 32760
+1st extent cylinders: 1
+Secondary cylinders : 5
+Data set name type  : LIBRARY</samp>
+</pre>
+
+    <p>The PDS can be allocated with the following attributes:</p>
+<pre>
+<samp>Data Set Name . . . : <i>USER</i>.ICU.EXP
+Management class. . : <i>**None**</i>
+Storage class . . . : <i>BASE</i>
+Volume serial . . . : <i>TSO007</i>
+Device type . . . . : <i>3390</i>
+Data class. . . . . : <i>**None**</i>
+Organization  . . . : PO
+Record format . . . : FB
+Record length . . . : 80
+Block size  . . . . : <i>3200</i>
+1st extent cylinders: 3
+Secondary cylinders : 3
+Data set name type  : PDS</samp>
+</pre>
+
+    <h3><a name="HowToBuildOS400" href="#HowToBuildOS400">How To Build And
+    Install On OS/400 (iSeries)</a></h3>
+
+    <p>Before you start building ICU, ICU requires the following:</p>
+
+    <ul>
+      <li>QSHELL interpreter installed (install base option 30, operating
+      system)</li>
+      <!--li>QShell Utilities, PRPQ 5799-XEH (not required for V4R5)</li-->
+
+      <li>ILE C/C++ Compiler for iSeries, LPP 5722-WDS</li>
+
+      <li>The latest GNU facilities (You can get the GNU facilities for OS/400
+      from <a href=
+      "http://www.as400.ibm.com/developer/factory/porting/gnu_utilities.html">http://www.as400.ibm.com/developer/factory/porting/gnu_utilities.html</a>).
+      Older versions may not work properly.</li>
+    </ul>
+
+    <p>The following describes how to setup and build ICU. For background
+    information, you should look at the <a href="#HowToBuildUNIX">UNIX build
+    instructions</a>.</p>
+
+    <ol>
+      <li>
+        Create AS400 target library. This library will be the target for the
+        resulting modules, programs and service programs. You will specify this
+        library on the OUTPUTDIR environment variable in step 2.<br>
+         
+<pre>
+<samp>CRTLIB LIB(<i>libraryname</i>)</samp>
+</pre>
+        <br>
+      </li>
+
+      <li>
+        Set up the following environment variables in your build process (use
+        the <i>libraryname</i> from the previous step) 
+<pre>
+<samp>ADDENVVAR ENVVAR(CC) VALUE('/usr/bin/icc')
+ADDENVVAR ENVVAR(CXX) VALUE('/usr/bin/icc')
+ADDENVVAR ENVVAR(MAKE) VALUE('/usr/bin/gmake')
+ADDENVVAR ENVVAR(OUTPUTDIR) VALUE('<i>libraryname</i>')</samp>
+</pre>
+        <i>libraryname</i> identifies target as400 library for *module, *pgm
+        and *srvpgm objects.<br>
+        <br>
+      </li>
+      <!--li>Add QCXXN, to your build process library list. This results in the resolution of CRTCPPMOD used by the icc compiler</li-->
+
+      <li>Run <tt>'CHGJOB CCSID(37)'</tt></li>
+
+      <li>Run <tt>'QSH'</tt></li>
+
+      <li>Run gunzip on the ICU source code compressed tar archive
+      (icu-<i>X</i>.<i>Y</i>.tgz or icu-<i>X</i>.<i>Y</i>.tar.gz).</li>
+
+      <li>Run unpax-icu.sh on the tar file from the ICU download page.</li>
+
+      <li>Change your current directory to icu/source.</li>
+
+      <li>Run <tt>'export CFLAGS=-O4 CXXFLAGS=-O4'</tt> to optimize your build
+      of ICU. If the build fails, rerun these build steps without this step
+      before asking the icu4c-support mailing list for help.</li>
+
+      <li>Run <tt>'cp ../as_is/os400/configure .'</tt></li>
+
+      <li>Run <tt>'./configure --host=as400-os400'</tt></li>
+
+      <li>
+        If you specified <tt>--with-data-packaging=archive</tt> to configure,
+        you can skip this step. In a future release of ICU, we hope to
+        eliminate this complicated step. Any suggestions to improve the ICU
+        installation are greatly appreciated, and you can send those
+        suggestions to the <a href=
+        "http://oss.software.ibm.com/developerworks/oss/mailman/listinfo/icu4c-support/">
+        icu4c-support</a> mailing list. 
+
+        <ol type="a">
+          <li>Run <tt>'mv data/Makefile data/Makefile.hide'</tt></li>
+
+          <li>Run <tt>'gmake'</tt> to build some of the ICU libraries.</li>
+
+          <li>
+            When the gmake command fails in icu/source/data, run the following
+            commands to setup and build the data library: 
+<pre>
+<samp>cd data
+mv Makefile.hide Makefile
+system CRTLIB "LIB(<i>datalibraryname</i>)"
+gmake OUTPUTDIR=<i>datalibraryname</i>
+system CRTSRVPGM "SRVPGM(<i>libraryname</i>/LIBICUDATA)" "MODULE(<i>datalibraryname</i>/*ALL)"
+                 "EXPORT(*ALL)" "TEXT('ICU 2.8 DATA')" "OPTION(*DUPPROC *DUPVAR)"
+ln -fs /qsys.lib/<i>libraryname</i>.lib/libicudata.srvpgm out/libicudata.so
+cd ..
+del common/libicuuc.so
+</samp>
+</pre>
+          </li>
+
+          <li>Your data library should now be usable. Go to the next step,
+          which is needed to rebind to the actual data library and finish the
+          build.</li>
+        </ol>
+      </li>
+
+      <li>Run <tt>'gmake'</tt> to build ICU.</li>
+
+      <li>Run <tt>'gmake check'</tt> to build the tests.</li>
+
+      <li>The "utility/MultithreadTest" test in intltest may have failed during
+      <tt>'gmake check'</tt>. In order to make this test pass, please use
+      <tt>'gmake check QIBM_MULTI_THREADED=Y'</tt> after you built the tests
+      with <tt>'gmake check'</tt> from the previous step. You can look at the
+      <a href=
+      "http://publib.boulder.ibm.com/iseries/v5r1/ic2924/index.htm?info/apis/concept4.htm">
+      iSeries Information Center</a> for more details.</li>
+    </ol>
+    <!-- end build environment -->
+
+    <h2><a name="HowToPackage" href="#HowToPackage">How To Package ICU</a></h2>
+
+    <p>There are many ways that a person can package ICU with their software
+    products. Usually only the libraries need to be considered for
+    packaging.</p>
+
+    <p>On UNIX, you should have used "<tt>gmake install</tt>" to make it easier
+    to develop and package ICU. The bin, lib and include directories are needed
+    to develop applications that use ICU. These directories will be created
+    relative to the "<tt>--prefix=</tt><i>dir</i>" configure option (See the <a
+    href="#HowToBuildUNIX">UNIX build instructions</a>). When ICU is built on
+    Windows, a similar directory structure is built.</p>
+
+    <p>When changes have been made to the standard ICU distribution, it is
+    recommended that at least one of the following guidelines be followed for
+    special packaging.</p>
+
+    <ol>
+      <li>Add a suffix name to the library names. This can be done with the
+      --with-library-suffix configure option.</li>
+
+      <li>The installation script should install the ICU libraries into the
+      application's directory.</li>
+    </ol>
+
+    <p>Following these guidelines prevents other applications that use a
+    standard ICU distribution from conflicting any libraries that you need. On
+    operating systems that do not have a standard C++ ABI (name mangling) for
+    compilers, it is recommended to do this special packaging anyway. More
+    details on customizing ICU are available in the <a href=
+    "http://oss.software.ibm.com/icu/userguide/index.html">User's Guide</a>.
+    The <a href="#SourceCode">ICU Source Code Organization</a> section of this
+    readme.html gives a more complete description of the libraries.</p>
+
+    <table border="1" cellpadding="3" summary=
+    "ICU has several libraries for you to use.">
+      <caption>
+        Here is an example of libraries that are frequently packaged.
+      </caption>
+
+      <tr>
+        <th scope="col">Library Name</th>
+
+        <th scope="col">Windows Filename</th>
+
+        <th scope="col">Linux Filename</th>
+
+        <th scope="col">Comment</th>
+      </tr>
+
+      <tr>
+        <td>Data Library</td>
+
+        <td>icudt<i>XY</i>l.dll</td>
+
+        <td>libicudata.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>Data required by the Common and I18n libraries. There are many ways
+        to package and <a href=
+        "http://oss.software.ibm.com/icu/userguide/icudata.html">customize this
+        data</a>, but by default this is all you need.</td>
+      </tr>
+
+      <tr>
+        <td>Common Library</td>
+
+        <td>icuuc<i>XY</i>.dll</td>
+
+        <td>libicuuc.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>Base library required by all other ICU libraries.</td>
+      </tr>
+
+      <tr>
+        <td>Internationalization (i18n) Library</td>
+
+        <td>icuin<i>XY</i>.dll</td>
+
+        <td>libicui18n.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>Contains many locale based i18n functions.</td>
+      </tr>
+
+      <tr>
+        <td>Layout Engine</td>
+
+        <td>icule<i>XY</i>.dll</td>
+
+        <td>libicule.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>Contains an optional engine for doing font layout.</td>
+      </tr>
+
+      <tr>
+        <td>Layout Extensions Engine</td>
+
+        <td>iculx<i>XY</i>.dll</td>
+
+        <td>libiculx.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>Contains an optional engine for doing font layout that uses parts
+        of ICU.</td>
+      </tr>
+
+      <tr>
+        <td>ICU I/O (Unicode stdio) Library</td>
+
+        <td>icuio<i>XY</i>.dll</td>
+
+        <td>libustdio.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>An unsupported optional library that provides a stdio like API with
+        Unicode support.</td>
+      </tr>
+    </table>
+
+    <p>Normally only the above ICU libraries need to be considered for
+    packaging. The versionless symbolic links to these libraries are only
+    needed for easier development. The <i>X</i>, <i>Y</i> and <i>Z</i> parts of
+    the name are the version numbers of ICU. For example, ICU 2.0.2 would have
+    the name libicuuc.so.20.2 for the common library. The exact format of the
+    library names can vary between platforms due to how each platform can
+    handles library versioning.</p>
+
+    <h2><a name="ImportantNotes" href="#ImportantNotes">Important Notes About
+    Using ICU</a></h2>
+
+    <h3><a name="ImportantNotesCPlusPlus" href="#ImportantNotesCPlusPlus">Using
+    ICU in a Multithreaded Environment</a></h3>
+
+    <p>Upon the first usage of most ICU APIs, the global mutex will get
+    initialized properly, but you can use the <code>u_init()</code> function
+    from uclean.h to ensure that it is initialized properly. Without calling
+    this function from a single thread, the data caches inside ICU may get
+    initialized more than once from multiple threads, which may cause memory
+    leaks and other problems. There is no harm in calling <code>u_init()</code>
+    in a single threaded application.</p>
+
+    <h4><a name="ImportantNotesHPUX" href="#ImportantNotesHPUX">Using ICU in a
+    Multithreaded Environment on HP-UX</a></h4>
+
+    <p>If you are building ICU with a newer aCC compiler, or you are planning
+    on using any RogueWave libraries, you will need to set special flags before
+    building ICU. These flags are needed in order to make ICU thread safe and
+    to allow iostream to work properly. More information about the <a href=
+    "http://docs.hp.com/hpux/onlinedocs/dev/aCC/a_03_30/options.htm#option-mt">-mt</a>
+    and <a href=
+    "http://docs.hp.com/hpux/onlinedocs/dev/aCC/a_03_30/options.htm#optioncap-AA">
+    -AA</a> options can be found in the HP aCC documentation.</p>
+<pre>
+<samp>CFLAGS="-mt" CXXFLAGS="-mt -AA" LDFLAGS="-mt" ./runConfigureICU HP-UX11ACC</samp>
+</pre>
+
+    <h3><a name="CharStrings" href="#CharStrings">char * strings in
+    ICU</a></h3>
+
+    <p>The C/C++ languages do not provide a portable way to specify Unicode
+    code point or string literals other than with arrays of numeric constants.
+    For convenience, ICU4C tends to use char * strings in places where only
+    "invariant characters" are used &mdash; a portable subset of the 7-bit
+    ASCII repertoire &mdash; so that locale IDs, charset names, resource bundle
+    item keys and similar can be easily specified as string literals in the
+    source code. The same types of strings are also stored as "invariant
+    character" char * strings in the ICU data files.</p>
+
+    <p>ICU has hard coded mapping tables in <code>source/common/putil.c</code>
+    to convert invariant characters to and from Unicode without using a full
+    ICU converter. These tables must match the encoding of string literals in
+    the ICU code as well as in the ICU data files.</p>
+
+    <p><strong>Important:</strong> ICU assumes that at least the invariant
+    characters always have the same codes as is common on platforms with the
+    same charset family (ASCII vs. EBCDIC). <em>ICU has not been tested on
+    platforms where this is not the case.</em></p>
+
+    <p>Some usage of char * strings in ICU assumes the system charset instead
+    of invariant characters. Such strings are only handled with the default
+    converter (See the following section). The system charset is usually a
+    superset of the invariant characters.</p>
+
+    <p>The following are the ASCII and EBCDIC byte values for all of the
+    invariant characters (see also unicode/utypes.h):</p>
+
+    <table border="1" summary=
+    "There are a few invariant characters that can be used for char * strings">
+      <tr>
+        <th>Character(s)</th>
+
+        <th>ASCII</th>
+
+        <th>EBCDIC</th>
+      </tr>
+
+      <tr>
+        <td>a..i</td>
+
+        <td>61..69</td>
+
+        <td>81..89</td>
+      </tr>
+
+      <tr>
+        <td>j..r</td>
+
+        <td>6A..72</td>
+
+        <td>91..99</td>
+      </tr>
+
+      <tr>
+        <td>s..z</td>
+
+        <td>73..7A</td>
+
+        <td>A2..A9</td>
+      </tr>
+
+      <tr>
+        <td>A..I</td>
+
+        <td>41..49</td>
+
+        <td>C1..C9</td>
+      </tr>
+
+      <tr>
+        <td>J..R</td>
+
+        <td>4A..52</td>
+
+        <td>D1..D9</td>
+      </tr>
+
+      <tr>
+        <td>S..Z</td>
+
+        <td>53..5A</td>
+
+        <td>E2..E9</td>
+      </tr>
+
+      <tr>
+        <td>0..9</td>
+
+        <td>30..39</td>
+
+        <td>F0..F9</td>
+      </tr>
+
+      <tr>
+        <td>(space)</td>
+
+        <td>20</td>
+
+        <td>40</td>
+      </tr>
+
+      <tr>
+        <td>"</td>
+
+        <td>22</td>
+
+        <td>7F</td>
+      </tr>
+
+      <tr>
+        <td>%</td>
+
+        <td>25</td>
+
+        <td>6C</td>
+      </tr>
+
+      <tr>
+        <td>&amp;</td>
+
+        <td>26</td>
+
+        <td>50</td>
+      </tr>
+
+      <tr>
+        <td>'</td>
+
+        <td>27</td>
+
+        <td>7D</td>
+      </tr>
+
+      <tr>
+        <td>(</td>
+
+        <td>28</td>
+
+        <td>4D</td>
+      </tr>
+
+      <tr>
+        <td>)</td>
+
+        <td>29</td>
+
+        <td>5D</td>
+      </tr>
+
+      <tr>
+        <td>*</td>
+
+        <td>2A</td>
+
+        <td>5C</td>
+      </tr>
+
+      <tr>
+        <td>+</td>
+
+        <td>2B</td>
+
+        <td>4E</td>
+      </tr>
+
+      <tr>
+        <td>,</td>
+
+        <td>2C</td>
+
+        <td>6B</td>
+      </tr>
+
+      <tr>
+        <td>-</td>
+
+        <td>2D</td>
+
+        <td>60</td>
+      </tr>
+
+      <tr>
+        <td>.</td>
+
+        <td>2E</td>
+
+        <td>4B</td>
+      </tr>
+
+      <tr>
+        <td>/</td>
+
+        <td>2F</td>
+
+        <td>61</td>
+      </tr>
+
+      <tr>
+        <td>:</td>
+
+        <td>3A</td>
+
+        <td>7A</td>
+      </tr>
+
+      <tr>
+        <td>;</td>
+
+        <td>3B</td>
+
+        <td>5E</td>
+      </tr>
+
+      <tr>
+        <td>&lt;</td>
+
+        <td>3C</td>
+
+        <td>4C</td>
+      </tr>
+
+      <tr>
+        <td>=</td>
+
+        <td>3D</td>
+
+        <td>7E</td>
+      </tr>
+
+      <tr>
+        <td>&gt;</td>
+
+        <td>3E</td>
+
+        <td>6E</td>
+      </tr>
+
+      <tr>
+        <td>?</td>
+
+        <td>3F</td>
+
+        <td>6F</td>
+      </tr>
+
+      <tr>
+        <td>_</td>
+
+        <td>5F</td>
+
+        <td>6D</td>
+      </tr>
+    </table>
+
+    <h3><a name="ImportantNotesDefaultCP" href="#ImportantNotesDefaultCP">Using
+    the default codepage</a></h3>
+
+    <p>ICU has code to determine the default codepage of the system or process.
+    This default codepage can be used to convert <code>char *</code> strings to
+    and from Unicode.</p>
+
+    <p>Depending on system design, setup and APIs, it may not always be
+    possible to find a default codepage that fully works as expected. For
+    example,</p>
+
+    <ul>
+      <li>On Windows there are three encodings in use at the same time. Unicode
+      (UTF-16) is always used inside of Windows, while for <code>char *</code>
+      encodings there are two classes, called "ANSI" and "OEM" codepages. ICU
+      will use the ANSI codepage. Note that the OEM codepage is used by default
+      for console window output.</li>
+
+      <li>On some UNIX-type systems, non-standard names are used for encodings,
+      or non-standard encodings are used altogether. Although ICU supports over
+      200 encodings in its standard build and many more aliases for them, it
+      will not be able to recognize such non-standard names.</li>
+
+      <li>Some systems do not have a notion of a system or process codepage,
+      and may not have APIs for that.</li>
+    </ul>
+
+    <p>If you have means of detecting a default codepage name that are more
+    appropriate for your application, then you should set that name with
+    <code>ucnv_setDefaultName()</code> as the first ICU function call. This
+    makes sure that the internally cached default converter will be
+    instantiated from your preferred name.</p>
+
+    <p>Starting in ICU 2.0, when a converter for the default codepage cannot be
+    opened, a fallback default codepage name and converter will be used. On
+    most platforms, this will be US-ASCII. For z/OS (OS/390), ibm-1047-s390 is
+    the default fallback codepage. For AS/400 (iSeries), ibm-37 is the default
+    fallback codepage. This default fallback codepage is used when the
+    operating system is using a non-standard name for a default codepage, or
+    the converter was not packaged with ICU. The feature allows ICU to run in
+    unusual computing environments without completely failing.</p>
+
+    <h3><a name="ImportantNotesWindows" href="#ImportantNotesWindows">Windows
+    Platform</a></h3>
+
+    <p>If you are building on the Win32 platform, it is important that you
+    understand a few of the following build details.</p>
+
+    <h4>DLL directories and the PATH setting</h4>
+
+    <p>As delivered, the International Components for Unicode build as several
+    DLLs, which are placed in the "<i>&lt;ICU&gt;</i>\bin" directory. You must
+    add this directory to the PATH environment variable in your system, or any
+    executables you build will not be able to access International Components
+    for Unicode libraries. Alternatively, you can copy the DLL files into a
+    directory already in your PATH, but we do not recommend this. You can wind
+    up with multiple copies of the DLL and wind up using the wrong one.</p>
+
+    <h4><a name="ImportantNotesWindowsPath">Changing your PATH</a></h4>
+
+    <ul>
+      <li><strong>Windows 2000</strong>: Use the System Icon in the Control
+      Panel. Pick the "Advanced" tab. Select the "Environment Variables..."
+      button. Select the variable PATH in the lower box, and select the lower
+      "Edit..." button. In the "Variable Value" box, append the string
+      ";<i>&lt;ICU&gt;</i>\bin" to the end of the path string. If there is
+      nothing there, just type in "<i>&lt;ICU&gt;</i>\bin". Click the Set
+      button, then the OK button.</li>
+
+      <li><strong>Windows NT</strong>: Use the System Icon in the Control
+      Panel. Pick the "Environment" tab, and select the variable PATH in the
+      lower box. In the "value" box, append the string
+      ";<i>&lt;ICU&gt;</i>\bin" at the end of the path string. If there is
+      nothing there, just type in "<i>&lt;ICU&gt;</i>\bin". Click the Set
+      button, then the OK button.</li>
+
+      <li><strong>Windows 95/98/ME</strong>: Edit the autoexec.bat, and add the
+      following line to the end of file, "SET
+      PATH=%PATH%;<i>&lt;ICU&gt;</i>\bin"</li>
+    </ul>
+
+    <p>Note: When packaging a Windows application for distribution and
+    installation on user systems, copies of the ICU DLLs should be included
+    with the application, and installed for exclusive use by the application.
+    This is the only way to insure that your application is running with the
+    same version of ICU, built with exactly the same options, that you
+    developed and tested with. Refer to Microsoft's guidelines on the usage of
+    DLLs, or search for the phrase "DLL hell" on <a href=
+    "http://msdn.microsoft.com/">msdn.microsoft.com</a>.</p>
+
+    <h3><a name="ImportantNotesUNIX" href="#ImportantNotesUNIX">UNIX Type
+    Platform</a></h3>
+
+    <p>If you are building on a UNIX platform, and if you are installing ICU in
+    a non-standard location, you may need to add the location of your ICU
+    libraries to your <strong>LD_LIBRARY_PATH</strong> or
+    <strong>LIBPATH</strong> environment variable (or the equivalent runtime
+    library path environment variable for your system). The ICU libraries may
+    not link or load properly without doing this.</p>
+
+    <p>Note that if you do not want to have to set this variable, you may
+    instead use the --enable-rpath option at configuration time. This option
+    will instruct the linker to always look for the libraries where they are
+    installed. You will need to use the appropriate linker options when linking
+    your own applications and libraries against ICU, too. Please refer to your
+    system's linker manual for information about runtime paths. The use of
+    rpath also means that when building a new version of ICU you should not
+    have an older version installed in the same place as the new version's
+    installation directory, as the older libraries will used during the build,
+    instead of the new ones, likely leading to an incorrectly build ICU. (This
+    is the proper behavior of rpath.)</p>
+
+    <h2><a name="PlatformDependencies" href="#PlatformDependencies">Platform
+    Dependencies</a></h2>
+
+    <h3><a name="PlatformDependenciesNew" href=
+    "#PlatformDependenciesNew">Porting To A New Platform</a></h3>
+
+    <p>If you are using ICU's Makefiles to build ICU on a new platform, there
+    are a few places where you will need to add or modify some files. If you
+    need more help, you can always ask the
+    <a href="http://oss.software.ibm.com/icu/archives/">icu4c-support mailing list</a>.
+    Once you
+    have finished porting ICU to a new platform, it is recommended that you
+    contribute your changes back to ICU via the icu4c-support mailing list.
+    This will make it easier for everyone to benefit from your work.</p>
+
+    <h4>Data For a New Platform</h4>
+
+    <p>It may not be necessary for your use of ICU to make a full ICU build work.
+    Most of the makefiles and build targets are for tools that are used for building
+    ICU's data &mdash; and an application's data if the application uses ICU
+    resource bundles and similar for its data.</p>
+
+    <p>Data files can be built on a different platform if both platforms share the
+    same endianness and the same charset family, and if memory-mappable, binary
+    data files are used instead of DLLs/shared libraries.
+    For details see the User Guide <a href="http://oss.software.ibm.com/icu/userguide/icudata.html">ICU Data</a> chapter.</p>
+
+    <p>ICU 2.8 eliminates the first condition:
+    It adds the icuswap tool which can be run on any platform to turn binary ICU data files
+    from any one of the three formats into any one of the other.
+    This allows to use ICU data built anywhere to be used for any target platform.</p>
+
+    <h4>Adapting Makefiles For a New Platform</h4>
+
+    <p>Try to follow the build steps from the <a href=
+    "#HowToBuildUNIX">UNIX</a> build instructions. If the configure script
+    fails, then you will need to modify some files. Here are the usual steps
+    for porting to a new platform:<br>
+    </p>
+
+    <ol>
+      <li>Create an mh file in icu/source/config/. You can use mh-linux or a
+      similar mh file as your base configuration.</li>
+
+      <li>Modify icu/source/aclocal.m4 to recognize your platform's mh
+      file.</li>
+
+      <li>Modify icu/source/configure.in to properly set your <b>platform</b> C
+      Macro define.</li>
+
+      <li>Run <a href="http://www.gnu.org/software/autoconf/">autoconf</a> in
+      icu/source/ without any options. The autoconf tool is standard on most
+      Linux systems.</li>
+
+      <li>If you have any optimization options that you want to normally use,
+      you can modify icu/source/runConfigureICU to specify those options for
+      your platform.</li>
+
+      <li>Build and test ICU on your platform. It is very important that you
+      run the tests. If you don't run the tests, there is no guarentee that you
+      have properly ported ICU.</li>
+    </ol>
+
+    <h3><a name="PlatformDependenciesImpl" href=
+    "#PlatformDependenciesImpl">Platform Dependent Implementations</a></h3>
+
+    <p>The platform dependencies have been mostly isolated into the following
+    files in the common library. This information can be useful if you are
+    porting ICU to a new platform.</p>
+
+    <ul>
+      <li>
+        <strong>unicode/platform.h.in</strong> (autoconf'ed platforms)<br>
+         <strong>unicode/p<i>XXXX</i>.h</strong> (others: pwin32.h, pmacos.h,
+        ..): Platform-dependent typedefs and defines:<br>
+        <br>
+         
+
+        <ul>
+          <li>XP_CPLUSPLUS for C++ only.</li>
+
+          <li>TRUE and FALSE, UBool, int8_t, int16_t etc.</li>
+
+          <li>U_EXPORT and U_IMPORT for specifying dynamic library import and
+          export</li>
+
+          <li>int64_t and uint64_t. If the platform does not support 64 bit
+          values, the macro <tt>U_INT64_T_UNAVAILABLE</tt> must be defined. For
+          example, this will disable Rule-based number formatting.</li>
+        </ul>
+        <br>
+      </li>
+
+      <li>
+        <strong>unicode/putil.h, putil.c</strong>: platform-dependent
+        implementations of various functions that are platform dependent:<br>
+        <br>
+         
+
+        <ul>
+          <li>uprv_isNaN, uprv_isInfinite, uprv_getNaN and uprv_getInfinity for
+          handling special floating point values.</li>
+
+          <li>uprv_tzset, uprv_timezone, uprv_tzname and time for getting
+          platform specific time and time zone information.</li>
+
+          <li>u_getDataDirectory for getting the default data directory.</li>
+
+          <li>uprv_getDefaultLocaleID for getting the default locale
+          setting.</li>
+
+          <li>uprv_getDefaultCodepage for getting the default codepage
+          encoding.</li>
+        </ul>
+        <br>
+      </li>
+
+      <li>
+        <strong>umutex.h, umutex.c</strong>: Code for doing synchronization in
+        multithreaded applications. If you wish to use International Components
+        for Unicode in a multithreaded application, you must provide a
+        synchronization primitive that the classes can use to protect their
+        global data against simultaneous modifications. See Users' guide for
+        more information.<br>
+        <br>
+         
+
+        <ul>
+          <li>We supply sample implementations for WinNT, Win95, Win98,
+          Sun/Solaris, RedHat/Linux, HP-UX and for AIX on an RS/6000.</li>
+        </ul>
+        <br>
+      </li>
+
+      <li><strong>umapfile.h, umapfile.c</strong>: functions for mapping or
+      otherwise reading or loading files into memory. All access by ICU to data
+      from files makes use of these functions.<br>
+      <br>
+      </li>
+
+      <li>Using platform specific #ifdef macros are highly discouraged outside
+      of the scope of these files. When the source code gets updated in the
+      future, these #ifdef's can cause testing problems for your platform.</li>
+    </ul>
+
+    <h3><a name="PlatformDependenciesBuildOrder" href=
+    "#PlatformDependenciesBuildOrder">Build Order Without Using ICU's
+    Makefiles</a></h3>
+
+    <p>It is possible to build each library individually without our Makefiles.
+    They must be built in the following order:<br>
+    </p>
+
+    <ol>
+      <li>stubdata</li>
+
+      <li>common</li>
+
+      <li>i18n</li>
+
+      <li>toolutil</li>
+
+      <li>makeconv</li>
+
+      <li>gencnval</li>
+
+      <li>genprops</li>
+
+      <li>gennames</li>
+
+      <li>genpname</li>
+
+      <li>gennorm</li>
+
+      <li>gensprep</li>
+
+      <li>genbrk</li>
+
+      <li>genuca</li>
+
+      <li>genrb</li>
+
+      <li>genccode</li>
+
+      <li>gencmn</li>
+
+      <li>pkgdata</li>
+
+      <li>makedata (a project on Windows, or source/data/Makefile on UNIX)</li>
+
+      <li>layout (optional)</li>
+
+      <li>layoutex (optional)</li>
+
+      <li>ctestfw, intltest and cintltst, if you want to run the test
+      suite.</li>
+
+      <li>uconv, icuswap and ustdio can also be optionally built.</li>
+    </ol>
+    <hr>
+
+    <p>Copyright &copy; 1997-2003 International Business Machines Corporation
+    and others. All Rights Reserved.<br>
+     IBM Globalization Center of Competency - San Jos&eacute;<br>
+     5600 Cottle Road<br>
+     San Jos&eacute;, CA 95193<br>
+     USA</p>
+  </body>
+</html>
+
diff --git a/source/.cvsignore b/source/.cvsignore
new file mode 100644
index 0000000..228c5bb
--- /dev/null
+++ b/source/.cvsignore
@@ -0,0 +1,7 @@
+config.log
+config.cache
+config.status
+Makefile
+icudefs.mk
+README
+
diff --git a/source/Doxyfile.in b/source/Doxyfile.in
new file mode 100644
index 0000000..a72a66a
--- /dev/null
+++ b/source/Doxyfile.in
@@ -0,0 +1,791 @@
+#  ********************************************************************
+#  * COPYRIGHT:
+#  * Copyright (c) 2002, International Business Machines Corporation and
+#  * others. All Rights Reserved.
+#  ********************************************************************
+# Doxyfile 1.2.6
+
+# This file describes the settings to be used by doxygen for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project. 
+
+PROJECT_NAME           = "ICU @VERSION@"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = doc
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, 
+# Korean, Hungarian, Norwegian, Spanish, Romanian, Russian, Croatian, 
+# Polish, Portuguese and Slovene.
+
+OUTPUT_LANGUAGE        = English
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES 
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation. 
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation. 
+
+EXTRACT_STATIC         = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled. 
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these class will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled. 
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this. 
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed. 
+
+REPEAT_BRIEF           = YES
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description. 
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used. 
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. It is allowed to use relative paths in the argument list.
+
+STRIP_FROM_PATH        = 
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation. 
+
+INTERNAL_DOCS          = YES
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a class diagram (in Html and LaTeX) for classes with base or 
+# super classes. Setting the tag to NO turns the diagrams off. 
+
+CLASS_DIAGRAMS         = YES
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources. 
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation. 
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible. 
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower case letters. If set to YES upper case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# users are adviced to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden. 
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this. 
+
+VERBATIM_HEADERS       = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put list of the files that are included by a file in the documentation 
+# of that file. 
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments  will behave just like the Qt-style comments (thus requiring an 
+# explict @brief command for a brief description. 
+
+JAVADOC_AUTOBRIEF      = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# reimplements. 
+
+INHERIT_DOCS           = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members. 
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order. 
+
+SORT_MEMBER_DOCS       = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments. 
+
+TAB_SIZE               = 8
+
+# The ENABLE_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif. 
+
+ENABLED_SECTIONS       = 
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines. 
+
+ALIASES                = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consist of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting. 
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance some of the names that are used will be different. The list 
+# of all members will be omitted, etc. 
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation. 
+
+SHOW_USED_FILES        = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used. 
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used. 
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled. 
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text. 
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr. 
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces. 
+
+INPUT                  = ./common/unicode/platform.h @srcdir@/common/unicode @srcdir@/i18n/unicode @srcdir@/layout/unicode
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included. 
+
+FILE_PATTERNS          = *.h *.c *.cpp
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used. 
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag. 
+EXCLUDE                = @srcdir@/common/unicode/urename.h
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories. 
+
+EXCLUDE_PATTERNS       = *config*.h
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command). 
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included. 
+
+EXAMPLE_PATTERNS       = 
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command). 
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output. 
+
+INPUT_FILTER           = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse. 
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces. 
+
+ALPHABETICAL_INDEX     = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20]) 
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers. 
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output. 
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path. 
+
+HTML_OUTPUT            = html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet 
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used. 
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation. 
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set YES to add extra items for group members 
+# to the contents of the Html help documentation and to the tree view. 
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it. 
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation. 
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript and frames is required (for instance Netscape 4.0+ 
+# or Internet explorer 4.0+). 
+
+GENERATE_TREEVIEW      = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown. 
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output. 
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path. 
+
+LATEX_OUTPUT           = latex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general. 
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used. 
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output. 
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing! 
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer. 
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation. 
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML. 
+
+LATEX_BATCHMODE        = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimised for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path. 
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general. 
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using a WORD or other. 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links. 
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assigments. You only have to provide 
+# replacements, missing definitions are set to their default value. 
+
+RTF_STYLESHEET_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages 
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path. 
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3) 
+
+MAN_EXTENSION          = .3
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files. 
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES. 
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_PREDEFINED tags. 
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found. 
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor. 
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used. 
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed. 
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition. 
+
+EXPAND_AS_DEFINED      = 
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tagfiles. 
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads. 
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed. 
+
+ALLEXTERNALS           = NO
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl'). 
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default) 
+
+HAVE_DOT               = NO
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes. 
+
+COLLABORATION_GRAPH    = YES
+
+# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to 
+# YES then doxygen will generate a graph for each documented file showing 
+# the direct and indirect include dependencies of the file with other 
+# documented files. 
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, INCLUDED_BY_GRAPH, and HAVE_DOT tags are set to 
+# YES then doxygen will generate a graph for each documented header file showing 
+# the documented files that directly or indirectly include this file 
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one. 
+
+GRAPHICAL_HIERARCHY    = YES
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found on the path. 
+
+DOT_PATH               = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images. 
+
+MAX_DOT_GRAPH_WIDTH    = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images. 
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs. 
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermedate dot files that are used to generate 
+# the various graphs. 
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored. 
+
+SEARCHENGINE           = NO
+
+# The CGI_NAME tag should be the name of the CGI script that 
+# starts the search engine (doxysearch) with the correct parameters. 
+# A script with this name will be generated by doxygen. 
+
+CGI_NAME               = search.cgi
+
+# The CGI_URL tag should be the absolute URL to the directory where the 
+# cgi binaries are located. See the documentation of your http daemon for 
+# details. 
+
+CGI_URL                = 
+
+# The DOC_URL tag should be the absolute URL to the directory where the 
+# documentation is located. If left blank the absolute path to the 
+# documentation, with file:// prepended to it, will be used. 
+
+DOC_URL                = 
+
+# The DOC_ABSPATH tag should be the absolute path to the directory where the 
+# documentation is located. If left blank the directory on the local machine 
+# will be used. 
+
+DOC_ABSPATH            = 
+
+# The BIN_ABSPATH tag must point to the directory where the doxysearch binary 
+# is installed. 
+
+BIN_ABSPATH            = /usr/local/bin/
+
+# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
+# documentation generated for other projects. This allows doxysearch to search 
+# the documentation for these projects as well. 
+
+EXT_DOC_PATHS          = 
diff --git a/source/Makefile.in b/source/Makefile.in
new file mode 100644
index 0000000..f3f6370
--- /dev/null
+++ b/source/Makefile.in
@@ -0,0 +1,210 @@
+#******************************************************************************
+#
+#   Copyright (C) 1998-2003, International Business Machines
+#   Corporation and others.  All Rights Reserved.
+#
+#******************************************************************************
+## Top-level Makefile.in for ICU
+## Stephen F. Booth
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = .
+
+include $(top_builddir)/icudefs.mk
+
+docdir = $(datadir)/doc
+docsubdir = $(PACKAGE)$(ICULIBDASHSUFFIX)/html
+
+##
+
+## Build directory information
+subdir = .
+
+AUTOCONF = @AUTOCONF@
+
+## Platform-specific setup
+include @platform_make_fragment@
+
+## Optional directory setup
+@EXTRAS_TRUE@EXTRA = extra
+@EXTRAS_FALSE@EXTRA = 
+@LAYOUT_TRUE@LAYOUT = layout layoutex
+@LAYOUT_FALSE@LAYOUT = 
+@TESTS_TRUE@TEST = test
+@TESTS_FALSE@TEST = 
+@SAMPLES_TRUE@SAMPLE = samples
+@SAMPLES_FALSE@SAMPLE = 
+
+DOXYGEN = @DOXYGEN@
+
+## Files to remove for 'make clean'
+CLEANFILES = *~ README
+
+## Files built (autoconfed) and installed
+INSTALLED_BUILT_FILES = $(top_builddir)/config/Makefile.inc $(top_builddir)/config/icu-config @platform_make_fragment@ README $(EXTRA_DATA:%=$(DESTDIR)$(pkglibdir)/%)
+
+## Files built (autoconfed) but not installed
+LOCAL_BUILT_FILES = icudefs.mk
+
+DOCDIRS = common i18n
+SUBDIRS =  stubdata common i18n $(LAYOUT) tools data $(EXTRA) $(TEST) $(SAMPLE)
+
+SECTION = 1
+
+MANX_FILES = config/icu-config.$(SECTION)
+
+ALL_MAN_FILES = $(MANX_FILES)
+
+## Extra files to install [nothing at present]
+EXTRA_DATA =
+
+## List of phony targets
+.PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls		\
+install-recursive clean clean-local clean-recursive distclean		\
+distclean-local distclean-recursive doc dist dist-local dist-recursive	\
+check check-local check-recursive clean-recursive-with-twist install-icu \
+doc install-doc
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local all-recursive
+install: install-recursive install-local
+clean: clean-recursive-with-twist clean-local
+distclean : distclean-recursive distclean-local
+dist: dist-recursive dist-local
+check: all check-recursive check-local
+
+ifeq ($(DOXYGEN),)
+doc:
+	@echo you need Doxygen to generate documentation. Doxygen can be found on the Web
+	@echo at http://www.doxygen.org/
+else
+doc: doc/html/index.html
+
+doc/html/index.html: Doxyfile $(wildcard ./common/unicode/platform.h $(srcdir)/common/unicode/*.h $(srcdir)/i18n/unicode/*.h $(srcdir)/layout/unicode/*.h)
+	$(DOXYGEN)
+
+Doxyfile: $(srcdir)/Doxyfile.in
+	CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+endif
+
+LOCAL_SUBDIRS = $(SUBDIRS)
+CLEAN_FIRST_SUBDIRS = tools
+
+## Recursive targets
+all-recursive install-recursive clean-recursive distclean-recursive dist-recursive check-recursive:
+	@dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(LOCAL_SUBDIRS)'; for subdir in $$list; do \
+	  echo "$(MAKE)[$(MAKELEVEL)]: Making \`$$target' in \`$$subdir'"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-local"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) RECURSIVE=YES $$local_target) || exit; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) "$$target-local" || exit; \
+	fi
+
+clean-recursive-with-twist:
+	$(MAKE) clean-recursive LOCAL_SUBDIRS='$(CLEAN_FIRST_SUBDIRS) $(filter-out $(CLEAN_FIRST_SUBDIRS),$(LOCAL_SUBDIRS))'
+
+all-local: $(srcdir)/configure $(LOCAL_BUILT_FILES) $(INSTALLED_BUILT_FILES)
+
+install-local: install-icu install-manx
+
+install-icu: $(INSTALLED_BUILT_FILES)
+	@$(MKINSTALLDIRS) $(DESTDIR)$(pkgdatadir)/config
+	@$(MKINSTALLDIRS) $(DESTDIR)$(pkglibdir)
+	@$(MKINSTALLDIRS) $(DESTDIR)$(bindir)
+	@$(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
+	$(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc
+	cd $(DESTDIR)$(pkglibdir)/..; \
+	    $(RM) current && ln -s $(VERSION) current; \
+	    $(RM) Makefile.inc && ln -s current/Makefile.inc .
+	$(INSTALL_DATA) @platform_make_fragment@ $(DESTDIR)$(pkgdatadir)/config/@platform_make_fragment_name@
+	$(INSTALL_SCRIPT) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)/mkinstalldirs
+	$(INSTALL_DATA) README $(DESTDIR)$(pkgdatadir)/README
+	$(INSTALL_DATA) $(top_srcdir)/../license.html $(DESTDIR)$(pkgdatadir)/license.html
+	$(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config
+
+ifeq ($(DOXYGEN),)
+install-doc:
+else
+install-doc: doc
+	$(RM) -r $(DESTDIR)$(docdir)/$(docsubdir)
+	$(MKINSTALLDIRS) $(DESTDIR)$(docdir)/$(docsubdir)
+	$(INSTALL_DATA) doc/html/* $(DESTDIR)$(docdir)/$(docsubdir)
+endif
+
+$(DESTDIR)$(pkglibdir)/%: $(top_srcdir)/../data/%
+	$(INSTALL_DATA) $< $@
+
+dist-local:
+
+clean-local:
+	test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+	$(RMV) Doxyfile doc
+
+distclean-local: clean-local
+	$(RMV) Makefile config/Makefile icudefs.mk
+	$(RMV) $(top_builddir)/config/Makefile.inc $(top_builddir)/config/icu-config
+	$(RMV) config.cache config.log config.status
+
+check-local:
+
+#$(srcdir)/configure : $(srcdir)/configure.in $(top_srcdir)/aclocal.m4
+#	cd $(srcdir) && $(AUTOCONF)
+
+icudefs.mk: $(srcdir)/icudefs.mk.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+		&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+README: $(srcdir)/README.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+		&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+Makefile: $(srcdir)/Makefile.in icudefs.mk $(top_builddir)/config.status
+	cd $(top_builddir) \
+		&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(top_builddir)/config/Makefile.inc: $(srcdir)/config/Makefile.inc.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+		&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(top_builddir)/config/icu-config: $(top_builddir)/Makefile $(top_srcdir)/config/icu-config-top $(top_srcdir)/config/icu-config-bottom $(top_builddir)/config/Makefile.inc @platform_make_fragment@ $(top_srcdir)/config/make2sh.sed
+	-$(RMV) $@
+	$(INSTALL_DATA) $(top_srcdir)/config/icu-config-top $@
+	@echo "# Following from @platform_make_fragment@" >> $@
+	sed -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
+	sed -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
+	cat $(top_srcdir)/config/icu-config-bottom >> $@
+	echo "# Rebuilt on "`date` >> $@
+
+config.status: $(srcdir)/configure $(srcdir)/common/unicode/uversion.h
+	@echo
+	@echo
+	@echo "*** config.status has become stale ***"
+	@echo "   'configure' and/or 'uversion.h' have changed, please"
+	@echo "  do 'runConfigureICU' (or 'configure') again, as per"
+	@echo "  the readme.html."
+	@echo
+	@echo
+	exit 1
+
+
+install-manx: $(MANX_FILES)
+	$(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+	$(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+
+config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
diff --git a/source/README.in b/source/README.in
new file mode 100644
index 0000000..ad666b0
--- /dev/null
+++ b/source/README.in
@@ -0,0 +1,20 @@
+Copyright (c) 2002, International Business Machines Corporation and others. All Rights Reserved.
+
+The ICU data files moved!
+
+Depending on the ICU packaging mode, ICU data files were moved to
+new locations.
+
+@thelibdir@/@PACKAGE@/@VERSION@
+
+    For the data library (--with-packaging-mode=dll) and individual
+    data files (--with-packaging-mode=files).
+
+@thedatadir@/@PACKAGE@/@VERSION@
+
+    For the data common file (--with-packaging-mode=archive).
+
+This move happened post ICU 1.6. The rationale for the move is to be able
+to share @thedatadir@ across machines with different architectures, as
+it is supposed to be the case.
+
diff --git a/source/acconfig.h b/source/acconfig.h
new file mode 100644
index 0000000..76fed55
--- /dev/null
+++ b/source/acconfig.h
@@ -0,0 +1,29 @@
+/* Copyright (c) 1999-2000, International Business Machines Corporation and
+   others. All Rights Reserved. */
+/* Define to signed char if not in <sys/types.h> */
+#undef int8_t
+
+/* Define to unsigned char if not in <sys/types.h> */
+#undef uint8_t 
+
+/* Define to signed short if not in <sys/types.h> */
+#undef int16_t 
+
+/* Define to unsigned short if not in <sys/types.h> */
+#undef uint16_t 
+
+/* Define to signed long if not in <sys/types.h> */
+#undef int32_t 
+
+/* Define to unsigned long if not in <sys/types.h> */
+#undef uint32_t 
+
+/* Define to signed char if not in <sys/types.h> */
+#undef bool_t 
+
+/* Define if your system has <wchar.h> */
+#undef HAVE_WCHAR_H
+
+/* Define to the size of wchar_t */
+#undef SIZEOF_WCHAR_T
+
diff --git a/source/aclocal.m4 b/source/aclocal.m4
new file mode 100644
index 0000000..9f648c0
--- /dev/null
+++ b/source/aclocal.m4
@@ -0,0 +1,240 @@
+dnl aclocal.m4 for ICU
+dnl Copyright (c) 1999-2003, International Business Machines Corporation and
+dnl others. All Rights Reserved.
+dnl Stephen F. Booth
+
+dnl @TOP@
+
+dnl ICU_CHECK_MH_FRAG
+AC_DEFUN(ICU_CHECK_MH_FRAG, [
+	AC_CACHE_CHECK(
+		[which Makefile fragment to use],
+		[icu_cv_host_frag],
+		[
+case "${host}" in
+*-*-solaris*)
+	if test "$ac_cv_prog_gcc" = yes; then	
+		icu_cv_host_frag=mh-solaris-gcc 
+	else
+		icu_cv_host_frag=mh-solaris
+	fi ;;
+alpha*-*-linux-gnu)
+	if test "$ac_cv_prog_gcc" = yes; then
+		icu_cv_host_frag=mh-alpha-linux-gcc
+	else  
+		icu_cv_host_frag=mh-alpha-linux-cc
+	fi ;;
+*-*-linux*) icu_cv_host_frag=mh-linux ;;
+*-*-cygwin)
+	if test "$ac_cv_prog_gcc" = yes; then
+	  	icu_cv_host_frag=mh-cygwin
+	else
+	  	icu_cv_host_frag=mh-cygwin-msvc
+	fi ;;
+*-*-*bsd*) 	icu_cv_host_frag=mh-bsd-gcc ;;
+*-*-aix*)
+	if test -n "`$CXX --help 2>&1 | grep 'IBM C and C++ Compilers$'`"; then
+		icu_cv_host_frag=mh-aix
+	else
+		icu_cv_host_frag=mh-aix-va
+	fi ;;
+*-*-hpux*)
+	if test "$ac_cv_prog_gcc" = yes; then
+		icu_cv_host_frag=mh-hpux-gcc
+	else
+		case "$CXX" in
+		*aCC)    icu_cv_host_frag=mh-hpux-acc ;;
+		*CC)     icu_cv_host_frag=mh-hpux-cc ;;
+		esac
+	fi ;;
+*-*ibm-openedition*|*-*-os390*)	icu_cv_host_frag=mh-os390 ;;
+*-*-os400*)	icu_cv_host_frag=mh-os400 ;;
+*-apple-rhapsody*)	icu_cv_host_frag=mh-darwin ;;
+*-apple-darwin*)	icu_cv_host_frag=mh-darwin ;;
+*-*-beos)	icu_cv_host_frag=mh-beos ;;
+*-*-irix*)	icu_cv_host_frag=mh-irix ;;
+*-dec-osf*) icu_cv_host_frag=mh-alpha-osf ;;
+*-*-nto*)	icu_cv_host_frag=mh-qnx ;;
+*-ncr-*)	icu_cv_host_frag=mh-mpras ;;
+*-sequent-*) 	icu_cv_host_frag=mh-ptx ;;
+*) 		icu_cv_host_frag=mh-unknown ;;
+esac
+		]
+	)
+])
+
+dnl ICU_CONDITIONAL - Taken from Automake 1.4
+AC_DEFUN(ICU_CONDITIONAL,
+[AC_SUBST($1_TRUE)
+AC_SUBST($1_FALSE)
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi])
+
+dnl AC_SEARCH_LIBS_FIRST(FUNCTION, SEARCH-LIBS [, ACTION-IF-FOUND
+dnl            [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
+dnl Search for a library defining FUNC, then see if it's not already available.
+ 
+AC_DEFUN(AC_SEARCH_LIBS_FIRST,
+[AC_PREREQ([2.13])
+AC_CACHE_CHECK([for library containing $1], [ac_cv_search_$1],
+[ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_$1="no"
+for i in $2; do
+LIBS="-l$i $5 $ac_func_search_save_LIBS"
+AC_TRY_LINK_FUNC([$1],
+[ac_cv_search_$1="-l$i"
+break])
+done
+if test "$ac_cv_search_$1" = "no"; then
+AC_TRY_LINK_FUNC([$1], [ac_cv_search_$1="none required"])
+fi
+LIBS="$ac_func_search_save_LIBS"])
+if test "$ac_cv_search_$1" != "no"; then
+  test "$ac_cv_search_$1" = "none required" || LIBS="$ac_cv_search_$1 $LIBS"
+  $3
+else :
+  $4
+fi])
+
+dnl Check if we can build and use 64-bit libraries
+AC_DEFUN(AC_CHECK_64BIT_LIBS,
+[
+    AC_ARG_ENABLE(64bit-libs,
+        [  --enable-64bit-libs     build 64-bit libraries [default=yes]],
+        [ENABLE_64BIT_LIBS=${enableval}],
+        [ENABLE_64BIT_LIBS=yes]
+    )
+    dnl These results can't be cached because is sets compiler flags.
+    AC_MSG_CHECKING([for 64-bit executable support])
+    if test "$ENABLE_64BIT_LIBS" = no; then
+        case "${host}" in
+        *-*-hpux*)
+#            case "${CXX}" in
+#            *CC)
+#                CFLAGS="${CFLAGS} +DAportable"
+#                CXXFLAGS="${CXXFLAGS} +DAportable"
+#                ;;
+#            esac;;
+        esac
+    else
+        case "${host}" in
+        *-*-solaris*)
+            if test "$ac_cv_prog_gcc" = no; then
+                SOL64=`$CXX -xarch=v9 2>&1 && $CC -xarch=v9 2>&1 | grep -v usage:`
+                SPARCV9=`isainfo -n 2>&1 | grep sparcv9`
+                if test -z "$SOL64" && test -n "$SPARCV9"; then
+                    CFLAGS="${CFLAGS} -xtarget=ultra -xarch=v9"
+                    CXXFLAGS="${CXXFLAGS} -xtarget=ultra -xarch=v9"
+                    LDFLAGS="${LDFLAGS} -xtarget=ultra -xarch=v9"
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            else
+                ENABLE_64BIT_LIBS=no
+            fi
+            ;;
+        *-*-aix*)
+            OLD_CFLAGS="${CFLAGS}"
+            OLD_CXXFLAGS="${CXXFLAGS}"
+            OLD_LDFLAGS="${LDFLAGS}"
+            CFLAGS="${CFLAGS} -q64"
+            CXXFLAGS="${CXXFLAGS} -q64"
+            LDFLAGS="${LDFLAGS} -q64"
+            AC_TRY_RUN(int main(void) {return 0;},
+                ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
+            if test "$ENABLE_64BIT_LIBS" = no; then
+                CFLAGS="${OLD_CFLAGS}"
+                CXXFLAGS="${OLD_CXXFLAGS}"
+                LDFLAGS="${OLD_LDFLAGS}"
+            else
+                ARFLAGS="${ARFLAGS} -X64"
+            fi
+            ;;
+        *-*-hpux*)
+            OLD_CFLAGS="${CFLAGS}"
+            OLD_CXXFLAGS="${CXXFLAGS}"
+            CFLAGS="${CFLAGS} +DA2.0W"
+            CXXFLAGS="${CXXFLAGS} +DA2.0W"
+            AC_TRY_RUN(int main(void) {return 0;},
+                ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
+            if test "$ENABLE_64BIT_LIBS" = no; then
+                CFLAGS="${OLD_CFLAGS}"
+                CXXFLAGS="${OLD_CXXFLAGS}"
+            fi
+            ;;
+        *)
+            ENABLE_64BIT_LIBS=no
+            ;;
+        esac
+    fi
+    dnl Individual tests that fail should reset their own flags.
+    AC_MSG_RESULT($ENABLE_64BIT_LIBS)
+])
+
+dnl Strict compilation options.
+AC_DEFUN(AC_CHECK_STRICT_COMPILE,
+[
+    AC_MSG_CHECKING([whether strict compiling is on])
+    AC_ARG_ENABLE(strict,[  --enable-strict         compile with strict compiler options [default=no]], [
+    	if test "$enableval" = no
+    	then
+	    ac_use_strict_options=no
+        else
+	    ac_use_strict_options=yes
+        fi
+      ], [ac_use_strict_options=no])
+    AC_MSG_RESULT($ac_use_strict_options)
+
+    if test "$ac_use_strict_options" = yes
+    then
+        if test "$GCC" = yes
+        then
+            CFLAGS="$CFLAGS -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Winline"
+            case "${host}" in
+            *-*-solaris*)
+                CFLAGS="$CFLAGS -D__STDC__=0";;
+            esac
+        fi
+        if test "$GXX" = yes
+        then
+            CXXFLAGS="$CXXFLAGS -W -Wall -ansi -pedantic -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Winline"
+            case "${host}" in
+            *-*-solaris*)
+                CXXFLAGS="$CXXFLAGS -D__STDC__=0";;
+            esac
+        fi
+    fi
+])
+
+dnl Define a sizeof checking macro that is a bit better than autoconf's
+dnl builtin (and heavily based on it, of course). The new macro is
+dnl AC_DO_CHECK_SIZEOF(TYPE [, CROSS_SIZE [, INCLUDES])
+AC_DEFUN(AC_DO_CHECK_SIZEOF,
+[changequote(<<, >>)dnl
+dnl The name to #define.
+define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
+dnl The cache variable name.
+define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
+changequote([, ])dnl
+AC_MSG_CHECKING(size of $1)
+AC_CACHE_VAL(AC_CV_NAME,
+[AC_TRY_RUN($3
+[#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof($1));
+  exit(0);
+}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl
+AC_MSG_RESULT($AC_CV_NAME)
+AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
+undefine([AC_TYPE_NAME])dnl
+undefine([AC_CV_NAME])dnl
+])
diff --git a/source/allinone/.cvsignore b/source/allinone/.cvsignore
new file mode 100644
index 0000000..4899cad
--- /dev/null
+++ b/source/allinone/.cvsignore
@@ -0,0 +1,3 @@
+*.ncb
+*.opt
+*.suo
\ No newline at end of file
diff --git a/source/allinone/all/.cvsignore b/source/allinone/all/.cvsignore
new file mode 100644
index 0000000..c6dfba6
--- /dev/null
+++ b/source/allinone/all/.cvsignore
@@ -0,0 +1 @@
+*.plg
diff --git a/source/allinone/all/all.dsp b/source/allinone/all/all.dsp
new file mode 100644
index 0000000..5336d61
--- /dev/null
+++ b/source/allinone/all/all.dsp
@@ -0,0 +1,93 @@
+# Microsoft Developer Studio Project File - Name="all" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Generic Project" 0x010a
+
+CFG=ALL - WIN32 DEBUG
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "all.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "all.mak" CFG="ALL - WIN32 DEBUG"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "all - Win32 Release" (based on "Win32 (x86) Generic Project")
+!MESSAGE "all - Win32 Debug" (based on "Win32 (x86) Generic Project")
+!MESSAGE "all - Win64 Release" (based on "Win32 (x86) Generic Project")
+!MESSAGE "all - Win64 Debug" (based on "Win32 (x86) Generic Project")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+MTL=midl.exe
+
+!IF  "$(CFG)" == "all - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+
+!ELSEIF  "$(CFG)" == "all - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+
+!ELSEIF  "$(CFG)" == "all - Win64 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+
+!ELSEIF  "$(CFG)" == "all - Win64 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+
+!ENDIF 
+
+# Begin Target
+
+# Name "all - Win32 Release"
+# Name "all - Win32 Debug"
+# Name "all - Win64 Release"
+# Name "all - Win64 Debug"
+# End Target
+# End Project
diff --git a/source/allinone/all/all.vcproj b/source/allinone/all/all.vcproj
new file mode 100644
index 0000000..0bc7f68
--- /dev/null
+++ b/source/allinone/all/all.vcproj
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding = "Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.00"
+	Name="all"
+	SccProjectName=""
+	SccLocalPath=""
+	Keyword="MakeFileProj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory=".\Debug"
+			IntermediateDirectory=".\Debug"
+			ConfigurationType="10"
+			UseOfMFC="0">
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory=".\Release"
+			IntermediateDirectory=".\Release"
+			ConfigurationType="10"
+			UseOfMFC="0">
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+		</Configuration>
+	</Configurations>
+	<Files>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/source/allinone/allinone.dsw b/source/allinone/allinone.dsw
new file mode 100644
index 0000000..fae5e22
--- /dev/null
+++ b/source/allinone/allinone.dsw
@@ -0,0 +1,703 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "all"=.\all\all.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name cintltst
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name ctestfw
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name decmn
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name derb
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genccode
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gencmn
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gencnval
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gennames
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gennorm
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genpname
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genprops
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genrb
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gentest
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genuca
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name ieeetest
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name intltest
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name layout
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name makeconv
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name makedata
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name pkgdata
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name stubdata
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name uconv
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name ustdio
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genbrk
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name layoutex
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gensprep
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "cintltst"=..\test\cintltst\cintltst.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name ctestfw
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "common"=..\common\common.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name stubdata
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "ctestfw"=..\tools\ctestfw\ctestfw.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "decmn"=..\tools\gencmn\decmn.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "derb"=..\TOOLS\GENRB\derb.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name stubdata
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genbrk"=..\tools\genbrk\genbrk.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genccode"=..\tools\genccode\genccode.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "gencmn"=..\tools\gencmn\gencmn.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "gencnval"=..\tools\gencnval\gencnval.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "gennames"=..\tools\gennames\gennames.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "gennorm"=..\tools\gennorm\gennorm.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genpname"=..\tools\genpname\genpname.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genprops"=..\tools\genprops\genprops.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genrb"=..\tools\genrb\genrb.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name makeconv
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "gensprep"=..\tools\gensprep\gensprep.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "gentest"=..\tools\gentest\gentest.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genuca"=..\TOOLS\genuca\genuca.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "i18n"=..\i18n\i18n.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "icuswap"=..\tools\icuswap\icuswap.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "ieeetest"=..\test\ieeetest\ieeetest.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "intltest"=..\test\intltest\intltest.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "layout"=..\layout\layout.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "layoutex"=..\layoutex\layoutex.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name layout
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "makeconv"=..\tools\makeconv\makeconv.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "makedata"=..\data\makedata.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genccode
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gencmn
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gencnval
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gennames
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gennorm
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genpname
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genprops
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genrb
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gentest
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genuca
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name makeconv
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name pkgdata
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name stubdata
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genbrk
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gensprep
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "pkgdata"=..\tools\pkgdata\pkgdata.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "stubdata"=..\STUBDATA\stubdata.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "toolutil"=..\tools\toolutil\toolutil.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "uconv"=..\extra\uconv\uconv.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genrb
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name pkgdata
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "ustdio"=..\extra\ustdio\ustdio.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
diff --git a/source/allinone/allinone.sln b/source/allinone/allinone.sln
new file mode 100644
index 0000000..7ba4b5d
--- /dev/null
+++ b/source/allinone/allinone.sln
@@ -0,0 +1,309 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "all", "all\all.vcproj", "{D6271E12-B9F5-49B8-BD94-62B236A96940}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cintltst", "..\test\cintltst\cintltst.vcproj", "{3D1246AE-1B32-479B-BECA-AEFA97BE2321}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "..\common\common.vcproj", "{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ctestfw", "..\tools\ctestfw\ctestfw.vcproj", "{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "decmn", "..\tools\gencmn\decmn.vcproj", "{20869594-A3DD-4A75-8068-99B03A5CF4E4}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "derb", "..\tools\genrb\derb.vcproj", "{D3065ADB-8820-4CC7-9B6C-9510833961A3}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genbrk", "..\tools\genbrk\genbrk.vcproj", "{C2BE5000-7501-4E87-9724-B8D82494FAE6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genccode", "..\tools\genccode\genccode.vcproj", "{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gencmn", "..\tools\gencmn\gencmn.vcproj", "{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gencnval", "..\tools\gencnval\gencnval.vcproj", "{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gennames", "..\tools\gennames\gennames.vcproj", "{F5281B04-A9E0-4680-BBA8-1D7F7D115458}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gennorm", "..\tools\gennorm\gennorm.vcproj", "{F5213103-6CBE-46E6-B4CC-2570B6837D86}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genpname", "..\tools\genpname\genpname.vcproj", "{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genprops", "..\tools\genprops\genprops.vcproj", "{6F744648-D15F-478A-90C6-58E353B5DDB3}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrb", "..\tools\genrb\genrb.vcproj", "{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gentest", "..\tools\gentest\gentest.vcproj", "{77C78066-746F-4EA6-B3FE-B8C8A4A97891}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genuca", "..\tools\genuca\genuca.vcproj", "{86829694-A375-4C58-B4EA-96EF514E3225}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "i18n", "..\i18n\i18n.vcproj", "{0178B127-6269-407D-B112-93877BB62776}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ieeetest", "..\test\ieeetest\ieeetest.vcproj", "{10F01D38-993E-407A-89BD-5C1C63F3A08D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "intltest", "..\test\intltest\intltest.vcproj", "{73632960-B3A6-464D-83A3-4B43365F19B8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "layout", "..\layout\layout.vcproj", "{C920062A-0647-4553-A3B2-37C58065664B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "layoutex", "..\layoutex\layoutex.vcproj", "{37FC2C7F-1904-4811-8955-2F478830EAD1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makeconv", "..\tools\makeconv\makeconv.vcproj", "{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makedata", "..\data\makedata.vcproj", "{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pkgdata", "..\tools\pkgdata\pkgdata.vcproj", "{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stubdata", "..\stubdata\stubdata.vcproj", "{203EC78A-0531-43F0-A636-285439BDE025}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toolutil", "..\tools\toolutil\toolutil.vcproj", "{6B231032-3CB5-4EED-9210-810D666A23A0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uconv", "..\extra\uconv\uconv.vcproj", "{DBA4088D-F6F9-4F8F-8820-082A4765C16C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ustdio", "..\extra\ustdio\ustdio.vcproj", "{C2B04507-2521-4801-BF0D-5FD79D6D518C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gensprep", "..\tools\gensprep\gensprep.vcproj", "{631C23CE-6C1D-4875-88F0-85E0A42B36EA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icuswap", "..\tools\icuswap\icuswap.vcproj", "{6FC24387-370C-4561-9582-7A819749E2C5}"
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		ConfigName.0 = Debug
+		ConfigName.1 = Release
+	EndGlobalSection
+	GlobalSection(ProjectDependencies) = postSolution
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.0 = {C2BE5000-7501-4E87-9724-B8D82494FAE6}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.1 = {6FC24387-370C-4561-9582-7A819749E2C5}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.2 = {37FC2C7F-1904-4811-8955-2F478830EAD1}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.3 = {631C23CE-6C1D-4875-88F0-85E0A42B36EA}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.4 = {3D1246AE-1B32-479B-BECA-AEFA97BE2321}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.5 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.6 = {ECA6B435-B4FA-4F9F-BF95-F451D078FC47}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.7 = {20869594-A3DD-4A75-8068-99B03A5CF4E4}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.8 = {D3065ADB-8820-4CC7-9B6C-9510833961A3}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.9 = {FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.10 = {A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.11 = {8B41752B-5A52-41E4-B7E0-07921C0CC6BF}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.12 = {F5281B04-A9E0-4680-BBA8-1D7F7D115458}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.13 = {F5213103-6CBE-46E6-B4CC-2570B6837D86}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.14 = {DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.15 = {6F744648-D15F-478A-90C6-58E353B5DDB3}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.16 = {97521D06-EC47-45D4-8BD0-9E16B3F93B2A}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.17 = {77C78066-746F-4EA6-B3FE-B8C8A4A97891}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.18 = {86829694-A375-4C58-B4EA-96EF514E3225}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.19 = {0178B127-6269-407D-B112-93877BB62776}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.20 = {10F01D38-993E-407A-89BD-5C1C63F3A08D}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.21 = {73632960-B3A6-464D-83A3-4B43365F19B8}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.22 = {C920062A-0647-4553-A3B2-37C58065664B}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.23 = {F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.24 = {D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.25 = {4C8454FE-81D3-4CA3-9927-29BA96F03DAC}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.26 = {203EC78A-0531-43F0-A636-285439BDE025}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.27 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.28 = {DBA4088D-F6F9-4F8F-8820-082A4765C16C}
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.29 = {C2B04507-2521-4801-BF0D-5FD79D6D518C}
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.1 = {ECA6B435-B4FA-4F9F-BF95-F451D078FC47}
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.2 = {0178B127-6269-407D-B112-93877BB62776}
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.3 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.0 = {203EC78A-0531-43F0-A636-285439BDE025}
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.1 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.0 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.1 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.1 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.1 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.1 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.1 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.1 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.1 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.1 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.1 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.1 = {0178B127-6269-407D-B112-93877BB62776}
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.2 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.1 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{86829694-A375-4C58-B4EA-96EF514E3225}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{86829694-A375-4C58-B4EA-96EF514E3225}.1 = {0178B127-6269-407D-B112-93877BB62776}
+		{86829694-A375-4C58-B4EA-96EF514E3225}.2 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{0178B127-6269-407D-B112-93877BB62776}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{10F01D38-993E-407A-89BD-5C1C63F3A08D}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.1 = {0178B127-6269-407D-B112-93877BB62776}
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.2 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{C920062A-0647-4553-A3B2-37C58065664B}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.1 = {C920062A-0647-4553-A3B2-37C58065664B}
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.1 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.1 = {FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.2 = {A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.3 = {8B41752B-5A52-41E4-B7E0-07921C0CC6BF}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.4 = {F5281B04-A9E0-4680-BBA8-1D7F7D115458}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.5 = {F5213103-6CBE-46E6-B4CC-2570B6837D86}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.6 = {DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.7 = {6F744648-D15F-478A-90C6-58E353B5DDB3}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.8 = {97521D06-EC47-45D4-8BD0-9E16B3F93B2A}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.9 = {77C78066-746F-4EA6-B3FE-B8C8A4A97891}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.10 = {86829694-A375-4C58-B4EA-96EF514E3225}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.11 = {0178B127-6269-407D-B112-93877BB62776}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.12 = {F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.13 = {4C8454FE-81D3-4CA3-9927-29BA96F03DAC}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.14 = {203EC78A-0531-43F0-A636-285439BDE025}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.15 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.16 = {C2BE5000-7501-4E87-9724-B8D82494FAE6}
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.17 = {631C23CE-6C1D-4875-88F0-85E0A42B36EA}
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.0 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.1 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.2 = {A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.3 = {FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.1 = {97521D06-EC47-45D4-8BD0-9E16B3F93B2A}
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.2 = {0178B127-6269-407D-B112-93877BB62776}
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.3 = {4C8454FE-81D3-4CA3-9927-29BA96F03DAC}
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.1 = {0178B127-6269-407D-B112-93877BB62776}
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.0 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.1 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{6FC24387-370C-4561-9582-7A819749E2C5}.0 = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{6FC24387-370C-4561-9582-7A819749E2C5}.1 = {0178B127-6269-407D-B112-93877BB62776}
+		{6FC24387-370C-4561-9582-7A819749E2C5}.2 = {6B231032-3CB5-4EED-9210-810D666A23A0}
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.Debug.ActiveCfg = Debug|Win32
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.Debug.Build.0 = Debug|Win32
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.Release.ActiveCfg = Release|Win32
+		{D6271E12-B9F5-49B8-BD94-62B236A96940}.Release.Build.0 = Release|Win32
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug.ActiveCfg = Debug|Win32
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug.Build.0 = Debug|Win32
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Release.ActiveCfg = Release|Win32
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Release.Build.0 = Release|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Debug.ActiveCfg = Debug|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Debug.Build.0 = Debug|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Release.ActiveCfg = Release|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Release.Build.0 = Release|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug.ActiveCfg = Debug|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug.Build.0 = Debug|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release.ActiveCfg = Release|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release.Build.0 = Release|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Debug.ActiveCfg = Debug|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Debug.Build.0 = Debug|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Release.ActiveCfg = Release|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Release.Build.0 = Release|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug.ActiveCfg = Debug|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug.Build.0 = Debug|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release.ActiveCfg = Release|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release.Build.0 = Release|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Debug.ActiveCfg = Debug|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Debug.Build.0 = Debug|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Release.ActiveCfg = Release|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Release.Build.0 = Release|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Debug.ActiveCfg = Debug|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Debug.Build.0 = Debug|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Release.ActiveCfg = Release|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Release.Build.0 = Release|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Debug.ActiveCfg = Debug|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Debug.Build.0 = Debug|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Release.ActiveCfg = Release|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Release.Build.0 = Release|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Debug.ActiveCfg = Debug|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Debug.Build.0 = Debug|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Release.ActiveCfg = Release|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Release.Build.0 = Release|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Debug.ActiveCfg = Debug|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Debug.Build.0 = Debug|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Release.ActiveCfg = Release|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Release.Build.0 = Release|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Debug.ActiveCfg = Debug|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Debug.Build.0 = Debug|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Release.ActiveCfg = Release|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Release.Build.0 = Release|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Debug.ActiveCfg = Debug|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Debug.Build.0 = Debug|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Release.ActiveCfg = Release|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Release.Build.0 = Release|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Debug.ActiveCfg = Debug|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Debug.Build.0 = Debug|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Release.ActiveCfg = Release|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Release.Build.0 = Release|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Debug.ActiveCfg = Debug|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Debug.Build.0 = Debug|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Release.ActiveCfg = Release|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Release.Build.0 = Release|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Debug.ActiveCfg = Debug|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Debug.Build.0 = Debug|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Release.ActiveCfg = Release|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Release.Build.0 = Release|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Debug.ActiveCfg = Debug|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Debug.Build.0 = Debug|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Release.ActiveCfg = Release|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Release.Build.0 = Release|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Debug.ActiveCfg = Debug|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Debug.Build.0 = Debug|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Release.ActiveCfg = Release|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Release.Build.0 = Release|Win32
+		{10F01D38-993E-407A-89BD-5C1C63F3A08D}.Debug.ActiveCfg = Debug|Win32
+		{10F01D38-993E-407A-89BD-5C1C63F3A08D}.Debug.Build.0 = Debug|Win32
+		{10F01D38-993E-407A-89BD-5C1C63F3A08D}.Release.ActiveCfg = Release|Win32
+		{10F01D38-993E-407A-89BD-5C1C63F3A08D}.Release.Build.0 = Release|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Debug.ActiveCfg = Debug|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Debug.Build.0 = Debug|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Release.ActiveCfg = Release|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Release.Build.0 = Release|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Debug.ActiveCfg = Debug|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Debug.Build.0 = Debug|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Release.ActiveCfg = Release|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Release.Build.0 = Release|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Debug.ActiveCfg = Debug|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Debug.Build.0 = Debug|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Release.ActiveCfg = Release|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Release.Build.0 = Release|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Debug.ActiveCfg = Debug|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Debug.Build.0 = Debug|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Release.ActiveCfg = Release|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Release.Build.0 = Release|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Debug.ActiveCfg = Debug|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Debug.Build.0 = Debug|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Release.ActiveCfg = Release|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Release.Build.0 = Release|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Debug.ActiveCfg = Debug|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Debug.Build.0 = Debug|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Release.ActiveCfg = Release|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Release.Build.0 = Release|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Debug.ActiveCfg = Debug|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Debug.Build.0 = Debug|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Release.ActiveCfg = Release|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Release.Build.0 = Release|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Debug.ActiveCfg = Debug|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Debug.Build.0 = Debug|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Release.ActiveCfg = Release|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Release.Build.0 = Release|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Debug.ActiveCfg = Debug|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Debug.Build.0 = Debug|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Release.ActiveCfg = Release|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Release.Build.0 = Release|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Debug.ActiveCfg = Debug|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Debug.Build.0 = Debug|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Release.ActiveCfg = Release|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Release.Build.0 = Release|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug.ActiveCfg = Debug|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug.Build.0 = Debug|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release.ActiveCfg = Release|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release.Build.0 = Release|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Debug.ActiveCfg = Debug|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Debug.Build.0 = Debug|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Release.ActiveCfg = Release|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/source/common/.cvsignore b/source/common/.cvsignore
new file mode 100644
index 0000000..1e8aecb
--- /dev/null
+++ b/source/common/.cvsignore
@@ -0,0 +1,9 @@
+*.d
+libicu*.*
+Debug
+Release
+Makefile
+icucfg.h
+*.ao
+*.plg
+
diff --git a/source/common/Makefile.in b/source/common/Makefile.in
new file mode 100644
index 0000000..d715abb
--- /dev/null
+++ b/source/common/Makefile.in
@@ -0,0 +1,178 @@
+#******************************************************************************
+#
+#   Copyright (C) 1999-2003, International Business Machines
+#   Corporation and others.  All Rights Reserved.
+#
+#******************************************************************************
+## Makefile.in for ICU - icu.so
+## Stephen F. Booth
+
+## Source directory information
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = ..
+
+## All the flags and other definitions are included here.
+include $(top_builddir)/icudefs.mk
+
+## Build directory information
+subdir = common
+
+## Extra files to remove for 'make clean'
+CLEANFILES = *~ $(DEPS)
+
+## Target information
+
+TARGET_STUBNAME=uc
+
+ifneq ($(ENABLE_STATIC),)
+TARGET = $(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).a
+endif
+
+ifneq ($(ENABLE_SHARED),)
+SO_TARGET = $(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
+ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET)
+
+ifeq ($(ENABLE_SO_VERSION_DATA),1)
+SO_VERSION_DATA = common.res
+endif
+
+ifeq ($(OS390BATCH),1)
+BATCH_TARGET = $(BATCH_COMMON_TARGET)
+BATCH_LIBS = $(BATCH_LIBICUDT) -lm
+endif   # OS390BATCH
+
+endif   # ENABLE_SHARED
+
+ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) $(BATCH_TARGET)
+
+DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
+DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
+DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
+
+CPPFLAGS += -I. -I$(srcdir) -I$(srcdir)/../i18n $(LIBCPPFLAGS)
+DEFS += -DU_COMMON_IMPLEMENTATION
+
+# $(LIBICUDT) is either stub data or the real DLL common data.
+LIBS = $(LIBICUDT) $(DEFAULT_LIBS)
+
+OBJECTS = putil.o uobject.o cmemory.o umutex.o \
+udata.o ucmndata.o udatamem.o udataswp.o umapfile.o ucol_swp.o \
+uresbund.o uresdata.o resbund.o ucat.o locmap.o uloc.o locid.o \
+uhash.o uhash_us.o \
+ucnv.o ucnv_bld.o ucnv_cb.o ucnv_cnv.o ucnv_err.o ucnv_ext.o ucnv_io.o ucnvlat1.o \
+ucnv_u7.o ucnv_u8.o ucnv_u16.o ucnv_u32.o ucnvscsu.o ucnvbocu.o \
+ucnvmbcs.o ucnv2022.o ucnvhz.o ucnv_lmb.o ucnvisci.o \
+unistr.o utf_impl.o ustring.o ustrcase.o cstring.o ustrfmt.o ustrtrns.o \
+normlzr.o unorm.o unorm_it.o chariter.o schriter.o uchriter.o uiter.o \
+uchar.o uprops.o propname.o ubidi.o ubidiwrt.o ubidiln.o ushape.o unames.o \
+ucln_cmn.o uscript.o usc_impl.o uvector.o ustack.o uvectr32.o ucmp8.o \
+uarrsort.o utrie.o uset.o uniset.o ruleiter.o caniter.o unifilt.o unifunct.o usetiter.o \
+brkiter.o brkdict.o ubrk.o dbbi.o dbbi_tbl.o \
+rbbi.o rbbidata.o rbbinode.o rbbirb.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o \
+icuserv.o iculserv.o icunotif.o uenum.o ustrenum.o \
+uidna.o usprep.o punycode.o \
+cwchar.o filestrm.o umemstrm.o util.o parsepos.o utrace.o
+
+STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
+
+DEPS = $(OBJECTS:.o=.d)
+
+## Header files to install
+HEADERS = unicode/*.h $(srcdir)/unicode/*.h
+
+## List of phony targets
+.PHONY : all all-local install install-local clean clean-local	\
+distclean distclean-local install-library install-headers dist	\
+dist-local check check-local
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local
+install: install-local
+clean: clean-local
+distclean : distclean-local
+dist: dist-local
+check: all check-local
+
+-include Makefile.local
+
+all-local: $(ALL_TARGETS) unicode/platform.h
+
+install-local: install-headers install-library
+
+install-library: all-local
+	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
+ifneq ($(ENABLE_STATIC),)
+	$(INSTALL-L) $(TARGET) $(DESTDIR)$(libdir)/$(TARGET)
+endif
+ifneq ($(ENABLE_SHARED),)
+	$(INSTALL-L) $(FINAL_SO_TARGET) $(DESTDIR)$(libdir)/$(FINAL_SO_TARGET)
+ifneq ($(FINAL_SO_TARGET),$(SO_TARGET))
+	cd $(DESTDIR)$(libdir) && $(RM) $(SO_TARGET) && ln -s $(FINAL_SO_TARGET) $(SO_TARGET)
+ifneq ($(FINAL_SO_TARGET),$(MIDDLE_SO_TARGET))
+	cd $(DESTDIR)$(libdir) && $(RM) $(MIDDLE_SO_TARGET) && ln -s $(FINAL_SO_TARGET) $(MIDDLE_SO_TARGET)
+endif
+endif
+endif
+ifneq ($(IMPORT_LIB_EXT),)
+	$(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)/$(FINAL_IMPORT_LIB)
+	cd $(DESTDIR)$(libdir) && $(RM) $(IMPORT_LIB) && ln -s $(FINAL_IMPORT_LIB) $(IMPORT_LIB)
+ifneq ($(MIDDLE_IMPORT_LIB),$(FINAL_IMPORT_LIB))
+	cd $(DESTDIR)$(libdir) && $(RM) $(MIDDLE_IMPORT_LIB) && ln -s $(FINAL_IMPORT_LIB) $(MIDDLE_IMPORT_LIB)
+endif
+endif
+
+install-headers:
+	$(MKINSTALLDIRS) $(DESTDIR)$(includedir)/unicode
+	@for file in $(HEADERS); do \
+	 echo "$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/unicode"; \
+	 $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/unicode || exit; \
+	done
+
+dist-local:
+
+clean-local:
+	test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+	$(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) $(SO_VERSION_DATA)
+
+distclean-local: clean-local
+	$(RMV) Makefile icucfg.h unicode/platform.h
+
+check-local:
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+unicode/platform.h: $(srcdir)/unicode/platform.h.in $(top_builddir)/config.status
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+ifneq ($(ENABLE_STATIC),)
+$(TARGET): $(TARGET)($(STATIC_OBJECTS))
+	$(RANLIB) $@
+endif
+
+ifneq ($(ENABLE_SHARED),)
+$(FINAL_SO_TARGET): $(OBJECTS) $(SO_VERSION_DATA)
+	$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
+
+ifeq ($(OS390BATCH),1)
+$(BATCH_TARGET): $(OBJECTS)
+	$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(BATCH_LIBS)
+endif   # OS390BATCH
+
+endif   # ENABLE_SHARED
+
+ifeq (,$(MAKECMDGOALS))
+-include $(DEPS)
+else
+ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
+-include $(DEPS)
+endif
+endif
+
diff --git a/source/common/brkdict.cpp b/source/common/brkdict.cpp
new file mode 100644
index 0000000..6fc6cc6
--- /dev/null
+++ b/source/common/brkdict.cpp
@@ -0,0 +1,246 @@
+/*
+**********************************************************************
+*   Copyright (C) 1999-2000 IBM and others. All rights reserved.
+**********************************************************************
+*   Date        Name        Description
+*   12/1/99     rtg         Ported from Java
+*   01/13/2000  helena      Added UErrorCode to ctors.
+**********************************************************************
+*/
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+#include "unicode/resbund.h"
+#include "brkdict.h"
+#include "cmemory.h"
+
+U_NAMESPACE_BEGIN
+
+//=================================================================================
+// deserialization
+//=================================================================================
+
+BreakDictionary::BreakDictionary(const char* /*dictionaryFilename*/, UErrorCode& status)
+ :  columnMap(NULL),
+    table(NULL),
+    rowIndex(NULL),
+    rowIndexFlags(NULL),
+    rowIndexFlagsIndex(NULL),
+    rowIndexShifts(NULL)
+{
+    if (U_FAILURE(status)) return;
+    
+    ResourceBundle th((char *)0, Locale("th"), status);
+
+    if (U_FAILURE(status)) return;
+
+    ResourceBundle th_dict = th.get("BreakDictionaryData", status);
+    if (U_FAILURE(status)) return;
+
+    int32_t len;
+    const uint8_t * data = th_dict.getBinary(len, status);
+    if (U_FAILURE(status)) return;
+
+    UMemoryStream* dictionaryStream = uprv_mstrm_openBuffer(data, len);
+
+    if (dictionaryStream == 0) {
+        status = U_FILE_ACCESS_ERROR;
+        return;
+    }
+    readDictionaryFile(dictionaryStream);
+    uprv_mstrm_close(dictionaryStream);
+}
+
+BreakDictionary::~BreakDictionary()
+{
+    ucmp8_close(columnMap);
+    uprv_free(table);
+    uprv_free(rowIndex);
+    uprv_free(rowIndexFlags);
+    uprv_free(rowIndexFlagsIndex);
+    uprv_free(rowIndexShifts);
+}
+
+// macros to support readDictionaryFile.  The data files originated from a Java
+// program, and Java always writes data out in big-endian format.  These macros will
+// byte-swap the data for appropriate use on Windows.
+
+#if U_IS_BIG_ENDIAN
+#define SWAP32(x)
+#define SWAP16(x)
+#else
+#define SWAP32(x) x = (uint32_t)((x >> 24 & 0xff) | (x >> 8 & 0xff00) | (x << 8 & 0xff0000) | (x << 24 & 0xff000000))
+#define SWAP16(x) x = (uint16_t)((x << 8 & 0xff00) | (x >> 8 & 0xff))
+#endif
+
+void
+BreakDictionary::readDictionaryFile(UMemoryStream* in)
+{
+    int32_t l;
+    int32_t version;
+
+    int i;
+
+    // read in the version number (right now we just ignore it)
+    uprv_mstrm_read(in, &version, 4);
+
+    // read in the column map (this is serialized in its internal form:
+    // an index array followed by a data array)
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    uint16_t* temp = (uint16_t*) uprv_malloc(sizeof(uint16_t)*l);
+    uprv_mstrm_read(in, temp, l * sizeof (int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(temp[i]);
+    }
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    int8_t* temp2 = (int8_t*) uprv_malloc(sizeof(int8_t)*l);
+    uprv_mstrm_read(in, temp2, l);
+    columnMap = ucmp8_openAdopt(temp, temp2, l);
+
+    // read in numCols and numColGroups
+    uprv_mstrm_read(in, &numCols, 4);
+    SWAP32(numCols);
+    uprv_mstrm_read(in, &numColGroups, 4);
+    SWAP32(numColGroups);
+
+    // read in the row-number index
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    rowIndex = (int16_t *)uprv_malloc(l*2);
+    uprv_mstrm_read(in, rowIndex, l * sizeof (int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(rowIndex[i]);
+    }
+
+    // load in the populated-cells bitmap: index first, then bitmap list
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    rowIndexFlagsIndex = (int16_t *)uprv_malloc(l*2);
+    uprv_mstrm_read(in, rowIndexFlagsIndex, l * sizeof(int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(rowIndexFlagsIndex[i]);
+    }
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    rowIndexFlags = (int32_t *)uprv_malloc(l*4);
+    uprv_mstrm_read(in, rowIndexFlags, l * sizeof(int32_t));
+    for (i = 0; i < l; i++) {
+        SWAP32(rowIndexFlags[i]);
+    }
+
+    // load in the row-shift index
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    rowIndexShifts = (int8_t *)uprv_malloc(l);
+    uprv_mstrm_read(in, rowIndexShifts, l);
+
+    // finally, load in the actual state table
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    table = (int16_t *)uprv_malloc(l*2);
+    uprv_mstrm_read(in, table, l * sizeof(int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(table[i]);
+    }
+
+    // the reverse column map occurs next in the file.  In the C/C++ code, for the
+    // time being, we're not going to worry about that.
+}
+
+//=================================================================================
+// access to the words
+//=================================================================================
+
+/**
+ * Uses the column map to map the character to a column number, then
+ * passes the row and column number to the other version of at()
+ * @param row The current state
+ * @param ch The character whose column we're interested in
+ * @return The new state to transition to
+ */
+int16_t
+BreakDictionary::at(int32_t row, UChar ch) const
+{
+    int16_t col = ucmp8_get(columnMap, ch);
+    return at(row, (int32_t)col);
+}
+
+/**
+ * Returns the value in the cell with the specified (logical) row and
+ * column numbers.  In DictionaryBasedBreakIterator, the row number is
+ * a state number, the column number is an input, and the return value
+ * is the row number of the new state to transition to.  (0 is the
+ * "error" state, and -1 is the "end of word" state in a dictionary)
+ * @param row The row number of the current state
+ * @param col The column number of the input character (0 means "not a
+ * dictionary character")
+ * @return The row number of the new state to transition to
+ */
+int16_t
+BreakDictionary::at(int32_t row, int32_t col) const
+{
+    if (cellIsPopulated(row, col)) {
+        // we map from logical to physical row number by looking up the
+        // mapping in rowIndex; we map from logical column number to
+        // physical column number by looking up a shift value for this
+        // logical row and offsetting the logical column number by
+        // the shift amount.  Then we can use internalAt() to actually
+        // get the value out of the table.
+        return internalAt(rowIndex[row], col + rowIndexShifts[row]);
+    }
+    else {
+        return 0;
+    }
+}
+
+//=================================================================================
+// implementation
+//=================================================================================
+/**
+ * Given (logical) row and column numbers, returns true if the
+ * cell in that position is populated
+ */
+UBool
+BreakDictionary::cellIsPopulated(int32_t row, int32_t col) const
+{
+    // look up the entry in the bitmap index for the specified row.
+    // If it's a negative number, it's the column number of the only
+    // populated cell in the row
+    if (rowIndexFlagsIndex[row] < 0) {
+        return col == -rowIndexFlagsIndex[row];
+    }
+
+    // if it's a positive number, it's the offset of an entry in the bitmap
+    // list.  If the table is more than 32 columns wide, the bitmap is stored
+    // successive entries in the bitmap list, so we have to divide the column
+    // number by 32 and offset the number we got out of the index by the result.
+    // Once we have the appropriate piece of the bitmap, test the appropriate
+    // bit and return the result.
+    else {
+        int32_t flags = rowIndexFlags[rowIndexFlagsIndex[row] + (col >> 5)];
+        return (flags & (1 << (col & 0x1f))) != 0;
+    }
+}
+
+/**
+ * Implementation of at() when we know the specified cell is populated.
+ * @param row The PHYSICAL row number of the cell
+ * @param col The PHYSICAL column number of the cell
+ * @return The value stored in the cell
+ */
+int16_t
+BreakDictionary::internalAt(int32_t row, int32_t col) const
+{
+    // the table is a one-dimensional array, so this just does the math necessary
+    // to treat it as a two-dimensional array (we don't just use a two-dimensional
+    // array because two-dimensional arrays are inefficient in Java)
+    return table[row * numCols + col];
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
diff --git a/source/common/brkdict.h b/source/common/brkdict.h
new file mode 100644
index 0000000..3daaf4f
--- /dev/null
+++ b/source/common/brkdict.h
@@ -0,0 +1,175 @@
+/*
+**********************************************************************
+*   Copyright (C) 1999-2000 IBM and others. All rights reserved.
+**********************************************************************
+*   Date        Name        Description
+*   12/1/99     rtg         Ported from Java
+*   01/13/2000  helena      Added UErrorCode to ctors.
+**********************************************************************
+*/
+
+#ifndef BRKDICT_H
+#define BRKDICT_H
+
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+#include "ucmp8.h"
+#include "umemstrm.h"
+
+U_NAMESPACE_BEGIN
+
+/**
+ * This is the class that represents the list of known words used by
+ * DictionaryBasedBreakIterator.  The conceptual data structure used
+ * here is a trie: there is a node hanging off the root node for every
+ * letter that can start a word.  Each of these nodes has a node hanging
+ * off of it for every letter that can be the second letter of a word
+ * if this node is the first letter, and so on.  The trie is represented
+ * as a two-dimensional array that can be treated as a table of state
+ * transitions.  Indexes are used to compress this array, taking
+ * advantage of the fact that this array will always be very sparse.
+ */
+class BreakDictionary : public UMemory {
+    //=================================================================================
+    // data members
+    //=================================================================================
+private:
+
+    /**
+     * Maps from characters to column numbers.  The main use of this is to
+     * avoid making room in the array for empty columns.
+     */
+    CompactByteArray* columnMap;
+
+    /**
+     * The number of actual columns in the table
+     */
+    int32_t numCols;
+
+    /**
+     * Columns are organized into groups of 32.  This says how many
+     * column groups.  (We could calculate this, but we store the
+     * value to avoid having to repeatedly calculate it.)
+     */
+    int32_t numColGroups;
+
+    /**
+     * The actual compressed state table.  Each conceptual row represents
+     * a state, and the cells in it contain the row numbers of the states
+     * to transition to for each possible letter.  0 is used to indicate
+     * an illegal combination of letters (i.e., the error state).  The
+     * table is compressed by eliminating all the unpopulated (i.e., zero)
+     * cells.  Multiple conceptual rows can then be doubled up in a single
+     * physical row by sliding them up and possibly shifting them to one
+     * side or the other so the populated cells don't collide.  Indexes
+     * are used to identify unpopulated cells and to locate populated cells.
+     */
+    int16_t* table;
+
+    /**
+     * This index maps logical row numbers to physical row numbers
+     */
+    int16_t* rowIndex;
+
+    /**
+     * A bitmap is used to tell which cells in the comceptual table are
+     * populated.  This array contains all the unique bit combinations
+     * in that bitmap.  If the table is more than 32 columns wide,
+     * successive entries in this array are used for a single row.
+     */
+    int32_t* rowIndexFlags;
+
+    /**
+     * This index maps from a logical row number into the bitmap table above.
+     * (This keeps us from storing duplicate bitmap combinations.)  Since there
+     * are a lot of rows with only one populated cell, instead of wasting space
+     * in the bitmap table, we just store a negative number in this index for
+     * rows with one populated cell.  The absolute value of that number is
+     * the column number of the populated cell.
+     */
+    int16_t* rowIndexFlagsIndex;
+
+    /**
+     * For each logical row, this index contains a constant that is added to
+     * the logical column number to get the physical column number
+     */
+    int8_t* rowIndexShifts;
+
+    //=================================================================================
+    // deserialization
+    //=================================================================================
+
+public:
+    /**
+     * Constructor.  Creates the BreakDictionary by using readDictionaryFile() to
+     * load the dictionary tables from the disk.
+     * @param dictionaryFilename The name of the dictionary file
+     * @param status for errors if it occurs
+     */
+    BreakDictionary(const char* dictionaryFilename, UErrorCode& status);
+
+    /**
+     * Destructor.
+     */
+    ~BreakDictionary();
+
+    /**
+     * Reads the dictionary file on the disk and constructs the appropriate in-memory
+     * representation.
+     * @param in The given memory stream
+     */
+    void readDictionaryFile(UMemoryStream* in);
+
+    //=================================================================================
+    // access to the words
+    //=================================================================================
+
+    /**
+     * Uses the column map to map the character to a column number, then
+     * passes the row and column number to the other version of at()
+     * @param row The current state
+     * @param ch The character whose column we're interested in
+     * @return The new state to transition to
+     */
+    int16_t at(int32_t row, UChar ch) const;
+
+    /**
+     * Returns the value in the cell with the specified (logical) row and
+     * column numbers.  In DictionaryBasedBreakIterator, the row number is
+     * a state number, the column number is an input, and the return value
+     * is the row number of the new state to transition to.  (0 is the
+     * "error" state, and -1 is the "end of word" state in a dictionary)
+     * @param row The row number of the current state
+     * @param col The column number of the input character (0 means "not a
+     * dictionary character")
+     * @return The row number of the new state to transition to
+     */
+    int16_t at(int32_t row, int32_t col) const;
+
+private:
+    /**
+     * Given (logical) row and column numbers, returns true if the
+     * cell in that position is populated
+     * @param row The LOGICAL row number of the cell
+     * @param col The PHYSICAL row number of the cell
+     * @return true if the cell in that position is populated
+     */
+    UBool cellIsPopulated(int32_t row, int32_t col) const;
+
+    /**
+     * Implementation of at() when we know the specified cell is populated.
+     * @param row The PHYSICAL row number of the cell
+     * @param col The PHYSICAL column number of the cell
+     * @return The value stored in the cell
+     */
+    int16_t internalAt(int32_t row, int32_t col) const;
+
+    // the following methods are never meant to be called and so are not defined
+    // (if you don't declare them, you get default implementations)
+    BreakDictionary(const BreakDictionary& that);
+    BreakDictionary& operator=(const BreakDictionary& that);
+};
+
+U_NAMESPACE_END
+
+#endif
diff --git a/source/common/brkiter.cpp b/source/common/brkiter.cpp
new file mode 100644
index 0000000..e4acde9
--- /dev/null
+++ b/source/common/brkiter.cpp
@@ -0,0 +1,533 @@
+/*
+*******************************************************************************
+* Copyright (C) 1997-2001, International Business Machines Corporation and    *
+* others. All Rights Reserved.                                                *
+*******************************************************************************
+*
+* File TXTBDRY.CPP
+*
+* Modification History:
+*
+*   Date        Name        Description
+*   02/18/97    aliu        Converted from OpenClass.  Added DONE.
+*   01/13/2000  helena      Added UErrorCode parameter to createXXXInstance methods.
+*****************************************************************************************
+*/
+
+// *****************************************************************************
+// This file was generated from the java source file BreakIterator.java
+// *****************************************************************************
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+#include "unicode/dbbi.h"
+#include "unicode/brkiter.h"
+#include "unicode/udata.h"
+#include "unicode/resbund.h"
+#include "cstring.h"
+#include "mutex.h"
+#include "iculserv.h"
+
+// *****************************************************************************
+// class BreakIterator
+// This class implements methods for finding the location of boundaries in text.
+// Instances of BreakIterator maintain a current position and scan over text
+// returning the index of characters where boundaries occur.
+// *****************************************************************************
+
+U_NAMESPACE_BEGIN
+
+const int32_t BreakIterator::DONE = (int32_t)-1;
+
+// -------------------------------------
+
+// Creates a break iterator for word breaks.
+BreakIterator*
+BreakIterator::createWordInstance(const Locale& key, UErrorCode& status)
+{
+  return createInstance(key, UBRK_WORD, status);
+}
+
+BreakIterator*
+BreakIterator::makeWordInstance(const Locale& key, UErrorCode& status)
+{
+    // WARNING: This routine is currently written specifically to handle only the
+    // default rules files and the alternate rules files for Thai.  This function
+    // will have to be made fully general at some time in the future!
+    BreakIterator* result = NULL;
+    const char* filename = "word";
+
+    if (U_FAILURE(status))
+        return NULL;
+
+    if (!uprv_strcmp(key.getLanguage(), "th"))
+    {
+        filename = "word_th";
+    }
+
+    UDataMemory* file = udata_open(NULL, "brk", filename, &status);
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    // The UDataMemory is adopted by the break iterator.
+
+    if(!uprv_strcmp(filename, "word_th")) {
+        filename = "thaidict.brk";
+        result = new DictionaryBasedBreakIterator(file, filename, status);
+    }
+    else {
+        result = new RuleBasedBreakIterator(file, status);
+    }
+    if (U_FAILURE(status)) {   // Sometimes redundant check, but simple.
+        if (result != NULL) {
+            delete result;
+        }
+        return NULL;
+    }
+    if (result == NULL) {
+        udata_close(file);
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+    
+    return result;
+}
+
+// -------------------------------------
+
+// Creates a break iterator  for line breaks.
+BreakIterator*
+BreakIterator::createLineInstance(const Locale& key, UErrorCode& status)
+{
+  return createInstance(key, UBRK_LINE, status);
+}
+
+BreakIterator*
+BreakIterator::makeLineInstance(const Locale& key, UErrorCode& status)
+{
+    // WARNING: This routine is currently written specifically to handle only the
+    // default rules files and the alternate rules files for Thai.  This function
+    // will have to be made fully general at some time in the future!
+    BreakIterator* result = NULL;
+    const char* filename = "line";
+
+    if (U_FAILURE(status))
+        return NULL;
+
+    if (!uprv_strcmp(key.getLanguage(), "th"))
+    {
+        filename = "line_th";
+    }
+
+    UDataMemory* file = udata_open(NULL, "brk", filename, &status);
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    // The UDataMemory is adopted by the break iterator.
+
+    if (!uprv_strcmp(key.getLanguage(), "th")) {
+        filename = "thaidict.brk";
+        result = new DictionaryBasedBreakIterator(file, filename, status);
+    }
+    else {
+        result = new RuleBasedBreakIterator(file, status);
+    }
+    if (U_FAILURE(status)) {   // Sometimes redundant check, but simple.
+        if (result != NULL) {
+            delete result;
+        }
+        return NULL;
+    }
+    if (result == NULL) {
+        udata_close(file);
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+    return result;
+}
+
+// -------------------------------------
+
+// Creates a break iterator  for character breaks.
+BreakIterator*
+BreakIterator::createCharacterInstance(const Locale& key, UErrorCode& status)
+{
+  return createInstance(key, UBRK_CHARACTER, status);
+}
+
+BreakIterator*
+BreakIterator::makeCharacterInstance(const Locale& /* key */, UErrorCode& status)
+{
+    // WARNING: This routine is currently written specifically to handle only the
+    // default rules files and the alternate rules files for Thai.  This function
+    // will have to be made fully general at some time in the future!
+    BreakIterator* result = NULL;
+    static const char filename[] = "char";
+
+    if (U_FAILURE(status))
+        return NULL;
+    UDataMemory* file = udata_open(NULL, "brk", filename, &status);
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    // The UDataMemory is adopted by the break iterator.
+
+    result = new RuleBasedBreakIterator(file, status);
+    
+    if (U_FAILURE(status)) {   // Sometimes redundant check, but simple.
+        if (result != NULL) {
+            delete result;
+        }
+        return NULL;
+    }
+    if (result == NULL) {
+        udata_close(file);
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+    return result;
+}
+
+// -------------------------------------
+
+// Creates a break iterator  for sentence breaks.
+BreakIterator*
+BreakIterator::createSentenceInstance(const Locale& key, UErrorCode& status)
+{
+  return createInstance(key, UBRK_SENTENCE, status);
+}
+
+BreakIterator*
+BreakIterator::makeSentenceInstance(const Locale& /*key */, UErrorCode& status)
+{
+    // WARNING: This routine is currently written specifically to handle only the
+    // default rules files and the alternate rules files for Thai.  This function
+    // will have to be made fully general at some time in the future!
+    BreakIterator* result = NULL;
+    static const char filename[] = "sent";
+
+    if (U_FAILURE(status))
+        return NULL;
+    UDataMemory* file = udata_open(NULL, "brk", filename, &status);
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    // The UDataMemory is adopted by the break iterator.
+
+    result = new RuleBasedBreakIterator(file, status);
+    if (U_FAILURE(status)) {   // Sometimes redundant check, but simple.
+        if (result != NULL) {
+            delete result;
+        }
+        return NULL;
+    }
+    if (result == NULL) {
+        udata_close(file);
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+
+    return result;
+}
+
+// -------------------------------------
+
+// Creates a break iterator for title casing breaks.
+BreakIterator*
+BreakIterator::createTitleInstance(const Locale& key, UErrorCode& status)
+{
+  return createInstance(key, UBRK_TITLE, status);
+}
+
+BreakIterator*
+BreakIterator::makeTitleInstance(const Locale& /* key */, UErrorCode& status)
+{
+    // WARNING: This routine is currently written specifically to handle only the
+    // default rules files.  This function will have to be made fully general
+    // at some time in the future!
+    BreakIterator* result = NULL;
+    static const char filename[] = "title";
+
+    if (U_FAILURE(status))
+        return NULL;
+    UDataMemory* file = udata_open(NULL, "brk", filename, &status);
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    // The UDataMemory is adopted by the break iterator.
+
+    result = new RuleBasedBreakIterator(file, status);
+    if (U_FAILURE(status)) {   // Sometimes redundant check, but simple.
+        if (result != NULL) {
+            delete result;
+        }
+        return NULL;
+    }
+    if (result == NULL) {
+        udata_close(file);
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+
+    return result;
+}
+
+// -------------------------------------
+
+// Gets all the available locales that has localized text boundary data.
+const Locale*
+BreakIterator::getAvailableLocales(int32_t& count)
+{
+    return Locale::getAvailableLocales(count);
+}
+
+// -------------------------------------
+// Gets the objectLocale display name in the default locale language.
+UnicodeString&
+BreakIterator::getDisplayName(const Locale& objectLocale,
+                             UnicodeString& name)
+{
+    return objectLocale.getDisplayName(name);
+}
+
+// -------------------------------------
+// Gets the objectLocale display name in the displayLocale language.
+UnicodeString&
+BreakIterator::getDisplayName(const Locale& objectLocale,
+                             const Locale& displayLocale,
+                             UnicodeString& name)
+{
+    return objectLocale.getDisplayName(displayLocale, name);
+}
+
+// ------------------------------------------
+//
+// Default constructor and destructor
+//
+//-------------------------------------------
+
+BreakIterator::BreakIterator()
+{
+    fBufferClone = FALSE;
+}
+
+BreakIterator::~BreakIterator()
+{
+}
+
+// ------------------------------------------
+//
+// Registration
+//
+//-------------------------------------------
+
+static ICULocaleService* gService = NULL;
+
+// -------------------------------------
+
+class ICUBreakIteratorFactory : public ICUResourceBundleFactory {
+protected:
+  virtual UObject* handleCreate(const Locale& loc, int32_t kind, const ICUService* service, UErrorCode& status) const {
+    return BreakIterator::makeInstance(loc, kind, status);
+  }
+};
+
+// -------------------------------------
+
+class ICUBreakIteratorService : public ICULocaleService {
+public:
+  ICUBreakIteratorService()
+    : ICULocaleService("Break Iterator")
+  {
+    UErrorCode status = U_ZERO_ERROR;
+    registerFactory(new ICUBreakIteratorFactory(), status);
+  }
+
+  virtual UObject* cloneInstance(UObject* instance) const {
+	  return ((BreakIterator*)instance)->clone();
+  }
+
+  virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* actualID, UErrorCode& status) const {
+	LocaleKey& lkey = (LocaleKey&)key;
+	int32_t kind = lkey.kind();
+	Locale loc;
+	lkey.currentLocale(loc);
+	return BreakIterator::makeInstance(loc, kind, status);
+  }
+
+  virtual UBool isDefault() const {
+	return countFactories() == 1;
+  }
+};
+
+// -------------------------------------
+
+static ICULocaleService* 
+getService(void)
+{
+    UBool needsInit;
+    umtx_lock(NULL);
+    needsInit = (UBool)(gService == NULL);
+    umtx_unlock(NULL);
+    
+    if (needsInit) {
+        ICULocaleService  *tService = new ICUBreakIteratorService();
+        umtx_lock(NULL);
+        if (gService == NULL) {
+            gService = tService;
+            tService = NULL;
+        }
+        umtx_unlock(NULL);
+        delete tService;
+    }
+    return gService;
+}
+
+// -------------------------------------
+
+static UBool
+hasService(void) 
+{
+  Mutex mutex;
+  return gService != NULL;
+}
+
+// -------------------------------------
+
+BreakIterator*
+BreakIterator::createInstance(const Locale& loc, UBreakIteratorType kind, UErrorCode& status)
+{
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    
+    u_init(&status);
+    if (hasService()) {
+      Locale validLoc;
+      BreakIterator *result = (BreakIterator*)gService->get(loc, kind, &validLoc, status);
+      uprv_strcpy(result->validLocale, validLoc.getName());
+      return result;
+    } else {
+        return makeInstance(loc, kind, status);
+    }
+}
+
+// -------------------------------------
+
+URegistryKey
+BreakIterator::registerInstance(BreakIterator* toAdopt, const Locale& locale, UBreakIteratorType kind, UErrorCode& status) 
+{
+  return getService()->registerInstance(toAdopt, locale, kind, status);
+}
+
+// -------------------------------------
+
+UBool 
+BreakIterator::unregister(URegistryKey key, UErrorCode& status) 
+{
+    if (U_SUCCESS(status)) {
+        if (hasService()) {
+            return gService->unregister(key, status);
+        }
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+    return FALSE;
+}
+
+// -------------------------------------
+
+StringEnumeration* 
+BreakIterator::getAvailableLocales(void)
+{
+  return getService()->getAvailableLocales();
+}
+
+// -------------------------------------
+
+BreakIterator* 
+BreakIterator::makeInstance(const Locale& loc, int32_t kind, UErrorCode& status)
+{
+  BreakIterator *result = NULL;
+    switch (kind) {
+    case UBRK_CHARACTER: 
+      result = BreakIterator::makeCharacterInstance(loc, status);
+      break;
+    case UBRK_WORD:
+      result = BreakIterator::makeWordInstance(loc, status);
+      break;
+    case UBRK_LINE:
+      result = BreakIterator::makeLineInstance(loc, status);
+      break;
+    case UBRK_SENTENCE:
+      result = BreakIterator::makeSentenceInstance(loc, status);
+      break;
+    case UBRK_TITLE:
+      result = BreakIterator::makeTitleInstance(loc, status);
+      break;
+    default:
+        if (U_SUCCESS(status)) {   
+            status = U_ILLEGAL_ARGUMENT_ERROR;
+        }
+        return NULL;
+    }
+    // this is more of a placeholder. All the break iterators have the same actual locale: root
+    // except the Thai one
+    ResourceBundle res(NULL, loc, status);
+    uprv_strcpy(result->validLocale, res.getLocale(ULOC_VALID_LOCALE, status).getName());
+    if(uprv_strcmp(loc.getLanguage(), "th") == 0) {
+      uprv_strcpy(result->actualLocale, "th");
+    } else {
+      uprv_strcpy(result->actualLocale, "root");
+    }
+    return result;
+}
+
+Locale 
+BreakIterator::getLocale(ULocDataLocaleType type, UErrorCode& status) const
+{
+  switch(type) {
+  case ULOC_VALID_LOCALE:
+      // TODO: need bufferClone problems fixed before this code can work.
+    return Locale(validLocale);
+    break;
+  case ULOC_ACTUAL_LOCALE:
+    return Locale(actualLocale);
+    break;
+  default:
+    status = U_UNSUPPORTED_ERROR;
+    return Locale("");
+  }
+}
+
+const char *
+BreakIterator::getLocaleInternal(ULocDataLocaleType type, UErrorCode& status) const
+{
+  switch(type) {
+  case ULOC_VALID_LOCALE:
+      // TODO: need bufferClone problems fixed before this code can work.
+    return validLocale;
+    break;
+  case ULOC_ACTUAL_LOCALE:
+    return actualLocale;
+    break;
+  default:
+    status = U_UNSUPPORTED_ERROR;
+    return NULL;
+  }
+}
+
+U_NAMESPACE_END
+
+// defined in ucln_cmn.h
+
+/**
+ * Release all static memory held by breakiterator.  
+ */
+U_CFUNC UBool breakiterator_cleanup(void) {
+  if (gService) {
+    delete gService;
+    gService = NULL;
+  }
+  return TRUE;
+}
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
+
+//eof
diff --git a/source/common/caniter.cpp b/source/common/caniter.cpp
new file mode 100644
index 0000000..05acfc1
--- /dev/null
+++ b/source/common/caniter.cpp
@@ -0,0 +1,703 @@
+/*
+ *****************************************************************************
+ * Copyright (C) 1996-2003, International Business Machines Corporation and  *
+ * others. All Rights Reserved.                                              *
+ *****************************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_NORMALIZATION
+
+#include "unicode/uset.h"
+#include "unicode/ustring.h"
+#include "hash.h"
+#include "unormimp.h"
+#include "unicode/caniter.h"
+#include "unicode/normlzr.h"
+#include "unicode/uchar.h"
+#include "cmemory.h"
+
+/**
+ * This class allows one to iterate through all the strings that are canonically equivalent to a given
+ * string. For example, here are some sample results:
+Results for: {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+1: \u0041\u030A\u0064\u0307\u0327
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+2: \u0041\u030A\u0064\u0327\u0307
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
+3: \u0041\u030A\u1E0B\u0327
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
+4: \u0041\u030A\u1E11\u0307
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
+5: \u00C5\u0064\u0307\u0327
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+6: \u00C5\u0064\u0327\u0307
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
+7: \u00C5\u1E0B\u0327
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
+8: \u00C5\u1E11\u0307
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
+9: \u212B\u0064\u0307\u0327
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+10: \u212B\u0064\u0327\u0307
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
+11: \u212B\u1E0B\u0327
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
+12: \u212B\u1E11\u0307
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
+ *<br>Note: the code is intended for use with small strings, and is not suitable for larger ones,
+ * since it has not been optimized for that situation.
+ *@author M. Davis
+ *@draft
+ */
+#if 0
+static UBool PROGRESS = FALSE;
+
+#include <stdio.h>
+#include "unicode/translit.h"
+
+UErrorCode status = U_ZERO_ERROR;
+
+// Just for testing - remove, not thread safe.
+static const char* UToS(const UnicodeString &source) {
+  static char buffer[256];
+  buffer[source.extract(0, source.length(), buffer)] = 0;
+  return buffer;
+}
+
+static const UnicodeString &Tr(const UnicodeString &source) {
+  static Transliterator *NAME = Transliterator::createInstance("name", UTRANS_FORWARD, status);
+  static UnicodeString result;
+  result = source;
+  NAME->transliterate(result);
+  return result;
+}
+#endif
+// public
+
+U_NAMESPACE_BEGIN
+
+// TODO: add boilerplate methods.
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CanonicalIterator)
+
+/**
+ *@param source string to get results for
+ */
+CanonicalIterator::CanonicalIterator(const UnicodeString &sourceStr, UErrorCode &status) :
+    pieces(NULL),
+    pieces_length(0),
+    pieces_lengths(NULL),
+    current(NULL),
+    current_length(0)
+{
+    if(U_SUCCESS(status)) {
+      setSource(sourceStr, status);
+    }
+}
+
+CanonicalIterator::~CanonicalIterator() {
+  cleanPieces();
+}
+
+void CanonicalIterator::cleanPieces() {
+  int32_t i = 0;
+  if(pieces != NULL) {
+    for(i = 0; i < pieces_length; i++) {
+      if(pieces[i] != NULL) {
+        delete[] pieces[i];
+      }
+    }
+    uprv_free(pieces);
+    pieces = NULL;
+    if(pieces_lengths != NULL) {
+      uprv_free(pieces_lengths);
+    }
+    pieces_lengths = NULL;
+    if(current != NULL) {
+      uprv_free(current);
+    }
+    current = NULL;
+  }
+}
+
+/**
+ *@return gets the source: NOTE: it is the NFD form of source
+ */
+UnicodeString CanonicalIterator::getSource() {
+  return source;
+}
+
+/**
+ * Resets the iterator so that one can start again from the beginning.
+ */
+void CanonicalIterator::reset() {
+    done = FALSE;
+    for (int i = 0; i < current_length; ++i) {
+        current[i] = 0;
+    }
+}
+
+/**
+ *@return the next string that is canonically equivalent. The value null is returned when
+ * the iteration is done.
+ */
+UnicodeString CanonicalIterator::next() {
+    int32_t i = 0;
+
+    if (done) {
+      buffer.setToBogus();
+      return buffer;
+    }
+
+    // delete old contents
+    buffer.remove();
+
+    // construct return value
+
+    for (i = 0; i < pieces_length; ++i) {
+        buffer.append(pieces[i][current[i]]);
+    }
+    //String result = buffer.toString(); // not needed
+
+    // find next value for next time
+
+    for (i = current_length - 1; ; --i) {
+        if (i < 0) {
+            done = TRUE;
+            break;
+        }
+        current[i]++;
+        if (current[i] < pieces_lengths[i]) break; // got sequence
+        current[i] = 0;
+    }
+    return buffer;
+}
+
+/**
+ *@param set the source string to iterate against. This allows the same iterator to be used
+ * while changing the source string, saving object creation.
+ */
+void CanonicalIterator::setSource(const UnicodeString &newSource, UErrorCode &status) {
+    Normalizer::normalize(newSource, UNORM_NFD, 0, source, status);
+    if(U_FAILURE(status)) {
+      return;
+    }
+    done = FALSE;
+
+    cleanPieces();
+
+    // catch degenerate case
+    if (newSource.length() == 0) {
+        pieces_length = 1;
+        pieces = (UnicodeString **)uprv_malloc(sizeof(UnicodeString *));
+        /* test for NULL */
+        if (pieces == NULL) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+        current_length = 1;
+        current = (int32_t*)uprv_malloc(1 * sizeof(int32_t));
+        /* test for NULL */
+        if (current == NULL) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            uprv_free(pieces);
+            pieces = NULL;
+            return;
+        }
+        current[0] = 0;
+        pieces[0] = new UnicodeString[1];
+        /* test for NULL */
+        if (pieces[0] == 0) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            uprv_free(pieces);
+            pieces = NULL;
+            uprv_free(current);
+            return;
+        }
+        pieces[0][0] = UnicodeString("");
+        pieces_lengths = (int32_t*)uprv_malloc(1 * sizeof(int32_t));
+        /* test for NULL */
+        if (pieces_lengths == 0) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            uprv_free(pieces);
+            pieces = NULL;
+            uprv_free(current);
+            return;
+        }
+        pieces_lengths[0] = 1;
+        return;
+    }
+
+
+    UnicodeString *list = new UnicodeString[source.length()];
+    /* test for NULL */
+    if (list == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+
+    int32_t list_length = 0;
+    UChar32 cp = 0;
+    int32_t start = 0;
+    // i should initialy be the number of code units at the 
+    // start of the string
+    int32_t i = UTF16_CHAR_LENGTH(source.char32At(0));
+    //int32_t i = 1;
+    // find the segments
+    // This code iterates through the source string and 
+    // extracts segments that end up on a codepoint that
+    // doesn't start any decompositions. (Analysis is done
+    // on the NFD form - see above).
+    for (; i < source.length(); i += UTF16_CHAR_LENGTH(cp)) {
+        cp = source.char32At(i);
+        if (unorm_isCanonSafeStart(cp)) {
+            source.extract(start, i-start, list[list_length++]); // add up to i
+            start = i;
+        }
+    }
+    source.extract(start, i-start, list[list_length++]); // add last one
+
+
+    // allocate the arrays, and find the strings that are CE to each segment
+    pieces = (UnicodeString **)uprv_malloc(list_length * sizeof(UnicodeString *));
+    /* test for NULL */
+    if (pieces == NULL) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        delete[] list;
+        return;
+    }
+    pieces_length = list_length;
+    pieces_lengths = (int32_t*)uprv_malloc(list_length * sizeof(int32_t));
+    /* test for NULL */
+    if (pieces_lengths == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        delete[] list;
+        uprv_free(pieces);
+        pieces = NULL;
+        return;
+    }
+
+    current_length = list_length;
+    current = (int32_t*)uprv_malloc(list_length * sizeof(int32_t));
+    /* test for NULL */
+    if (current == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        delete[] list;
+        uprv_free(pieces);
+        pieces = NULL;
+        uprv_free(pieces_lengths);
+        return;
+    }
+    for (i = 0; i < current_length; i++) {
+      current[i] = 0;
+    }
+    // for each segment, get all the combinations that can produce 
+    // it after NFD normalization
+    for (i = 0; i < pieces_length; ++i) {
+        //if (PROGRESS) printf("SEGMENT\n");
+        pieces[i] = getEquivalents(list[i], pieces_lengths[i], status);
+    }
+
+    delete[] list;
+}
+
+/**
+ * Dumb recursive implementation of permutation.
+ * TODO: optimize
+ * @param source the string to find permutations for
+ * @return the results in a set.
+ */
+void CanonicalIterator::permute(UnicodeString &source, UBool skipZeros, Hashtable *result, UErrorCode &status) {
+    if(U_FAILURE(status)) {
+      return;
+    }
+    //if (PROGRESS) printf("Permute: %s\n", UToS(Tr(source)));
+    int32_t i = 0;
+
+    // optimization:
+    // if zero or one character, just return a set with it
+    // we check for length < 2 to keep from counting code points all the time
+    if (source.length() <= 2 && source.countChar32() <= 1) {
+      UnicodeString *toPut = new UnicodeString(source);
+      /* test for NULL */
+      if (toPut == 0) {
+          status = U_MEMORY_ALLOCATION_ERROR;
+          return;
+      }
+      result->put(source, toPut, status);
+      return;
+    }
+
+    // otherwise iterate through the string, and recursively permute all the other characters
+    UChar32 cp;
+    Hashtable *subpermute = new Hashtable(FALSE, status);
+    /* test for NULL */
+    if (subpermute == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    if (U_SUCCESS(status)) {
+        subpermute->setValueDeleter(uhash_deleteUnicodeString);
+    }
+
+    for (i = 0; i < source.length(); i += UTF16_CHAR_LENGTH(cp)) {
+        cp = source.char32At(i);
+        const UHashElement *ne = NULL;
+        int32_t el = -1;
+        UnicodeString subPermuteString = source;
+
+        // optimization:
+        // if the character is canonical combining class zero,
+        // don't permute it
+        if (skipZeros && i != 0 && u_getCombiningClass(cp) == 0) {
+            //System.out.println("Skipping " + Utility.hex(UTF16.valueOf(source, i)));
+            continue;
+        }
+
+        subpermute->removeAll();
+
+        // see what the permutations of the characters before and after this one are
+        //Hashtable *subpermute = permute(source.substring(0,i) + source.substring(i + UTF16.getCharCount(cp)));
+        permute(subPermuteString.replace(i, UTF16_CHAR_LENGTH(cp), NULL, 0), skipZeros, subpermute, status);
+        /* Test for buffer overflows */
+        if(U_FAILURE(status)) {
+            delete subpermute;
+            return;
+        }
+        // The upper replace is destructive. The question is do we have to make a copy, or we don't care about the contents 
+        // of source at this point.
+
+        // prefix this character to all of them
+        ne = subpermute->nextElement(el);
+        while (ne != NULL) {
+          UnicodeString *permRes = (UnicodeString *)(ne->value.pointer);
+          UnicodeString *chStr = new UnicodeString(cp);
+          //test for  NULL
+          if (chStr == NULL) {
+              status = U_MEMORY_ALLOCATION_ERROR;
+              delete subpermute;
+              return;
+          }
+            chStr->append(*permRes); //*((UnicodeString *)(ne->value.pointer));
+            //if (PROGRESS) printf("  Piece: %s\n", UToS(*chStr));
+            result->put(*chStr, chStr, status);
+            ne = subpermute->nextElement(el);
+        }
+    }
+    delete subpermute;
+    //return result;
+}
+
+// privates
+
+// we have a segment, in NFD. Find all the strings that are canonically equivalent to it.
+UnicodeString* CanonicalIterator::getEquivalents(const UnicodeString &segment, int32_t &result_len, UErrorCode &status) {
+    //private String[] getEquivalents(String segment)
+
+    Hashtable *result = new Hashtable(FALSE, status);
+    /* test for NULL */
+    if (result == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return 0;
+    }
+    if (U_SUCCESS(status)) {
+        result->setValueDeleter(uhash_deleteUnicodeString);
+    }
+    UChar USeg[256];
+    int32_t segLen = segment.extract(USeg, 256, status);
+    Hashtable *basic = getEquivalents2(USeg, segLen, status);
+    //Hashtable *basic = getEquivalents2(segment, segLen, status);
+
+    // now get all the permutations
+    // add only the ones that are canonically equivalent
+    // TODO: optimize by not permuting any class zero.
+
+    Hashtable *permutations = new Hashtable(FALSE, status);
+    /* test for NULL */
+    if (permutations == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        delete result;
+        delete basic;
+        return 0;
+    }
+    if (U_SUCCESS(status)) {
+        permutations->setValueDeleter(uhash_deleteUnicodeString);
+    }
+
+    const UHashElement *ne = NULL;
+    int32_t el = -1;
+    //Iterator it = basic.iterator();
+    ne = basic->nextElement(el);
+    //while (it.hasNext())
+    while (ne != NULL) {
+        //String item = (String) it.next();
+        UnicodeString item = *((UnicodeString *)(ne->value.pointer));
+
+        permutations->removeAll();
+        permute(item, CANITER_SKIP_ZEROES, permutations, status);
+        const UHashElement *ne2 = NULL;
+        int32_t el2 = -1;
+        //Iterator it2 = permutations.iterator();
+        ne2 = permutations->nextElement(el2);
+        //while (it2.hasNext())
+        while (ne2 != NULL) {
+            //String possible = (String) it2.next();
+            //UnicodeString *possible = new UnicodeString(*((UnicodeString *)(ne2->value.pointer)));
+            UnicodeString possible(*((UnicodeString *)(ne2->value.pointer)));
+            UnicodeString attempt;
+            Normalizer::normalize(possible, UNORM_NFD, 0, attempt, status);
+
+            // TODO: check if operator == is semanticaly the same as attempt.equals(segment)
+            if (attempt==segment) {
+                //if (PROGRESS) printf("Adding Permutation: %s\n", UToS(Tr(*possible)));
+                // TODO: use the hashtable just to catch duplicates - store strings directly (somehow).
+                result->put(possible, new UnicodeString(possible), status); //add(possible);
+            } else {
+                //if (PROGRESS) printf("-Skipping Permutation: %s\n", UToS(Tr(*possible)));
+            }
+
+          ne2 = permutations->nextElement(el2);
+        }
+        ne = basic->nextElement(el);
+    }
+
+    /* Test for buffer overflows */
+    if(U_FAILURE(status)) {
+        delete result;
+        delete permutations;
+        delete basic;
+        return 0;
+    }
+    // convert into a String[] to clean up storage
+    //String[] finalResult = new String[result.size()];
+    UnicodeString *finalResult = NULL;
+    int32_t resultCount;
+    if((resultCount = result->count())) {
+      finalResult = new UnicodeString[resultCount];
+    } else {
+      status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+    /* test for NULL */
+    if (finalResult == 0) {
+      if(U_SUCCESS(status)) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+      }
+      delete result;
+      delete permutations;
+      delete basic;
+      return 0;
+    }
+    //result.toArray(finalResult);
+    result_len = 0;
+    el = -1;
+    ne = result->nextElement(el);
+    while(ne != NULL) {
+      UnicodeString finResult = *((UnicodeString *)(ne->value.pointer));
+      finalResult[result_len++] = finResult;
+      ne = result->nextElement(el);
+    }
+
+
+    delete permutations;
+    delete basic;
+    delete result;
+    return finalResult;
+}
+
+Hashtable *CanonicalIterator::getEquivalents2(const UChar *segment, int32_t segLen, UErrorCode &status) {
+//Hashtable *CanonicalIterator::getEquivalents2(const UnicodeString &segment, int32_t segLen, UErrorCode &status) {
+
+    Hashtable *result = new Hashtable(FALSE, status);
+    /* test for NULL */
+    if (result == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return 0;
+    }
+    if (U_SUCCESS(status)) {
+        result->setValueDeleter(uhash_deleteUnicodeString);
+    }
+
+    //if (PROGRESS) printf("Adding: %s\n", UToS(Tr(segment)));
+
+    UnicodeString toPut(segment, segLen);
+
+    result->put(toPut, new UnicodeString(toPut), status);
+
+    USerializedSet starts;
+
+    // cycle through all the characters
+    UChar32 cp, end = 0;
+    int32_t i = 0, j;
+    for (i = 0; i < segLen; i += UTF16_CHAR_LENGTH(cp)) {
+        // see if any character is at the start of some decomposition
+        UTF_GET_CHAR(segment, 0, i, segLen, cp);
+        if (!unorm_getCanonStartSet(cp, &starts)) {
+          continue;
+        }
+        // if so, see which decompositions match 
+        for(j = 0, cp = end+1; cp <= end || uset_getSerializedRange(&starts, j++, &cp, &end); ++cp) {
+            //Hashtable *remainder = extract(cp, segment, segLen, i, status);
+            Hashtable *remainder = extract(cp, segment, segLen, i, status);
+            if (remainder == NULL) continue;
+
+            // there were some matches, so add all the possibilities to the set.
+            UnicodeString prefix(segment, i);
+            prefix += cp;
+
+            const UHashElement *ne = NULL;
+            int32_t el = -1;
+            ne = remainder->nextElement(el);
+            while (ne != NULL) {
+                UnicodeString item = *((UnicodeString *)(ne->value.pointer));
+                UnicodeString *toAdd = new UnicodeString(prefix);
+                /* test for NULL */
+                if (toAdd == 0) {
+                    status = U_MEMORY_ALLOCATION_ERROR;
+                    delete result;
+                    delete remainder;
+                    return 0;
+                }
+                *toAdd += item;
+                result->put(*toAdd, toAdd, status);
+
+                //if (PROGRESS) printf("Adding: %s\n", UToS(Tr(*toAdd)));
+
+                ne = remainder->nextElement(el);
+            }
+
+            delete remainder;
+        }
+    }
+
+    /* Test for buffer overflows */
+    if(U_FAILURE(status)) {
+        return 0;
+    }
+    return result;
+}
+
+/**
+ * See if the decomposition of cp2 is at segment starting at segmentPos 
+ * (with canonical rearrangment!)
+ * If so, take the remainder, and return the equivalents 
+ */
+Hashtable *CanonicalIterator::extract(UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status) {
+//Hashtable *CanonicalIterator::extract(UChar32 comp, const UnicodeString &segment, int32_t segLen, int32_t segmentPos, UErrorCode &status) {
+    //if (PROGRESS) printf(" extract: %s, ", UToS(Tr(UnicodeString(comp))));
+    //if (PROGRESS) printf("%s, %i\n", UToS(Tr(segment)), segmentPos);
+
+    const int32_t bufSize = 256;
+    int32_t bufLen = 0;
+    UChar temp[bufSize];
+
+    const int32_t decompSize = 64;
+    int32_t inputLen = 0;
+    UChar decomp[decompSize];
+
+    U16_APPEND_UNSAFE(temp, inputLen, comp);
+    int32_t decompLen = unorm_getDecomposition(comp, FALSE, decomp, decompSize);
+    if(decompLen < 0) {
+        decompLen = -decompLen;
+    }
+
+    UChar *buff = temp+inputLen;
+
+    // See if it matches the start of segment (at segmentPos)
+    UBool ok = FALSE;
+    UChar32 cp;
+    int32_t decompPos = 0;
+    UChar32 decompCp;
+    UTF_NEXT_CHAR(decomp, decompPos, decompLen, decompCp);
+
+    int32_t i;
+    UBool overflow = FALSE;
+
+    i = segmentPos;
+    while(i < segLen) {
+      UTF_NEXT_CHAR(segment, i, segLen, cp);
+
+        if (cp == decompCp) { // if equal, eat another cp from decomp
+
+            //if (PROGRESS) printf("  matches: %s\n", UToS(Tr(UnicodeString(cp))));
+
+            if (decompPos == decompLen) { // done, have all decomp characters!
+                //u_strcat(buff+bufLen, segment+i);
+                uprv_memcpy(buff+bufLen, segment+i, (segLen-i)*sizeof(UChar));
+                bufLen+=segLen-i;
+
+                ok = TRUE;
+                break;
+            }
+            UTF_NEXT_CHAR(decomp, decompPos, decompLen, decompCp);
+        } else {
+            //if (PROGRESS) printf("  buffer: %s\n", UToS(Tr(UnicodeString(cp))));
+
+            // brute force approach
+
+            U16_APPEND(buff, bufLen, bufSize, cp, overflow);
+
+            if(overflow) {
+                /*
+                 * ### TODO handle buffer overflow
+                 * The buffer is large, but an overflow may still happen with
+                 * unusual input (many combining marks?).
+                 * Reallocate buffer and continue.
+                 * markus 20020929
+                 */
+
+                overflow = FALSE;
+            }
+
+            /* TODO: optimize
+            // since we know that the classes are monotonically increasing, after zero
+            // e.g. 0 5 7 9 0 3
+            // we can do an optimization
+            // there are only a few cases that work: zero, less, same, greater
+            // if both classes are the same, we fail
+            // if the decomp class < the segment class, we fail
+
+            segClass = getClass(cp);
+            if (decompClass <= segClass) return null;
+            */
+        }
+    }
+    if (!ok) return NULL; // we failed, characters left over
+
+    //if (PROGRESS) printf("Matches\n");
+
+    if (bufLen == 0) {
+      Hashtable *result = new Hashtable(FALSE, status);
+      /* test for NULL */
+      if (result == 0) {
+          status = U_MEMORY_ALLOCATION_ERROR;
+          return 0;
+      }
+      result->setValueDeleter(uhash_deleteUnicodeString);
+      result->put(UnicodeString(), new UnicodeString(), status);
+      return result; // succeed, but no remainder
+    }
+
+    // brute force approach
+    // check to make sure result is canonically equivalent
+    int32_t tempLen = inputLen + bufLen;
+
+    UChar trial[bufSize];
+    unorm_decompose(trial, bufSize, temp, tempLen, FALSE, 0, &status);
+
+    /* Test for buffer overflows */
+    if(U_FAILURE(status)) {
+        return 0;
+    }
+
+    if(uprv_memcmp(segment+segmentPos, trial, (segLen - segmentPos)*sizeof(UChar)) != 0) {
+      return NULL;
+    }
+
+    return getEquivalents2(buff, bufLen, status);
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_NORMALIZATION */
diff --git a/source/common/chariter.cpp b/source/common/chariter.cpp
new file mode 100644
index 0000000..d0bd961
--- /dev/null
+++ b/source/common/chariter.cpp
@@ -0,0 +1,90 @@
+/*
+**********************************************************************
+*   Copyright (C) 1999-2002, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+**********************************************************************
+*/
+
+#include "unicode/chariter.h"
+
+U_NAMESPACE_BEGIN
+
+ForwardCharacterIterator::~ForwardCharacterIterator() {}
+
+
+CharacterIterator::CharacterIterator()
+: textLength(0), pos(0), begin(0), end(0) {
+}
+
+CharacterIterator::CharacterIterator(int32_t length)
+: textLength(length), pos(0), begin(0), end(length) {
+    if(textLength < 0) {
+        textLength = end = 0;
+    }
+}
+
+CharacterIterator::CharacterIterator(int32_t length, int32_t position)
+: textLength(length), pos(position), begin(0), end(length) {
+    if(textLength < 0) {
+        textLength = end = 0;
+    }
+    if(pos < 0) {
+        pos = 0;
+    } else if(pos > end) {
+        pos = end;
+    }
+}
+
+CharacterIterator::CharacterIterator(int32_t length, int32_t textBegin, int32_t textEnd, int32_t position)
+: textLength(length), pos(position), begin(textBegin), end(textEnd) {
+    if(textLength < 0) {
+        textLength = 0;
+    }
+    if(begin < 0) {
+        begin = 0;
+    } else if(begin > textLength) {
+        begin = textLength;
+    }
+    if(end < begin) {
+        end = begin;
+    } else if(end > textLength) {
+        end = textLength;
+    }
+    if(pos < begin) {
+        pos = begin;
+    } else if(pos > end) {
+        pos = end;
+    }
+}
+
+CharacterIterator::CharacterIterator(const CharacterIterator &that) :
+ForwardCharacterIterator(that),
+textLength(that.textLength), pos(that.pos), begin(that.begin), end(that.end)
+{
+}
+
+CharacterIterator &
+CharacterIterator::operator=(const CharacterIterator &that) {
+    ForwardCharacterIterator::operator=(that);
+    textLength = that.textLength;
+    pos = that.pos;
+    begin = that.begin;
+    end = that.end;
+    return *this;
+}
+
+// implementing first[32]PostInc() directly in a subclass should be faster
+// but these implementations make subclassing a little easier
+UChar
+CharacterIterator::firstPostInc(void) {
+    setToStart();
+    return nextPostInc();
+}
+
+UChar32
+CharacterIterator::first32PostInc(void) {
+    setToStart();
+    return next32PostInc();
+}
+
+U_NAMESPACE_END
diff --git a/source/common/charstr.h b/source/common/charstr.h
new file mode 100644
index 0000000..9c7ca3f
--- /dev/null
+++ b/source/common/charstr.h
@@ -0,0 +1,63 @@
+/*
+**********************************************************************
+*   Copyright (c) 2001, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+**********************************************************************
+*   Date        Name        Description
+*   11/19/2001  aliu        Creation.
+**********************************************************************
+*/
+
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+#include "unicode/unistr.h"
+#include "cmemory.h"
+
+//--------------------------------------------------------------------
+// class CharString
+//
+// This is a tiny wrapper class that is used internally to make a
+// UnicodeString look like a const char*.  It can be allocated on the
+// stack.  It only creates a heap buffer if it needs to.
+//--------------------------------------------------------------------
+
+U_NAMESPACE_BEGIN
+
+class U_COMMON_API CharString : public UMemory {
+public:
+    // Constructor
+    //     @param  str    The unicode string to be converted to char *
+    //     @param  codepage   The char * code page.  ""   for invariant conversion.
+    //                                               NULL for default code page.
+    inline CharString(const UnicodeString& str, const char *codepage = "");
+    inline ~CharString();
+    inline operator const char*() const { return ptr; }
+
+private:
+    char buf[128];
+    char* ptr;
+
+    CharString(const CharString &other); // forbid copying of this class
+    CharString &operator=(const CharString &other); // forbid copying of this class
+};
+
+inline CharString::CharString(const UnicodeString& str, const char *codepage) {
+    int32_t    len;
+    ptr = buf;
+    len = str.extract(0, 0x7FFFFFFF, buf ,sizeof(buf)-1, codepage);
+    buf[sizeof(buf)-1] = 0;  // extract does not add null if it thinks there is no space for it.
+    if (len >= sizeof(buf)-1) {
+        ptr = (char *)uprv_malloc(len+1);
+        str.extract(0, 0x7FFFFFFF, ptr, len+1, codepage);
+    }
+}
+
+inline CharString::~CharString() {
+    if (ptr != buf) {
+        uprv_free(ptr);
+    }
+}
+
+U_NAMESPACE_END
+
+//eof
diff --git a/source/common/cmemory.c b/source/common/cmemory.c
new file mode 100644
index 0000000..c6d9125
--- /dev/null
+++ b/source/common/cmemory.c
@@ -0,0 +1,126 @@
+/*
+******************************************************************************
+*
+*   Copyright (C) 2002-2003, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+******************************************************************************
+*
+* File cmemory.c      ICU Heap allocation.
+*                     All ICU heap allocation, both for C and C++ new of ICU
+*                     class types, comes through these functions.
+*
+*                     If you have a need to replace ICU allocation, this is the
+*                     place to do it.
+*
+*                     Note that uprv_malloc(0) returns a non-NULL pointer, and
+*                     that a subsequent free of that pointer value is a NOP.
+*
+******************************************************************************
+*/
+#include "cmemory.h"
+#include "unicode/uclean.h"
+
+/* uprv_malloc(0) returns a pointer to this read-only data. */                
+static const int32_t zeroMem[] = {0, 0, 0, 0, 0, 0};
+
+/* Function Pointers for user-supplied heap functions  */
+static const void     *pContext;
+static UMemAllocFn    *pAlloc;
+static UMemReallocFn  *pRealloc;
+static UMemFreeFn     *pFree;
+
+/* Flag indicating whether any heap allocations have happened.
+ *   Used to prevent changing out the heap functions after allocations have been made */
+static UBool   gHeapInUse;
+
+U_CAPI void * U_EXPORT2
+uprv_malloc(size_t s) {
+    if (s > 0) {
+        gHeapInUse = TRUE;
+        if (pAlloc) {
+            return (*pAlloc)(pContext, s);
+        } else {
+            return malloc(s);
+        }
+    } else {
+        return (void *)zeroMem;
+    }
+}
+
+U_CAPI void * U_EXPORT2
+uprv_realloc(void * buffer, size_t size) {
+    if (buffer == zeroMem) {
+        return uprv_malloc(size);
+    } else if (size == 0) {
+        if (pFree) {
+            (*pFree)(pContext, buffer);
+        } else {
+            free(buffer);
+        }
+        return (void *)zeroMem;
+    } else {
+        gHeapInUse = TRUE;
+        if (pRealloc) {
+            return (*pRealloc)(pContext, buffer, size);
+        } else {
+            return realloc(buffer, size);
+        }
+    }
+}
+
+U_CAPI void U_EXPORT2
+uprv_free(void *buffer) {
+    if (buffer != zeroMem) {
+        if (pFree) {
+            (*pFree)(pContext, buffer);
+        } else {
+            free(buffer);
+        }
+    }
+}
+
+U_CAPI void U_EXPORT2
+u_setMemoryFunctions(const void *context, UMemAllocFn *a, UMemReallocFn *r, UMemFreeFn *f,  UErrorCode *status)
+{
+    if (U_FAILURE(*status)) {
+        return;
+    }
+    if (a==NULL || r==NULL || f==NULL) {
+        *status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+    if (gHeapInUse) {
+        *status = U_INVALID_STATE_ERROR;
+        return;
+    }
+    pContext  = context;
+    pAlloc    = a;
+    pRealloc  = r;
+    pFree     = f;
+}
+
+
+U_CFUNC UBool cmemory_cleanup(void) {
+    pContext   = NULL;
+    pAlloc     = NULL;
+    pRealloc   = NULL;
+    pFree      = NULL;
+    gHeapInUse = FALSE;
+    return TRUE;
+}
+
+
+/*
+ *   gHeapInUse
+ *       Return True if ICU has allocated any memory.
+ *       Used by u_SetMutexFunctions() and similar to verify that ICU has not
+ *               been used, that it is in a pristine initial state.
+ */
+U_CFUNC UBool cmemory_inUse() {
+    return gHeapInUse;
+}
+
+U_CFUNC void cmemory_clearInUse() {
+    gHeapInUse = FALSE;
+}
diff --git a/source/common/cmemory.h b/source/common/cmemory.h
new file mode 100644
index 0000000..81624ef
--- /dev/null
+++ b/source/common/cmemory.h
@@ -0,0 +1,92 @@
+/*
+******************************************************************************
+*
+*   Copyright (C) 1997-2001, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+******************************************************************************
+*
+* File CMEMORY.H
+*
+*  Contains stdlib.h/string.h memory functions
+*
+* @author       Bertrand A. Damiba
+*
+* Modification History:
+*
+*   Date        Name        Description
+*   6/20/98     Bertrand    Created.
+*  05/03/99     stephen     Changed from functions to macros.
+*
+******************************************************************************
+*/
+
+#ifndef CMEMORY_H
+#define CMEMORY_H
+
+#include "unicode/utypes.h"
+#include <stdlib.h>
+#include <string.h>
+
+
+#define uprv_memcpy(dst, src, size) U_STANDARD_CPP_NAMESPACE memcpy(dst, src, size)
+#define uprv_memmove(dst, src, size) U_STANDARD_CPP_NAMESPACE memmove(dst, src, size)
+#define uprv_memset(buffer, mark, size) U_STANDARD_CPP_NAMESPACE memset(buffer, mark, size)
+#define uprv_memcmp(buffer1, buffer2, size) U_STANDARD_CPP_NAMESPACE memcmp(buffer1, buffer2,size)
+
+U_CAPI void * U_EXPORT2
+uprv_malloc(size_t s);
+
+U_CAPI void * U_EXPORT2
+uprv_realloc(void *mem, size_t size);
+
+U_CAPI void U_EXPORT2
+uprv_free(void *mem);
+
+/**
+ * This should align the memory properly on any machine.
+ * This is very useful for the safeClone functions.
+ */
+typedef union {
+    long    t1;
+    double  t2;
+    void   *t3;
+} UAlignedMemory;
+
+/**
+ * Get the amount of bytes that a pointer is off by from
+ * the previous aligned pointer
+ */
+#define U_ALIGNMENT_OFFSET(ptr) (((size_t)ptr) & (sizeof(UAlignedMemory) - 1))
+
+/**
+ * Get the amount of bytes to add to a pointer
+ * in order to get the next aligned address
+ */
+#define U_ALIGNMENT_OFFSET_UP(ptr) (sizeof(UAlignedMemory) - U_ALIGNMENT_OFFSET(ptr))
+
+/**
+  *  Indicate whether the ICU allocation functions have been used.
+  *  This is used to determine whether ICU is in an initial, unused state.
+  */
+U_CFUNC UBool 
+cmemory_inUse();
+
+/**
+  *  Mark the ICU heap as not being in use, even if it is.
+  *  Needed so that we can ignore any allocations triggered by ICU 
+  *    static initialization, and still pretend that we are in a pristine state.
+  *    TODO:  this is awkward.  Think about something cleaner.
+  */
+U_CFUNC void 
+cmemory_clearInUse();
+
+/**
+  *  Heap clean up function, called from u_cleanup()
+  *    Clears any user heap functions from u_setMemoryFunctions()
+  *    Does NOT deallocate any remaining allocated memory.
+  */
+U_CFUNC UBool 
+cmemory_cleanup(void);
+
+#endif
diff --git a/source/common/common.dsp b/source/common/common.dsp
new file mode 100644
index 0000000..1f25289
--- /dev/null
+++ b/source/common/common.dsp
@@ -0,0 +1,3562 @@
+# Microsoft Developer Studio Project File - Name="common" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=common - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "common.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "common.mak" CFG="common - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "common - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "common - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "common - Win64 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "common - Win64 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\lib\"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /FD /c
+# ADD CPP /nologo /G6 /MD /Za /W3 /GX /Zi /O2 /Ob2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /D "U_COMMON_IMPLEMENTATION" /D "UDATA_STATIC_LIB" /FR /FD /GF /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /machine:I386 /out:"..\..\bin\icuuc28.dll" /implib:"..\..\lib\icuuc.lib" /libpath:"..\..\lib"
+# SUBTRACT LINK32 /pdb:none /debug
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\lib\"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /FD /GZ /c
+# ADD CPP /nologo /G6 /MDd /Za /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /D "U_COMMON_IMPLEMENTATION" /D "UDATA_STATIC_LIB" /D "RBBI_DEBUG" /FR /FD /GF /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /debug /machine:I386 /out:"..\..\bin\icuuc28d.dll" /implib:"..\..\lib\icuucd.lib" /pdbtype:sept /libpath:"..\..\lib"
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\lib\"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /FD /c
+# ADD CPP /nologo /MD /Za /W3 /GX /Zi /O2 /D "NDEBUG" /D "WIN64" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /D "U_COMMON_IMPLEMENTATION" /D "UDATA_STATIC_LIB" /D "_IA64_" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /GF /QIA64_fmaopt /Zm600 /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win64
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win64
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:IX86 /machine:IA64
+# ADD LINK32 icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /machine:IX86 /out:"..\..\bin\icuuc28.dll" /implib:"..\..\lib\icuuc.lib" /libpath:"..\..\lib" /machine:IA64
+# SUBTRACT LINK32 /debug
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\lib\"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN64" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /FD /GZ /c
+# ADD CPP /nologo /MDd /Za /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN64" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /D "U_COMMON_IMPLEMENTATION" /D "UDATA_STATIC_LIB" /D "_IA64_" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FR /FD /GF /GZ /QIA64_fmaopt /Zm600 /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win64
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win64
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:IX86 /pdbtype:sept /machine:IA64
+# ADD LINK32 icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /incremental:no /debug /machine:IX86 /out:"..\..\bin\icuuc28d.dll" /implib:"..\..\lib\icuucd.lib" /pdbtype:sept /libpath:"..\..\lib" /machine:IA64
+
+!ENDIF 
+
+# Begin Target
+
+# Name "common - Win32 Release"
+# Name "common - Win32 Debug"
+# Name "common - Win64 Release"
+# Name "common - Win64 Debug"
+# Begin Group "bidi"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\ubidi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ubidi.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ubidi.h
+
+"..\..\include\unicode\ubidi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ubidi.h
+
+"..\..\include\unicode\ubidi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ubidi.h
+
+"..\..\include\unicode\ubidi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ubidi.h
+
+"..\..\include\unicode\ubidi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ubidiimp.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ubidiln.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ubidiwrt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ushape.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ushape.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ushape.h
+
+"..\..\include\unicode\ushape.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ushape.h
+
+"..\..\include\unicode\ushape.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ushape.h
+
+"..\..\include\unicode\ushape.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ushape.h
+
+"..\..\include\unicode\ushape.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# End Group
+# Begin Group "break iteration"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\brkdict.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\brkdict.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\brkiter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\brkiter.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\brkiter.h
+
+"..\..\include\unicode\brkiter.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\brkiter.h
+
+"..\..\include\unicode\brkiter.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\brkiter.h
+
+"..\..\include\unicode\brkiter.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\brkiter.h
+
+"..\..\include\unicode\brkiter.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\dbbi.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\dbbi.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\dbbi.h
+
+"..\..\include\unicode\dbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\dbbi.h
+
+"..\..\include\unicode\dbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\dbbi.h
+
+"..\..\include\unicode\dbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\dbbi.h
+
+"..\..\include\unicode\dbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\dbbi_tbl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\dbbi_tbl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbi.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\rbbi.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\rbbi.h
+
+"..\..\include\unicode\rbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\rbbi.h
+
+"..\..\include\unicode\rbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\rbbi.h
+
+"..\..\include\unicode\rbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\rbbi.h
+
+"..\..\include\unicode\rbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbidata.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbidata.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbinode.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbinode.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbirb.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbirb.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbirpt.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbiscan.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbiscan.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbisetb.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbisetb.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbistbl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbitblb.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbitblb.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ubrk.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ubrk.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ubrk.h
+
+"..\..\include\unicode\ubrk.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ubrk.h
+
+"..\..\include\unicode\ubrk.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ubrk.h
+
+"..\..\include\unicode\ubrk.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ubrk.h
+
+"..\..\include\unicode\ubrk.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# End Group
+# Begin Group "collation"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\ucol_swp.c
+# ADD CPP /I "..\i18n"
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucol_swp.h
+# End Source File
+# End Group
+# Begin Group "collections"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\hash.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\strenum.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\strenum.h
+
+"..\..\include\unicode\strenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\strenum.h
+
+"..\..\include\unicode\strenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\strenum.h
+
+"..\..\include\unicode\strenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\strenum.h
+
+"..\..\include\unicode\strenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\uarrsort.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\uarrsort.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucmp8.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucmp8.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uenum.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uenum.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uenum.h
+
+"..\..\include\unicode\uenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uenum.h
+
+"..\..\include\unicode\uenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uenum.h
+
+"..\..\include\unicode\uenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uenum.h
+
+"..\..\include\unicode\uenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\uenumimp.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uhash.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\uhash.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uhash_us.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ustack.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ustrenum.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ustrenum.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\utrie.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\utrie.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uvector.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\uvector.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uvectr32.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\uvectr32.h
+# End Source File
+# End Group
+# Begin Group "configuration"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\common.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\cpputils.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\filestrm.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\filestrm.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\locmap.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\locmap.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\mutex.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\putil.c
+# ADD CPP /Ze
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\putil.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\putil.h
+
+"..\..\include\unicode\putil.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\putil.h
+
+"..\..\include\unicode\putil.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\putil.h
+
+"..\..\include\unicode\putil.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\putil.h
+
+"..\..\include\unicode\putil.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\pwin32.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\pwin32.h
+
+"..\..\include\unicode\pwin32.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\pwin32.h
+
+"..\..\include\unicode\pwin32.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\pwin32.h
+
+"..\..\include\unicode\pwin32.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\pwin32.h
+
+"..\..\include\unicode\pwin32.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\uassert.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uconfig.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uconfig.h
+
+"..\..\include\unicode\uconfig.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uconfig.h
+
+"..\..\include\unicode\uconfig.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uconfig.h
+
+"..\..\include\unicode\uconfig.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uconfig.h
+
+"..\..\include\unicode\uconfig.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\umachine.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\umachine.h
+
+"..\..\include\unicode\umachine.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\umachine.h
+
+"..\..\include\unicode\umachine.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\umachine.h
+
+"..\..\include\unicode\umachine.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\umachine.h
+
+"..\..\include\unicode\umachine.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\umemstrm.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\umemstrm.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\umutex.c
+# ADD CPP /Ze
+# End Source File
+# Begin Source File
+
+SOURCE=.\umutex.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\urename.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\urename.h
+
+"..\..\include\unicode\urename.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\urename.h
+
+"..\..\include\unicode\urename.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\urename.h
+
+"..\..\include\unicode\urename.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\urename.h
+
+"..\..\include\unicode\urename.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\utrace.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\utrace.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\utrace.h
+
+"..\..\include\unicode\utrace.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\utrace.h
+
+"..\..\include\unicode\utrace.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\utrace.h
+
+"..\..\include\unicode\utrace.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\utrace.h
+
+"..\..\include\unicode\utrace.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\utracimp.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\utypes.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\utypes.h
+
+"..\..\include\unicode\utypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\utypes.h
+
+"..\..\include\unicode\utypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\utypes.h
+
+"..\..\include\unicode\utypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\utypes.h
+
+"..\..\include\unicode\utypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uversion.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uversion.h
+
+"..\..\include\unicode\uversion.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uversion.h
+
+"..\..\include\unicode\uversion.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uversion.h
+
+"..\..\include\unicode\uversion.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uversion.h
+
+"..\..\include\unicode\uversion.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# End Group
+# Begin Group "conversion"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\ucnv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ucnv.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv.h
+
+"..\..\include\unicode\ucnv.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv.h
+
+"..\..\include\unicode\ucnv.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv.h
+
+"..\..\include\unicode\ucnv.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv.h
+
+"..\..\include\unicode\ucnv.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv2022.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_bld.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_bld.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_cb.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ucnv_cb.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_cb.h
+
+"..\..\include\unicode\ucnv_cb.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_cb.h
+
+"..\..\include\unicode\ucnv_cb.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_cb.h
+
+"..\..\include\unicode\ucnv_cb.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_cb.h
+
+"..\..\include\unicode\ucnv_cb.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_cnv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_cnv.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_err.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ucnv_err.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_err.h
+
+"..\..\include\unicode\ucnv_err.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_err.h
+
+"..\..\include\unicode\ucnv_err.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_err.h
+
+"..\..\include\unicode\ucnv_err.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_err.h
+
+"..\..\include\unicode\ucnv_err.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_ext.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_ext.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_imp.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_io.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_io.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_lmb.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_u16.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_u32.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_u7.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_u8.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvbocu.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvhz.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvisci.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvlat1.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvmbcs.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvmbcs.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvscsu.c
+# End Source File
+# End Group
+# Begin Group "data & memory"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\cmemory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\cmemory.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uclean.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uclean.h
+
+"..\..\include\unicode\uclean.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uclean.h
+
+"..\..\include\unicode\uclean.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uclean.h
+
+"..\..\include\unicode\uclean.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uclean.h
+
+"..\..\include\unicode\uclean.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucln.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucln_cmn.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucln_cmn.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucmndata.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucmndata.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\udata.c
+# ADD CPP /Za
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\udata.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\udata.h
+
+"..\..\include\unicode\udata.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\udata.h
+
+"..\..\include\unicode\udata.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\udata.h
+
+"..\..\include\unicode\udata.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\udata.h
+
+"..\..\include\unicode\udata.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\udatamem.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\udatamem.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\udataswp.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\udataswp.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\umapfile.c
+# ADD CPP /Ze
+# End Source File
+# Begin Source File
+
+SOURCE=.\umapfile.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uobject.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uobject.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uobject.h
+
+"..\..\include\unicode\uobject.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy $(InputPath) ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uobject.h
+
+"..\..\include\unicode\uobject.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy $(InputPath) ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uobject.h
+
+"..\..\include\unicode\uobject.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy $(InputPath) ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uobject.h
+
+"..\..\include\unicode\uobject.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy $(InputPath) ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# End Group
+# Begin Group "formatting"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\unicode\parseerr.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\parseerr.h
+
+"..\..\include\unicode\parseerr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\parseerr.h
+
+"..\..\include\unicode\parseerr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\parseerr.h
+
+"..\..\include\unicode\parseerr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\parseerr.h
+
+"..\..\include\unicode\parseerr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\parsepos.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\parsepos.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\parsepos.h
+
+"..\..\include\unicode\parsepos.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\parsepos.h
+
+"..\..\include\unicode\parsepos.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\parsepos.h
+
+"..\..\include\unicode\parsepos.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\parsepos.h
+
+"..\..\include\unicode\parsepos.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\umisc.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\umisc.h
+InputName=umisc
+
+"..\..\include\unicode\$(InputName).h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\umisc.h
+InputName=umisc
+
+"..\..\include\unicode\$(InputName).h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\umisc.h
+InputName=umisc
+
+"..\..\include\unicode\$(InputName).h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build