Commits

Anonymous committed 61436fd

Imported latin-unity.

  • Participants
  • Tags start

Comments (0)

Files changed (12)

+latin-unity
+
+Mule bogusly considers the various ISO-8859 extended character sets as
+disjoint, when ISO 8859 itself clearly considers them to be subsets of
+a larger character set.  This package provides functions which
+determine the list of coding systems which can encode all of the
+characters in the buffer, and translate to a common coding system.
+2002-01-25  Stephen J. Turnbull  <stephen@xemacs.org>
+
+	* latin-unity: New package.
+
+	* latin-unity.el:
+	* latin-unity-vars.el:
+	* latin-unity-utils.el:
+	* Makefile:
+	* README:
+	* BLURB:
+	* package-info.in:
+	Created.
+	* latin-unity-tables.el: Hand-generated.
+
+# Makefile for latin-unity
+
+# This file is part of XEmacs.
+
+# XEmacs is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
+
+# XEmacs is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with XEmacs; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+VERSION = 0.90
+AUTHOR_VERSION = 0.90
+MAINTAINER = Stephen J. Turnbull <stephen@xemacs.org
+PACKAGE = latin-unity
+PKG_TYPE = regular
+# The Mule-UCS require will go away at some point
+REQUIRES = mule-base mule-ucs
+CATEGORY = mule
+
+ELCS = latin-unity.elc latin-unity-vars.elc \
+       latin-unity-tables.elc latin-unity-utils.elc
+GENERATED += custom-load.elc
+
+# for defvars and creation of ISO 8859/15 charset and coding system
+PRELOADS=-l cl-macs -l latin-unity-vars.el
+
+include ../../XEmacs.rules
+
+ifeq ($(BUILD_WITHOUT_MULE),)
+
+all:: $(ELCS) $(GENERATED)
+
+# There should be a rule here to build latin-unity-tables.el.
+
+srckit: srckit-std
+
+binkit: binkit-common
+
+else
+all::
+	@echo Edict requires XEmacs/Mule to build
+
+# Two noops
+srckit:
+binkit:
+
+endif
+latin-unity
+
+Mule bogusly considers the various ISO-8859 extended character sets as
+disjoint, when ISO 8859 itself clearly considers them to be subsets of
+a larger character set.  For example, all of the Latin character sets
+include NO-BREAK SPACE at code point 32 (ie, 0xA0 in an 8-bit code),
+but the Latin-1 and Latin-2 NO-BREAK SPACE characters are considered
+to be different by Mule, an obvious absurdity.  This package provides
+functions which determine the list of coding systems which can encode
+all of the characters in the buffer, and translate to a common coding
+system if possible.
+
+latin-unity.el is the main library, providing the detection and translation
+functionality, including a hook function to hang on `write-region-pre-hook'.
+
+latin-unity-tables.el contains the table of feasible character sets and
+equivalent Mule characters from other character sets for the various Mule
+representations of each character.
+
+latin-unity-utils.el contains utilities for creating the equivalence table.
+
+To set up the package, simply put
+
+(add-hook 'write-region-pre-hook #'latin-unity-sanity-check)
+
+in your init file.
+
+Note: this package is planned for addition to the mainline in some form.
+;;;###autoload
+(package-provide 'latin-unity
+		 :version 0.90
+		 :type 'regular)

File auto-autoloads.el

+;;; DO NOT MODIFY THIS FILE
+(if (featurep 'latin-unity-autoloads) (error "Already loaded"))
+
+;;;### (autoloads nil "_pkg" "latin-unity/_pkg.el")
+
+(package-provide 'latin-unity :version 0.9 :type 'regular)
+
+;;;***
+
+;;;### (autoloads (latin-unity-test latin-unity-sanity-check latin-unity-region-feasible-representations latin-unity-buffer-feasible-representations) "latin-unity" "latin-unity/latin-unity.el")
+
+(autoload 'latin-unity-buffer-feasible-representations "latin-unity" "\
+Apply latin-unity-region-feasible-representations to the current buffer." t nil)
+
+(autoload 'latin-unity-region-feasible-representations "latin-unity" "\
+Return character sets that can represent the text from BEGIN to END in BUF.
+
+BUF defaults to the current buffer.  Called interactively, will be
+applied to the region.  Function assumes BEGIN <= END.
+
+The return value is a cons.  The car is the list of character sets
+that can individually represent all of the non-ASCII portion of the
+buffer, and the cdr is the list of character sets that can
+individually represent all of the ASCII portion." t nil)
+
+(autoload 'latin-unity-sanity-check "latin-unity" "\
+Check if `buffer-file-coding-system' can represent the region START to END.
+
+FILENAME, APPEND, VISIT, and LOCKNAME are ignored.
+
+Return nil if buffer-file-coding-system is not (ISO-2022-compatible) Latin.
+If buffer-file-coding-system is safe for the charsets actually present in
+the buffer, return it.  Otherwise, ask the user to choose a coding system,
+and return that.
+
+This function does _not_ do the safe thing when buffer-file-coding-system is
+nil (aka no-conversion).  It considers that \"non-Latin\", and passes it on
+to the Mule detection mechanism.
+
+This function is intended for use as a `write-region-pre-hook'." nil nil)
+
+(autoload 'latin-unity-test "latin-unity" "\
+Test the latin-unity package.
+
+At present it just makes a multilingual buffer.  To test, setq
+buffer-file-coding-system to some value, make the buffer dirty (eg
+with RET BackSpace), and save." t nil)
+
+;;;***
+
+(provide 'latin-unity-autoloads)

File latin-unity-tables.el

+;;; initialize latin-unity-equivalences
+;;; Do not edit -- automatically generated.
+(provide 'latin-unity-tables)
+(defconst latin-unity-equivalences
+  (let ((table (make-char-table 'generic)))
+    (put-char-table (make-char 'ascii 0) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 0) nil #x0) table)
+    (put-char-table (make-char 'ascii 1) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 1) nil #x1) table)
+    (put-char-table (make-char 'ascii 2) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 2) nil #x2) table)
+    (put-char-table (make-char 'ascii 3) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 3) nil #x3) table)
+    (put-char-table (make-char 'ascii 4) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 4) nil #x4) table)
+    (put-char-table (make-char 'ascii 5) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 5) nil #x5) table)
+    (put-char-table (make-char 'ascii 6) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 6) nil #x6) table)
+    (put-char-table (make-char 'ascii 7) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 7) nil #x7) table)
+    (put-char-table (make-char 'ascii 8) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 8) nil #x8) table)
+    (put-char-table (make-char 'ascii 9) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 9) nil #x9) table)
+    (put-char-table (make-char 'ascii 10) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 10) nil #xA) table)
+    (put-char-table (make-char 'ascii 11) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 11) nil #xB) table)
+    (put-char-table (make-char 'ascii 12) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 12) nil #xC) table)
+    (put-char-table (make-char 'ascii 13) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 13) nil #xD) table)
+    (put-char-table (make-char 'ascii 14) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 14) nil #xE) table)
+    (put-char-table (make-char 'ascii 15) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 15) nil #xF) table)
+    (put-char-table (make-char 'ascii 16) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 16) nil #x10) table)
+    (put-char-table (make-char 'ascii 17) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 17) nil #x11) table)
+    (put-char-table (make-char 'ascii 18) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 18) nil #x12) table)
+    (put-char-table (make-char 'ascii 19) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 19) nil #x13) table)
+    (put-char-table (make-char 'ascii 20) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 20) nil #x14) table)
+    (put-char-table (make-char 'ascii 21) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 21) nil #x15) table)
+    (put-char-table (make-char 'ascii 22) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 22) nil #x16) table)
+    (put-char-table (make-char 'ascii 23) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 23) nil #x17) table)
+    (put-char-table (make-char 'ascii 24) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 24) nil #x18) table)
+    (put-char-table (make-char 'ascii 25) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 25) nil #x19) table)
+    (put-char-table (make-char 'ascii 26) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 26) nil #x1A) table)
+    (put-char-table (make-char 'ascii 27) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 27) nil #x1B) table)
+    (put-char-table (make-char 'ascii 28) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 28) nil #x1C) table)
+    (put-char-table (make-char 'ascii 29) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 29) nil #x1D) table)
+    (put-char-table (make-char 'ascii 30) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 30) nil #x1E) table)
+    (put-char-table (make-char 'ascii 31) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 31) nil #x1F) table)
+    (put-char-table (make-char 'ascii 32) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 32) nil #x20) table)
+    (put-char-table (make-char 'ascii 33) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 33) (make-char 'latin-jisx0201 33) #x21) table)
+    (put-char-table (make-char 'ascii 34) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 34) (make-char 'latin-jisx0201 34) #x22) table)
+    (put-char-table (make-char 'ascii 35) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 35) (make-char 'latin-jisx0201 35) #x23) table)
+    (put-char-table (make-char 'ascii 36) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 36) (make-char 'latin-jisx0201 36) #x24) table)
+    (put-char-table (make-char 'ascii 37) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 37) (make-char 'latin-jisx0201 37) #x25) table)
+    (put-char-table (make-char 'ascii 38) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 38) (make-char 'latin-jisx0201 38) #x26) table)
+    (put-char-table (make-char 'ascii 39) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 39) (make-char 'latin-jisx0201 39) #x27) table)
+    (put-char-table (make-char 'ascii 40) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 40) (make-char 'latin-jisx0201 40) #x28) table)
+    (put-char-table (make-char 'ascii 41) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 41) (make-char 'latin-jisx0201 41) #x29) table)
+    (put-char-table (make-char 'ascii 42) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 42) (make-char 'latin-jisx0201 42) #x2A) table)
+    (put-char-table (make-char 'ascii 43) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 43) (make-char 'latin-jisx0201 43) #x2B) table)
+    (put-char-table (make-char 'ascii 44) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 44) (make-char 'latin-jisx0201 44) #x2C) table)
+    (put-char-table (make-char 'ascii 45) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 45) (make-char 'latin-jisx0201 45) #x2D) table)
+    (put-char-table (make-char 'ascii 46) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 46) (make-char 'latin-jisx0201 46) #x2E) table)
+    (put-char-table (make-char 'ascii 47) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 47) (make-char 'latin-jisx0201 47) #x2F) table)
+    (put-char-table (make-char 'ascii 48) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 48) (make-char 'latin-jisx0201 48) #x30) table)
+    (put-char-table (make-char 'ascii 49) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 49) (make-char 'latin-jisx0201 49) #x31) table)
+    (put-char-table (make-char 'ascii 50) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 50) (make-char 'latin-jisx0201 50) #x32) table)
+    (put-char-table (make-char 'ascii 51) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 51) (make-char 'latin-jisx0201 51) #x33) table)
+    (put-char-table (make-char 'ascii 52) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 52) (make-char 'latin-jisx0201 52) #x34) table)
+    (put-char-table (make-char 'ascii 53) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 53) (make-char 'latin-jisx0201 53) #x35) table)
+    (put-char-table (make-char 'ascii 54) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 54) (make-char 'latin-jisx0201 54) #x36) table)
+    (put-char-table (make-char 'ascii 55) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 55) (make-char 'latin-jisx0201 55) #x37) table)
+    (put-char-table (make-char 'ascii 56) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 56) (make-char 'latin-jisx0201 56) #x38) table)
+    (put-char-table (make-char 'ascii 57) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 57) (make-char 'latin-jisx0201 57) #x39) table)
+    (put-char-table (make-char 'ascii 58) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 58) (make-char 'latin-jisx0201 58) #x3A) table)
+    (put-char-table (make-char 'ascii 59) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 59) (make-char 'latin-jisx0201 59) #x3B) table)
+    (put-char-table (make-char 'ascii 60) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 60) (make-char 'latin-jisx0201 60) #x3C) table)
+    (put-char-table (make-char 'ascii 61) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 61) (make-char 'latin-jisx0201 61) #x3D) table)
+    (put-char-table (make-char 'ascii 62) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 62) (make-char 'latin-jisx0201 62) #x3E) table)
+    (put-char-table (make-char 'ascii 63) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 63) (make-char 'latin-jisx0201 63) #x3F) table)
+    (put-char-table (make-char 'ascii 64) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 64) (make-char 'latin-jisx0201 64) #x40) table)
+    (put-char-table (make-char 'ascii 65) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 65) (make-char 'latin-jisx0201 65) #x41) table)
+    (put-char-table (make-char 'ascii 66) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 66) (make-char 'latin-jisx0201 66) #x42) table)
+    (put-char-table (make-char 'ascii 67) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 67) (make-char 'latin-jisx0201 67) #x43) table)
+    (put-char-table (make-char 'ascii 68) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 68) (make-char 'latin-jisx0201 68) #x44) table)
+    (put-char-table (make-char 'ascii 69) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 69) (make-char 'latin-jisx0201 69) #x45) table)
+    (put-char-table (make-char 'ascii 70) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 70) (make-char 'latin-jisx0201 70) #x46) table)
+    (put-char-table (make-char 'ascii 71) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 71) (make-char 'latin-jisx0201 71) #x47) table)
+    (put-char-table (make-char 'ascii 72) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 72) (make-char 'latin-jisx0201 72) #x48) table)
+    (put-char-table (make-char 'ascii 73) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 73) (make-char 'latin-jisx0201 73) #x49) table)
+    (put-char-table (make-char 'ascii 74) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 74) (make-char 'latin-jisx0201 74) #x4A) table)
+    (put-char-table (make-char 'ascii 75) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 75) (make-char 'latin-jisx0201 75) #x4B) table)
+    (put-char-table (make-char 'ascii 76) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 76) (make-char 'latin-jisx0201 76) #x4C) table)
+    (put-char-table (make-char 'ascii 77) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 77) (make-char 'latin-jisx0201 77) #x4D) table)
+    (put-char-table (make-char 'ascii 78) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 78) (make-char 'latin-jisx0201 78) #x4E) table)
+    (put-char-table (make-char 'ascii 79) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 79) (make-char 'latin-jisx0201 79) #x4F) table)
+    (put-char-table (make-char 'ascii 80) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 80) (make-char 'latin-jisx0201 80) #x50) table)
+    (put-char-table (make-char 'ascii 81) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 81) (make-char 'latin-jisx0201 81) #x51) table)
+    (put-char-table (make-char 'ascii 82) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 82) (make-char 'latin-jisx0201 82) #x52) table)
+    (put-char-table (make-char 'ascii 83) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 83) (make-char 'latin-jisx0201 83) #x53) table)
+    (put-char-table (make-char 'ascii 84) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 84) (make-char 'latin-jisx0201 84) #x54) table)
+    (put-char-table (make-char 'ascii 85) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 85) (make-char 'latin-jisx0201 85) #x55) table)
+    (put-char-table (make-char 'ascii 86) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 86) (make-char 'latin-jisx0201 86) #x56) table)
+    (put-char-table (make-char 'ascii 87) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 87) (make-char 'latin-jisx0201 87) #x57) table)
+    (put-char-table (make-char 'ascii 88) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 88) (make-char 'latin-jisx0201 88) #x58) table)
+    (put-char-table (make-char 'ascii 89) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 89) (make-char 'latin-jisx0201 89) #x59) table)
+    (put-char-table (make-char 'ascii 90) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 90) (make-char 'latin-jisx0201 90) #x5A) table)
+    (put-char-table (make-char 'ascii 91) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 91) (make-char 'latin-jisx0201 91) #x5B) table)
+    (put-char-table (make-char 'ascii 92) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 92) nil #x5C) table)
+    (put-char-table (make-char 'ascii 93) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 93) (make-char 'latin-jisx0201 93) #x5D) table)
+    (put-char-table (make-char 'ascii 94) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 94) (make-char 'latin-jisx0201 94) #x5E) table)
+    (put-char-table (make-char 'ascii 95) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 95) (make-char 'latin-jisx0201 95) #x5F) table)
+    (put-char-table (make-char 'ascii 96) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 96) (make-char 'latin-jisx0201 96) #x60) table)
+    (put-char-table (make-char 'ascii 97) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 97) (make-char 'latin-jisx0201 97) #x61) table)
+    (put-char-table (make-char 'ascii 98) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 98) (make-char 'latin-jisx0201 98) #x62) table)
+    (put-char-table (make-char 'ascii 99) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 99) (make-char 'latin-jisx0201 99) #x63) table)
+    (put-char-table (make-char 'ascii 100) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 100) (make-char 'latin-jisx0201 100) #x64) table)
+    (put-char-table (make-char 'ascii 101) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 101) (make-char 'latin-jisx0201 101) #x65) table)
+    (put-char-table (make-char 'ascii 102) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 102) (make-char 'latin-jisx0201 102) #x66) table)
+    (put-char-table (make-char 'ascii 103) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 103) (make-char 'latin-jisx0201 103) #x67) table)
+    (put-char-table (make-char 'ascii 104) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 104) (make-char 'latin-jisx0201 104) #x68) table)
+    (put-char-table (make-char 'ascii 105) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 105) (make-char 'latin-jisx0201 105) #x69) table)
+    (put-char-table (make-char 'ascii 106) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 106) (make-char 'latin-jisx0201 106) #x6A) table)
+    (put-char-table (make-char 'ascii 107) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 107) (make-char 'latin-jisx0201 107) #x6B) table)
+    (put-char-table (make-char 'ascii 108) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 108) (make-char 'latin-jisx0201 108) #x6C) table)
+    (put-char-table (make-char 'ascii 109) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 109) (make-char 'latin-jisx0201 109) #x6D) table)
+    (put-char-table (make-char 'ascii 110) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 110) (make-char 'latin-jisx0201 110) #x6E) table)
+    (put-char-table (make-char 'ascii 111) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 111) (make-char 'latin-jisx0201 111) #x6F) table)
+    (put-char-table (make-char 'ascii 112) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 112) (make-char 'latin-jisx0201 112) #x70) table)
+    (put-char-table (make-char 'ascii 113) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 113) (make-char 'latin-jisx0201 113) #x71) table)
+    (put-char-table (make-char 'ascii 114) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 114) (make-char 'latin-jisx0201 114) #x72) table)
+    (put-char-table (make-char 'ascii 115) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 115) (make-char 'latin-jisx0201 115) #x73) table)
+    (put-char-table (make-char 'ascii 116) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 116) (make-char 'latin-jisx0201 116) #x74) table)
+    (put-char-table (make-char 'ascii 117) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 117) (make-char 'latin-jisx0201 117) #x75) table)
+    (put-char-table (make-char 'ascii 118) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 118) (make-char 'latin-jisx0201 118) #x76) table)
+    (put-char-table (make-char 'ascii 119) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 119) (make-char 'latin-jisx0201 119) #x77) table)
+    (put-char-table (make-char 'ascii 120) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 120) (make-char 'latin-jisx0201 120) #x78) table)
+    (put-char-table (make-char 'ascii 121) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 121) (make-char 'latin-jisx0201 121) #x79) table)
+    (put-char-table (make-char 'ascii 122) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 122) (make-char 'latin-jisx0201 122) #x7A) table)
+    (put-char-table (make-char 'ascii 123) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 123) (make-char 'latin-jisx0201 123) #x7B) table)
+    (put-char-table (make-char 'ascii 124) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 124) (make-char 'latin-jisx0201 124) #x7C) table)
+    (put-char-table (make-char 'ascii 125) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 125) (make-char 'latin-jisx0201 125) #x7D) table)
+    (put-char-table (make-char 'ascii 126) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 126) nil #x7E) table)
+    (put-char-table (make-char 'ascii 127) (vector #x40 nil nil nil nil nil nil (make-char 'ascii 127) nil #x7F) table)
+    (put-char-table (make-char 'control-1 0) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 1) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 2) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 3) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 4) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 5) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 6) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 7) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 8) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 9) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 10) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 11) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 12) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 13) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 14) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 15) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 16) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 17) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 18) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 19) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 20) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 21) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 22) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 23) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 24) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 25) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 26) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 27) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 28) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 29) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 30) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'control-1 31) (vector #xFF nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-1 32) (vector #x3F (make-char 'latin-iso8859-1 32) (make-char 'latin-iso8859-2 32) (make-char 'latin-iso8859-3 32) (make-char 'latin-iso8859-4 32) (make-char 'latin-iso8859-9 32) (make-char 'latin-iso8859-15 32) nil nil #xA0) table)
+    (put-char-table (make-char 'latin-iso8859-1 33) (vector #x31 (make-char 'latin-iso8859-1 33) nil nil nil (make-char 'latin-iso8859-9 33) (make-char 'latin-iso8859-15 33) nil nil #xA1) table)
+    (put-char-table (make-char 'latin-iso8859-1 34) (vector #x31 (make-char 'latin-iso8859-1 34) nil nil nil (make-char 'latin-iso8859-9 34) (make-char 'latin-iso8859-15 34) nil nil #xA2) table)
+    (put-char-table (make-char 'latin-iso8859-1 35) (vector #x35 (make-char 'latin-iso8859-1 35) nil (make-char 'latin-iso8859-3 35) nil (make-char 'latin-iso8859-9 35) (make-char 'latin-iso8859-15 35) nil nil #xA3) table)
+    (put-char-table (make-char 'latin-iso8859-1 36) (vector #x1F (make-char 'latin-iso8859-1 36) (make-char 'latin-iso8859-2 36) (make-char 'latin-iso8859-3 36) (make-char 'latin-iso8859-4 36) (make-char 'latin-iso8859-9 36) nil nil nil #xA4) table)
+    (put-char-table (make-char 'latin-iso8859-1 37) (vector #xB1 (make-char 'latin-iso8859-1 37) nil nil nil (make-char 'latin-iso8859-9 37) (make-char 'latin-iso8859-15 37) nil (make-char 'latin-jisx0201 92) #xA5) table)
+    (put-char-table (make-char 'latin-iso8859-1 38) (vector #x11 (make-char 'latin-iso8859-1 38) nil nil nil (make-char 'latin-iso8859-9 38) nil nil nil #xA6) table)
+    (put-char-table (make-char 'latin-iso8859-1 39) (vector #x3F (make-char 'latin-iso8859-1 39) (make-char 'latin-iso8859-2 39) (make-char 'latin-iso8859-3 39) (make-char 'latin-iso8859-4 39) (make-char 'latin-iso8859-9 39) (make-char 'latin-iso8859-15 39) nil nil #xA7) table)
+    (put-char-table (make-char 'latin-iso8859-1 40) (vector #x1F (make-char 'latin-iso8859-1 40) (make-char 'latin-iso8859-2 40) (make-char 'latin-iso8859-3 40) (make-char 'latin-iso8859-4 40) (make-char 'latin-iso8859-9 40) nil nil nil #xA8) table)
+    (put-char-table (make-char 'latin-iso8859-1 41) (vector #x31 (make-char 'latin-iso8859-1 41) nil nil nil (make-char 'latin-iso8859-9 41) (make-char 'latin-iso8859-15 41) nil nil #xA9) table)
+    (put-char-table (make-char 'latin-iso8859-1 42) (vector #x31 (make-char 'latin-iso8859-1 42) nil nil nil (make-char 'latin-iso8859-9 42) (make-char 'latin-iso8859-15 42) nil nil #xAA) table)
+    (put-char-table (make-char 'latin-iso8859-1 43) (vector #x31 (make-char 'latin-iso8859-1 43) nil nil nil (make-char 'latin-iso8859-9 43) (make-char 'latin-iso8859-15 43) nil nil #xAB) table)
+    (put-char-table (make-char 'latin-iso8859-1 44) (vector #x31 (make-char 'latin-iso8859-1 44) nil nil nil (make-char 'latin-iso8859-9 44) (make-char 'latin-iso8859-15 44) nil nil #xAC) table)
+    (put-char-table (make-char 'latin-iso8859-1 45) (vector #x3F (make-char 'latin-iso8859-1 45) (make-char 'latin-iso8859-2 45) (make-char 'latin-iso8859-3 45) (make-char 'latin-iso8859-4 45) (make-char 'latin-iso8859-9 45) (make-char 'latin-iso8859-15 45) nil nil #xAD) table)
+    (put-char-table (make-char 'latin-iso8859-1 46) (vector #x31 (make-char 'latin-iso8859-1 46) nil nil nil (make-char 'latin-iso8859-9 46) (make-char 'latin-iso8859-15 46) nil nil #xAE) table)
+    (put-char-table (make-char 'latin-iso8859-1 47) (vector #x39 (make-char 'latin-iso8859-1 47) nil nil (make-char 'latin-iso8859-4 47) (make-char 'latin-iso8859-9 47) (make-char 'latin-iso8859-15 47) nil nil #xAF) table)
+    (put-char-table (make-char 'latin-iso8859-1 48) (vector #x3F (make-char 'latin-iso8859-1 48) (make-char 'latin-iso8859-2 48) (make-char 'latin-iso8859-3 48) (make-char 'latin-iso8859-4 48) (make-char 'latin-iso8859-9 48) (make-char 'latin-iso8859-15 48) nil nil #xB0) table)
+    (put-char-table (make-char 'latin-iso8859-1 49) (vector #x31 (make-char 'latin-iso8859-1 49) nil nil nil (make-char 'latin-iso8859-9 49) (make-char 'latin-iso8859-15 49) nil nil #xB1) table)
+    (put-char-table (make-char 'latin-iso8859-1 50) (vector #x35 (make-char 'latin-iso8859-1 50) nil (make-char 'latin-iso8859-3 50) nil (make-char 'latin-iso8859-9 50) (make-char 'latin-iso8859-15 50) nil nil #xB2) table)
+    (put-char-table (make-char 'latin-iso8859-1 51) (vector #x35 (make-char 'latin-iso8859-1 51) nil (make-char 'latin-iso8859-3 51) nil (make-char 'latin-iso8859-9 51) (make-char 'latin-iso8859-15 51) nil nil #xB3) table)
+    (put-char-table (make-char 'latin-iso8859-1 52) (vector #x1F (make-char 'latin-iso8859-1 52) (make-char 'latin-iso8859-2 52) (make-char 'latin-iso8859-3 52) (make-char 'latin-iso8859-4 52) (make-char 'latin-iso8859-9 52) nil nil nil #xB4) table)
+    (put-char-table (make-char 'latin-iso8859-1 53) (vector #x35 (make-char 'latin-iso8859-1 53) nil (make-char 'latin-iso8859-3 53) nil (make-char 'latin-iso8859-9 53) (make-char 'latin-iso8859-15 53) nil nil #xB5) table)
+    (put-char-table (make-char 'latin-iso8859-1 54) (vector #x31 (make-char 'latin-iso8859-1 54) nil nil nil (make-char 'latin-iso8859-9 54) (make-char 'latin-iso8859-15 54) nil nil #xB6) table)
+    (put-char-table (make-char 'latin-iso8859-1 55) (vector #x35 (make-char 'latin-iso8859-1 55) nil (make-char 'latin-iso8859-3 55) nil (make-char 'latin-iso8859-9 55) (make-char 'latin-iso8859-15 55) nil nil #xB7) table)
+    (put-char-table (make-char 'latin-iso8859-1 56) (vector #x1F (make-char 'latin-iso8859-1 56) (make-char 'latin-iso8859-2 56) (make-char 'latin-iso8859-3 56) (make-char 'latin-iso8859-4 56) (make-char 'latin-iso8859-9 56) nil nil nil #xB8) table)
+    (put-char-table (make-char 'latin-iso8859-1 57) (vector #x31 (make-char 'latin-iso8859-1 57) nil nil nil (make-char 'latin-iso8859-9 57) (make-char 'latin-iso8859-15 57) nil nil #xB9) table)
+    (put-char-table (make-char 'latin-iso8859-1 58) (vector #x31 (make-char 'latin-iso8859-1 58) nil nil nil (make-char 'latin-iso8859-9 58) (make-char 'latin-iso8859-15 58) nil nil #xBA) table)
+    (put-char-table (make-char 'latin-iso8859-1 59) (vector #x31 (make-char 'latin-iso8859-1 59) nil nil nil (make-char 'latin-iso8859-9 59) (make-char 'latin-iso8859-15 59) nil nil #xBB) table)
+    (put-char-table (make-char 'latin-iso8859-1 60) (vector #x11 (make-char 'latin-iso8859-1 60) nil nil nil (make-char 'latin-iso8859-9 60) nil nil nil #xBC) table)
+    (put-char-table (make-char 'latin-iso8859-1 61) (vector #x15 (make-char 'latin-iso8859-1 61) nil (make-char 'latin-iso8859-3 61) nil (make-char 'latin-iso8859-9 61) nil nil nil #xBD) table)
+    (put-char-table (make-char 'latin-iso8859-1 62) (vector #x11 (make-char 'latin-iso8859-1 62) nil nil nil (make-char 'latin-iso8859-9 62) nil nil nil #xBE) table)
+    (put-char-table (make-char 'latin-iso8859-1 63) (vector #x31 (make-char 'latin-iso8859-1 63) nil nil nil (make-char 'latin-iso8859-9 63) (make-char 'latin-iso8859-15 63) nil nil #xBF) table)
+    (put-char-table (make-char 'latin-iso8859-1 64) (vector #x35 (make-char 'latin-iso8859-1 64) nil (make-char 'latin-iso8859-3 64) nil (make-char 'latin-iso8859-9 64) (make-char 'latin-iso8859-15 64) nil nil #xC0) table)
+    (put-char-table (make-char 'latin-iso8859-1 65) (vector #x3F (make-char 'latin-iso8859-1 65) (make-char 'latin-iso8859-2 65) (make-char 'latin-iso8859-3 65) (make-char 'latin-iso8859-4 65) (make-char 'latin-iso8859-9 65) (make-char 'latin-iso8859-15 65) nil nil #xC1) table)
+    (put-char-table (make-char 'latin-iso8859-1 66) (vector #x3F (make-char 'latin-iso8859-1 66) (make-char 'latin-iso8859-2 66) (make-char 'latin-iso8859-3 66) (make-char 'latin-iso8859-4 66) (make-char 'latin-iso8859-9 66) (make-char 'latin-iso8859-15 66) nil nil #xC2) table)
+    (put-char-table (make-char 'latin-iso8859-1 67) (vector #x39 (make-char 'latin-iso8859-1 67) nil nil (make-char 'latin-iso8859-4 67) (make-char 'latin-iso8859-9 67) (make-char 'latin-iso8859-15 67) nil nil #xC3) table)
+    (put-char-table (make-char 'latin-iso8859-1 68) (vector #x3F (make-char 'latin-iso8859-1 68) (make-char 'latin-iso8859-2 68) (make-char 'latin-iso8859-3 68) (make-char 'latin-iso8859-4 68) (make-char 'latin-iso8859-9 68) (make-char 'latin-iso8859-15 68) nil nil #xC4) table)
+    (put-char-table (make-char 'latin-iso8859-1 69) (vector #x39 (make-char 'latin-iso8859-1 69) nil nil (make-char 'latin-iso8859-4 69) (make-char 'latin-iso8859-9 69) (make-char 'latin-iso8859-15 69) nil nil #xC5) table)
+    (put-char-table (make-char 'latin-iso8859-1 70) (vector #x39 (make-char 'latin-iso8859-1 70) nil nil (make-char 'latin-iso8859-4 70) (make-char 'latin-iso8859-9 70) (make-char 'latin-iso8859-15 70) nil nil #xC6) table)
+    (put-char-table (make-char 'latin-iso8859-1 71) (vector #x37 (make-char 'latin-iso8859-1 71) (make-char 'latin-iso8859-2 71) (make-char 'latin-iso8859-3 71) nil (make-char 'latin-iso8859-9 71) (make-char 'latin-iso8859-15 71) nil nil #xC7) table)
+    (put-char-table (make-char 'latin-iso8859-1 72) (vector #x35 (make-char 'latin-iso8859-1 72) nil (make-char 'latin-iso8859-3 72) nil (make-char 'latin-iso8859-9 72) (make-char 'latin-iso8859-15 72) nil nil #xC8) table)
+    (put-char-table (make-char 'latin-iso8859-1 73) (vector #x3F (make-char 'latin-iso8859-1 73) (make-char 'latin-iso8859-2 73) (make-char 'latin-iso8859-3 73) (make-char 'latin-iso8859-4 73) (make-char 'latin-iso8859-9 73) (make-char 'latin-iso8859-15 73) nil nil #xC9) table)
+    (put-char-table (make-char 'latin-iso8859-1 74) (vector #x35 (make-char 'latin-iso8859-1 74) nil (make-char 'latin-iso8859-3 74) nil (make-char 'latin-iso8859-9 74) (make-char 'latin-iso8859-15 74) nil nil #xCA) table)
+    (put-char-table (make-char 'latin-iso8859-1 75) (vector #x3F (make-char 'latin-iso8859-1 75) (make-char 'latin-iso8859-2 75) (make-char 'latin-iso8859-3 75) (make-char 'latin-iso8859-4 75) (make-char 'latin-iso8859-9 75) (make-char 'latin-iso8859-15 75) nil nil #xCB) table)
+    (put-char-table (make-char 'latin-iso8859-1 76) (vector #x35 (make-char 'latin-iso8859-1 76) nil (make-char 'latin-iso8859-3 76) nil (make-char 'latin-iso8859-9 76) (make-char 'latin-iso8859-15 76) nil nil #xCC) table)
+    (put-char-table (make-char 'latin-iso8859-1 77) (vector #x3F (make-char 'latin-iso8859-1 77) (make-char 'latin-iso8859-2 77) (make-char 'latin-iso8859-3 77) (make-char 'latin-iso8859-4 77) (make-char 'latin-iso8859-9 77) (make-char 'latin-iso8859-15 77) nil nil #xCD) table)
+    (put-char-table (make-char 'latin-iso8859-1 78) (vector #x3F (make-char 'latin-iso8859-1 78) (make-char 'latin-iso8859-2 78) (make-char 'latin-iso8859-3 78) (make-char 'latin-iso8859-4 78) (make-char 'latin-iso8859-9 78) (make-char 'latin-iso8859-15 78) nil nil #xCE) table)
+    (put-char-table (make-char 'latin-iso8859-1 79) (vector #x35 (make-char 'latin-iso8859-1 79) nil (make-char 'latin-iso8859-3 79) nil (make-char 'latin-iso8859-9 79) (make-char 'latin-iso8859-15 79) nil nil #xCF) table)
+    (put-char-table (make-char 'latin-iso8859-1 80) (vector #x21 (make-char 'latin-iso8859-1 80) nil nil nil nil (make-char 'latin-iso8859-15 80) nil nil #xD0) table)
+    (put-char-table (make-char 'latin-iso8859-1 81) (vector #x35 (make-char 'latin-iso8859-1 81) nil (make-char 'latin-iso8859-3 81) nil (make-char 'latin-iso8859-9 81) (make-char 'latin-iso8859-15 81) nil nil #xD1) table)
+    (put-char-table (make-char 'latin-iso8859-1 82) (vector #x35 (make-char 'latin-iso8859-1 82) nil (make-char 'latin-iso8859-3 82) nil (make-char 'latin-iso8859-9 82) (make-char 'latin-iso8859-15 82) nil nil #xD2) table)
+    (put-char-table (make-char 'latin-iso8859-1 83) (vector #x37 (make-char 'latin-iso8859-1 83) (make-char 'latin-iso8859-2 83) (make-char 'latin-iso8859-3 83) nil (make-char 'latin-iso8859-9 83) (make-char 'latin-iso8859-15 83) nil nil #xD3) table)
+    (put-char-table (make-char 'latin-iso8859-1 84) (vector #x3F (make-char 'latin-iso8859-1 84) (make-char 'latin-iso8859-2 84) (make-char 'latin-iso8859-3 84) (make-char 'latin-iso8859-4 84) (make-char 'latin-iso8859-9 84) (make-char 'latin-iso8859-15 84) nil nil #xD4) table)
+    (put-char-table (make-char 'latin-iso8859-1 85) (vector #x39 (make-char 'latin-iso8859-1 85) nil nil (make-char 'latin-iso8859-4 85) (make-char 'latin-iso8859-9 85) (make-char 'latin-iso8859-15 85) nil nil #xD5) table)
+    (put-char-table (make-char 'latin-iso8859-1 86) (vector #x3F (make-char 'latin-iso8859-1 86) (make-char 'latin-iso8859-2 86) (make-char 'latin-iso8859-3 86) (make-char 'latin-iso8859-4 86) (make-char 'latin-iso8859-9 86) (make-char 'latin-iso8859-15 86) nil nil #xD6) table)
+    (put-char-table (make-char 'latin-iso8859-1 87) (vector #x3F (make-char 'latin-iso8859-1 87) (make-char 'latin-iso8859-2 87) (make-char 'latin-iso8859-3 87) (make-char 'latin-iso8859-4 87) (make-char 'latin-iso8859-9 87) (make-char 'latin-iso8859-15 87) nil nil #xD7) table)
+    (put-char-table (make-char 'latin-iso8859-1 88) (vector #x39 (make-char 'latin-iso8859-1 88) nil nil (make-char 'latin-iso8859-4 88) (make-char 'latin-iso8859-9 88) (make-char 'latin-iso8859-15 88) nil nil #xD8) table)
+    (put-char-table (make-char 'latin-iso8859-1 89) (vector #x35 (make-char 'latin-iso8859-1 89) nil (make-char 'latin-iso8859-3 89) nil (make-char 'latin-iso8859-9 89) (make-char 'latin-iso8859-15 89) nil nil #xD9) table)
+    (put-char-table (make-char 'latin-iso8859-1 90) (vector #x3F (make-char 'latin-iso8859-1 90) (make-char 'latin-iso8859-2 90) (make-char 'latin-iso8859-3 90) (make-char 'latin-iso8859-4 90) (make-char 'latin-iso8859-9 90) (make-char 'latin-iso8859-15 90) nil nil #xDA) table)
+    (put-char-table (make-char 'latin-iso8859-1 91) (vector #x3D (make-char 'latin-iso8859-1 91) nil (make-char 'latin-iso8859-3 91) (make-char 'latin-iso8859-4 91) (make-char 'latin-iso8859-9 91) (make-char 'latin-iso8859-15 91) nil nil #xDB) table)
+    (put-char-table (make-char 'latin-iso8859-1 92) (vector #x3F (make-char 'latin-iso8859-1 92) (make-char 'latin-iso8859-2 92) (make-char 'latin-iso8859-3 92) (make-char 'latin-iso8859-4 92) (make-char 'latin-iso8859-9 92) (make-char 'latin-iso8859-15 92) nil nil #xDC) table)
+    (put-char-table (make-char 'latin-iso8859-1 93) (vector #x23 (make-char 'latin-iso8859-1 93) (make-char 'latin-iso8859-2 93) nil nil nil (make-char 'latin-iso8859-15 93) nil nil #xDD) table)
+    (put-char-table (make-char 'latin-iso8859-1 94) (vector #x21 (make-char 'latin-iso8859-1 94) nil nil nil nil (make-char 'latin-iso8859-15 94) nil nil #xDE) table)
+    (put-char-table (make-char 'latin-iso8859-1 95) (vector #x3F (make-char 'latin-iso8859-1 95) (make-char 'latin-iso8859-2 95) (make-char 'latin-iso8859-3 95) (make-char 'latin-iso8859-4 95) (make-char 'latin-iso8859-9 95) (make-char 'latin-iso8859-15 95) nil nil #xDF) table)
+    (put-char-table (make-char 'latin-iso8859-1 96) (vector #x35 (make-char 'latin-iso8859-1 96) nil (make-char 'latin-iso8859-3 96) nil (make-char 'latin-iso8859-9 96) (make-char 'latin-iso8859-15 96) nil nil #xE0) table)
+    (put-char-table (make-char 'latin-iso8859-1 97) (vector #x3F (make-char 'latin-iso8859-1 97) (make-char 'latin-iso8859-2 97) (make-char 'latin-iso8859-3 97) (make-char 'latin-iso8859-4 97) (make-char 'latin-iso8859-9 97) (make-char 'latin-iso8859-15 97) nil nil #xE1) table)
+    (put-char-table (make-char 'latin-iso8859-1 98) (vector #x3F (make-char 'latin-iso8859-1 98) (make-char 'latin-iso8859-2 98) (make-char 'latin-iso8859-3 98) (make-char 'latin-iso8859-4 98) (make-char 'latin-iso8859-9 98) (make-char 'latin-iso8859-15 98) nil nil #xE2) table)
+    (put-char-table (make-char 'latin-iso8859-1 99) (vector #x39 (make-char 'latin-iso8859-1 99) nil nil (make-char 'latin-iso8859-4 99) (make-char 'latin-iso8859-9 99) (make-char 'latin-iso8859-15 99) nil nil #xE3) table)
+    (put-char-table (make-char 'latin-iso8859-1 100) (vector #x3F (make-char 'latin-iso8859-1 100) (make-char 'latin-iso8859-2 100) (make-char 'latin-iso8859-3 100) (make-char 'latin-iso8859-4 100) (make-char 'latin-iso8859-9 100) (make-char 'latin-iso8859-15 100) nil nil #xE4) table)
+    (put-char-table (make-char 'latin-iso8859-1 101) (vector #x39 (make-char 'latin-iso8859-1 101) nil nil (make-char 'latin-iso8859-4 101) (make-char 'latin-iso8859-9 101) (make-char 'latin-iso8859-15 101) nil nil #xE5) table)
+    (put-char-table (make-char 'latin-iso8859-1 102) (vector #x39 (make-char 'latin-iso8859-1 102) nil nil (make-char 'latin-iso8859-4 102) (make-char 'latin-iso8859-9 102) (make-char 'latin-iso8859-15 102) nil nil #xE6) table)
+    (put-char-table (make-char 'latin-iso8859-1 103) (vector #x37 (make-char 'latin-iso8859-1 103) (make-char 'latin-iso8859-2 103) (make-char 'latin-iso8859-3 103) nil (make-char 'latin-iso8859-9 103) (make-char 'latin-iso8859-15 103) nil nil #xE7) table)
+    (put-char-table (make-char 'latin-iso8859-1 104) (vector #x35 (make-char 'latin-iso8859-1 104) nil (make-char 'latin-iso8859-3 104) nil (make-char 'latin-iso8859-9 104) (make-char 'latin-iso8859-15 104) nil nil #xE8) table)
+    (put-char-table (make-char 'latin-iso8859-1 105) (vector #x3F (make-char 'latin-iso8859-1 105) (make-char 'latin-iso8859-2 105) (make-char 'latin-iso8859-3 105) (make-char 'latin-iso8859-4 105) (make-char 'latin-iso8859-9 105) (make-char 'latin-iso8859-15 105) nil nil #xE9) table)
+    (put-char-table (make-char 'latin-iso8859-1 106) (vector #x35 (make-char 'latin-iso8859-1 106) nil (make-char 'latin-iso8859-3 106) nil (make-char 'latin-iso8859-9 106) (make-char 'latin-iso8859-15 106) nil nil #xEA) table)
+    (put-char-table (make-char 'latin-iso8859-1 107) (vector #x3F (make-char 'latin-iso8859-1 107) (make-char 'latin-iso8859-2 107) (make-char 'latin-iso8859-3 107) (make-char 'latin-iso8859-4 107) (make-char 'latin-iso8859-9 107) (make-char 'latin-iso8859-15 107) nil nil #xEB) table)
+    (put-char-table (make-char 'latin-iso8859-1 108) (vector #x35 (make-char 'latin-iso8859-1 108) nil (make-char 'latin-iso8859-3 108) nil (make-char 'latin-iso8859-9 108) (make-char 'latin-iso8859-15 108) nil nil #xEC) table)
+    (put-char-table (make-char 'latin-iso8859-1 109) (vector #x3F (make-char 'latin-iso8859-1 109) (make-char 'latin-iso8859-2 109) (make-char 'latin-iso8859-3 109) (make-char 'latin-iso8859-4 109) (make-char 'latin-iso8859-9 109) (make-char 'latin-iso8859-15 109) nil nil #xED) table)
+    (put-char-table (make-char 'latin-iso8859-1 110) (vector #x3F (make-char 'latin-iso8859-1 110) (make-char 'latin-iso8859-2 110) (make-char 'latin-iso8859-3 110) (make-char 'latin-iso8859-4 110) (make-char 'latin-iso8859-9 110) (make-char 'latin-iso8859-15 110) nil nil #xEE) table)
+    (put-char-table (make-char 'latin-iso8859-1 111) (vector #x35 (make-char 'latin-iso8859-1 111) nil (make-char 'latin-iso8859-3 111) nil (make-char 'latin-iso8859-9 111) (make-char 'latin-iso8859-15 111) nil nil #xEF) table)
+    (put-char-table (make-char 'latin-iso8859-1 112) (vector #x21 (make-char 'latin-iso8859-1 112) nil nil nil nil (make-char 'latin-iso8859-15 112) nil nil #xF0) table)
+    (put-char-table (make-char 'latin-iso8859-1 113) (vector #x35 (make-char 'latin-iso8859-1 113) nil (make-char 'latin-iso8859-3 113) nil (make-char 'latin-iso8859-9 113) (make-char 'latin-iso8859-15 113) nil nil #xF1) table)
+    (put-char-table (make-char 'latin-iso8859-1 114) (vector #x35 (make-char 'latin-iso8859-1 114) nil (make-char 'latin-iso8859-3 114) nil (make-char 'latin-iso8859-9 114) (make-char 'latin-iso8859-15 114) nil nil #xF2) table)
+    (put-char-table (make-char 'latin-iso8859-1 115) (vector #x37 (make-char 'latin-iso8859-1 115) (make-char 'latin-iso8859-2 115) (make-char 'latin-iso8859-3 115) nil (make-char 'latin-iso8859-9 115) (make-char 'latin-iso8859-15 115) nil nil #xF3) table)
+    (put-char-table (make-char 'latin-iso8859-1 116) (vector #x3F (make-char 'latin-iso8859-1 116) (make-char 'latin-iso8859-2 116) (make-char 'latin-iso8859-3 116) (make-char 'latin-iso8859-4 116) (make-char 'latin-iso8859-9 116) (make-char 'latin-iso8859-15 116) nil nil #xF4) table)
+    (put-char-table (make-char 'latin-iso8859-1 117) (vector #x39 (make-char 'latin-iso8859-1 117) nil nil (make-char 'latin-iso8859-4 117) (make-char 'latin-iso8859-9 117) (make-char 'latin-iso8859-15 117) nil nil #xF5) table)
+    (put-char-table (make-char 'latin-iso8859-1 118) (vector #x3F (make-char 'latin-iso8859-1 118) (make-char 'latin-iso8859-2 118) (make-char 'latin-iso8859-3 118) (make-char 'latin-iso8859-4 118) (make-char 'latin-iso8859-9 118) (make-char 'latin-iso8859-15 118) nil nil #xF6) table)
+    (put-char-table (make-char 'latin-iso8859-1 119) (vector #x3F (make-char 'latin-iso8859-1 119) (make-char 'latin-iso8859-2 119) (make-char 'latin-iso8859-3 119) (make-char 'latin-iso8859-4 119) (make-char 'latin-iso8859-9 119) (make-char 'latin-iso8859-15 119) nil nil #xF7) table)
+    (put-char-table (make-char 'latin-iso8859-1 120) (vector #x39 (make-char 'latin-iso8859-1 120) nil nil (make-char 'latin-iso8859-4 120) (make-char 'latin-iso8859-9 120) (make-char 'latin-iso8859-15 120) nil nil #xF8) table)
+    (put-char-table (make-char 'latin-iso8859-1 121) (vector #x35 (make-char 'latin-iso8859-1 121) nil (make-char 'latin-iso8859-3 121) nil (make-char 'latin-iso8859-9 121) (make-char 'latin-iso8859-15 121) nil nil #xF9) table)
+    (put-char-table (make-char 'latin-iso8859-1 122) (vector #x3F (make-char 'latin-iso8859-1 122) (make-char 'latin-iso8859-2 122) (make-char 'latin-iso8859-3 122) (make-char 'latin-iso8859-4 122) (make-char 'latin-iso8859-9 122) (make-char 'latin-iso8859-15 122) nil nil #xFA) table)
+    (put-char-table (make-char 'latin-iso8859-1 123) (vector #x3D (make-char 'latin-iso8859-1 123) nil (make-char 'latin-iso8859-3 123) (make-char 'latin-iso8859-4 123) (make-char 'latin-iso8859-9 123) (make-char 'latin-iso8859-15 123) nil nil #xFB) table)
+    (put-char-table (make-char 'latin-iso8859-1 124) (vector #x3F (make-char 'latin-iso8859-1 124) (make-char 'latin-iso8859-2 124) (make-char 'latin-iso8859-3 124) (make-char 'latin-iso8859-4 124) (make-char 'latin-iso8859-9 124) (make-char 'latin-iso8859-15 124) nil nil #xFC) table)
+    (put-char-table (make-char 'latin-iso8859-1 125) (vector #x23 (make-char 'latin-iso8859-1 125) (make-char 'latin-iso8859-2 125) nil nil nil (make-char 'latin-iso8859-15 125) nil nil #xFD) table)
+    (put-char-table (make-char 'latin-iso8859-1 126) (vector #x21 (make-char 'latin-iso8859-1 126) nil nil nil nil (make-char 'latin-iso8859-15 126) nil nil #xFE) table)
+    (put-char-table (make-char 'latin-iso8859-1 127) (vector #x31 (make-char 'latin-iso8859-1 127) nil nil nil (make-char 'latin-iso8859-9 127) (make-char 'latin-iso8859-15 127) nil nil #xFF) table)
+    (put-char-table (make-char 'latin-iso8859-2 32) (vector #x3F (make-char 'latin-iso8859-1 32) (make-char 'latin-iso8859-2 32) (make-char 'latin-iso8859-3 32) (make-char 'latin-iso8859-4 32) (make-char 'latin-iso8859-9 32) (make-char 'latin-iso8859-15 32) nil nil #xA0) table)
+    (put-char-table (make-char 'latin-iso8859-2 33) (vector #xA nil (make-char 'latin-iso8859-2 33) nil (make-char 'latin-iso8859-4 33) nil nil nil nil #x104) table)
+    (put-char-table (make-char 'latin-iso8859-2 34) (vector #x6 nil (make-char 'latin-iso8859-2 34) (make-char 'latin-iso8859-3 34) nil nil nil nil nil #x2D8) table)
+    (put-char-table (make-char 'latin-iso8859-2 35) (vector #x2 nil (make-char 'latin-iso8859-2 35) nil nil nil nil nil nil #x141) table)
+    (put-char-table (make-char 'latin-iso8859-2 36) (vector #x1F (make-char 'latin-iso8859-1 36) (make-char 'latin-iso8859-2 36) (make-char 'latin-iso8859-3 36) (make-char 'latin-iso8859-4 36) (make-char 'latin-iso8859-9 36) nil nil nil #xA4) table)
+    (put-char-table (make-char 'latin-iso8859-2 37) (vector #x2 nil (make-char 'latin-iso8859-2 37) nil nil nil nil nil nil #x13D) table)
+    (put-char-table (make-char 'latin-iso8859-2 38) (vector #x2 nil (make-char 'latin-iso8859-2 38) nil nil nil nil nil nil #x15A) table)
+    (put-char-table (make-char 'latin-iso8859-2 39) (vector #x3F (make-char 'latin-iso8859-1 39) (make-char 'latin-iso8859-2 39) (make-char 'latin-iso8859-3 39) (make-char 'latin-iso8859-4 39) (make-char 'latin-iso8859-9 39) (make-char 'latin-iso8859-15 39) nil nil #xA7) table)
+    (put-char-table (make-char 'latin-iso8859-2 40) (vector #x1F (make-char 'latin-iso8859-1 40) (make-char 'latin-iso8859-2 40) (make-char 'latin-iso8859-3 40) (make-char 'latin-iso8859-4 40) (make-char 'latin-iso8859-9 40) nil nil nil #xA8) table)
+    (put-char-table (make-char 'latin-iso8859-2 41) (vector #x2A nil (make-char 'latin-iso8859-2 41) nil (make-char 'latin-iso8859-4 41) nil (make-char 'latin-iso8859-15 38) nil nil #x160) table)
+    (put-char-table (make-char 'latin-iso8859-2 42) (vector #x16 nil (make-char 'latin-iso8859-2 42) (make-char 'latin-iso8859-3 42) nil (make-char 'latin-iso8859-9 94) nil nil nil #x15E) table)
+    (put-char-table (make-char 'latin-iso8859-2 43) (vector #x2 nil (make-char 'latin-iso8859-2 43) nil nil nil nil nil nil #x164) table)
+    (put-char-table (make-char 'latin-iso8859-2 44) (vector #x2 nil (make-char 'latin-iso8859-2 44) nil nil nil nil nil nil #x179) table)
+    (put-char-table (make-char 'latin-iso8859-2 45) (vector #x3F (make-char 'latin-iso8859-1 45) (make-char 'latin-iso8859-2 45) (make-char 'latin-iso8859-3 45) (make-char 'latin-iso8859-4 45) (make-char 'latin-iso8859-9 45) (make-char 'latin-iso8859-15 45) nil nil #xAD) table)
+    (put-char-table (make-char 'latin-iso8859-2 46) (vector #x2A nil (make-char 'latin-iso8859-2 46) nil (make-char 'latin-iso8859-4 46) nil (make-char 'latin-iso8859-15 52) nil nil #x17D) table)
+    (put-char-table (make-char 'latin-iso8859-2 47) (vector #x6 nil (make-char 'latin-iso8859-2 47) (make-char 'latin-iso8859-3 47) nil nil nil nil nil #x17B) table)
+    (put-char-table (make-char 'latin-iso8859-2 48) (vector #x3F (make-char 'latin-iso8859-1 48) (make-char 'latin-iso8859-2 48) (make-char 'latin-iso8859-3 48) (make-char 'latin-iso8859-4 48) (make-char 'latin-iso8859-9 48) (make-char 'latin-iso8859-15 48) nil nil #xB0) table)
+    (put-char-table (make-char 'latin-iso8859-2 49) (vector #xA nil (make-char 'latin-iso8859-2 49) nil (make-char 'latin-iso8859-4 49) nil nil nil nil #x105) table)
+    (put-char-table (make-char 'latin-iso8859-2 50) (vector #xA nil (make-char 'latin-iso8859-2 50) nil (make-char 'latin-iso8859-4 50) nil nil nil nil #x2DB) table)
+    (put-char-table (make-char 'latin-iso8859-2 51) (vector #x2 nil (make-char 'latin-iso8859-2 51) nil nil nil nil nil nil #x142) table)
+    (put-char-table (make-char 'latin-iso8859-2 52) (vector #x1F (make-char 'latin-iso8859-1 52) (make-char 'latin-iso8859-2 52) (make-char 'latin-iso8859-3 52) (make-char 'latin-iso8859-4 52) (make-char 'latin-iso8859-9 52) nil nil nil #xB4) table)
+    (put-char-table (make-char 'latin-iso8859-2 53) (vector #x2 nil (make-char 'latin-iso8859-2 53) nil nil nil nil nil nil #x13E) table)
+    (put-char-table (make-char 'latin-iso8859-2 54) (vector #x2 nil (make-char 'latin-iso8859-2 54) nil nil nil nil nil nil #x15B) table)
+    (put-char-table (make-char 'latin-iso8859-2 55) (vector #xA nil (make-char 'latin-iso8859-2 55) nil (make-char 'latin-iso8859-4 55) nil nil nil nil #x2C7) table)
+    (put-char-table (make-char 'latin-iso8859-2 56) (vector #x1F (make-char 'latin-iso8859-1 56) (make-char 'latin-iso8859-2 56) (make-char 'latin-iso8859-3 56) (make-char 'latin-iso8859-4 56) (make-char 'latin-iso8859-9 56) nil nil nil #xB8) table)
+    (put-char-table (make-char 'latin-iso8859-2 57) (vector #x2A nil (make-char 'latin-iso8859-2 57) nil (make-char 'latin-iso8859-4 57) nil (make-char 'latin-iso8859-15 40) nil nil #x161) table)
+    (put-char-table (make-char 'latin-iso8859-2 58) (vector #x16 nil (make-char 'latin-iso8859-2 58) (make-char 'latin-iso8859-3 58) nil (make-char 'latin-iso8859-9 126) nil nil nil #x15F) table)
+    (put-char-table (make-char 'latin-iso8859-2 59) (vector #x2 nil (make-char 'latin-iso8859-2 59) nil nil nil nil nil nil #x165) table)
+    (put-char-table (make-char 'latin-iso8859-2 60) (vector #x2 nil (make-char 'latin-iso8859-2 60) nil nil nil nil nil nil #x17A) table)
+    (put-char-table (make-char 'latin-iso8859-2 61) (vector #x2 nil (make-char 'latin-iso8859-2 61) nil nil nil nil nil nil #x2DD) table)
+    (put-char-table (make-char 'latin-iso8859-2 62) (vector #x2A nil (make-char 'latin-iso8859-2 62) nil (make-char 'latin-iso8859-4 62) nil (make-char 'latin-iso8859-15 56) nil nil #x17E) table)
+    (put-char-table (make-char 'latin-iso8859-2 63) (vector #x6 nil (make-char 'latin-iso8859-2 63) (make-char 'latin-iso8859-3 63) nil nil nil nil nil #x17C) table)
+    (put-char-table (make-char 'latin-iso8859-2 64) (vector #x2 nil (make-char 'latin-iso8859-2 64) nil nil nil nil nil nil #x154) table)
+    (put-char-table (make-char 'latin-iso8859-2 65) (vector #x3F (make-char 'latin-iso8859-1 65) (make-char 'latin-iso8859-2 65) (make-char 'latin-iso8859-3 65) (make-char 'latin-iso8859-4 65) (make-char 'latin-iso8859-9 65) (make-char 'latin-iso8859-15 65) nil nil #xC1) table)
+    (put-char-table (make-char 'latin-iso8859-2 66) (vector #x3F (make-char 'latin-iso8859-1 66) (make-char 'latin-iso8859-2 66) (make-char 'latin-iso8859-3 66) (make-char 'latin-iso8859-4 66) (make-char 'latin-iso8859-9 66) (make-char 'latin-iso8859-15 66) nil nil #xC2) table)
+    (put-char-table (make-char 'latin-iso8859-2 67) (vector #x2 nil (make-char 'latin-iso8859-2 67) nil nil nil nil nil nil #x102) table)
+    (put-char-table (make-char 'latin-iso8859-2 68) (vector #x3F (make-char 'latin-iso8859-1 68) (make-char 'latin-iso8859-2 68) (make-char 'latin-iso8859-3 68) (make-char 'latin-iso8859-4 68) (make-char 'latin-iso8859-9 68) (make-char 'latin-iso8859-15 68) nil nil #xC4) table)
+    (put-char-table (make-char 'latin-iso8859-2 69) (vector #x2 nil (make-char 'latin-iso8859-2 69) nil nil nil nil nil nil #x139) table)
+    (put-char-table (make-char 'latin-iso8859-2 70) (vector #x2 nil (make-char 'latin-iso8859-2 70) nil nil nil nil nil nil #x106) table)
+    (put-char-table (make-char 'latin-iso8859-2 71) (vector #x37 (make-char 'latin-iso8859-1 71) (make-char 'latin-iso8859-2 71) (make-char 'latin-iso8859-3 71) nil (make-char 'latin-iso8859-9 71) (make-char 'latin-iso8859-15 71) nil nil #xC7) table)
+    (put-char-table (make-char 'latin-iso8859-2 72) (vector #xA nil (make-char 'latin-iso8859-2 72) nil (make-char 'latin-iso8859-4 72) nil nil nil nil #x10C) table)
+    (put-char-table (make-char 'latin-iso8859-2 73) (vector #x3F (make-char 'latin-iso8859-1 73) (make-char 'latin-iso8859-2 73) (make-char 'latin-iso8859-3 73) (make-char 'latin-iso8859-4 73) (make-char 'latin-iso8859-9 73) (make-char 'latin-iso8859-15 73) nil nil #xC9) table)
+    (put-char-table (make-char 'latin-iso8859-2 74) (vector #xA nil (make-char 'latin-iso8859-2 74) nil (make-char 'latin-iso8859-4 74) nil nil nil nil #x118) table)
+    (put-char-table (make-char 'latin-iso8859-2 75) (vector #x3F (make-char 'latin-iso8859-1 75) (make-char 'latin-iso8859-2 75) (make-char 'latin-iso8859-3 75) (make-char 'latin-iso8859-4 75) (make-char 'latin-iso8859-9 75) (make-char 'latin-iso8859-15 75) nil nil #xCB) table)
+    (put-char-table (make-char 'latin-iso8859-2 76) (vector #x2 nil (make-char 'latin-iso8859-2 76) nil nil nil nil nil nil #x11A) table)
+    (put-char-table (make-char 'latin-iso8859-2 77) (vector #x3F (make-char 'latin-iso8859-1 77) (make-char 'latin-iso8859-2 77) (make-char 'latin-iso8859-3 77) (make-char 'latin-iso8859-4 77) (make-char 'latin-iso8859-9 77) (make-char 'latin-iso8859-15 77) nil nil #xCD) table)
+    (put-char-table (make-char 'latin-iso8859-2 78) (vector #x3F (make-char 'latin-iso8859-1 78) (make-char 'latin-iso8859-2 78) (make-char 'latin-iso8859-3 78) (make-char 'latin-iso8859-4 78) (make-char 'latin-iso8859-9 78) (make-char 'latin-iso8859-15 78) nil nil #xCE) table)
+    (put-char-table (make-char 'latin-iso8859-2 79) (vector #x2 nil (make-char 'latin-iso8859-2 79) nil nil nil nil nil nil #x10E) table)
+    (put-char-table (make-char 'latin-iso8859-2 80) (vector #xA nil (make-char 'latin-iso8859-2 80) nil (make-char 'latin-iso8859-4 80) nil nil nil nil #x110) table)
+    (put-char-table (make-char 'latin-iso8859-2 81) (vector #x2 nil (make-char 'latin-iso8859-2 81) nil nil nil nil nil nil #x143) table)
+    (put-char-table (make-char 'latin-iso8859-2 82) (vector #x2 nil (make-char 'latin-iso8859-2 82) nil nil nil nil nil nil #x147) table)
+    (put-char-table (make-char 'latin-iso8859-2 83) (vector #x37 (make-char 'latin-iso8859-1 83) (make-char 'latin-iso8859-2 83) (make-char 'latin-iso8859-3 83) nil (make-char 'latin-iso8859-9 83) (make-char 'latin-iso8859-15 83) nil nil #xD3) table)
+    (put-char-table (make-char 'latin-iso8859-2 84) (vector #x3F (make-char 'latin-iso8859-1 84) (make-char 'latin-iso8859-2 84) (make-char 'latin-iso8859-3 84) (make-char 'latin-iso8859-4 84) (make-char 'latin-iso8859-9 84) (make-char 'latin-iso8859-15 84) nil nil #xD4) table)
+    (put-char-table (make-char 'latin-iso8859-2 85) (vector #x2 nil (make-char 'latin-iso8859-2 85) nil nil nil nil nil nil #x150) table)
+    (put-char-table (make-char 'latin-iso8859-2 86) (vector #x3F (make-char 'latin-iso8859-1 86) (make-char 'latin-iso8859-2 86) (make-char 'latin-iso8859-3 86) (make-char 'latin-iso8859-4 86) (make-char 'latin-iso8859-9 86) (make-char 'latin-iso8859-15 86) nil nil #xD6) table)
+    (put-char-table (make-char 'latin-iso8859-2 87) (vector #x3F (make-char 'latin-iso8859-1 87) (make-char 'latin-iso8859-2 87) (make-char 'latin-iso8859-3 87) (make-char 'latin-iso8859-4 87) (make-char 'latin-iso8859-9 87) (make-char 'latin-iso8859-15 87) nil nil #xD7) table)
+    (put-char-table (make-char 'latin-iso8859-2 88) (vector #x2 nil (make-char 'latin-iso8859-2 88) nil nil nil nil nil nil #x158) table)
+    (put-char-table (make-char 'latin-iso8859-2 89) (vector #x2 nil (make-char 'latin-iso8859-2 89) nil nil nil nil nil nil #x16E) table)
+    (put-char-table (make-char 'latin-iso8859-2 90) (vector #x3F (make-char 'latin-iso8859-1 90) (make-char 'latin-iso8859-2 90) (make-char 'latin-iso8859-3 90) (make-char 'latin-iso8859-4 90) (make-char 'latin-iso8859-9 90) (make-char 'latin-iso8859-15 90) nil nil #xDA) table)
+    (put-char-table (make-char 'latin-iso8859-2 91) (vector #x2 nil (make-char 'latin-iso8859-2 91) nil nil nil nil nil nil #x170) table)
+    (put-char-table (make-char 'latin-iso8859-2 92) (vector #x3F (make-char 'latin-iso8859-1 92) (make-char 'latin-iso8859-2 92) (make-char 'latin-iso8859-3 92) (make-char 'latin-iso8859-4 92) (make-char 'latin-iso8859-9 92) (make-char 'latin-iso8859-15 92) nil nil #xDC) table)
+    (put-char-table (make-char 'latin-iso8859-2 93) (vector #x23 (make-char 'latin-iso8859-1 93) (make-char 'latin-iso8859-2 93) nil nil nil (make-char 'latin-iso8859-15 93) nil nil #xDD) table)
+    (put-char-table (make-char 'latin-iso8859-2 94) (vector #x2 nil (make-char 'latin-iso8859-2 94) nil nil nil nil nil nil #x162) table)
+    (put-char-table (make-char 'latin-iso8859-2 95) (vector #x3F (make-char 'latin-iso8859-1 95) (make-char 'latin-iso8859-2 95) (make-char 'latin-iso8859-3 95) (make-char 'latin-iso8859-4 95) (make-char 'latin-iso8859-9 95) (make-char 'latin-iso8859-15 95) nil nil #xDF) table)
+    (put-char-table (make-char 'latin-iso8859-2 96) (vector #x2 nil (make-char 'latin-iso8859-2 96) nil nil nil nil nil nil #x155) table)
+    (put-char-table (make-char 'latin-iso8859-2 97) (vector #x3F (make-char 'latin-iso8859-1 97) (make-char 'latin-iso8859-2 97) (make-char 'latin-iso8859-3 97) (make-char 'latin-iso8859-4 97) (make-char 'latin-iso8859-9 97) (make-char 'latin-iso8859-15 97) nil nil #xE1) table)
+    (put-char-table (make-char 'latin-iso8859-2 98) (vector #x3F (make-char 'latin-iso8859-1 98) (make-char 'latin-iso8859-2 98) (make-char 'latin-iso8859-3 98) (make-char 'latin-iso8859-4 98) (make-char 'latin-iso8859-9 98) (make-char 'latin-iso8859-15 98) nil nil #xE2) table)
+    (put-char-table (make-char 'latin-iso8859-2 99) (vector #x2 nil (make-char 'latin-iso8859-2 99) nil nil nil nil nil nil #x103) table)
+    (put-char-table (make-char 'latin-iso8859-2 100) (vector #x3F (make-char 'latin-iso8859-1 100) (make-char 'latin-iso8859-2 100) (make-char 'latin-iso8859-3 100) (make-char 'latin-iso8859-4 100) (make-char 'latin-iso8859-9 100) (make-char 'latin-iso8859-15 100) nil nil #xE4) table)
+    (put-char-table (make-char 'latin-iso8859-2 101) (vector #x2 nil (make-char 'latin-iso8859-2 101) nil nil nil nil nil nil #x13A) table)
+    (put-char-table (make-char 'latin-iso8859-2 102) (vector #x2 nil (make-char 'latin-iso8859-2 102) nil nil nil nil nil nil #x107) table)
+    (put-char-table (make-char 'latin-iso8859-2 103) (vector #x37 (make-char 'latin-iso8859-1 103) (make-char 'latin-iso8859-2 103) (make-char 'latin-iso8859-3 103) nil (make-char 'latin-iso8859-9 103) (make-char 'latin-iso8859-15 103) nil nil #xE7) table)
+    (put-char-table (make-char 'latin-iso8859-2 104) (vector #xA nil (make-char 'latin-iso8859-2 104) nil (make-char 'latin-iso8859-4 104) nil nil nil nil #x10D) table)
+    (put-char-table (make-char 'latin-iso8859-2 105) (vector #x3F (make-char 'latin-iso8859-1 105) (make-char 'latin-iso8859-2 105) (make-char 'latin-iso8859-3 105) (make-char 'latin-iso8859-4 105) (make-char 'latin-iso8859-9 105) (make-char 'latin-iso8859-15 105) nil nil #xE9) table)
+    (put-char-table (make-char 'latin-iso8859-2 106) (vector #xA nil (make-char 'latin-iso8859-2 106) nil (make-char 'latin-iso8859-4 106) nil nil nil nil #x119) table)
+    (put-char-table (make-char 'latin-iso8859-2 107) (vector #x3F (make-char 'latin-iso8859-1 107) (make-char 'latin-iso8859-2 107) (make-char 'latin-iso8859-3 107) (make-char 'latin-iso8859-4 107) (make-char 'latin-iso8859-9 107) (make-char 'latin-iso8859-15 107) nil nil #xEB) table)
+    (put-char-table (make-char 'latin-iso8859-2 108) (vector #x2 nil (make-char 'latin-iso8859-2 108) nil nil nil nil nil nil #x11B) table)
+    (put-char-table (make-char 'latin-iso8859-2 109) (vector #x3F (make-char 'latin-iso8859-1 109) (make-char 'latin-iso8859-2 109) (make-char 'latin-iso8859-3 109) (make-char 'latin-iso8859-4 109) (make-char 'latin-iso8859-9 109) (make-char 'latin-iso8859-15 109) nil nil #xED) table)
+    (put-char-table (make-char 'latin-iso8859-2 110) (vector #x3F (make-char 'latin-iso8859-1 110) (make-char 'latin-iso8859-2 110) (make-char 'latin-iso8859-3 110) (make-char 'latin-iso8859-4 110) (make-char 'latin-iso8859-9 110) (make-char 'latin-iso8859-15 110) nil nil #xEE) table)
+    (put-char-table (make-char 'latin-iso8859-2 111) (vector #x2 nil (make-char 'latin-iso8859-2 111) nil nil nil nil nil nil #x10F) table)
+    (put-char-table (make-char 'latin-iso8859-2 112) (vector #xA nil (make-char 'latin-iso8859-2 112) nil (make-char 'latin-iso8859-4 112) nil nil nil nil #x111) table)
+    (put-char-table (make-char 'latin-iso8859-2 113) (vector #x2 nil (make-char 'latin-iso8859-2 113) nil nil nil nil nil nil #x144) table)
+    (put-char-table (make-char 'latin-iso8859-2 114) (vector #x2 nil (make-char 'latin-iso8859-2 114) nil nil nil nil nil nil #x148) table)
+    (put-char-table (make-char 'latin-iso8859-2 115) (vector #x37 (make-char 'latin-iso8859-1 115) (make-char 'latin-iso8859-2 115) (make-char 'latin-iso8859-3 115) nil (make-char 'latin-iso8859-9 115) (make-char 'latin-iso8859-15 115) nil nil #xF3) table)
+    (put-char-table (make-char 'latin-iso8859-2 116) (vector #x3F (make-char 'latin-iso8859-1 116) (make-char 'latin-iso8859-2 116) (make-char 'latin-iso8859-3 116) (make-char 'latin-iso8859-4 116) (make-char 'latin-iso8859-9 116) (make-char 'latin-iso8859-15 116) nil nil #xF4) table)
+    (put-char-table (make-char 'latin-iso8859-2 117) (vector #x2 nil (make-char 'latin-iso8859-2 117) nil nil nil nil nil nil #x151) table)
+    (put-char-table (make-char 'latin-iso8859-2 118) (vector #x3F (make-char 'latin-iso8859-1 118) (make-char 'latin-iso8859-2 118) (make-char 'latin-iso8859-3 118) (make-char 'latin-iso8859-4 118) (make-char 'latin-iso8859-9 118) (make-char 'latin-iso8859-15 118) nil nil #xF6) table)
+    (put-char-table (make-char 'latin-iso8859-2 119) (vector #x3F (make-char 'latin-iso8859-1 119) (make-char 'latin-iso8859-2 119) (make-char 'latin-iso8859-3 119) (make-char 'latin-iso8859-4 119) (make-char 'latin-iso8859-9 119) (make-char 'latin-iso8859-15 119) nil nil #xF7) table)
+    (put-char-table (make-char 'latin-iso8859-2 120) (vector #x2 nil (make-char 'latin-iso8859-2 120) nil nil nil nil nil nil #x159) table)
+    (put-char-table (make-char 'latin-iso8859-2 121) (vector #x2 nil (make-char 'latin-iso8859-2 121) nil nil nil nil nil nil #x16F) table)
+    (put-char-table (make-char 'latin-iso8859-2 122) (vector #x3F (make-char 'latin-iso8859-1 122) (make-char 'latin-iso8859-2 122) (make-char 'latin-iso8859-3 122) (make-char 'latin-iso8859-4 122) (make-char 'latin-iso8859-9 122) (make-char 'latin-iso8859-15 122) nil nil #xFA) table)
+    (put-char-table (make-char 'latin-iso8859-2 123) (vector #x2 nil (make-char 'latin-iso8859-2 123) nil nil nil nil nil nil #x171) table)
+    (put-char-table (make-char 'latin-iso8859-2 124) (vector #x3F (make-char 'latin-iso8859-1 124) (make-char 'latin-iso8859-2 124) (make-char 'latin-iso8859-3 124) (make-char 'latin-iso8859-4 124) (make-char 'latin-iso8859-9 124) (make-char 'latin-iso8859-15 124) nil nil #xFC) table)
+    (put-char-table (make-char 'latin-iso8859-2 125) (vector #x23 (make-char 'latin-iso8859-1 125) (make-char 'latin-iso8859-2 125) nil nil nil (make-char 'latin-iso8859-15 125) nil nil #xFD) table)
+    (put-char-table (make-char 'latin-iso8859-2 126) (vector #x2 nil (make-char 'latin-iso8859-2 126) nil nil nil nil nil nil #x163) table)
+    (put-char-table (make-char 'latin-iso8859-2 127) (vector #xE nil (make-char 'latin-iso8859-2 127) (make-char 'latin-iso8859-3 127) (make-char 'latin-iso8859-4 127) nil nil nil nil #x2D9) table)
+    (put-char-table (make-char 'latin-iso8859-3 32) (vector #x3F (make-char 'latin-iso8859-1 32) (make-char 'latin-iso8859-2 32) (make-char 'latin-iso8859-3 32) (make-char 'latin-iso8859-4 32) (make-char 'latin-iso8859-9 32) (make-char 'latin-iso8859-15 32) nil nil #xA0) table)
+    (put-char-table (make-char 'latin-iso8859-3 33) (vector #x4 nil nil (make-char 'latin-iso8859-3 33) nil nil nil nil nil #x126) table)
+    (put-char-table (make-char 'latin-iso8859-3 34) (vector #x6 nil (make-char 'latin-iso8859-2 34) (make-char 'latin-iso8859-3 34) nil nil nil nil nil #x2D8) table)
+    (put-char-table (make-char 'latin-iso8859-3 35) (vector #x35 (make-char 'latin-iso8859-1 35) nil (make-char 'latin-iso8859-3 35) nil (make-char 'latin-iso8859-9 35) (make-char 'latin-iso8859-15 35) nil nil #xA3) table)
+    (put-char-table (make-char 'latin-iso8859-3 36) (vector #x1F (make-char 'latin-iso8859-1 36) (make-char 'latin-iso8859-2 36) (make-char 'latin-iso8859-3 36) (make-char 'latin-iso8859-4 36) (make-char 'latin-iso8859-9 36) nil nil nil #xA4) table)
+    (put-char-table (make-char 'latin-iso8859-3 37) (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-3 38) (vector #x4 nil nil (make-char 'latin-iso8859-3 38) nil nil nil nil nil #x124) table)
+    (put-char-table (make-char 'latin-iso8859-3 39) (vector #x3F (make-char 'latin-iso8859-1 39) (make-char 'latin-iso8859-2 39) (make-char 'latin-iso8859-3 39) (make-char 'latin-iso8859-4 39) (make-char 'latin-iso8859-9 39) (make-char 'latin-iso8859-15 39) nil nil #xA7) table)
+    (put-char-table (make-char 'latin-iso8859-3 40) (vector #x1F (make-char 'latin-iso8859-1 40) (make-char 'latin-iso8859-2 40) (make-char 'latin-iso8859-3 40) (make-char 'latin-iso8859-4 40) (make-char 'latin-iso8859-9 40) nil nil nil #xA8) table)
+    (put-char-table (make-char 'latin-iso8859-3 41) (vector #x14 nil nil (make-char 'latin-iso8859-3 41) nil (make-char 'latin-iso8859-9 93) nil nil nil #x130) table)
+    (put-char-table (make-char 'latin-iso8859-3 42) (vector #x16 nil (make-char 'latin-iso8859-2 42) (make-char 'latin-iso8859-3 42) nil (make-char 'latin-iso8859-9 94) nil nil nil #x15E) table)
+    (put-char-table (make-char 'latin-iso8859-3 43) (vector #x14 nil nil (make-char 'latin-iso8859-3 43) nil (make-char 'latin-iso8859-9 80) nil nil nil #x11E) table)
+    (put-char-table (make-char 'latin-iso8859-3 44) (vector #x4 nil nil (make-char 'latin-iso8859-3 44) nil nil nil nil nil #x134) table)
+    (put-char-table (make-char 'latin-iso8859-3 45) (vector #x3F (make-char 'latin-iso8859-1 45) (make-char 'latin-iso8859-2 45) (make-char 'latin-iso8859-3 45) (make-char 'latin-iso8859-4 45) (make-char 'latin-iso8859-9 45) (make-char 'latin-iso8859-15 45) nil nil #xAD) table)
+    (put-char-table (make-char 'latin-iso8859-3 46) (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-3 47) (vector #x6 nil (make-char 'latin-iso8859-2 47) (make-char 'latin-iso8859-3 47) nil nil nil nil nil #x17B) table)
+    (put-char-table (make-char 'latin-iso8859-3 48) (vector #x3F (make-char 'latin-iso8859-1 48) (make-char 'latin-iso8859-2 48) (make-char 'latin-iso8859-3 48) (make-char 'latin-iso8859-4 48) (make-char 'latin-iso8859-9 48) (make-char 'latin-iso8859-15 48) nil nil #xB0) table)
+    (put-char-table (make-char 'latin-iso8859-3 49) (vector #x4 nil nil (make-char 'latin-iso8859-3 49) nil nil nil nil nil #x127) table)
+    (put-char-table (make-char 'latin-iso8859-3 50) (vector #x35 (make-char 'latin-iso8859-1 50) nil (make-char 'latin-iso8859-3 50) nil (make-char 'latin-iso8859-9 50) (make-char 'latin-iso8859-15 50) nil nil #xB2) table)
+    (put-char-table (make-char 'latin-iso8859-3 51) (vector #x35 (make-char 'latin-iso8859-1 51) nil (make-char 'latin-iso8859-3 51) nil (make-char 'latin-iso8859-9 51) (make-char 'latin-iso8859-15 51) nil nil #xB3) table)
+    (put-char-table (make-char 'latin-iso8859-3 52) (vector #x1F (make-char 'latin-iso8859-1 52) (make-char 'latin-iso8859-2 52) (make-char 'latin-iso8859-3 52) (make-char 'latin-iso8859-4 52) (make-char 'latin-iso8859-9 52) nil nil nil #xB4) table)
+    (put-char-table (make-char 'latin-iso8859-3 53) (vector #x35 (make-char 'latin-iso8859-1 53) nil (make-char 'latin-iso8859-3 53) nil (make-char 'latin-iso8859-9 53) (make-char 'latin-iso8859-15 53) nil nil #xB5) table)
+    (put-char-table (make-char 'latin-iso8859-3 54) (vector #x4 nil nil (make-char 'latin-iso8859-3 54) nil nil nil nil nil #x125) table)
+    (put-char-table (make-char 'latin-iso8859-3 55) (vector #x35 (make-char 'latin-iso8859-1 55) nil (make-char 'latin-iso8859-3 55) nil (make-char 'latin-iso8859-9 55) (make-char 'latin-iso8859-15 55) nil nil #xB7) table)
+    (put-char-table (make-char 'latin-iso8859-3 56) (vector #x1F (make-char 'latin-iso8859-1 56) (make-char 'latin-iso8859-2 56) (make-char 'latin-iso8859-3 56) (make-char 'latin-iso8859-4 56) (make-char 'latin-iso8859-9 56) nil nil nil #xB8) table)
+    (put-char-table (make-char 'latin-iso8859-3 57) (vector #x14 nil nil (make-char 'latin-iso8859-3 57) nil (make-char 'latin-iso8859-9 125) nil nil nil #x131) table)
+    (put-char-table (make-char 'latin-iso8859-3 58) (vector #x16 nil (make-char 'latin-iso8859-2 58) (make-char 'latin-iso8859-3 58) nil (make-char 'latin-iso8859-9 126) nil nil nil #x15F) table)
+    (put-char-table (make-char 'latin-iso8859-3 59) (vector #x14 nil nil (make-char 'latin-iso8859-3 59) nil (make-char 'latin-iso8859-9 112) nil nil nil #x11F) table)
+    (put-char-table (make-char 'latin-iso8859-3 60) (vector #x4 nil nil (make-char 'latin-iso8859-3 60) nil nil nil nil nil #x135) table)
+    (put-char-table (make-char 'latin-iso8859-3 61) (vector #x15 (make-char 'latin-iso8859-1 61) nil (make-char 'latin-iso8859-3 61) nil (make-char 'latin-iso8859-9 61) nil nil nil #xBD) table)
+    (put-char-table (make-char 'latin-iso8859-3 62) (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-3 63) (vector #x6 nil (make-char 'latin-iso8859-2 63) (make-char 'latin-iso8859-3 63) nil nil nil nil nil #x17C) table)
+    (put-char-table (make-char 'latin-iso8859-3 64) (vector #x35 (make-char 'latin-iso8859-1 64) nil (make-char 'latin-iso8859-3 64) nil (make-char 'latin-iso8859-9 64) (make-char 'latin-iso8859-15 64) nil nil #xC0) table)
+    (put-char-table (make-char 'latin-iso8859-3 65) (vector #x3F (make-char 'latin-iso8859-1 65) (make-char 'latin-iso8859-2 65) (make-char 'latin-iso8859-3 65) (make-char 'latin-iso8859-4 65) (make-char 'latin-iso8859-9 65) (make-char 'latin-iso8859-15 65) nil nil #xC1) table)
+    (put-char-table (make-char 'latin-iso8859-3 66) (vector #x3F (make-char 'latin-iso8859-1 66) (make-char 'latin-iso8859-2 66) (make-char 'latin-iso8859-3 66) (make-char 'latin-iso8859-4 66) (make-char 'latin-iso8859-9 66) (make-char 'latin-iso8859-15 66) nil nil #xC2) table)
+    (put-char-table (make-char 'latin-iso8859-3 67) (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-3 68) (vector #x3F (make-char 'latin-iso8859-1 68) (make-char 'latin-iso8859-2 68) (make-char 'latin-iso8859-3 68) (make-char 'latin-iso8859-4 68) (make-char 'latin-iso8859-9 68) (make-char 'latin-iso8859-15 68) nil nil #xC4) table)
+    (put-char-table (make-char 'latin-iso8859-3 69) (vector #x4 nil nil (make-char 'latin-iso8859-3 69) nil nil nil nil nil #x10A) table)
+    (put-char-table (make-char 'latin-iso8859-3 70) (vector #x4 nil nil (make-char 'latin-iso8859-3 70) nil nil nil nil nil #x108) table)
+    (put-char-table (make-char 'latin-iso8859-3 71) (vector #x37 (make-char 'latin-iso8859-1 71) (make-char 'latin-iso8859-2 71) (make-char 'latin-iso8859-3 71) nil (make-char 'latin-iso8859-9 71) (make-char 'latin-iso8859-15 71) nil nil #xC7) table)
+    (put-char-table (make-char 'latin-iso8859-3 72) (vector #x35 (make-char 'latin-iso8859-1 72) nil (make-char 'latin-iso8859-3 72) nil (make-char 'latin-iso8859-9 72) (make-char 'latin-iso8859-15 72) nil nil #xC8) table)
+    (put-char-table (make-char 'latin-iso8859-3 73) (vector #x3F (make-char 'latin-iso8859-1 73) (make-char 'latin-iso8859-2 73) (make-char 'latin-iso8859-3 73) (make-char 'latin-iso8859-4 73) (make-char 'latin-iso8859-9 73) (make-char 'latin-iso8859-15 73) nil nil #xC9) table)
+    (put-char-table (make-char 'latin-iso8859-3 74) (vector #x35 (make-char 'latin-iso8859-1 74) nil (make-char 'latin-iso8859-3 74) nil (make-char 'latin-iso8859-9 74) (make-char 'latin-iso8859-15 74) nil nil #xCA) table)
+    (put-char-table (make-char 'latin-iso8859-3 75) (vector #x3F (make-char 'latin-iso8859-1 75) (make-char 'latin-iso8859-2 75) (make-char 'latin-iso8859-3 75) (make-char 'latin-iso8859-4 75) (make-char 'latin-iso8859-9 75) (make-char 'latin-iso8859-15 75) nil nil #xCB) table)
+    (put-char-table (make-char 'latin-iso8859-3 76) (vector #x35 (make-char 'latin-iso8859-1 76) nil (make-char 'latin-iso8859-3 76) nil (make-char 'latin-iso8859-9 76) (make-char 'latin-iso8859-15 76) nil nil #xCC) table)
+    (put-char-table (make-char 'latin-iso8859-3 77) (vector #x3F (make-char 'latin-iso8859-1 77) (make-char 'latin-iso8859-2 77) (make-char 'latin-iso8859-3 77) (make-char 'latin-iso8859-4 77) (make-char 'latin-iso8859-9 77) (make-char 'latin-iso8859-15 77) nil nil #xCD) table)
+    (put-char-table (make-char 'latin-iso8859-3 78) (vector #x3F (make-char 'latin-iso8859-1 78) (make-char 'latin-iso8859-2 78) (make-char 'latin-iso8859-3 78) (make-char 'latin-iso8859-4 78) (make-char 'latin-iso8859-9 78) (make-char 'latin-iso8859-15 78) nil nil #xCE) table)
+    (put-char-table (make-char 'latin-iso8859-3 79) (vector #x35 (make-char 'latin-iso8859-1 79) nil (make-char 'latin-iso8859-3 79) nil (make-char 'latin-iso8859-9 79) (make-char 'latin-iso8859-15 79) nil nil #xCF) table)
+    (put-char-table (make-char 'latin-iso8859-3 80) (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-3 81) (vector #x35 (make-char 'latin-iso8859-1 81) nil (make-char 'latin-iso8859-3 81) nil (make-char 'latin-iso8859-9 81) (make-char 'latin-iso8859-15 81) nil nil #xD1) table)
+    (put-char-table (make-char 'latin-iso8859-3 82) (vector #x35 (make-char 'latin-iso8859-1 82) nil (make-char 'latin-iso8859-3 82) nil (make-char 'latin-iso8859-9 82) (make-char 'latin-iso8859-15 82) nil nil #xD2) table)
+    (put-char-table (make-char 'latin-iso8859-3 83) (vector #x37 (make-char 'latin-iso8859-1 83) (make-char 'latin-iso8859-2 83) (make-char 'latin-iso8859-3 83) nil (make-char 'latin-iso8859-9 83) (make-char 'latin-iso8859-15 83) nil nil #xD3) table)
+    (put-char-table (make-char 'latin-iso8859-3 84) (vector #x3F (make-char 'latin-iso8859-1 84) (make-char 'latin-iso8859-2 84) (make-char 'latin-iso8859-3 84) (make-char 'latin-iso8859-4 84) (make-char 'latin-iso8859-9 84) (make-char 'latin-iso8859-15 84) nil nil #xD4) table)
+    (put-char-table (make-char 'latin-iso8859-3 85) (vector #x4 nil nil (make-char 'latin-iso8859-3 85) nil nil nil nil nil #x120) table)
+    (put-char-table (make-char 'latin-iso8859-3 86) (vector #x3F (make-char 'latin-iso8859-1 86) (make-char 'latin-iso8859-2 86) (make-char 'latin-iso8859-3 86) (make-char 'latin-iso8859-4 86) (make-char 'latin-iso8859-9 86) (make-char 'latin-iso8859-15 86) nil nil #xD6) table)
+    (put-char-table (make-char 'latin-iso8859-3 87) (vector #x3F (make-char 'latin-iso8859-1 87) (make-char 'latin-iso8859-2 87) (make-char 'latin-iso8859-3 87) (make-char 'latin-iso8859-4 87) (make-char 'latin-iso8859-9 87) (make-char 'latin-iso8859-15 87) nil nil #xD7) table)
+    (put-char-table (make-char 'latin-iso8859-3 88) (vector #x4 nil nil (make-char 'latin-iso8859-3 88) nil nil nil nil nil #x11C) table)
+    (put-char-table (make-char 'latin-iso8859-3 89) (vector #x35 (make-char 'latin-iso8859-1 89) nil (make-char 'latin-iso8859-3 89) nil (make-char 'latin-iso8859-9 89) (make-char 'latin-iso8859-15 89) nil nil #xD9) table)
+    (put-char-table (make-char 'latin-iso8859-3 90) (vector #x3F (make-char 'latin-iso8859-1 90) (make-char 'latin-iso8859-2 90) (make-char 'latin-iso8859-3 90) (make-char 'latin-iso8859-4 90) (make-char 'latin-iso8859-9 90) (make-char 'latin-iso8859-15 90) nil nil #xDA) table)
+    (put-char-table (make-char 'latin-iso8859-3 91) (vector #x3D (make-char 'latin-iso8859-1 91) nil (make-char 'latin-iso8859-3 91) (make-char 'latin-iso8859-4 91) (make-char 'latin-iso8859-9 91) (make-char 'latin-iso8859-15 91) nil nil #xDB) table)
+    (put-char-table (make-char 'latin-iso8859-3 92) (vector #x3F (make-char 'latin-iso8859-1 92) (make-char 'latin-iso8859-2 92) (make-char 'latin-iso8859-3 92) (make-char 'latin-iso8859-4 92) (make-char 'latin-iso8859-9 92) (make-char 'latin-iso8859-15 92) nil nil #xDC) table)
+    (put-char-table (make-char 'latin-iso8859-3 93) (vector #x4 nil nil (make-char 'latin-iso8859-3 93) nil nil nil nil nil #x16C) table)
+    (put-char-table (make-char 'latin-iso8859-3 94) (vector #x4 nil nil (make-char 'latin-iso8859-3 94) nil nil nil nil nil #x15C) table)
+    (put-char-table (make-char 'latin-iso8859-3 95) (vector #x3F (make-char 'latin-iso8859-1 95) (make-char 'latin-iso8859-2 95) (make-char 'latin-iso8859-3 95) (make-char 'latin-iso8859-4 95) (make-char 'latin-iso8859-9 95) (make-char 'latin-iso8859-15 95) nil nil #xDF) table)
+    (put-char-table (make-char 'latin-iso8859-3 96) (vector #x35 (make-char 'latin-iso8859-1 96) nil (make-char 'latin-iso8859-3 96) nil (make-char 'latin-iso8859-9 96) (make-char 'latin-iso8859-15 96) nil nil #xE0) table)
+    (put-char-table (make-char 'latin-iso8859-3 97) (vector #x3F (make-char 'latin-iso8859-1 97) (make-char 'latin-iso8859-2 97) (make-char 'latin-iso8859-3 97) (make-char 'latin-iso8859-4 97) (make-char 'latin-iso8859-9 97) (make-char 'latin-iso8859-15 97) nil nil #xE1) table)
+    (put-char-table (make-char 'latin-iso8859-3 98) (vector #x3F (make-char 'latin-iso8859-1 98) (make-char 'latin-iso8859-2 98) (make-char 'latin-iso8859-3 98) (make-char 'latin-iso8859-4 98) (make-char 'latin-iso8859-9 98) (make-char 'latin-iso8859-15 98) nil nil #xE2) table)
+    (put-char-table (make-char 'latin-iso8859-3 99) (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-3 100) (vector #x3F (make-char 'latin-iso8859-1 100) (make-char 'latin-iso8859-2 100) (make-char 'latin-iso8859-3 100) (make-char 'latin-iso8859-4 100) (make-char 'latin-iso8859-9 100) (make-char 'latin-iso8859-15 100) nil nil #xE4) table)
+    (put-char-table (make-char 'latin-iso8859-3 101) (vector #x4 nil nil (make-char 'latin-iso8859-3 101) nil nil nil nil nil #x10B) table)
+    (put-char-table (make-char 'latin-iso8859-3 102) (vector #x4 nil nil (make-char 'latin-iso8859-3 102) nil nil nil nil nil #x109) table)
+    (put-char-table (make-char 'latin-iso8859-3 103) (vector #x37 (make-char 'latin-iso8859-1 103) (make-char 'latin-iso8859-2 103) (make-char 'latin-iso8859-3 103) nil (make-char 'latin-iso8859-9 103) (make-char 'latin-iso8859-15 103) nil nil #xE7) table)
+    (put-char-table (make-char 'latin-iso8859-3 104) (vector #x35 (make-char 'latin-iso8859-1 104) nil (make-char 'latin-iso8859-3 104) nil (make-char 'latin-iso8859-9 104) (make-char 'latin-iso8859-15 104) nil nil #xE8) table)
+    (put-char-table (make-char 'latin-iso8859-3 105) (vector #x3F (make-char 'latin-iso8859-1 105) (make-char 'latin-iso8859-2 105) (make-char 'latin-iso8859-3 105) (make-char 'latin-iso8859-4 105) (make-char 'latin-iso8859-9 105) (make-char 'latin-iso8859-15 105) nil nil #xE9) table)
+    (put-char-table (make-char 'latin-iso8859-3 106) (vector #x35 (make-char 'latin-iso8859-1 106) nil (make-char 'latin-iso8859-3 106) nil (make-char 'latin-iso8859-9 106) (make-char 'latin-iso8859-15 106) nil nil #xEA) table)
+    (put-char-table (make-char 'latin-iso8859-3 107) (vector #x3F (make-char 'latin-iso8859-1 107) (make-char 'latin-iso8859-2 107) (make-char 'latin-iso8859-3 107) (make-char 'latin-iso8859-4 107) (make-char 'latin-iso8859-9 107) (make-char 'latin-iso8859-15 107) nil nil #xEB) table)
+    (put-char-table (make-char 'latin-iso8859-3 108) (vector #x35 (make-char 'latin-iso8859-1 108) nil (make-char 'latin-iso8859-3 108) nil (make-char 'latin-iso8859-9 108) (make-char 'latin-iso8859-15 108) nil nil #xEC) table)
+    (put-char-table (make-char 'latin-iso8859-3 109) (vector #x3F (make-char 'latin-iso8859-1 109) (make-char 'latin-iso8859-2 109) (make-char 'latin-iso8859-3 109) (make-char 'latin-iso8859-4 109) (make-char 'latin-iso8859-9 109) (make-char 'latin-iso8859-15 109) nil nil #xED) table)
+    (put-char-table (make-char 'latin-iso8859-3 110) (vector #x3F (make-char 'latin-iso8859-1 110) (make-char 'latin-iso8859-2 110) (make-char 'latin-iso8859-3 110) (make-char 'latin-iso8859-4 110) (make-char 'latin-iso8859-9 110) (make-char 'latin-iso8859-15 110) nil nil #xEE) table)
+    (put-char-table (make-char 'latin-iso8859-3 111) (vector #x35 (make-char 'latin-iso8859-1 111) nil (make-char 'latin-iso8859-3 111) nil (make-char 'latin-iso8859-9 111) (make-char 'latin-iso8859-15 111) nil nil #xEF) table)
+    (put-char-table (make-char 'latin-iso8859-3 112) (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-3 113) (vector #x35 (make-char 'latin-iso8859-1 113) nil (make-char 'latin-iso8859-3 113) nil (make-char 'latin-iso8859-9 113) (make-char 'latin-iso8859-15 113) nil nil #xF1) table)
+    (put-char-table (make-char 'latin-iso8859-3 114) (vector #x35 (make-char 'latin-iso8859-1 114) nil (make-char 'latin-iso8859-3 114) nil (make-char 'latin-iso8859-9 114) (make-char 'latin-iso8859-15 114) nil nil #xF2) table)
+    (put-char-table (make-char 'latin-iso8859-3 115) (vector #x37 (make-char 'latin-iso8859-1 115) (make-char 'latin-iso8859-2 115) (make-char 'latin-iso8859-3 115) nil (make-char 'latin-iso8859-9 115) (make-char 'latin-iso8859-15 115) nil nil #xF3) table)
+    (put-char-table (make-char 'latin-iso8859-3 116) (vector #x3F (make-char 'latin-iso8859-1 116) (make-char 'latin-iso8859-2 116) (make-char 'latin-iso8859-3 116) (make-char 'latin-iso8859-4 116) (make-char 'latin-iso8859-9 116) (make-char 'latin-iso8859-15 116) nil nil #xF4) table)
+    (put-char-table (make-char 'latin-iso8859-3 117) (vector #x4 nil nil (make-char 'latin-iso8859-3 117) nil nil nil nil nil #x121) table)
+    (put-char-table (make-char 'latin-iso8859-3 118) (vector #x3F (make-char 'latin-iso8859-1 118) (make-char 'latin-iso8859-2 118) (make-char 'latin-iso8859-3 118) (make-char 'latin-iso8859-4 118) (make-char 'latin-iso8859-9 118) (make-char 'latin-iso8859-15 118) nil nil #xF6) table)
+    (put-char-table (make-char 'latin-iso8859-3 119) (vector #x3F (make-char 'latin-iso8859-1 119) (make-char 'latin-iso8859-2 119) (make-char 'latin-iso8859-3 119) (make-char 'latin-iso8859-4 119) (make-char 'latin-iso8859-9 119) (make-char 'latin-iso8859-15 119) nil nil #xF7) table)
+    (put-char-table (make-char 'latin-iso8859-3 120) (vector #x4 nil nil (make-char 'latin-iso8859-3 120) nil nil nil nil nil #x11D) table)
+    (put-char-table (make-char 'latin-iso8859-3 121) (vector #x35 (make-char 'latin-iso8859-1 121) nil (make-char 'latin-iso8859-3 121) nil (make-char 'latin-iso8859-9 121) (make-char 'latin-iso8859-15 121) nil nil #xF9) table)
+    (put-char-table (make-char 'latin-iso8859-3 122) (vector #x3F (make-char 'latin-iso8859-1 122) (make-char 'latin-iso8859-2 122) (make-char 'latin-iso8859-3 122) (make-char 'latin-iso8859-4 122) (make-char 'latin-iso8859-9 122) (make-char 'latin-iso8859-15 122) nil nil #xFA) table)
+    (put-char-table (make-char 'latin-iso8859-3 123) (vector #x3D (make-char 'latin-iso8859-1 123) nil (make-char 'latin-iso8859-3 123) (make-char 'latin-iso8859-4 123) (make-char 'latin-iso8859-9 123) (make-char 'latin-iso8859-15 123) nil nil #xFB) table)
+    (put-char-table (make-char 'latin-iso8859-3 124) (vector #x3F (make-char 'latin-iso8859-1 124) (make-char 'latin-iso8859-2 124) (make-char 'latin-iso8859-3 124) (make-char 'latin-iso8859-4 124) (make-char 'latin-iso8859-9 124) (make-char 'latin-iso8859-15 124) nil nil #xFC) table)
+    (put-char-table (make-char 'latin-iso8859-3 125) (vector #x4 nil nil (make-char 'latin-iso8859-3 125) nil nil nil nil nil #x16D) table)
+    (put-char-table (make-char 'latin-iso8859-3 126) (vector #x4 nil nil (make-char 'latin-iso8859-3 126) nil nil nil nil nil #x15D) table)
+    (put-char-table (make-char 'latin-iso8859-3 127) (vector #xE nil (make-char 'latin-iso8859-2 127) (make-char 'latin-iso8859-3 127) (make-char 'latin-iso8859-4 127) nil nil nil nil #x2D9) table)
+    (put-char-table (make-char 'latin-iso8859-4 32) (vector #x3F (make-char 'latin-iso8859-1 32) (make-char 'latin-iso8859-2 32) (make-char 'latin-iso8859-3 32) (make-char 'latin-iso8859-4 32) (make-char 'latin-iso8859-9 32) (make-char 'latin-iso8859-15 32) nil nil #xA0) table)
+    (put-char-table (make-char 'latin-iso8859-4 33) (vector #xA nil (make-char 'latin-iso8859-2 33) nil (make-char 'latin-iso8859-4 33) nil nil nil nil #x104) table)
+    (put-char-table (make-char 'latin-iso8859-4 34) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 34) nil nil nil nil #x138) table)
+    (put-char-table (make-char 'latin-iso8859-4 35) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 35) nil nil nil nil #x156) table)
+    (put-char-table (make-char 'latin-iso8859-4 36) (vector #x1F (make-char 'latin-iso8859-1 36) (make-char 'latin-iso8859-2 36) (make-char 'latin-iso8859-3 36) (make-char 'latin-iso8859-4 36) (make-char 'latin-iso8859-9 36) nil nil nil #xA4) table)
+    (put-char-table (make-char 'latin-iso8859-4 37) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 37) nil nil nil nil #x128) table)
+    (put-char-table (make-char 'latin-iso8859-4 38) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 38) nil nil nil nil #x13B) table)
+    (put-char-table (make-char 'latin-iso8859-4 39) (vector #x3F (make-char 'latin-iso8859-1 39) (make-char 'latin-iso8859-2 39) (make-char 'latin-iso8859-3 39) (make-char 'latin-iso8859-4 39) (make-char 'latin-iso8859-9 39) (make-char 'latin-iso8859-15 39) nil nil #xA7) table)
+    (put-char-table (make-char 'latin-iso8859-4 40) (vector #x1F (make-char 'latin-iso8859-1 40) (make-char 'latin-iso8859-2 40) (make-char 'latin-iso8859-3 40) (make-char 'latin-iso8859-4 40) (make-char 'latin-iso8859-9 40) nil nil nil #xA8) table)
+    (put-char-table (make-char 'latin-iso8859-4 41) (vector #x2A nil (make-char 'latin-iso8859-2 41) nil (make-char 'latin-iso8859-4 41) nil (make-char 'latin-iso8859-15 38) nil nil #x160) table)
+    (put-char-table (make-char 'latin-iso8859-4 42) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 42) nil nil nil nil #x112) table)
+    (put-char-table (make-char 'latin-iso8859-4 43) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 43) nil nil nil nil #x122) table)
+    (put-char-table (make-char 'latin-iso8859-4 44) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 44) nil nil nil nil #x166) table)
+    (put-char-table (make-char 'latin-iso8859-4 45) (vector #x3F (make-char 'latin-iso8859-1 45) (make-char 'latin-iso8859-2 45) (make-char 'latin-iso8859-3 45) (make-char 'latin-iso8859-4 45) (make-char 'latin-iso8859-9 45) (make-char 'latin-iso8859-15 45) nil nil #xAD) table)
+    (put-char-table (make-char 'latin-iso8859-4 46) (vector #x2A nil (make-char 'latin-iso8859-2 46) nil (make-char 'latin-iso8859-4 46) nil (make-char 'latin-iso8859-15 52) nil nil #x17D) table)
+    (put-char-table (make-char 'latin-iso8859-4 47) (vector #x39 (make-char 'latin-iso8859-1 47) nil nil (make-char 'latin-iso8859-4 47) (make-char 'latin-iso8859-9 47) (make-char 'latin-iso8859-15 47) nil nil #xAF) table)
+    (put-char-table (make-char 'latin-iso8859-4 48) (vector #x3F (make-char 'latin-iso8859-1 48) (make-char 'latin-iso8859-2 48) (make-char 'latin-iso8859-3 48) (make-char 'latin-iso8859-4 48) (make-char 'latin-iso8859-9 48) (make-char 'latin-iso8859-15 48) nil nil #xB0) table)
+    (put-char-table (make-char 'latin-iso8859-4 49) (vector #xA nil (make-char 'latin-iso8859-2 49) nil (make-char 'latin-iso8859-4 49) nil nil nil nil #x105) table)
+    (put-char-table (make-char 'latin-iso8859-4 50) (vector #xA nil (make-char 'latin-iso8859-2 50) nil (make-char 'latin-iso8859-4 50) nil nil nil nil #x2DB) table)
+    (put-char-table (make-char 'latin-iso8859-4 51) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 51) nil nil nil nil #x157) table)
+    (put-char-table (make-char 'latin-iso8859-4 52) (vector #x1F (make-char 'latin-iso8859-1 52) (make-char 'latin-iso8859-2 52) (make-char 'latin-iso8859-3 52) (make-char 'latin-iso8859-4 52) (make-char 'latin-iso8859-9 52) nil nil nil #xB4) table)
+    (put-char-table (make-char 'latin-iso8859-4 53) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 53) nil nil nil nil #x129) table)
+    (put-char-table (make-char 'latin-iso8859-4 54) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 54) nil nil nil nil #x13C) table)
+    (put-char-table (make-char 'latin-iso8859-4 55) (vector #xA nil (make-char 'latin-iso8859-2 55) nil (make-char 'latin-iso8859-4 55) nil nil nil nil #x2C7) table)
+    (put-char-table (make-char 'latin-iso8859-4 56) (vector #x1F (make-char 'latin-iso8859-1 56) (make-char 'latin-iso8859-2 56) (make-char 'latin-iso8859-3 56) (make-char 'latin-iso8859-4 56) (make-char 'latin-iso8859-9 56) nil nil nil #xB8) table)
+    (put-char-table (make-char 'latin-iso8859-4 57) (vector #x2A nil (make-char 'latin-iso8859-2 57) nil (make-char 'latin-iso8859-4 57) nil (make-char 'latin-iso8859-15 40) nil nil #x161) table)
+    (put-char-table (make-char 'latin-iso8859-4 58) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 58) nil nil nil nil #x113) table)
+    (put-char-table (make-char 'latin-iso8859-4 59) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 59) nil nil nil nil #x123) table)
+    (put-char-table (make-char 'latin-iso8859-4 60) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 60) nil nil nil nil #x167) table)
+    (put-char-table (make-char 'latin-iso8859-4 61) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 61) nil nil nil nil #x14A) table)
+    (put-char-table (make-char 'latin-iso8859-4 62) (vector #x2A nil (make-char 'latin-iso8859-2 62) nil (make-char 'latin-iso8859-4 62) nil (make-char 'latin-iso8859-15 56) nil nil #x17E) table)
+    (put-char-table (make-char 'latin-iso8859-4 63) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 63) nil nil nil nil #x14B) table)
+    (put-char-table (make-char 'latin-iso8859-4 64) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 64) nil nil nil nil #x100) table)
+    (put-char-table (make-char 'latin-iso8859-4 65) (vector #x3F (make-char 'latin-iso8859-1 65) (make-char 'latin-iso8859-2 65) (make-char 'latin-iso8859-3 65) (make-char 'latin-iso8859-4 65) (make-char 'latin-iso8859-9 65) (make-char 'latin-iso8859-15 65) nil nil #xC1) table)
+    (put-char-table (make-char 'latin-iso8859-4 66) (vector #x3F (make-char 'latin-iso8859-1 66) (make-char 'latin-iso8859-2 66) (make-char 'latin-iso8859-3 66) (make-char 'latin-iso8859-4 66) (make-char 'latin-iso8859-9 66) (make-char 'latin-iso8859-15 66) nil nil #xC2) table)
+    (put-char-table (make-char 'latin-iso8859-4 67) (vector #x39 (make-char 'latin-iso8859-1 67) nil nil (make-char 'latin-iso8859-4 67) (make-char 'latin-iso8859-9 67) (make-char 'latin-iso8859-15 67) nil nil #xC3) table)
+    (put-char-table (make-char 'latin-iso8859-4 68) (vector #x3F (make-char 'latin-iso8859-1 68) (make-char 'latin-iso8859-2 68) (make-char 'latin-iso8859-3 68) (make-char 'latin-iso8859-4 68) (make-char 'latin-iso8859-9 68) (make-char 'latin-iso8859-15 68) nil nil #xC4) table)
+    (put-char-table (make-char 'latin-iso8859-4 69) (vector #x39 (make-char 'latin-iso8859-1 69) nil nil (make-char 'latin-iso8859-4 69) (make-char 'latin-iso8859-9 69) (make-char 'latin-iso8859-15 69) nil nil #xC5) table)
+    (put-char-table (make-char 'latin-iso8859-4 70) (vector #x39 (make-char 'latin-iso8859-1 70) nil nil (make-char 'latin-iso8859-4 70) (make-char 'latin-iso8859-9 70) (make-char 'latin-iso8859-15 70) nil nil #xC6) table)
+    (put-char-table (make-char 'latin-iso8859-4 71) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 71) nil nil nil nil #x12E) table)
+    (put-char-table (make-char 'latin-iso8859-4 72) (vector #xA nil (make-char 'latin-iso8859-2 72) nil (make-char 'latin-iso8859-4 72) nil nil nil nil #x10C) table)
+    (put-char-table (make-char 'latin-iso8859-4 73) (vector #x3F (make-char 'latin-iso8859-1 73) (make-char 'latin-iso8859-2 73) (make-char 'latin-iso8859-3 73) (make-char 'latin-iso8859-4 73) (make-char 'latin-iso8859-9 73) (make-char 'latin-iso8859-15 73) nil nil #xC9) table)
+    (put-char-table (make-char 'latin-iso8859-4 74) (vector #xA nil (make-char 'latin-iso8859-2 74) nil (make-char 'latin-iso8859-4 74) nil nil nil nil #x118) table)
+    (put-char-table (make-char 'latin-iso8859-4 75) (vector #x3F (make-char 'latin-iso8859-1 75) (make-char 'latin-iso8859-2 75) (make-char 'latin-iso8859-3 75) (make-char 'latin-iso8859-4 75) (make-char 'latin-iso8859-9 75) (make-char 'latin-iso8859-15 75) nil nil #xCB) table)
+    (put-char-table (make-char 'latin-iso8859-4 76) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 76) nil nil nil nil #x116) table)
+    (put-char-table (make-char 'latin-iso8859-4 77) (vector #x3F (make-char 'latin-iso8859-1 77) (make-char 'latin-iso8859-2 77) (make-char 'latin-iso8859-3 77) (make-char 'latin-iso8859-4 77) (make-char 'latin-iso8859-9 77) (make-char 'latin-iso8859-15 77) nil nil #xCD) table)
+    (put-char-table (make-char 'latin-iso8859-4 78) (vector #x3F (make-char 'latin-iso8859-1 78) (make-char 'latin-iso8859-2 78) (make-char 'latin-iso8859-3 78) (make-char 'latin-iso8859-4 78) (make-char 'latin-iso8859-9 78) (make-char 'latin-iso8859-15 78) nil nil #xCE) table)
+    (put-char-table (make-char 'latin-iso8859-4 79) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 79) nil nil nil nil #x12A) table)
+    (put-char-table (make-char 'latin-iso8859-4 80) (vector #xA nil (make-char 'latin-iso8859-2 80) nil (make-char 'latin-iso8859-4 80) nil nil nil nil #x110) table)
+    (put-char-table (make-char 'latin-iso8859-4 81) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 81) nil nil nil nil #x145) table)
+    (put-char-table (make-char 'latin-iso8859-4 82) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 82) nil nil nil nil #x14C) table)
+    (put-char-table (make-char 'latin-iso8859-4 83) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 83) nil nil nil nil #x136) table)
+    (put-char-table (make-char 'latin-iso8859-4 84) (vector #x3F (make-char 'latin-iso8859-1 84) (make-char 'latin-iso8859-2 84) (make-char 'latin-iso8859-3 84) (make-char 'latin-iso8859-4 84) (make-char 'latin-iso8859-9 84) (make-char 'latin-iso8859-15 84) nil nil #xD4) table)
+    (put-char-table (make-char 'latin-iso8859-4 85) (vector #x39 (make-char 'latin-iso8859-1 85) nil nil (make-char 'latin-iso8859-4 85) (make-char 'latin-iso8859-9 85) (make-char 'latin-iso8859-15 85) nil nil #xD5) table)
+    (put-char-table (make-char 'latin-iso8859-4 86) (vector #x3F (make-char 'latin-iso8859-1 86) (make-char 'latin-iso8859-2 86) (make-char 'latin-iso8859-3 86) (make-char 'latin-iso8859-4 86) (make-char 'latin-iso8859-9 86) (make-char 'latin-iso8859-15 86) nil nil #xD6) table)
+    (put-char-table (make-char 'latin-iso8859-4 87) (vector #x3F (make-char 'latin-iso8859-1 87) (make-char 'latin-iso8859-2 87) (make-char 'latin-iso8859-3 87) (make-char 'latin-iso8859-4 87) (make-char 'latin-iso8859-9 87) (make-char 'latin-iso8859-15 87) nil nil #xD7) table)
+    (put-char-table (make-char 'latin-iso8859-4 88) (vector #x39 (make-char 'latin-iso8859-1 88) nil nil (make-char 'latin-iso8859-4 88) (make-char 'latin-iso8859-9 88) (make-char 'latin-iso8859-15 88) nil nil #xD8) table)
+    (put-char-table (make-char 'latin-iso8859-4 89) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 89) nil nil nil nil #x172) table)
+    (put-char-table (make-char 'latin-iso8859-4 90) (vector #x3F (make-char 'latin-iso8859-1 90) (make-char 'latin-iso8859-2 90) (make-char 'latin-iso8859-3 90) (make-char 'latin-iso8859-4 90) (make-char 'latin-iso8859-9 90) (make-char 'latin-iso8859-15 90) nil nil #xDA) table)
+    (put-char-table (make-char 'latin-iso8859-4 91) (vector #x3D (make-char 'latin-iso8859-1 91) nil (make-char 'latin-iso8859-3 91) (make-char 'latin-iso8859-4 91) (make-char 'latin-iso8859-9 91) (make-char 'latin-iso8859-15 91) nil nil #xDB) table)
+    (put-char-table (make-char 'latin-iso8859-4 92) (vector #x3F (make-char 'latin-iso8859-1 92) (make-char 'latin-iso8859-2 92) (make-char 'latin-iso8859-3 92) (make-char 'latin-iso8859-4 92) (make-char 'latin-iso8859-9 92) (make-char 'latin-iso8859-15 92) nil nil #xDC) table)
+    (put-char-table (make-char 'latin-iso8859-4 93) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 93) nil nil nil nil #x168) table)
+    (put-char-table (make-char 'latin-iso8859-4 94) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 94) nil nil nil nil #x16A) table)
+    (put-char-table (make-char 'latin-iso8859-4 95) (vector #x3F (make-char 'latin-iso8859-1 95) (make-char 'latin-iso8859-2 95) (make-char 'latin-iso8859-3 95) (make-char 'latin-iso8859-4 95) (make-char 'latin-iso8859-9 95) (make-char 'latin-iso8859-15 95) nil nil #xDF) table)
+    (put-char-table (make-char 'latin-iso8859-4 96) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 96) nil nil nil nil #x101) table)
+    (put-char-table (make-char 'latin-iso8859-4 97) (vector #x3F (make-char 'latin-iso8859-1 97) (make-char 'latin-iso8859-2 97) (make-char 'latin-iso8859-3 97) (make-char 'latin-iso8859-4 97) (make-char 'latin-iso8859-9 97) (make-char 'latin-iso8859-15 97) nil nil #xE1) table)
+    (put-char-table (make-char 'latin-iso8859-4 98) (vector #x3F (make-char 'latin-iso8859-1 98) (make-char 'latin-iso8859-2 98) (make-char 'latin-iso8859-3 98) (make-char 'latin-iso8859-4 98) (make-char 'latin-iso8859-9 98) (make-char 'latin-iso8859-15 98) nil nil #xE2) table)
+    (put-char-table (make-char 'latin-iso8859-4 99) (vector #x39 (make-char 'latin-iso8859-1 99) nil nil (make-char 'latin-iso8859-4 99) (make-char 'latin-iso8859-9 99) (make-char 'latin-iso8859-15 99) nil nil #xE3) table)
+    (put-char-table (make-char 'latin-iso8859-4 100) (vector #x3F (make-char 'latin-iso8859-1 100) (make-char 'latin-iso8859-2 100) (make-char 'latin-iso8859-3 100) (make-char 'latin-iso8859-4 100) (make-char 'latin-iso8859-9 100) (make-char 'latin-iso8859-15 100) nil nil #xE4) table)
+    (put-char-table (make-char 'latin-iso8859-4 101) (vector #x39 (make-char 'latin-iso8859-1 101) nil nil (make-char 'latin-iso8859-4 101) (make-char 'latin-iso8859-9 101) (make-char 'latin-iso8859-15 101) nil nil #xE5) table)
+    (put-char-table (make-char 'latin-iso8859-4 102) (vector #x39 (make-char 'latin-iso8859-1 102) nil nil (make-char 'latin-iso8859-4 102) (make-char 'latin-iso8859-9 102) (make-char 'latin-iso8859-15 102) nil nil #xE6) table)
+    (put-char-table (make-char 'latin-iso8859-4 103) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 103) nil nil nil nil #x12F) table)
+    (put-char-table (make-char 'latin-iso8859-4 104) (vector #xA nil (make-char 'latin-iso8859-2 104) nil (make-char 'latin-iso8859-4 104) nil nil nil nil #x10D) table)
+    (put-char-table (make-char 'latin-iso8859-4 105) (vector #x3F (make-char 'latin-iso8859-1 105) (make-char 'latin-iso8859-2 105) (make-char 'latin-iso8859-3 105) (make-char 'latin-iso8859-4 105) (make-char 'latin-iso8859-9 105) (make-char 'latin-iso8859-15 105) nil nil #xE9) table)
+    (put-char-table (make-char 'latin-iso8859-4 106) (vector #xA nil (make-char 'latin-iso8859-2 106) nil (make-char 'latin-iso8859-4 106) nil nil nil nil #x119) table)
+    (put-char-table (make-char 'latin-iso8859-4 107) (vector #x3F (make-char 'latin-iso8859-1 107) (make-char 'latin-iso8859-2 107) (make-char 'latin-iso8859-3 107) (make-char 'latin-iso8859-4 107) (make-char 'latin-iso8859-9 107) (make-char 'latin-iso8859-15 107) nil nil #xEB) table)
+    (put-char-table (make-char 'latin-iso8859-4 108) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 108) nil nil nil nil #x117) table)
+    (put-char-table (make-char 'latin-iso8859-4 109) (vector #x3F (make-char 'latin-iso8859-1 109) (make-char 'latin-iso8859-2 109) (make-char 'latin-iso8859-3 109) (make-char 'latin-iso8859-4 109) (make-char 'latin-iso8859-9 109) (make-char 'latin-iso8859-15 109) nil nil #xED) table)
+    (put-char-table (make-char 'latin-iso8859-4 110) (vector #x3F (make-char 'latin-iso8859-1 110) (make-char 'latin-iso8859-2 110) (make-char 'latin-iso8859-3 110) (make-char 'latin-iso8859-4 110) (make-char 'latin-iso8859-9 110) (make-char 'latin-iso8859-15 110) nil nil #xEE) table)
+    (put-char-table (make-char 'latin-iso8859-4 111) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 111) nil nil nil nil #x12B) table)
+    (put-char-table (make-char 'latin-iso8859-4 112) (vector #xA nil (make-char 'latin-iso8859-2 112) nil (make-char 'latin-iso8859-4 112) nil nil nil nil #x111) table)
+    (put-char-table (make-char 'latin-iso8859-4 113) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 113) nil nil nil nil #x146) table)
+    (put-char-table (make-char 'latin-iso8859-4 114) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 114) nil nil nil nil #x14D) table)
+    (put-char-table (make-char 'latin-iso8859-4 115) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 115) nil nil nil nil #x137) table)
+    (put-char-table (make-char 'latin-iso8859-4 116) (vector #x3F (make-char 'latin-iso8859-1 116) (make-char 'latin-iso8859-2 116) (make-char 'latin-iso8859-3 116) (make-char 'latin-iso8859-4 116) (make-char 'latin-iso8859-9 116) (make-char 'latin-iso8859-15 116) nil nil #xF4) table)
+    (put-char-table (make-char 'latin-iso8859-4 117) (vector #x39 (make-char 'latin-iso8859-1 117) nil nil (make-char 'latin-iso8859-4 117) (make-char 'latin-iso8859-9 117) (make-char 'latin-iso8859-15 117) nil nil #xF5) table)
+    (put-char-table (make-char 'latin-iso8859-4 118) (vector #x3F (make-char 'latin-iso8859-1 118) (make-char 'latin-iso8859-2 118) (make-char 'latin-iso8859-3 118) (make-char 'latin-iso8859-4 118) (make-char 'latin-iso8859-9 118) (make-char 'latin-iso8859-15 118) nil nil #xF6) table)
+    (put-char-table (make-char 'latin-iso8859-4 119) (vector #x3F (make-char 'latin-iso8859-1 119) (make-char 'latin-iso8859-2 119) (make-char 'latin-iso8859-3 119) (make-char 'latin-iso8859-4 119) (make-char 'latin-iso8859-9 119) (make-char 'latin-iso8859-15 119) nil nil #xF7) table)
+    (put-char-table (make-char 'latin-iso8859-4 120) (vector #x39 (make-char 'latin-iso8859-1 120) nil nil (make-char 'latin-iso8859-4 120) (make-char 'latin-iso8859-9 120) (make-char 'latin-iso8859-15 120) nil nil #xF8) table)
+    (put-char-table (make-char 'latin-iso8859-4 121) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 121) nil nil nil nil #x173) table)
+    (put-char-table (make-char 'latin-iso8859-4 122) (vector #x3F (make-char 'latin-iso8859-1 122) (make-char 'latin-iso8859-2 122) (make-char 'latin-iso8859-3 122) (make-char 'latin-iso8859-4 122) (make-char 'latin-iso8859-9 122) (make-char 'latin-iso8859-15 122) nil nil #xFA) table)
+    (put-char-table (make-char 'latin-iso8859-4 123) (vector #x3D (make-char 'latin-iso8859-1 123) nil (make-char 'latin-iso8859-3 123) (make-char 'latin-iso8859-4 123) (make-char 'latin-iso8859-9 123) (make-char 'latin-iso8859-15 123) nil nil #xFB) table)
+    (put-char-table (make-char 'latin-iso8859-4 124) (vector #x3F (make-char 'latin-iso8859-1 124) (make-char 'latin-iso8859-2 124) (make-char 'latin-iso8859-3 124) (make-char 'latin-iso8859-4 124) (make-char 'latin-iso8859-9 124) (make-char 'latin-iso8859-15 124) nil nil #xFC) table)
+    (put-char-table (make-char 'latin-iso8859-4 125) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 125) nil nil nil nil #x169) table)
+    (put-char-table (make-char 'latin-iso8859-4 126) (vector #x8 nil nil nil (make-char 'latin-iso8859-4 126) nil nil nil nil #x16B) table)
+    (put-char-table (make-char 'latin-iso8859-4 127) (vector #xE nil (make-char 'latin-iso8859-2 127) (make-char 'latin-iso8859-3 127) (make-char 'latin-iso8859-4 127) nil nil nil nil #x2D9) table)
+    (put-char-table 'thai-tis620 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'greek-iso8859-7 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'arabic-iso8859-6 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'hebrew-iso8859-8 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'katakana-jisx0201 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'latin-jisx0201 33) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 33) (make-char 'latin-jisx0201 33) #x21) table)
+    (put-char-table (make-char 'latin-jisx0201 34) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 34) (make-char 'latin-jisx0201 34) #x22) table)
+    (put-char-table (make-char 'latin-jisx0201 35) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 35) (make-char 'latin-jisx0201 35) #x23) table)
+    (put-char-table (make-char 'latin-jisx0201 36) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 36) (make-char 'latin-jisx0201 36) #x24) table)
+    (put-char-table (make-char 'latin-jisx0201 37) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 37) (make-char 'latin-jisx0201 37) #x25) table)
+    (put-char-table (make-char 'latin-jisx0201 38) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 38) (make-char 'latin-jisx0201 38) #x26) table)
+    (put-char-table (make-char 'latin-jisx0201 39) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 39) (make-char 'latin-jisx0201 39) #x27) table)
+    (put-char-table (make-char 'latin-jisx0201 40) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 40) (make-char 'latin-jisx0201 40) #x28) table)
+    (put-char-table (make-char 'latin-jisx0201 41) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 41) (make-char 'latin-jisx0201 41) #x29) table)
+    (put-char-table (make-char 'latin-jisx0201 42) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 42) (make-char 'latin-jisx0201 42) #x2A) table)
+    (put-char-table (make-char 'latin-jisx0201 43) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 43) (make-char 'latin-jisx0201 43) #x2B) table)
+    (put-char-table (make-char 'latin-jisx0201 44) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 44) (make-char 'latin-jisx0201 44) #x2C) table)
+    (put-char-table (make-char 'latin-jisx0201 45) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 45) (make-char 'latin-jisx0201 45) #x2D) table)
+    (put-char-table (make-char 'latin-jisx0201 46) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 46) (make-char 'latin-jisx0201 46) #x2E) table)
+    (put-char-table (make-char 'latin-jisx0201 47) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 47) (make-char 'latin-jisx0201 47) #x2F) table)
+    (put-char-table (make-char 'latin-jisx0201 48) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 48) (make-char 'latin-jisx0201 48) #x30) table)
+    (put-char-table (make-char 'latin-jisx0201 49) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 49) (make-char 'latin-jisx0201 49) #x31) table)
+    (put-char-table (make-char 'latin-jisx0201 50) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 50) (make-char 'latin-jisx0201 50) #x32) table)
+    (put-char-table (make-char 'latin-jisx0201 51) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 51) (make-char 'latin-jisx0201 51) #x33) table)
+    (put-char-table (make-char 'latin-jisx0201 52) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 52) (make-char 'latin-jisx0201 52) #x34) table)
+    (put-char-table (make-char 'latin-jisx0201 53) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 53) (make-char 'latin-jisx0201 53) #x35) table)
+    (put-char-table (make-char 'latin-jisx0201 54) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 54) (make-char 'latin-jisx0201 54) #x36) table)
+    (put-char-table (make-char 'latin-jisx0201 55) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 55) (make-char 'latin-jisx0201 55) #x37) table)
+    (put-char-table (make-char 'latin-jisx0201 56) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 56) (make-char 'latin-jisx0201 56) #x38) table)
+    (put-char-table (make-char 'latin-jisx0201 57) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 57) (make-char 'latin-jisx0201 57) #x39) table)
+    (put-char-table (make-char 'latin-jisx0201 58) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 58) (make-char 'latin-jisx0201 58) #x3A) table)
+    (put-char-table (make-char 'latin-jisx0201 59) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 59) (make-char 'latin-jisx0201 59) #x3B) table)
+    (put-char-table (make-char 'latin-jisx0201 60) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 60) (make-char 'latin-jisx0201 60) #x3C) table)
+    (put-char-table (make-char 'latin-jisx0201 61) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 61) (make-char 'latin-jisx0201 61) #x3D) table)
+    (put-char-table (make-char 'latin-jisx0201 62) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 62) (make-char 'latin-jisx0201 62) #x3E) table)
+    (put-char-table (make-char 'latin-jisx0201 63) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 63) (make-char 'latin-jisx0201 63) #x3F) table)
+    (put-char-table (make-char 'latin-jisx0201 64) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 64) (make-char 'latin-jisx0201 64) #x40) table)
+    (put-char-table (make-char 'latin-jisx0201 65) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 65) (make-char 'latin-jisx0201 65) #x41) table)
+    (put-char-table (make-char 'latin-jisx0201 66) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 66) (make-char 'latin-jisx0201 66) #x42) table)
+    (put-char-table (make-char 'latin-jisx0201 67) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 67) (make-char 'latin-jisx0201 67) #x43) table)
+    (put-char-table (make-char 'latin-jisx0201 68) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 68) (make-char 'latin-jisx0201 68) #x44) table)
+    (put-char-table (make-char 'latin-jisx0201 69) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 69) (make-char 'latin-jisx0201 69) #x45) table)
+    (put-char-table (make-char 'latin-jisx0201 70) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 70) (make-char 'latin-jisx0201 70) #x46) table)
+    (put-char-table (make-char 'latin-jisx0201 71) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 71) (make-char 'latin-jisx0201 71) #x47) table)
+    (put-char-table (make-char 'latin-jisx0201 72) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 72) (make-char 'latin-jisx0201 72) #x48) table)
+    (put-char-table (make-char 'latin-jisx0201 73) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 73) (make-char 'latin-jisx0201 73) #x49) table)
+    (put-char-table (make-char 'latin-jisx0201 74) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 74) (make-char 'latin-jisx0201 74) #x4A) table)
+    (put-char-table (make-char 'latin-jisx0201 75) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 75) (make-char 'latin-jisx0201 75) #x4B) table)
+    (put-char-table (make-char 'latin-jisx0201 76) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 76) (make-char 'latin-jisx0201 76) #x4C) table)
+    (put-char-table (make-char 'latin-jisx0201 77) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 77) (make-char 'latin-jisx0201 77) #x4D) table)
+    (put-char-table (make-char 'latin-jisx0201 78) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 78) (make-char 'latin-jisx0201 78) #x4E) table)
+    (put-char-table (make-char 'latin-jisx0201 79) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 79) (make-char 'latin-jisx0201 79) #x4F) table)
+    (put-char-table (make-char 'latin-jisx0201 80) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 80) (make-char 'latin-jisx0201 80) #x50) table)
+    (put-char-table (make-char 'latin-jisx0201 81) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 81) (make-char 'latin-jisx0201 81) #x51) table)
+    (put-char-table (make-char 'latin-jisx0201 82) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 82) (make-char 'latin-jisx0201 82) #x52) table)
+    (put-char-table (make-char 'latin-jisx0201 83) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 83) (make-char 'latin-jisx0201 83) #x53) table)
+    (put-char-table (make-char 'latin-jisx0201 84) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 84) (make-char 'latin-jisx0201 84) #x54) table)
+    (put-char-table (make-char 'latin-jisx0201 85) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 85) (make-char 'latin-jisx0201 85) #x55) table)
+    (put-char-table (make-char 'latin-jisx0201 86) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 86) (make-char 'latin-jisx0201 86) #x56) table)
+    (put-char-table (make-char 'latin-jisx0201 87) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 87) (make-char 'latin-jisx0201 87) #x57) table)
+    (put-char-table (make-char 'latin-jisx0201 88) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 88) (make-char 'latin-jisx0201 88) #x58) table)
+    (put-char-table (make-char 'latin-jisx0201 89) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 89) (make-char 'latin-jisx0201 89) #x59) table)
+    (put-char-table (make-char 'latin-jisx0201 90) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 90) (make-char 'latin-jisx0201 90) #x5A) table)
+    (put-char-table (make-char 'latin-jisx0201 91) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 91) (make-char 'latin-jisx0201 91) #x5B) table)
+    (put-char-table (make-char 'latin-jisx0201 92) (vector #xB1 (make-char 'latin-iso8859-1 37) nil nil nil (make-char 'latin-iso8859-9 37) (make-char 'latin-iso8859-15 37) nil (make-char 'latin-jisx0201 92) #xA5) table)
+    (put-char-table (make-char 'latin-jisx0201 93) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 93) (make-char 'latin-jisx0201 93) #x5D) table)
+    (put-char-table (make-char 'latin-jisx0201 94) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 94) (make-char 'latin-jisx0201 94) #x5E) table)
+    (put-char-table (make-char 'latin-jisx0201 95) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 95) (make-char 'latin-jisx0201 95) #x5F) table)
+    (put-char-table (make-char 'latin-jisx0201 96) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 96) (make-char 'latin-jisx0201 96) #x60) table)
+    (put-char-table (make-char 'latin-jisx0201 97) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 97) (make-char 'latin-jisx0201 97) #x61) table)
+    (put-char-table (make-char 'latin-jisx0201 98) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 98) (make-char 'latin-jisx0201 98) #x62) table)
+    (put-char-table (make-char 'latin-jisx0201 99) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 99) (make-char 'latin-jisx0201 99) #x63) table)
+    (put-char-table (make-char 'latin-jisx0201 100) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 100) (make-char 'latin-jisx0201 100) #x64) table)
+    (put-char-table (make-char 'latin-jisx0201 101) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 101) (make-char 'latin-jisx0201 101) #x65) table)
+    (put-char-table (make-char 'latin-jisx0201 102) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 102) (make-char 'latin-jisx0201 102) #x66) table)
+    (put-char-table (make-char 'latin-jisx0201 103) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 103) (make-char 'latin-jisx0201 103) #x67) table)
+    (put-char-table (make-char 'latin-jisx0201 104) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 104) (make-char 'latin-jisx0201 104) #x68) table)
+    (put-char-table (make-char 'latin-jisx0201 105) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 105) (make-char 'latin-jisx0201 105) #x69) table)
+    (put-char-table (make-char 'latin-jisx0201 106) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 106) (make-char 'latin-jisx0201 106) #x6A) table)
+    (put-char-table (make-char 'latin-jisx0201 107) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 107) (make-char 'latin-jisx0201 107) #x6B) table)
+    (put-char-table (make-char 'latin-jisx0201 108) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 108) (make-char 'latin-jisx0201 108) #x6C) table)
+    (put-char-table (make-char 'latin-jisx0201 109) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 109) (make-char 'latin-jisx0201 109) #x6D) table)
+    (put-char-table (make-char 'latin-jisx0201 110) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 110) (make-char 'latin-jisx0201 110) #x6E) table)
+    (put-char-table (make-char 'latin-jisx0201 111) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 111) (make-char 'latin-jisx0201 111) #x6F) table)
+    (put-char-table (make-char 'latin-jisx0201 112) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 112) (make-char 'latin-jisx0201 112) #x70) table)
+    (put-char-table (make-char 'latin-jisx0201 113) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 113) (make-char 'latin-jisx0201 113) #x71) table)
+    (put-char-table (make-char 'latin-jisx0201 114) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 114) (make-char 'latin-jisx0201 114) #x72) table)
+    (put-char-table (make-char 'latin-jisx0201 115) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 115) (make-char 'latin-jisx0201 115) #x73) table)
+    (put-char-table (make-char 'latin-jisx0201 116) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 116) (make-char 'latin-jisx0201 116) #x74) table)
+    (put-char-table (make-char 'latin-jisx0201 117) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 117) (make-char 'latin-jisx0201 117) #x75) table)
+    (put-char-table (make-char 'latin-jisx0201 118) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 118) (make-char 'latin-jisx0201 118) #x76) table)
+    (put-char-table (make-char 'latin-jisx0201 119) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 119) (make-char 'latin-jisx0201 119) #x77) table)
+    (put-char-table (make-char 'latin-jisx0201 120) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 120) (make-char 'latin-jisx0201 120) #x78) table)
+    (put-char-table (make-char 'latin-jisx0201 121) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 121) (make-char 'latin-jisx0201 121) #x79) table)
+    (put-char-table (make-char 'latin-jisx0201 122) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 122) (make-char 'latin-jisx0201 122) #x7A) table)
+    (put-char-table (make-char 'latin-jisx0201 123) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 123) (make-char 'latin-jisx0201 123) #x7B) table)
+    (put-char-table (make-char 'latin-jisx0201 124) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 124) (make-char 'latin-jisx0201 124) #x7C) table)
+    (put-char-table (make-char 'latin-jisx0201 125) (vector #xC0 nil nil nil nil nil nil (make-char 'ascii 125) (make-char 'latin-jisx0201 125) #x7D) table)
+    (put-char-table (make-char 'latin-jisx0201 126) (vector #x80 nil nil nil nil nil nil nil (make-char 'latin-jisx0201 126) #x203E) table)
+    (put-char-table 'cyrillic-iso8859-5 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-9 32) (vector #x3F (make-char 'latin-iso8859-1 32) (make-char 'latin-iso8859-2 32) (make-char 'latin-iso8859-3 32) (make-char 'latin-iso8859-4 32) (make-char 'latin-iso8859-9 32) (make-char 'latin-iso8859-15 32) nil nil #xA0) table)
+    (put-char-table (make-char 'latin-iso8859-9 33) (vector #x31 (make-char 'latin-iso8859-1 33) nil nil nil (make-char 'latin-iso8859-9 33) (make-char 'latin-iso8859-15 33) nil nil #xA1) table)
+    (put-char-table (make-char 'latin-iso8859-9 34) (vector #x31 (make-char 'latin-iso8859-1 34) nil nil nil (make-char 'latin-iso8859-9 34) (make-char 'latin-iso8859-15 34) nil nil #xA2) table)
+    (put-char-table (make-char 'latin-iso8859-9 35) (vector #x35 (make-char 'latin-iso8859-1 35) nil (make-char 'latin-iso8859-3 35) nil (make-char 'latin-iso8859-9 35) (make-char 'latin-iso8859-15 35) nil nil #xA3) table)
+    (put-char-table (make-char 'latin-iso8859-9 36) (vector #x1F (make-char 'latin-iso8859-1 36) (make-char 'latin-iso8859-2 36) (make-char 'latin-iso8859-3 36) (make-char 'latin-iso8859-4 36) (make-char 'latin-iso8859-9 36) nil nil nil #xA4) table)
+    (put-char-table (make-char 'latin-iso8859-9 37) (vector #xB1 (make-char 'latin-iso8859-1 37) nil nil nil (make-char 'latin-iso8859-9 37) (make-char 'latin-iso8859-15 37) nil (make-char 'latin-jisx0201 92) #xA5) table)
+    (put-char-table (make-char 'latin-iso8859-9 38) (vector #x11 (make-char 'latin-iso8859-1 38) nil nil nil (make-char 'latin-iso8859-9 38) nil nil nil #xA6) table)
+    (put-char-table (make-char 'latin-iso8859-9 39) (vector #x3F (make-char 'latin-iso8859-1 39) (make-char 'latin-iso8859-2 39) (make-char 'latin-iso8859-3 39) (make-char 'latin-iso8859-4 39) (make-char 'latin-iso8859-9 39) (make-char 'latin-iso8859-15 39) nil nil #xA7) table)
+    (put-char-table (make-char 'latin-iso8859-9 40) (vector #x1F (make-char 'latin-iso8859-1 40) (make-char 'latin-iso8859-2 40) (make-char 'latin-iso8859-3 40) (make-char 'latin-iso8859-4 40) (make-char 'latin-iso8859-9 40) nil nil nil #xA8) table)
+    (put-char-table (make-char 'latin-iso8859-9 41) (vector #x31 (make-char 'latin-iso8859-1 41) nil nil nil (make-char 'latin-iso8859-9 41) (make-char 'latin-iso8859-15 41) nil nil #xA9) table)
+    (put-char-table (make-char 'latin-iso8859-9 42) (vector #x31 (make-char 'latin-iso8859-1 42) nil nil nil (make-char 'latin-iso8859-9 42) (make-char 'latin-iso8859-15 42) nil nil #xAA) table)
+    (put-char-table (make-char 'latin-iso8859-9 43) (vector #x31 (make-char 'latin-iso8859-1 43) nil nil nil (make-char 'latin-iso8859-9 43) (make-char 'latin-iso8859-15 43) nil nil #xAB) table)
+    (put-char-table (make-char 'latin-iso8859-9 44) (vector #x31 (make-char 'latin-iso8859-1 44) nil nil nil (make-char 'latin-iso8859-9 44) (make-char 'latin-iso8859-15 44) nil nil #xAC) table)
+    (put-char-table (make-char 'latin-iso8859-9 45) (vector #x3F (make-char 'latin-iso8859-1 45) (make-char 'latin-iso8859-2 45) (make-char 'latin-iso8859-3 45) (make-char 'latin-iso8859-4 45) (make-char 'latin-iso8859-9 45) (make-char 'latin-iso8859-15 45) nil nil #xAD) table)
+    (put-char-table (make-char 'latin-iso8859-9 46) (vector #x31 (make-char 'latin-iso8859-1 46) nil nil nil (make-char 'latin-iso8859-9 46) (make-char 'latin-iso8859-15 46) nil nil #xAE) table)
+    (put-char-table (make-char 'latin-iso8859-9 47) (vector #x39 (make-char 'latin-iso8859-1 47) nil nil (make-char 'latin-iso8859-4 47) (make-char 'latin-iso8859-9 47) (make-char 'latin-iso8859-15 47) nil nil #xAF) table)
+    (put-char-table (make-char 'latin-iso8859-9 48) (vector #x3F (make-char 'latin-iso8859-1 48) (make-char 'latin-iso8859-2 48) (make-char 'latin-iso8859-3 48) (make-char 'latin-iso8859-4 48) (make-char 'latin-iso8859-9 48) (make-char 'latin-iso8859-15 48) nil nil #xB0) table)
+    (put-char-table (make-char 'latin-iso8859-9 49) (vector #x31 (make-char 'latin-iso8859-1 49) nil nil nil (make-char 'latin-iso8859-9 49) (make-char 'latin-iso8859-15 49) nil nil #xB1) table)
+    (put-char-table (make-char 'latin-iso8859-9 50) (vector #x35 (make-char 'latin-iso8859-1 50) nil (make-char 'latin-iso8859-3 50) nil (make-char 'latin-iso8859-9 50) (make-char 'latin-iso8859-15 50) nil nil #xB2) table)
+    (put-char-table (make-char 'latin-iso8859-9 51) (vector #x35 (make-char 'latin-iso8859-1 51) nil (make-char 'latin-iso8859-3 51) nil (make-char 'latin-iso8859-9 51) (make-char 'latin-iso8859-15 51) nil nil #xB3) table)
+    (put-char-table (make-char 'latin-iso8859-9 52) (vector #x1F (make-char 'latin-iso8859-1 52) (make-char 'latin-iso8859-2 52) (make-char 'latin-iso8859-3 52) (make-char 'latin-iso8859-4 52) (make-char 'latin-iso8859-9 52) nil nil nil #xB4) table)
+    (put-char-table (make-char 'latin-iso8859-9 53) (vector #x35 (make-char 'latin-iso8859-1 53) nil (make-char 'latin-iso8859-3 53) nil (make-char 'latin-iso8859-9 53) (make-char 'latin-iso8859-15 53) nil nil #xB5) table)
+    (put-char-table (make-char 'latin-iso8859-9 54) (vector #x31 (make-char 'latin-iso8859-1 54) nil nil nil (make-char 'latin-iso8859-9 54) (make-char 'latin-iso8859-15 54) nil nil #xB6) table)
+    (put-char-table (make-char 'latin-iso8859-9 55) (vector #x35 (make-char 'latin-iso8859-1 55) nil (make-char 'latin-iso8859-3 55) nil (make-char 'latin-iso8859-9 55) (make-char 'latin-iso8859-15 55) nil nil #xB7) table)
+    (put-char-table (make-char 'latin-iso8859-9 56) (vector #x1F (make-char 'latin-iso8859-1 56) (make-char 'latin-iso8859-2 56) (make-char 'latin-iso8859-3 56) (make-char 'latin-iso8859-4 56) (make-char 'latin-iso8859-9 56) nil nil nil #xB8) table)
+    (put-char-table (make-char 'latin-iso8859-9 57) (vector #x31 (make-char 'latin-iso8859-1 57) nil nil nil (make-char 'latin-iso8859-9 57) (make-char 'latin-iso8859-15 57) nil nil #xB9) table)
+    (put-char-table (make-char 'latin-iso8859-9 58) (vector #x31 (make-char 'latin-iso8859-1 58) nil nil nil (make-char 'latin-iso8859-9 58) (make-char 'latin-iso8859-15 58) nil nil #xBA) table)
+    (put-char-table (make-char 'latin-iso8859-9 59) (vector #x31 (make-char 'latin-iso8859-1 59) nil nil nil (make-char 'latin-iso8859-9 59) (make-char 'latin-iso8859-15 59) nil nil #xBB) table)
+    (put-char-table (make-char 'latin-iso8859-9 60) (vector #x11 (make-char 'latin-iso8859-1 60) nil nil nil (make-char 'latin-iso8859-9 60) nil nil nil #xBC) table)
+    (put-char-table (make-char 'latin-iso8859-9 61) (vector #x15 (make-char 'latin-iso8859-1 61) nil (make-char 'latin-iso8859-3 61) nil (make-char 'latin-iso8859-9 61) nil nil nil #xBD) table)
+    (put-char-table (make-char 'latin-iso8859-9 62) (vector #x11 (make-char 'latin-iso8859-1 62) nil nil nil (make-char 'latin-iso8859-9 62) nil nil nil #xBE) table)
+    (put-char-table (make-char 'latin-iso8859-9 63) (vector #x31 (make-char 'latin-iso8859-1 63) nil nil nil (make-char 'latin-iso8859-9 63) (make-char 'latin-iso8859-15 63) nil nil #xBF) table)
+    (put-char-table (make-char 'latin-iso8859-9 64) (vector #x35 (make-char 'latin-iso8859-1 64) nil (make-char 'latin-iso8859-3 64) nil (make-char 'latin-iso8859-9 64) (make-char 'latin-iso8859-15 64) nil nil #xC0) table)
+    (put-char-table (make-char 'latin-iso8859-9 65) (vector #x3F (make-char 'latin-iso8859-1 65) (make-char 'latin-iso8859-2 65) (make-char 'latin-iso8859-3 65) (make-char 'latin-iso8859-4 65) (make-char 'latin-iso8859-9 65) (make-char 'latin-iso8859-15 65) nil nil #xC1) table)
+    (put-char-table (make-char 'latin-iso8859-9 66) (vector #x3F (make-char 'latin-iso8859-1 66) (make-char 'latin-iso8859-2 66) (make-char 'latin-iso8859-3 66) (make-char 'latin-iso8859-4 66) (make-char 'latin-iso8859-9 66) (make-char 'latin-iso8859-15 66) nil nil #xC2) table)
+    (put-char-table (make-char 'latin-iso8859-9 67) (vector #x39 (make-char 'latin-iso8859-1 67) nil nil (make-char 'latin-iso8859-4 67) (make-char 'latin-iso8859-9 67) (make-char 'latin-iso8859-15 67) nil nil #xC3) table)
+    (put-char-table (make-char 'latin-iso8859-9 68) (vector #x3F (make-char 'latin-iso8859-1 68) (make-char 'latin-iso8859-2 68) (make-char 'latin-iso8859-3 68) (make-char 'latin-iso8859-4 68) (make-char 'latin-iso8859-9 68) (make-char 'latin-iso8859-15 68) nil nil #xC4) table)
+    (put-char-table (make-char 'latin-iso8859-9 69) (vector #x39 (make-char 'latin-iso8859-1 69) nil nil (make-char 'latin-iso8859-4 69) (make-char 'latin-iso8859-9 69) (make-char 'latin-iso8859-15 69) nil nil #xC5) table)
+    (put-char-table (make-char 'latin-iso8859-9 70) (vector #x39 (make-char 'latin-iso8859-1 70) nil nil (make-char 'latin-iso8859-4 70) (make-char 'latin-iso8859-9 70) (make-char 'latin-iso8859-15 70) nil nil #xC6) table)
+    (put-char-table (make-char 'latin-iso8859-9 71) (vector #x37 (make-char 'latin-iso8859-1 71) (make-char 'latin-iso8859-2 71) (make-char 'latin-iso8859-3 71) nil (make-char 'latin-iso8859-9 71) (make-char 'latin-iso8859-15 71) nil nil #xC7) table)
+    (put-char-table (make-char 'latin-iso8859-9 72) (vector #x35 (make-char 'latin-iso8859-1 72) nil (make-char 'latin-iso8859-3 72) nil (make-char 'latin-iso8859-9 72) (make-char 'latin-iso8859-15 72) nil nil #xC8) table)
+    (put-char-table (make-char 'latin-iso8859-9 73) (vector #x3F (make-char 'latin-iso8859-1 73) (make-char 'latin-iso8859-2 73) (make-char 'latin-iso8859-3 73) (make-char 'latin-iso8859-4 73) (make-char 'latin-iso8859-9 73) (make-char 'latin-iso8859-15 73) nil nil #xC9) table)
+    (put-char-table (make-char 'latin-iso8859-9 74) (vector #x35 (make-char 'latin-iso8859-1 74) nil (make-char 'latin-iso8859-3 74) nil (make-char 'latin-iso8859-9 74) (make-char 'latin-iso8859-15 74) nil nil #xCA) table)
+    (put-char-table (make-char 'latin-iso8859-9 75) (vector #x3F (make-char 'latin-iso8859-1 75) (make-char 'latin-iso8859-2 75) (make-char 'latin-iso8859-3 75) (make-char 'latin-iso8859-4 75) (make-char 'latin-iso8859-9 75) (make-char 'latin-iso8859-15 75) nil nil #xCB) table)
+    (put-char-table (make-char 'latin-iso8859-9 76) (vector #x35 (make-char 'latin-iso8859-1 76) nil (make-char 'latin-iso8859-3 76) nil (make-char 'latin-iso8859-9 76) (make-char 'latin-iso8859-15 76) nil nil #xCC) table)
+    (put-char-table (make-char 'latin-iso8859-9 77) (vector #x3F (make-char 'latin-iso8859-1 77) (make-char 'latin-iso8859-2 77) (make-char 'latin-iso8859-3 77) (make-char 'latin-iso8859-4 77) (make-char 'latin-iso8859-9 77) (make-char 'latin-iso8859-15 77) nil nil #xCD) table)
+    (put-char-table (make-char 'latin-iso8859-9 78) (vector #x3F (make-char 'latin-iso8859-1 78) (make-char 'latin-iso8859-2 78) (make-char 'latin-iso8859-3 78) (make-char 'latin-iso8859-4 78) (make-char 'latin-iso8859-9 78) (make-char 'latin-iso8859-15 78) nil nil #xCE) table)
+    (put-char-table (make-char 'latin-iso8859-9 79) (vector #x35 (make-char 'latin-iso8859-1 79) nil (make-char 'latin-iso8859-3 79) nil (make-char 'latin-iso8859-9 79) (make-char 'latin-iso8859-15 79) nil nil #xCF) table)
+    (put-char-table (make-char 'latin-iso8859-9 80) (vector #x14 nil nil (make-char 'latin-iso8859-3 43) nil (make-char 'latin-iso8859-9 80) nil nil nil #x11E) table)
+    (put-char-table (make-char 'latin-iso8859-9 81) (vector #x35 (make-char 'latin-iso8859-1 81) nil (make-char 'latin-iso8859-3 81) nil (make-char 'latin-iso8859-9 81) (make-char 'latin-iso8859-15 81) nil nil #xD1) table)
+    (put-char-table (make-char 'latin-iso8859-9 82) (vector #x35 (make-char 'latin-iso8859-1 82) nil (make-char 'latin-iso8859-3 82) nil (make-char 'latin-iso8859-9 82) (make-char 'latin-iso8859-15 82) nil nil #xD2) table)
+    (put-char-table (make-char 'latin-iso8859-9 83) (vector #x37 (make-char 'latin-iso8859-1 83) (make-char 'latin-iso8859-2 83) (make-char 'latin-iso8859-3 83) nil (make-char 'latin-iso8859-9 83) (make-char 'latin-iso8859-15 83) nil nil #xD3) table)
+    (put-char-table (make-char 'latin-iso8859-9 84) (vector #x3F (make-char 'latin-iso8859-1 84) (make-char 'latin-iso8859-2 84) (make-char 'latin-iso8859-3 84) (make-char 'latin-iso8859-4 84) (make-char 'latin-iso8859-9 84) (make-char 'latin-iso8859-15 84) nil nil #xD4) table)
+    (put-char-table (make-char 'latin-iso8859-9 85) (vector #x39 (make-char 'latin-iso8859-1 85) nil nil (make-char 'latin-iso8859-4 85) (make-char 'latin-iso8859-9 85) (make-char 'latin-iso8859-15 85) nil nil #xD5) table)
+    (put-char-table (make-char 'latin-iso8859-9 86) (vector #x3F (make-char 'latin-iso8859-1 86) (make-char 'latin-iso8859-2 86) (make-char 'latin-iso8859-3 86) (make-char 'latin-iso8859-4 86) (make-char 'latin-iso8859-9 86) (make-char 'latin-iso8859-15 86) nil nil #xD6) table)
+    (put-char-table (make-char 'latin-iso8859-9 87) (vector #x3F (make-char 'latin-iso8859-1 87) (make-char 'latin-iso8859-2 87) (make-char 'latin-iso8859-3 87) (make-char 'latin-iso8859-4 87) (make-char 'latin-iso8859-9 87) (make-char 'latin-iso8859-15 87) nil nil #xD7) table)
+    (put-char-table (make-char 'latin-iso8859-9 88) (vector #x39 (make-char 'latin-iso8859-1 88) nil nil (make-char 'latin-iso8859-4 88) (make-char 'latin-iso8859-9 88) (make-char 'latin-iso8859-15 88) nil nil #xD8) table)
+    (put-char-table (make-char 'latin-iso8859-9 89) (vector #x35 (make-char 'latin-iso8859-1 89) nil (make-char 'latin-iso8859-3 89) nil (make-char 'latin-iso8859-9 89) (make-char 'latin-iso8859-15 89) nil nil #xD9) table)
+    (put-char-table (make-char 'latin-iso8859-9 90) (vector #x3F (make-char 'latin-iso8859-1 90) (make-char 'latin-iso8859-2 90) (make-char 'latin-iso8859-3 90) (make-char 'latin-iso8859-4 90) (make-char 'latin-iso8859-9 90) (make-char 'latin-iso8859-15 90) nil nil #xDA) table)
+    (put-char-table (make-char 'latin-iso8859-9 91) (vector #x3D (make-char 'latin-iso8859-1 91) nil (make-char 'latin-iso8859-3 91) (make-char 'latin-iso8859-4 91) (make-char 'latin-iso8859-9 91) (make-char 'latin-iso8859-15 91) nil nil #xDB) table)
+    (put-char-table (make-char 'latin-iso8859-9 92) (vector #x3F (make-char 'latin-iso8859-1 92) (make-char 'latin-iso8859-2 92) (make-char 'latin-iso8859-3 92) (make-char 'latin-iso8859-4 92) (make-char 'latin-iso8859-9 92) (make-char 'latin-iso8859-15 92) nil nil #xDC) table)
+    (put-char-table (make-char 'latin-iso8859-9 93) (vector #x14 nil nil (make-char 'latin-iso8859-3 41) nil (make-char 'latin-iso8859-9 93) nil nil nil #x130) table)
+    (put-char-table (make-char 'latin-iso8859-9 94) (vector #x16 nil (make-char 'latin-iso8859-2 42) (make-char 'latin-iso8859-3 42) nil (make-char 'latin-iso8859-9 94) nil nil nil #x15E) table)
+    (put-char-table (make-char 'latin-iso8859-9 95) (vector #x3F (make-char 'latin-iso8859-1 95) (make-char 'latin-iso8859-2 95) (make-char 'latin-iso8859-3 95) (make-char 'latin-iso8859-4 95) (make-char 'latin-iso8859-9 95) (make-char 'latin-iso8859-15 95) nil nil #xDF) table)
+    (put-char-table (make-char 'latin-iso8859-9 96) (vector #x35 (make-char 'latin-iso8859-1 96) nil (make-char 'latin-iso8859-3 96) nil (make-char 'latin-iso8859-9 96) (make-char 'latin-iso8859-15 96) nil nil #xE0) table)
+    (put-char-table (make-char 'latin-iso8859-9 97) (vector #x3F (make-char 'latin-iso8859-1 97) (make-char 'latin-iso8859-2 97) (make-char 'latin-iso8859-3 97) (make-char 'latin-iso8859-4 97) (make-char 'latin-iso8859-9 97) (make-char 'latin-iso8859-15 97) nil nil #xE1) table)
+    (put-char-table (make-char 'latin-iso8859-9 98) (vector #x3F (make-char 'latin-iso8859-1 98) (make-char 'latin-iso8859-2 98) (make-char 'latin-iso8859-3 98) (make-char 'latin-iso8859-4 98) (make-char 'latin-iso8859-9 98) (make-char 'latin-iso8859-15 98) nil nil #xE2) table)
+    (put-char-table (make-char 'latin-iso8859-9 99) (vector #x39 (make-char 'latin-iso8859-1 99) nil nil (make-char 'latin-iso8859-4 99) (make-char 'latin-iso8859-9 99) (make-char 'latin-iso8859-15 99) nil nil #xE3) table)
+    (put-char-table (make-char 'latin-iso8859-9 100) (vector #x3F (make-char 'latin-iso8859-1 100) (make-char 'latin-iso8859-2 100) (make-char 'latin-iso8859-3 100) (make-char 'latin-iso8859-4 100) (make-char 'latin-iso8859-9 100) (make-char 'latin-iso8859-15 100) nil nil #xE4) table)
+    (put-char-table (make-char 'latin-iso8859-9 101) (vector #x39 (make-char 'latin-iso8859-1 101) nil nil (make-char 'latin-iso8859-4 101) (make-char 'latin-iso8859-9 101) (make-char 'latin-iso8859-15 101) nil nil #xE5) table)
+    (put-char-table (make-char 'latin-iso8859-9 102) (vector #x39 (make-char 'latin-iso8859-1 102) nil nil (make-char 'latin-iso8859-4 102) (make-char 'latin-iso8859-9 102) (make-char 'latin-iso8859-15 102) nil nil #xE6) table)
+    (put-char-table (make-char 'latin-iso8859-9 103) (vector #x37 (make-char 'latin-iso8859-1 103) (make-char 'latin-iso8859-2 103) (make-char 'latin-iso8859-3 103) nil (make-char 'latin-iso8859-9 103) (make-char 'latin-iso8859-15 103) nil nil #xE7) table)
+    (put-char-table (make-char 'latin-iso8859-9 104) (vector #x35 (make-char 'latin-iso8859-1 104) nil (make-char 'latin-iso8859-3 104) nil (make-char 'latin-iso8859-9 104) (make-char 'latin-iso8859-15 104) nil nil #xE8) table)
+    (put-char-table (make-char 'latin-iso8859-9 105) (vector #x3F (make-char 'latin-iso8859-1 105) (make-char 'latin-iso8859-2 105) (make-char 'latin-iso8859-3 105) (make-char 'latin-iso8859-4 105) (make-char 'latin-iso8859-9 105) (make-char 'latin-iso8859-15 105) nil nil #xE9) table)
+    (put-char-table (make-char 'latin-iso8859-9 106) (vector #x35 (make-char 'latin-iso8859-1 106) nil (make-char 'latin-iso8859-3 106) nil (make-char 'latin-iso8859-9 106) (make-char 'latin-iso8859-15 106) nil nil #xEA) table)
+    (put-char-table (make-char 'latin-iso8859-9 107) (vector #x3F (make-char 'latin-iso8859-1 107) (make-char 'latin-iso8859-2 107) (make-char 'latin-iso8859-3 107) (make-char 'latin-iso8859-4 107) (make-char 'latin-iso8859-9 107) (make-char 'latin-iso8859-15 107) nil nil #xEB) table)
+    (put-char-table (make-char 'latin-iso8859-9 108) (vector #x35 (make-char 'latin-iso8859-1 108) nil (make-char 'latin-iso8859-3 108) nil (make-char 'latin-iso8859-9 108) (make-char 'latin-iso8859-15 108) nil nil #xEC) table)
+    (put-char-table (make-char 'latin-iso8859-9 109) (vector #x3F (make-char 'latin-iso8859-1 109) (make-char 'latin-iso8859-2 109) (make-char 'latin-iso8859-3 109) (make-char 'latin-iso8859-4 109) (make-char 'latin-iso8859-9 109) (make-char 'latin-iso8859-15 109) nil nil #xED) table)
+    (put-char-table (make-char 'latin-iso8859-9 110) (vector #x3F (make-char 'latin-iso8859-1 110) (make-char 'latin-iso8859-2 110) (make-char 'latin-iso8859-3 110) (make-char 'latin-iso8859-4 110) (make-char 'latin-iso8859-9 110) (make-char 'latin-iso8859-15 110) nil nil #xEE) table)
+    (put-char-table (make-char 'latin-iso8859-9 111) (vector #x35 (make-char 'latin-iso8859-1 111) nil (make-char 'latin-iso8859-3 111) nil (make-char 'latin-iso8859-9 111) (make-char 'latin-iso8859-15 111) nil nil #xEF) table)
+    (put-char-table (make-char 'latin-iso8859-9 112) (vector #x14 nil nil (make-char 'latin-iso8859-3 59) nil (make-char 'latin-iso8859-9 112) nil nil nil #x11F) table)
+    (put-char-table (make-char 'latin-iso8859-9 113) (vector #x35 (make-char 'latin-iso8859-1 113) nil (make-char 'latin-iso8859-3 113) nil (make-char 'latin-iso8859-9 113) (make-char 'latin-iso8859-15 113) nil nil #xF1) table)
+    (put-char-table (make-char 'latin-iso8859-9 114) (vector #x35 (make-char 'latin-iso8859-1 114) nil (make-char 'latin-iso8859-3 114) nil (make-char 'latin-iso8859-9 114) (make-char 'latin-iso8859-15 114) nil nil #xF2) table)
+    (put-char-table (make-char 'latin-iso8859-9 115) (vector #x37 (make-char 'latin-iso8859-1 115) (make-char 'latin-iso8859-2 115) (make-char 'latin-iso8859-3 115) nil (make-char 'latin-iso8859-9 115) (make-char 'latin-iso8859-15 115) nil nil #xF3) table)
+    (put-char-table (make-char 'latin-iso8859-9 116) (vector #x3F (make-char 'latin-iso8859-1 116) (make-char 'latin-iso8859-2 116) (make-char 'latin-iso8859-3 116) (make-char 'latin-iso8859-4 116) (make-char 'latin-iso8859-9 116) (make-char 'latin-iso8859-15 116) nil nil #xF4) table)
+    (put-char-table (make-char 'latin-iso8859-9 117) (vector #x39 (make-char 'latin-iso8859-1 117) nil nil (make-char 'latin-iso8859-4 117) (make-char 'latin-iso8859-9 117) (make-char 'latin-iso8859-15 117) nil nil #xF5) table)
+    (put-char-table (make-char 'latin-iso8859-9 118) (vector #x3F (make-char 'latin-iso8859-1 118) (make-char 'latin-iso8859-2 118) (make-char 'latin-iso8859-3 118) (make-char 'latin-iso8859-4 118) (make-char 'latin-iso8859-9 118) (make-char 'latin-iso8859-15 118) nil nil #xF6) table)
+    (put-char-table (make-char 'latin-iso8859-9 119) (vector #x3F (make-char 'latin-iso8859-1 119) (make-char 'latin-iso8859-2 119) (make-char 'latin-iso8859-3 119) (make-char 'latin-iso8859-4 119) (make-char 'latin-iso8859-9 119) (make-char 'latin-iso8859-15 119) nil nil #xF7) table)
+    (put-char-table (make-char 'latin-iso8859-9 120) (vector #x39 (make-char 'latin-iso8859-1 120) nil nil (make-char 'latin-iso8859-4 120) (make-char 'latin-iso8859-9 120) (make-char 'latin-iso8859-15 120) nil nil #xF8) table)
+    (put-char-table (make-char 'latin-iso8859-9 121) (vector #x35 (make-char 'latin-iso8859-1 121) nil (make-char 'latin-iso8859-3 121) nil (make-char 'latin-iso8859-9 121) (make-char 'latin-iso8859-15 121) nil nil #xF9) table)
+    (put-char-table (make-char 'latin-iso8859-9 122) (vector #x3F (make-char 'latin-iso8859-1 122) (make-char 'latin-iso8859-2 122) (make-char 'latin-iso8859-3 122) (make-char 'latin-iso8859-4 122) (make-char 'latin-iso8859-9 122) (make-char 'latin-iso8859-15 122) nil nil #xFA) table)
+    (put-char-table (make-char 'latin-iso8859-9 123) (vector #x3D (make-char 'latin-iso8859-1 123) nil (make-char 'latin-iso8859-3 123) (make-char 'latin-iso8859-4 123) (make-char 'latin-iso8859-9 123) (make-char 'latin-iso8859-15 123) nil nil #xFB) table)
+    (put-char-table (make-char 'latin-iso8859-9 124) (vector #x3F (make-char 'latin-iso8859-1 124) (make-char 'latin-iso8859-2 124) (make-char 'latin-iso8859-3 124) (make-char 'latin-iso8859-4 124) (make-char 'latin-iso8859-9 124) (make-char 'latin-iso8859-15 124) nil nil #xFC) table)
+    (put-char-table (make-char 'latin-iso8859-9 125) (vector #x14 nil nil (make-char 'latin-iso8859-3 57) nil (make-char 'latin-iso8859-9 125) nil nil nil #x131) table)
+    (put-char-table (make-char 'latin-iso8859-9 126) (vector #x16 nil (make-char 'latin-iso8859-2 58) (make-char 'latin-iso8859-3 58) nil (make-char 'latin-iso8859-9 126) nil nil nil #x15F) table)
+    (put-char-table (make-char 'latin-iso8859-9 127) (vector #x31 (make-char 'latin-iso8859-1 127) nil nil nil (make-char 'latin-iso8859-9 127) (make-char 'latin-iso8859-15 127) nil nil #xFF) table)
+    (put-char-table 'japanese-jisx0208-1978 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'chinese-gb2312 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'japanese-jisx0208 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'korean-ksc5601 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'japanese-jisx0212 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'chinese-cns11643-1 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'chinese-cns11643-2 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'chinese-big5-1 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'chinese-big5-2 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'arabic-digit (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'arabic-1-column (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'arabic-2-column (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'sisheng (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'ipa (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'vietnamese-viscii-lower (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'vietnamese-viscii-upper (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 32) (vector #x3F (make-char 'latin-iso8859-1 32) (make-char 'latin-iso8859-2 32) (make-char 'latin-iso8859-3 32) (make-char 'latin-iso8859-4 32) (make-char 'latin-iso8859-9 32) (make-char 'latin-iso8859-15 32) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 33) (vector #x31 (make-char 'latin-iso8859-1 33) nil nil nil (make-char 'latin-iso8859-9 33) (make-char 'latin-iso8859-15 33) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 34) (vector #x31 (make-char 'latin-iso8859-1 34) nil nil nil (make-char 'latin-iso8859-9 34) (make-char 'latin-iso8859-15 34) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 35) (vector #x35 (make-char 'latin-iso8859-1 35) nil (make-char 'latin-iso8859-3 35) nil (make-char 'latin-iso8859-9 35) (make-char 'latin-iso8859-15 35) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 36) (vector #x20 nil nil nil nil nil (make-char 'latin-iso8859-15 36) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 37) (vector #xB1 (make-char 'latin-iso8859-1 37) nil nil nil (make-char 'latin-iso8859-9 37) (make-char 'latin-iso8859-15 37) nil (make-char 'latin-jisx0201 92) nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 38) (vector #x2A nil (make-char 'latin-iso8859-2 41) nil (make-char 'latin-iso8859-4 41) nil (make-char 'latin-iso8859-15 38) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 39) (vector #x3F (make-char 'latin-iso8859-1 39) (make-char 'latin-iso8859-2 39) (make-char 'latin-iso8859-3 39) (make-char 'latin-iso8859-4 39) (make-char 'latin-iso8859-9 39) (make-char 'latin-iso8859-15 39) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 40) (vector #x2A nil (make-char 'latin-iso8859-2 57) nil (make-char 'latin-iso8859-4 57) nil (make-char 'latin-iso8859-15 40) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 41) (vector #x31 (make-char 'latin-iso8859-1 41) nil nil nil (make-char 'latin-iso8859-9 41) (make-char 'latin-iso8859-15 41) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 42) (vector #x31 (make-char 'latin-iso8859-1 42) nil nil nil (make-char 'latin-iso8859-9 42) (make-char 'latin-iso8859-15 42) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 43) (vector #x31 (make-char 'latin-iso8859-1 43) nil nil nil (make-char 'latin-iso8859-9 43) (make-char 'latin-iso8859-15 43) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 44) (vector #x31 (make-char 'latin-iso8859-1 44) nil nil nil (make-char 'latin-iso8859-9 44) (make-char 'latin-iso8859-15 44) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 45) (vector #x3F (make-char 'latin-iso8859-1 45) (make-char 'latin-iso8859-2 45) (make-char 'latin-iso8859-3 45) (make-char 'latin-iso8859-4 45) (make-char 'latin-iso8859-9 45) (make-char 'latin-iso8859-15 45) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 46) (vector #x31 (make-char 'latin-iso8859-1 46) nil nil nil (make-char 'latin-iso8859-9 46) (make-char 'latin-iso8859-15 46) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 47) (vector #x39 (make-char 'latin-iso8859-1 47) nil nil (make-char 'latin-iso8859-4 47) (make-char 'latin-iso8859-9 47) (make-char 'latin-iso8859-15 47) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 48) (vector #x3F (make-char 'latin-iso8859-1 48) (make-char 'latin-iso8859-2 48) (make-char 'latin-iso8859-3 48) (make-char 'latin-iso8859-4 48) (make-char 'latin-iso8859-9 48) (make-char 'latin-iso8859-15 48) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 49) (vector #x31 (make-char 'latin-iso8859-1 49) nil nil nil (make-char 'latin-iso8859-9 49) (make-char 'latin-iso8859-15 49) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 50) (vector #x35 (make-char 'latin-iso8859-1 50) nil (make-char 'latin-iso8859-3 50) nil (make-char 'latin-iso8859-9 50) (make-char 'latin-iso8859-15 50) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 51) (vector #x35 (make-char 'latin-iso8859-1 51) nil (make-char 'latin-iso8859-3 51) nil (make-char 'latin-iso8859-9 51) (make-char 'latin-iso8859-15 51) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 52) (vector #x2A nil (make-char 'latin-iso8859-2 46) nil (make-char 'latin-iso8859-4 46) nil (make-char 'latin-iso8859-15 52) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 53) (vector #x35 (make-char 'latin-iso8859-1 53) nil (make-char 'latin-iso8859-3 53) nil (make-char 'latin-iso8859-9 53) (make-char 'latin-iso8859-15 53) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 54) (vector #x31 (make-char 'latin-iso8859-1 54) nil nil nil (make-char 'latin-iso8859-9 54) (make-char 'latin-iso8859-15 54) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 55) (vector #x35 (make-char 'latin-iso8859-1 55) nil (make-char 'latin-iso8859-3 55) nil (make-char 'latin-iso8859-9 55) (make-char 'latin-iso8859-15 55) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 56) (vector #x2A nil (make-char 'latin-iso8859-2 62) nil (make-char 'latin-iso8859-4 62) nil (make-char 'latin-iso8859-15 56) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 57) (vector #x31 (make-char 'latin-iso8859-1 57) nil nil nil (make-char 'latin-iso8859-9 57) (make-char 'latin-iso8859-15 57) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 58) (vector #x31 (make-char 'latin-iso8859-1 58) nil nil nil (make-char 'latin-iso8859-9 58) (make-char 'latin-iso8859-15 58) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 59) (vector #x31 (make-char 'latin-iso8859-1 59) nil nil nil (make-char 'latin-iso8859-9 59) (make-char 'latin-iso8859-15 59) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 60) (vector #x20 nil nil nil nil nil (make-char 'latin-iso8859-15 60) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 61) (vector #x20 nil nil nil nil nil (make-char 'latin-iso8859-15 61) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 62) (vector #x20 nil nil nil nil nil (make-char 'latin-iso8859-15 62) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 63) (vector #x31 (make-char 'latin-iso8859-1 63) nil nil nil (make-char 'latin-iso8859-9 63) (make-char 'latin-iso8859-15 63) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 64) (vector #x35 (make-char 'latin-iso8859-1 64) nil (make-char 'latin-iso8859-3 64) nil (make-char 'latin-iso8859-9 64) (make-char 'latin-iso8859-15 64) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 65) (vector #x3F (make-char 'latin-iso8859-1 65) (make-char 'latin-iso8859-2 65) (make-char 'latin-iso8859-3 65) (make-char 'latin-iso8859-4 65) (make-char 'latin-iso8859-9 65) (make-char 'latin-iso8859-15 65) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 66) (vector #x3F (make-char 'latin-iso8859-1 66) (make-char 'latin-iso8859-2 66) (make-char 'latin-iso8859-3 66) (make-char 'latin-iso8859-4 66) (make-char 'latin-iso8859-9 66) (make-char 'latin-iso8859-15 66) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 67) (vector #x39 (make-char 'latin-iso8859-1 67) nil nil (make-char 'latin-iso8859-4 67) (make-char 'latin-iso8859-9 67) (make-char 'latin-iso8859-15 67) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 68) (vector #x3F (make-char 'latin-iso8859-1 68) (make-char 'latin-iso8859-2 68) (make-char 'latin-iso8859-3 68) (make-char 'latin-iso8859-4 68) (make-char 'latin-iso8859-9 68) (make-char 'latin-iso8859-15 68) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 69) (vector #x39 (make-char 'latin-iso8859-1 69) nil nil (make-char 'latin-iso8859-4 69) (make-char 'latin-iso8859-9 69) (make-char 'latin-iso8859-15 69) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 70) (vector #x39 (make-char 'latin-iso8859-1 70) nil nil (make-char 'latin-iso8859-4 70) (make-char 'latin-iso8859-9 70) (make-char 'latin-iso8859-15 70) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 71) (vector #x37 (make-char 'latin-iso8859-1 71) (make-char 'latin-iso8859-2 71) (make-char 'latin-iso8859-3 71) nil (make-char 'latin-iso8859-9 71) (make-char 'latin-iso8859-15 71) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 72) (vector #x35 (make-char 'latin-iso8859-1 72) nil (make-char 'latin-iso8859-3 72) nil (make-char 'latin-iso8859-9 72) (make-char 'latin-iso8859-15 72) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 73) (vector #x3F (make-char 'latin-iso8859-1 73) (make-char 'latin-iso8859-2 73) (make-char 'latin-iso8859-3 73) (make-char 'latin-iso8859-4 73) (make-char 'latin-iso8859-9 73) (make-char 'latin-iso8859-15 73) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 74) (vector #x35 (make-char 'latin-iso8859-1 74) nil (make-char 'latin-iso8859-3 74) nil (make-char 'latin-iso8859-9 74) (make-char 'latin-iso8859-15 74) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 75) (vector #x3F (make-char 'latin-iso8859-1 75) (make-char 'latin-iso8859-2 75) (make-char 'latin-iso8859-3 75) (make-char 'latin-iso8859-4 75) (make-char 'latin-iso8859-9 75) (make-char 'latin-iso8859-15 75) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 76) (vector #x35 (make-char 'latin-iso8859-1 76) nil (make-char 'latin-iso8859-3 76) nil (make-char 'latin-iso8859-9 76) (make-char 'latin-iso8859-15 76) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 77) (vector #x3F (make-char 'latin-iso8859-1 77) (make-char 'latin-iso8859-2 77) (make-char 'latin-iso8859-3 77) (make-char 'latin-iso8859-4 77) (make-char 'latin-iso8859-9 77) (make-char 'latin-iso8859-15 77) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 78) (vector #x3F (make-char 'latin-iso8859-1 78) (make-char 'latin-iso8859-2 78) (make-char 'latin-iso8859-3 78) (make-char 'latin-iso8859-4 78) (make-char 'latin-iso8859-9 78) (make-char 'latin-iso8859-15 78) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 79) (vector #x35 (make-char 'latin-iso8859-1 79) nil (make-char 'latin-iso8859-3 79) nil (make-char 'latin-iso8859-9 79) (make-char 'latin-iso8859-15 79) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 80) (vector #x21 (make-char 'latin-iso8859-1 80) nil nil nil nil (make-char 'latin-iso8859-15 80) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 81) (vector #x35 (make-char 'latin-iso8859-1 81) nil (make-char 'latin-iso8859-3 81) nil (make-char 'latin-iso8859-9 81) (make-char 'latin-iso8859-15 81) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 82) (vector #x35 (make-char 'latin-iso8859-1 82) nil (make-char 'latin-iso8859-3 82) nil (make-char 'latin-iso8859-9 82) (make-char 'latin-iso8859-15 82) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 83) (vector #x37 (make-char 'latin-iso8859-1 83) (make-char 'latin-iso8859-2 83) (make-char 'latin-iso8859-3 83) nil (make-char 'latin-iso8859-9 83) (make-char 'latin-iso8859-15 83) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 84) (vector #x3F (make-char 'latin-iso8859-1 84) (make-char 'latin-iso8859-2 84) (make-char 'latin-iso8859-3 84) (make-char 'latin-iso8859-4 84) (make-char 'latin-iso8859-9 84) (make-char 'latin-iso8859-15 84) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 85) (vector #x39 (make-char 'latin-iso8859-1 85) nil nil (make-char 'latin-iso8859-4 85) (make-char 'latin-iso8859-9 85) (make-char 'latin-iso8859-15 85) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 86) (vector #x3F (make-char 'latin-iso8859-1 86) (make-char 'latin-iso8859-2 86) (make-char 'latin-iso8859-3 86) (make-char 'latin-iso8859-4 86) (make-char 'latin-iso8859-9 86) (make-char 'latin-iso8859-15 86) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 87) (vector #x3F (make-char 'latin-iso8859-1 87) (make-char 'latin-iso8859-2 87) (make-char 'latin-iso8859-3 87) (make-char 'latin-iso8859-4 87) (make-char 'latin-iso8859-9 87) (make-char 'latin-iso8859-15 87) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 88) (vector #x39 (make-char 'latin-iso8859-1 88) nil nil (make-char 'latin-iso8859-4 88) (make-char 'latin-iso8859-9 88) (make-char 'latin-iso8859-15 88) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 89) (vector #x35 (make-char 'latin-iso8859-1 89) nil (make-char 'latin-iso8859-3 89) nil (make-char 'latin-iso8859-9 89) (make-char 'latin-iso8859-15 89) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 90) (vector #x3F (make-char 'latin-iso8859-1 90) (make-char 'latin-iso8859-2 90) (make-char 'latin-iso8859-3 90) (make-char 'latin-iso8859-4 90) (make-char 'latin-iso8859-9 90) (make-char 'latin-iso8859-15 90) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 91) (vector #x3D (make-char 'latin-iso8859-1 91) nil (make-char 'latin-iso8859-3 91) (make-char 'latin-iso8859-4 91) (make-char 'latin-iso8859-9 91) (make-char 'latin-iso8859-15 91) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 92) (vector #x3F (make-char 'latin-iso8859-1 92) (make-char 'latin-iso8859-2 92) (make-char 'latin-iso8859-3 92) (make-char 'latin-iso8859-4 92) (make-char 'latin-iso8859-9 92) (make-char 'latin-iso8859-15 92) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 93) (vector #x23 (make-char 'latin-iso8859-1 93) (make-char 'latin-iso8859-2 93) nil nil nil (make-char 'latin-iso8859-15 93) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 94) (vector #x21 (make-char 'latin-iso8859-1 94) nil nil nil nil (make-char 'latin-iso8859-15 94) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 95) (vector #x3F (make-char 'latin-iso8859-1 95) (make-char 'latin-iso8859-2 95) (make-char 'latin-iso8859-3 95) (make-char 'latin-iso8859-4 95) (make-char 'latin-iso8859-9 95) (make-char 'latin-iso8859-15 95) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 96) (vector #x35 (make-char 'latin-iso8859-1 96) nil (make-char 'latin-iso8859-3 96) nil (make-char 'latin-iso8859-9 96) (make-char 'latin-iso8859-15 96) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 97) (vector #x3F (make-char 'latin-iso8859-1 97) (make-char 'latin-iso8859-2 97) (make-char 'latin-iso8859-3 97) (make-char 'latin-iso8859-4 97) (make-char 'latin-iso8859-9 97) (make-char 'latin-iso8859-15 97) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 98) (vector #x3F (make-char 'latin-iso8859-1 98) (make-char 'latin-iso8859-2 98) (make-char 'latin-iso8859-3 98) (make-char 'latin-iso8859-4 98) (make-char 'latin-iso8859-9 98) (make-char 'latin-iso8859-15 98) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 99) (vector #x39 (make-char 'latin-iso8859-1 99) nil nil (make-char 'latin-iso8859-4 99) (make-char 'latin-iso8859-9 99) (make-char 'latin-iso8859-15 99) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 100) (vector #x3F (make-char 'latin-iso8859-1 100) (make-char 'latin-iso8859-2 100) (make-char 'latin-iso8859-3 100) (make-char 'latin-iso8859-4 100) (make-char 'latin-iso8859-9 100) (make-char 'latin-iso8859-15 100) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 101) (vector #x39 (make-char 'latin-iso8859-1 101) nil nil (make-char 'latin-iso8859-4 101) (make-char 'latin-iso8859-9 101) (make-char 'latin-iso8859-15 101) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 102) (vector #x39 (make-char 'latin-iso8859-1 102) nil nil (make-char 'latin-iso8859-4 102) (make-char 'latin-iso8859-9 102) (make-char 'latin-iso8859-15 102) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 103) (vector #x37 (make-char 'latin-iso8859-1 103) (make-char 'latin-iso8859-2 103) (make-char 'latin-iso8859-3 103) nil (make-char 'latin-iso8859-9 103) (make-char 'latin-iso8859-15 103) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 104) (vector #x35 (make-char 'latin-iso8859-1 104) nil (make-char 'latin-iso8859-3 104) nil (make-char 'latin-iso8859-9 104) (make-char 'latin-iso8859-15 104) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 105) (vector #x3F (make-char 'latin-iso8859-1 105) (make-char 'latin-iso8859-2 105) (make-char 'latin-iso8859-3 105) (make-char 'latin-iso8859-4 105) (make-char 'latin-iso8859-9 105) (make-char 'latin-iso8859-15 105) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 106) (vector #x35 (make-char 'latin-iso8859-1 106) nil (make-char 'latin-iso8859-3 106) nil (make-char 'latin-iso8859-9 106) (make-char 'latin-iso8859-15 106) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 107) (vector #x3F (make-char 'latin-iso8859-1 107) (make-char 'latin-iso8859-2 107) (make-char 'latin-iso8859-3 107) (make-char 'latin-iso8859-4 107) (make-char 'latin-iso8859-9 107) (make-char 'latin-iso8859-15 107) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 108) (vector #x35 (make-char 'latin-iso8859-1 108) nil (make-char 'latin-iso8859-3 108) nil (make-char 'latin-iso8859-9 108) (make-char 'latin-iso8859-15 108) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 109) (vector #x3F (make-char 'latin-iso8859-1 109) (make-char 'latin-iso8859-2 109) (make-char 'latin-iso8859-3 109) (make-char 'latin-iso8859-4 109) (make-char 'latin-iso8859-9 109) (make-char 'latin-iso8859-15 109) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 110) (vector #x3F (make-char 'latin-iso8859-1 110) (make-char 'latin-iso8859-2 110) (make-char 'latin-iso8859-3 110) (make-char 'latin-iso8859-4 110) (make-char 'latin-iso8859-9 110) (make-char 'latin-iso8859-15 110) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 111) (vector #x35 (make-char 'latin-iso8859-1 111) nil (make-char 'latin-iso8859-3 111) nil (make-char 'latin-iso8859-9 111) (make-char 'latin-iso8859-15 111) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 112) (vector #x21 (make-char 'latin-iso8859-1 112) nil nil nil nil (make-char 'latin-iso8859-15 112) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 113) (vector #x35 (make-char 'latin-iso8859-1 113) nil (make-char 'latin-iso8859-3 113) nil (make-char 'latin-iso8859-9 113) (make-char 'latin-iso8859-15 113) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 114) (vector #x35 (make-char 'latin-iso8859-1 114) nil (make-char 'latin-iso8859-3 114) nil (make-char 'latin-iso8859-9 114) (make-char 'latin-iso8859-15 114) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 115) (vector #x37 (make-char 'latin-iso8859-1 115) (make-char 'latin-iso8859-2 115) (make-char 'latin-iso8859-3 115) nil (make-char 'latin-iso8859-9 115) (make-char 'latin-iso8859-15 115) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 116) (vector #x3F (make-char 'latin-iso8859-1 116) (make-char 'latin-iso8859-2 116) (make-char 'latin-iso8859-3 116) (make-char 'latin-iso8859-4 116) (make-char 'latin-iso8859-9 116) (make-char 'latin-iso8859-15 116) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 117) (vector #x39 (make-char 'latin-iso8859-1 117) nil nil (make-char 'latin-iso8859-4 117) (make-char 'latin-iso8859-9 117) (make-char 'latin-iso8859-15 117) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 118) (vector #x3F (make-char 'latin-iso8859-1 118) (make-char 'latin-iso8859-2 118) (make-char 'latin-iso8859-3 118) (make-char 'latin-iso8859-4 118) (make-char 'latin-iso8859-9 118) (make-char 'latin-iso8859-15 118) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 119) (vector #x3F (make-char 'latin-iso8859-1 119) (make-char 'latin-iso8859-2 119) (make-char 'latin-iso8859-3 119) (make-char 'latin-iso8859-4 119) (make-char 'latin-iso8859-9 119) (make-char 'latin-iso8859-15 119) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 120) (vector #x39 (make-char 'latin-iso8859-1 120) nil nil (make-char 'latin-iso8859-4 120) (make-char 'latin-iso8859-9 120) (make-char 'latin-iso8859-15 120) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 121) (vector #x35 (make-char 'latin-iso8859-1 121) nil (make-char 'latin-iso8859-3 121) nil (make-char 'latin-iso8859-9 121) (make-char 'latin-iso8859-15 121) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 122) (vector #x3F (make-char 'latin-iso8859-1 122) (make-char 'latin-iso8859-2 122) (make-char 'latin-iso8859-3 122) (make-char 'latin-iso8859-4 122) (make-char 'latin-iso8859-9 122) (make-char 'latin-iso8859-15 122) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 123) (vector #x3D (make-char 'latin-iso8859-1 123) nil (make-char 'latin-iso8859-3 123) (make-char 'latin-iso8859-4 123) (make-char 'latin-iso8859-9 123) (make-char 'latin-iso8859-15 123) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 124) (vector #x3F (make-char 'latin-iso8859-1 124) (make-char 'latin-iso8859-2 124) (make-char 'latin-iso8859-3 124) (make-char 'latin-iso8859-4 124) (make-char 'latin-iso8859-9 124) (make-char 'latin-iso8859-15 124) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 125) (vector #x23 (make-char 'latin-iso8859-1 125) (make-char 'latin-iso8859-2 125) nil nil nil (make-char 'latin-iso8859-15 125) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 126) (vector #x21 (make-char 'latin-iso8859-1 126) nil nil nil nil (make-char 'latin-iso8859-15 126) nil nil nil) table)
+    (put-char-table (make-char 'latin-iso8859-15 127) (vector #x31 (make-char 'latin-iso8859-1 127) nil nil nil (make-char 'latin-iso8859-9 127) (make-char 'latin-iso8859-15 127) nil nil nil) table)
+    (put-char-table 'chinese-cns11643-3 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'chinese-cns11643-4 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'chinese-cns11643-5 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'chinese-cns11643-6 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'chinese-cns11643-7 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'chinese-isoir165 (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'ethiopic (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    (put-char-table 'thai-xtis (vector #x0 nil nil nil nil nil nil nil nil nil) table)
+    table)
+  "Map a (Latin) Mule character to the set of character sets containing it.")

File latin-unity-utils.el

+;;; latin-unity-utils.el --- Utility functions for preparing latin-unity data
+
+;; Copyright (C) 2002 Free Software Foundation, Inc.
+
+;; Author: Stephen J. Turnbull
+;; Keywords: mule, charsets
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; Mule bogusly considers the various ISO-8859 extended character sets
+;; as disjoint, when ISO 8859 itself clearly considers them to be subsets
+;; of a larger character set.
+
+;; This library provides functions which for creating databases of
+;; equivalence classes of characters.
+
+;; It is NOT REQUIRED for the use of latin-unity.el; only for creating
+;; the data it uses (provided in latin-unity-tables.el).
+
+;; This is a developer-only library; _do not_ autoload anything in it.
+
+;;; Code:
+
+(provide 'latin-unity-utils)
+(provide 'latin-unity-tables)		; Needed to fake out the require of
+					; latin-unity below.  But not a lie.
+
+;;; Requires
+(require 'cl)
+(load-library "cl-macs")		; howcum no #'provide?
+(require 'latin-unity)			; for the various variables, especially
+					; tables, indicies, and flags.
+					; #### should split them out to a file
+					; also for ISO 8859/15
+;; the following libraries are from Mule-UCS.
+;; this dependency can be eliminated by providing char-to-ucs.
+(require 'unicode)
+(require 'un-define)
+
+;; table of character set support for each Unicode code point
+;; Table from http://www.cs.tut.fi/~jkorpela/iso8859/charsupp.htm8
+;(defconst latin-unity-character-sets-vector
+;  (let ((vec (make-vector (1+ #x20AC) 0)))
+;    (flet ((loopset (start end value)
+;	     (loop for i from start to end do
+;	       (aset vec i value)))
+;	   (mapsetbit (cs char-list)
+;	     (let ((bit (get cs 'latin-unity-flag-bit)))
+;	       (mapcar (lambda (i)
+;			 (aset vec i (logior bit (aref vec i))))
+;		       char-list)))
+;	   (mapclearbit (cs char-list)
+;	     (let ((bit (get cs 'latin-unity-flag-bit)))
+;	       (if (null bit) (error (format "no flag bit for %s" cs)))
+;	       (mapcar (lambda (i)
+;			 (aset vec i (logand (lognot bit) (aref vec i))))
+;		       char-list))))
+;      (loopset #x0 #x7F
+;	       (logior (get 'ascii 'latin-unity-flag-bit)
+;		       (get 'latin-jisx0201 'latin-unity-flag-bit)))
+;      ;; C1 is handled in the definition of the char-table.
+;      (loopset #xA0 #xFF
+;	       (logior (get 'latin-iso8859-1 'latin-unity-flag-bit)
+;		       (get 'latin-iso8859-9 'latin-unity-flag-bit)
+;		       (if (memq 'iso-8859-14 latin-unity-coding-systems)
+;			   (get 'latin-iso8859-14 'latin-unity-flag-bit)
+;			 0)
+;		       (get 'latin-iso8859-15 'latin-unity-flag-bit)))
+;      (mapsetbit 'latin-iso8859-2
+;	'(#xA0 #xA4 #xA7 #xA8 #xAD #xB0 #xB4 #xB8 #xC1 #xC2 #xC4
+;	  #xC7 #xC9 #xCB #xCD #xCE #xD3 #xD4 #xD6 #xD7 #xDA
+;	  #xDC #xDD #xDF #xE1 #xE2 #xE4 #xE7 #xE9 #xEB #xED
+;	  #xF3 #xF4 #xF6 #xF7 #xFA #xFC #xFD
+;	  #x0102 #x0103 #x0104 #x0105 #x0106
+;	  #x0107 #x010C #x010D #x010E #x010F
+;	  #x0110 #x0111 #x0118 #x0119 #x011A
+;	  #x011B #x0139 #x013A #x013D #x013E
+;	  #x0141 #x0142 #x0143 #x0144 #x0147
+;	  #x0148 #x0150 #x0151 #x0154 #x0155
+;	  #x0158 #x0159 #x015A #x015B #x015E
+;	  #x015F #x0160 #x0161 #x0162 #x0163
+;	  #x0164 #x0165 #x016E #x016F #x0170
+;	  #x0171 #x0179 #x017A #x017B #x017C
+;	  #x017D #x017E #x02C7 #x02D8 #x02D9
+;	  #x02DB #x02DD))
+;      (mapsetbit 'latin-iso8859-3
+;	'(#xA0 #xA3 #xA4 #xA7 #xA8 #xAD #xB0 #xB2 #xB3 #xB4 #xB5
+;	  #xB7 #xB8 #xBD #xC0 #xC1 #xC2 #xC4 #xC7 #xC8 #xC9
+;	  #xCA #xCB #xCC #xCD #xCE #xCF #xD1 #xD2 #xD3 #xD4
+;	  #xD6 #xD7
+;	  #xD9 #xDA #xDB #xDC #xDF #xE0 #xE1 #xE2 #xE4 #xE7
+;	  #xE8 #xE9 #xEA #xEB #xEC #xED #xEE #xEF #xF1 #xF2
+;	  #xF3 #xF4 #xF6 #xF7 #xF9 #xFA #xFB #xFC
+;	  #x0108 #x0109 #x010A #x010B #x011C
+;	  #x011D #x011E #x011F #x0120 #x0121
+;	  #x0124 #x0125 #x0126 #x0127 #x0130
+;	  #x0131 #x0134 #x0135 #x015C #x015D
+;	  #x015E #x015F #x016C #x016D #x017B
+;	  #x017C #x02D8 #x02D9))
+;      (mapsetbit 'latin-iso8859-4
+;	'(#xA0 #xA4 #xA7 #xA8 #xAD #xAF #xB0 #xB4 #xB8 #xC1 #xC2
+;	  #xC3 #xC4 #xC5 #xC6 #xC9 #xCB #xCD #xCE #xD4 #xD5
+;	  #xD6 #xD7 #xD8 #xDA #xDB #xDC #xDF #xE1 #xE2 #xE3
+;	  #xE4 #xE5 #xE6 #xE9 #xEB #xED #xEE #xF4 #xF5 #xF6
+;	  #xF7 #xF8 #xFA #xFB #xFC
+;	  #x0100 #x0101 #x0104 #x0105 #x010C
+;	  #x010D #x0110 #x0111 #x0112 #x0113
+;	  #x0116 #x0117 #x0118 #x0119 #x0122
+;	  #x0123 #x0128 #x0129 #x012A #x012B
+;	  #x012E #x012F #x0136 #x0137 #x0138
+;	  #x013B #x013C #x0145 #x0146 #x014A
+;	  #x014B #x014C #x014D #x0156 #x0157
+;	  #x0160 #x0161 #x0166 #x0167 #x0168
+;	  #x0169 #x016A #x016B #x0172 #x0173
+;	  #x017D #x017E #x02C7 #x02D9 #x02DB))
+;      (mapclearbit 'latin-iso8859-9
+;	'(#xD0 #xDD #xDE #xF0 #xFD #xFE))
+;      (mapsetbit 'latin-iso8859-9
+;	'(#x011E #x011F #x0130 #x0131 #x015E
+;	  #x015F))
+;      ;; Unsupported in current versions of Mule
+;      (when (memq 'iso-8859-10 latin-unity-coding-systems)
+;	(mapsetbit 'latin-iso8859-10
+;	  '(#xA0 #xA7 #xAD #xB0 #xB4 #xB7 #xC1 #xC2 #xC3 #xC4 #xC5
+;	    #xC6 #xCB #xCD #xCE #xCF #xD0 #xD3 #xD4 #xD5 #xD6
+;	    #xD8 #xDA #xDB #xDC #xDD #xDE #xDF #xE1 #xE2 #xE3
+;	    #xE4 #xE5 #xE6 #xE9 #xEB #xED #xEE #xEF #xF0 #xF3
+;	    #xF4 #xF5 #xF6 #xF8 #xFA #xFB #xFC #xFD #xFE 
+;	    #x0100 #x0101 #x0104 #x0105 #x010C
+;	    #x010D #x0110 #x0112 #x0113 #x0116
+;	    #x0117 #x0118 #x0119 #x0122 #x0123
+;	    #x0128 #x0129 #x012A #x012B #x012E
+;	    #x012F #x0136 #x0137 #x0138 #x013B
+;	    #x013C #x0145 #x0146 #x014A #x014B
+;	    #x014C #x014D #x0160 #x0161 #x0166
+;	    #x0167 #x0168 #x0169 #x016A #x016B
+;	    #x0172 #x0173 #x017D #x017E #x2015)))
+;      (when (memq 'iso-8859-13 latin-unity-coding-systems)
+;	(mapsetbit 'latin-iso8859-13
+;	  '(#xA0 #xA2 #xA3 #xA4 #xA6 #xA7 #xA9 #xAB #xAC #xAD #xAE
+;	    #xB0 #xB1 #xB2 #xB3 #xB5 #xB6 #xB7 #xB9 #xBB #xBC
+;	    #xBD #xBE #xC4 #xC5 #xC6 #xC9 #xD3 #xD5 #xD6 #xD7
+;	    #xD8 #xDC #xDF #xE4 #xE5 #xE6 #xE9 #xF3 #xF5 #xF6
+;	    #xF8 #xFC
+;	    #x0100 #x0101 #x0104 #x0105 #x0106
+;	    #x0107 #x010C #x010D #x0112 #x0113
+;	    #x0116 #x0117 #x0118 #x0119 #x0122
+;	    #x0123 #x012A #x012B #x012E #x012F
+;	    #x0136 #x0137 #x013B #x013C #x0141
+;	    #x0142 #x0143 #x0144 #x0145 #x0146
+;	    #x014C #x014D #x0156 #x0157 #x015A
+;	    #x015B #x0160 #x0161 #x016A #x016B
+;	    #x0172 #x0173 #x017D #x017E #x2019
+;	    #x201C #x201D #x201E)))
+;	(when (memq 'iso-8859-10 latin-unity-coding-systems)
+;	  (mapclearbit 'latin-iso8859-14
+;	    '(#xA1 #xA2 #xA4 #xA5 #xA6 #xA8 #xAA #xAB #xAC #xAF
+;	      #xB0 #xB1 #xB2 #xB3 #xB4 #xB5 #xB7 #xB8 #xB9 #xBA
+;	      #xBB #xBC #xBD #xBE #xBF #xD0 #xD7 #xDE #xF0 #xF7
+;	      #xFE))
+;	  (mapsetbit 'latin-iso8859-14
+;	    '(#x010A #x010B #x0120 #x0121 #x0174
+;	      #x0175 #x0176 #x0177 #x0178 #x1E02
+;	      #x1E03 #x1E0A #x1A0B #x1E1E #x1E1F
+;	      #x1E40 #x1E41 #x1E56 #x1E57 #x1E60
+;	      #x1E61 #x1E6A #x1E6B #x1E80 #x1E81
+;	      #x1E82 #x1E83 #x1E84 #x1E85 #x1EF2
+;	      #x1EF3)))
+;	(mapclearbit 'latin-iso8859-15
+;	  '(#xA4 #xA6 #xA8 #xB4 #xB8 #xBC #xBD #xBE))
+;	(mapsetbit 'latin-iso8859-15
+;	  '(#x0152 #x0153 #x0160 #x0161 #x0178
+;	    #x017C #x017D #x20AC)))
+;    vec))
+
+;; Populate the equivalence table
+(let* ((u+index (1+ (length latin-unity-character-sets))) ; alias
+       (zero (make-vector (1+ u+index) nil))              ; useful constant
+       ;; temporary holding tank for equivs: list of Mule characters
+       ;; equivalent to the Unicode code point
+       (unitable (make-vector (1+ #x20AC) nil)))
+
+  ;; 
+  ;; ASCII is spatial, Mule treats C0 and DEL as ASCII, but
+  ;; (= (charset-property 'ascii 'chars) 94) :-(
+  (loop for i from #x00 to #x7F do
+    (let* ((ch (make-char 'ascii i))	; multibyte dirty
+	   (ucs (char-to-ucs ch)))
+      (if ucs
+	  (aset unitable ucs (cons ch (aref unitable ucs)))
+	;; Unfortunately it seems that Mule-UCS doesn't know Latin-9....
+	;; It also is smart enough to know that there are holes in Latin-3.
+	(message "Mule-UCS doesn't know about %s" (split-char ch)))))
+
+  ;; Other character sets
+  ;; Control-1 is spatial, but handled below
+  ;; NB: JIS Roman defaults to differing from ASCII
+  (mapc (lambda (cs)
+	  (let (lo hi)
+	    ;; cond because Morioka added a lot of extra sizes
+	    ;; not relevant to our Latin character sets
+	    (cond ((= (charset-property cs 'chars) 94)
+		   (setq lo #x21 hi #x7E))
+		  ((= (charset-property cs 'chars) 96)
+		   (setq lo #x20 hi #x7F))
+		  (t (message "Odd size character set (%s)!" cs)
+		     (setq lo #x20 hi #x7F)))
+	    (loop for i from lo to hi do
+	      (let* ((ch (make-char cs i)) ; multibyte dirty
+		     (ucs (char-to-ucs ch)))
+		(if ucs
+		    (aset unitable ucs (cons ch (aref unitable ucs)))
+		  ;; It seems that Mule-UCS doesn't know Latin-9....
+		  (message "Mule-UCS doesn't know about %s"
+			   (split-char ch)))))))
+	(delq 'ascii (copy-sequence latin-unity-character-sets)))
+
+  ;; Latin-9 is spatial, Mule-UCS doesn't handle it correctly (maybe because
+  ;; it's not built in?)
+  (when (find-coding-system 'iso-8859-15)
+    (loop for i from #x20 to #x7F do
+      (let* ((ch (make-char 'latin-iso8859-15 i)) ; multibyte dirty
+	     (ucs (+ i #x80)))
+	(aset unitable ucs (cons ch (aref unitable ucs)))))
+    (mapc (lambda (ucs)
+	    (let ((ch (make-char 'latin-iso8859-15 ucs)))
+	      (aset unitable ucs (delq ch (aref unitable ucs)))))
+	  '(#xA4 #xA6 #xA8 #xB4 #xB8 #xBC #xBD #xBE))
+    (mapc (lambda (pair)
+	    (let ((ucs (car pair))
+		  (ch (make-char 'latin-iso8859-15 (cdr pair))))
+	      (aset unitable ucs (cons ch (aref unitable ucs)))))
+	  '((#x0152 . #xBC) (#x0153 . #xBD) (#x0160 . #xA6) (#x0161 . #xA8)
+	    (#x0178 . #xBE) (#x017D . #xB4) (#x017E . #xB8) (#x20AC . #xA4))))
+
+  ;; Fill in the equivalences
+
+  ;; Default the whole equivalences table
+  (aset zero 0 0)
+  (put-char-table t zero latin-unity-equivalences)
+
+  ;; Control 1 code points are spatial
+  ;; Warning on these is beyond the scope of this library.
+  (put-char-table 'control-1
+		  (vector latin-unity-all-flags
+			  nil nil nil nil nil nil nil nil nil)
+		  latin-unity-equivalences)
+
+  ;; Now map over the unitable to the equivalences char-table
+  (mapc (lambda (equivs)
+	  (when equivs			; null for all non-Latin characters
+	    (dolist (ch1 equivs)
+	      (let ((vec (copy-sequence
+			  (get-char-table ch1 latin-unity-equivalences)))
+		    (ucs (char-to-ucs ch1)))
+		(when ucs (aset vec u+index ucs))
+		(dolist (ch2 equivs)
+		  (let* ((cset (char-charset ch2))
+			 (bit (get cset 'latin-unity-flag-bit))
+			 (index (get cset 'latin-unity-index)))
+		    (aset vec 0 (logior bit (aref vec 0)))
+		    (aset vec index ch2)))
+		(put-char-table ch1 vec latin-unity-equivalences)))))
+	unitable))
+
+(defun latin-unity-dump-tables ()
+  "Create a Lisp library to initialize the equivalences char-table."
+
+  (interactive)
+
+  ;; set up buffer
+  (set-buffer (get-buffer-create "latin-unity-tables.el"))
+  (erase-buffer)
+
+  ;; insert preface
+  (insert   ";;; initialize latin-unity-equivalences"
+	  "\n;;; Do not edit -- automatically generated."
+	  "\n(provide 'latin-unity-tables)"
+	  "\n(defconst latin-unity-equivalences"
+	  "\n  (let ((table (make-char-table 'generic)))")
+
+  ;; insert table insertions
+  ;; alternate mmc: (format "(apply #'make-char '%s)" (split-char ch))
+  (flet ((mmc (ch)
+	   (let ((x (split-char ch)))
+	     (concat (format "(make-char '%s %d" (first x) (second x))
+		     (if (third x) (format " %d)" (third x)) ")")))))
+    (map-char-table
+     (lambda (key val)
+       (insert (format "\n    (put-char-table %s (vector %s) table)"
+		       (cond ((characterp key) (mmc key))
+			     ((symbolp key) (format "'%s" key)))
+		       (mapconcat
+			(lambda (elt)
+			  (cond ((characterp elt) (mmc elt))
+				((null elt) "nil")
+				;; be careful to emit read syntax here!
+				((integerp elt) (format "#x%X" elt))
+				(t (format "%s" elt))))
+			val
+			" "))))
+     latin-unity-equivalences))
+
+  ;; insert trailing matter
+  (insert "\n    table)"
+	  "\n  \"Map a (Latin) Mule character to the set of"
+	  " character sets containing it.\")"
+	  "\n")
+
+  ;; write the file
+  (write-file "latin-unity-tables.el" t)
+  (message "Wrote %s." "latin-unity-tables.el"))
+
+;;; end of latin-unity-utils.el

File latin-unity-vars.el

+;;; latin-unity-vars.el --- Common variables and objects of latin-unity
+
+;; Copyright (C) 2002 Free Software Foundation, Inc
+
+;; Author: Stephen J. Turnbull
+;; Keywords: mule, charsets
+;; Created: 2002 January 26
+;; Last-modified: 2002 January 26
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+
+;;; Commentary:
+
+;; Mule bogusly considers the various ISO-8859 extended character sets
+;; as disjoint, when ISO 8859 itself clearly considers them to be subsets
+;; of a larger character set.  This library provides functions which
+;; determine the list of coding systems which can encode all of the
+;; characters in the buffer.
+
+;; Provides the 'iso-8859-15 coding system if not yet defined.
+
+;;; Code:
+
+(provide 'latin-unity-vars)
+
+;;; User customization is in latin-unity.el
+
+;; define ISO-8859-15 for XEmacs 21.4 and earlier
+;(eval-when (compile load eval)
+  (unless (find-coding-system 'iso-8859-15)
+    ;; Create character set
+    (make-charset
+     'latin-iso8859-15 "ISO8859-15 (Latin 9)"
+     '(short-name "Latin-9"
+       long-name "ISO8859-15 (Latin 9)"
+       registry "iso8859-15"
+       dimension 1
+       columns 1
+       chars 96
+       final ?b
+       graphic 1
+       direction l2r))
+    ;; For syntax of Latin-9 characters.
+    (require 'cl)
+    (load-library "cl-macs")		; howcum no #'provide?
+    (loop for c from 64 to 127		; from '�' to '�'
+      do (modify-syntax-entry (make-char 'latin-iso8859-15 c) "w"))
+    (mapc (lambda (c)
+	    (modify-syntax-entry (make-char 'latin-iso8859-15 c) "w"))
+	  '(#xA6 #xA8 #xB4 #xB8 #xBC #xBD #xBE))
+
+    (modify-syntax-entry (make-char 'latin-iso8859-15 32) "w") ; no-break space
+    (modify-syntax-entry (make-char 'latin-iso8859-15 87) "_") ; multiply
+    (modify-syntax-entry (make-char 'latin-iso8859-15 119) "_") ; divide
+    ;; Create coding system
+    (make-coding-system
+     'iso-8859-15 'iso2022 "MIME ISO-8859-15"
+     '(charset-g0 ascii
+       charset-g1 latin-iso8859-15
+       charset-g2 t			; grrr
+       charset-g3 t			; grrr
+       mnemonic "MIME/Ltn-9")))
+;)
+
+;; latin-unity-equivalence-table
+;; could speed things up a tiny bit by splitting out the bit-vector, but
+;; this is constant-time (a char-table ref plus an aref)
+(defvar latin-unity-equivalences (make-char-table 'generic)
+  "Char-table of Latin character equivalence vectors.
+
+Each vector takes integral elements (or nil, meaning void).  The zero-th
+element is interpreted as the bit vector representation of the set of
+character sets that can represent the character.  A nil value will cause
+an error if accessed, so probably zero should be used instead.  The next
+(length latin-unity-character-sets) are the mapping of the char-table
+index to code points in the other character sets.  The last is the
+Unicode code point.
+
+Note that because this is a char-table, many characters will refer to
+the same vector.  Thus whenever updating a character's value, you must
+use `copy-sequence', or there will be side-effects.
+
+The table is actually loaded from latin-unity-tables.el.")
+
+
+;;; Variables
+
+(defvar latin-unity-debug nil
+  "If non-nil, make file write operations as slow as molasses.
+If there were bugs, this might help find them, but there aren't. ;^)")
+
+(defvar latin-unity-help-buffer " *Coding system conflict*")
+
+(defconst latin-unity-coding-systems
+  `(iso-8859-1 iso-8859-2 iso-8859-3 iso-8859-4 iso-8859-9
+    ;; if these coding systems are defined, uncomment for latin-unity support
+    ;iso-8859-10			; unsupported in Mule
+    ;iso-8859-13			; unsupported in Mule
+    ;iso-8859-14			; unsupported in Mule
+    iso-8859-15)
+  "List of coding systems \"unified\" by latin-unity.
+
+Cf. `latin-unity-character-sets'.")
+
+(defconst latin-unity-character-sets
+   (append '(latin-iso8859-1 latin-iso8859-2 latin-iso8859-3
+	     latin-iso8859-4 latin-iso8859-9)
+	   (when (memq 'iso-8859-10 latin-unity-coding-systems)
+	     '(latin-iso8859-10))
+	   (when (memq 'iso-8859-13 latin-unity-coding-systems)
+	     '(latin-iso8859-13))
+	   (when (memq 'iso-8859-14 latin-unity-coding-systems)
+	     '(latin-iso8859-14))
+	   '(latin-iso8859-15)
+	   ;; above are all GR sets, below are normally GL
+	   '(ascii latin-jisx0201))
+  "List of character sets \"unified\" by latin-unity.
+
+\"Unified\" is a misnomer, since actually these character sets are all
+subsets of a larger set.  Characters which are identified by these
+library are actually the same characters according to ISO 8859.  The
+exception is the Japanese JIS X 0201 left half (JIS Roman), which is
+controversial.  It will by default be identified with ASCII, but also
+may take values elsewhere according to user preference.  (Unimplemented.)
+
+The ISO 8859 character sets are actually Latin-1 to Latin-9, the right
+halves of the ISO 8859.
+
+ASCII and Unicode are treated implicitly.  All of the listed character
+sets are the GR of a coded character set that supports ASCII, except
+for JIS Roman.  Whether JIS Roman is considered to be identical to
+ASCII, or a slight revision, depends on user preference.  Unicode is a
+\"universal\" character set which is always a \"safe\" encoding for
+streams that receive buffer contents.")
+
+(defvar latin-unity-ascii-and-jis-roman "\000-\177"
+  "skip-chars set defining ASCII characters also in JIS Roman.
+
+#### Defaults to treating JIS Roman as identical to ASCII, not consistent
+with the equivalence table.")
+
+(defconst latin-unity-cset-codesys-alist
+  (append '((latin-iso8859-1  . iso-8859-1)
+	    (latin-iso8859-2  . iso-8859-2)
+	    (latin-iso8859-3  . iso-8859-3)
+	    (latin-iso8859-4  . iso-8859-4)
+	    (latin-iso8859-9  . iso-8859-9))
+	  (when (memq 'iso-8859-10 latin-unity-coding-systems)
+	    '((latin-iso8859-10 . iso-8859-10)))
+	  (when (memq 'iso-8859-10 latin-unity-coding-systems)
+	    '((latin-iso8859-13 . iso-8859-13)))
+	  (when (memq 'iso-8859-10 latin-unity-coding-systems)
+	    '((latin-iso8859-14 . iso-8859-14)))
+	  '((latin-iso8859-15 . iso-8859-15)
+	    ;; the following mappings are bogus, the RightThang not clear
+	    (ascii            . t)		; any will do
+	    (latin-jisx0201   . iso2022)))	; need further information
+  "Map Latin charsets to corresponding coding systems or classes.")
+
+;; bit vectors for checking the feasible character sets
+
+(defconst latin-unity-all-flags
+  (lognot (lsh (lognot 0) (length latin-unity-character-sets)))
+  "Bit vector representing the set of all Latin character sets.")
+
+;; put the character set indicies and flag bits in reasonable places
+(let ((index 1) (bit 1))
+  (if (> (length latin-unity-character-sets) 25)
+      (error "representation too small to support so many charsets!"))
+  (mapcar (lambda (cs)
+	    (put cs 'latin-unity-flag-bit bit)
+	    (put cs 'latin-unity-index index)
+	    (setq bit (lsh bit 1)
+		  index (1+ index)))
+	  latin-unity-character-sets))
+
+;;; end of latin-unity-vars.el

File latin-unity.el

+;;; latin-unity.el --- Identify equivalent characters in the ISO Latin sets
+
+;; Copyright (C) 2002 Free Software Foundation, Inc
+
+;; Author: Stephen J. Turnbull
+;; Keywords: mule, charsets
+;; Created: 2002 January 17
+;; Last-modified: 2002 January 21
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+
+;;; Commentary:
+
+;; Mule bogusly considers the various ISO-8859 extended character sets
+;; as disjoint, when ISO 8859 itself clearly considers them to be subsets
+;; of a larger character set.  This library provides functions which
+;; determine the list of coding systems which can encode all of the
+;; characters in the buffer.
+
+;; Provides the 'iso-8859-15 coding system if not yet defined.
+
+;;; Code:
+
+(provide 'latin-unity)
+
+
+;;; Requires
+;; Do NOT require latin-unity-utils; that requires Mule-UCS.
+
+(require 'latin-unity-vars)
+(require 'latin-unity-tables)
+
+
+;;; User customization
+
+(defgroup latin-unity nil
+  "Handle equivalent ISO-8859 characters properly (identify them) on output."
+  :group 'mule)
+
+(defcustom latin-unity-approved-ucs-list '(utf-8 iso-2022-7 ctext)
+  "List of coding systems considered to be universal.
+
+Order matters; coding systems earlier in the list will be preferred when
+recommending a coding system.
+"
+  :type '(list symbol)
+  :group 'latin-unity)
+
+;; #### Coding systems which are not Latin and not in
+;; `latin-unity-approved-ucs-list' are handled by short circuiting checks
+;; of coding system against the next two variables.  A preferable approach
+;; is to define an alist of coding systems to corresponding sets of "safe"
+;; character sets, then checking that `(charsets-in-region begin end)' is
+;; contained in the appropriate set.  If you want this _now_ do it yourself
+;; and send a patch to <stephen@xemacs.org> ;-).
+
+(defcustom latin-unity-ignored-coding-system-list nil
+  "List of coding systems such that the buffer is not checked for Latin unity.
+
+Usually this means that `buffer-file-coding-system' is a member of this list.
+#### not clear this API is right."
+  :type '(list symbol)
+  :group 'latin-unity)
+
+(defcustom latin-unity-approved-coding-system-list nil
+  "List of coding systems forcing a save of the buffer even if Latin unity
+is not satisfied.
+#### not clear this API is right."
+  :type '(list symbol)
+  :group 'latin-unity)
+
+
+;;; Implementation
+
+;; Accessors for character and charset equivalences
+
+(defsubst latin-unity-feasible-charsets (character)
+  "Return the set (bit-vector) of charsets that can represent CHARACTER.
+Accessor for `latin-unity-equivalences'."
+  (aref (get-char-table character latin-unity-equivalences) 0))
+
+(defsubst latin-unity-equivalent-character (character charset)
+  "Return the code point representing CHARACTER in CHARSET.
+Accessor for `latin-unity-equivalences'."
+  (aref (get-char-table character latin-unity-equivalences)
+	(get charset 'latin-unity-index)))
+
+;;;###autoload
+(defun latin-unity-buffer-feasible-representations ()
+  "Apply latin-unity-region-feasible-representations to the current buffer."
+  (interactive)
+  (latin-unity-region-feasible-representations (point-min)
+					       (point-max)
+					       (current-buffer)))
+
+;; latin-unity-region-feasible-representations
+;;
+;; The basic algorithm is to map over the region, compute the set of
+;; charsets that can represent each character (the "feasible charset"),
+;; and take the intersection of those sets.
+;;
+;; The current implementation takes advantage of the fact that ASCII
+;; characters are common and cannot change asciisets.  Then using
+;; skip-chars-forward makes motion over ASCII subregions very fast.
+;;
+;; This same strategy could be applied generally by precomputing classes
+;; of characters equivalent according to their effect on latinsets, and
+;; adding a whole class to the skip-chars-forward string once a member is
+;; found.
+;;
+;; Probably efficiency is a function of the number of characters matched,
+;; or maybe the length of the match string?  With "skip-category-forward"
+;; over a precomputed category table it should be really fast.  In practice
+;; for Latin character sets there are only 29 classes.
+
+;;;###autoload
+(defun latin-unity-region-feasible-representations (begin end &optional buf)
+  "Return character sets that can represent the text from BEGIN to END in BUF.
+
+BUF defaults to the current buffer.  Called interactively, will be
+applied to the region.  Function assumes BEGIN <= END.
+
+The return value is a cons.  The car is the list of character sets
+that can individually represent all of the non-ASCII portion of the
+buffer, and the cdr is the list of character sets that can
+individually represent all of the ASCII portion."
+
+  (interactive "r")
+  ;; #### should collect "found" sets too, for listing in help buffer
+  ;; this probably requires a second pass....
+  (let* ((asciisets (logior (get 'ascii 'latin-unity-flag-bit)
+			    (get 'latin-jisx0201 'latin-unity-flag-bit)))
+	 (latinsets (logand (lognot asciisets) latin-unity-all-flags)))
+    (save-excursion
+      (set-buffer (or buf (current-buffer)))
+      (goto-char begin)
+      ;; The characters skipped here can't change asciisets
+      (skip-chars-forward latin-unity-ascii-and-jis-roman)
+      (while (< (point) end)
+	(let* ((ch (char-after))
+	       (cs (car (split-char ch))))
+	  (cond ((or (eq cs 'latin-jisx0201)
+		     (eq cs 'ascii))
+		 (setq asciisets
+		       (logand asciisets (latin-unity-feasible-charsets ch)
+			       )))
+		(t
+		 (setq latinsets
+		       (logand latinsets (latin-unity-feasible-charsets ch)
+			       )))))
+	(forward-char)
+	;; The characters skipped here can't change asciisets
+	(skip-chars-forward latin-unity-ascii-and-jis-roman)))
+    (cons latinsets asciisets)))
+
+(defvar latin-unity-iso-8859-1-aliases '(iso-8859-1)
+  "List of coding systems to be treated as aliases of ISO 8859/1.")
+
+;; I see nothing useful to be done with APPEND.
+;; FILENAME, VISIT, or LOCKNAME could be used to default the coding system,
+;; but this would conflict with the semantics of `write-region'.
+
+;;;###autoload
+(defun latin-unity-sanity-check (start end filename append visit lockname)
+  "Check if `buffer-file-coding-system' can represent the region START to END.
+
+FILENAME, APPEND, VISIT, and LOCKNAME are ignored.
+
+Return nil if buffer-file-coding-system is not (ISO-2022-compatible) Latin.
+If buffer-file-coding-system is safe for the charsets actually present in
+the buffer, return it.  Otherwise, ask the user to choose a coding system,
+and return that.
+
+This function does _not_ do the safe thing when buffer-file-coding-system is
+nil (aka no-conversion).  It considers that \"non-Latin\", and passes it on
+to the Mule detection mechanism.
+
+This function is intended for use as a `write-region-pre-hook'."
+
+  ;; #### This function is too complicated.  Break it up.
+
+  (let ((codesys buffer-file-coding-system))
+    (cond ((null codesys) nil)
+	  ((memq codesys latin-unity-ignored-coding-system-list) nil)
+	  ((or (and (eq (coding-system-type codesys) 'iso2022)
+		    (coding-system-property codesys 'charset-g1))
+	       (memq codesys latin-unity-iso-8859-1-aliases))
+	   (let* ((csets (latin-unity-region-feasible-representations start
+								      end))
+		  (asets (cdr csets))
+		  (lsets (car csets))
+		  (bfcsgr (or (car (rassq codesys
+					  latin-unity-cset-codesys-alist))
+			      (coding-system-property codesys
+						      'charset-g1)))
+		  recommended target-cs)
+	     (when latin-unity-debug 
+	       (cond ((null csets) (error "no feasible reps vectors?!?"))
+		     ((null asets) (error "no ascii reps vector?!?"))
+		     ((null lsets) (error "no latin reps vector?!?"))
+		     ((null (get 'ascii 'latin-unity-flag-bit))
+		      (error "no flag bit for ascii?!?"))
+		     ((null (get bfcsgr 'latin-unity-flag-bit))
+		      (error (format "no flag bit for %s?" bfcsgr))))
+	       (message "%s" csets)
+	       (sit-for 1))
+	     (if (and (/= (logand (get 'ascii 'latin-unity-flag-bit) asets) 0)
+		      (/= (logand (get bfcsgr 'latin-unity-flag-bit) lsets) 0))
+		 codesys
+	       (pop-to-buffer (get-buffer-create latin-unity-help-buffer) t)
+	       ;; RFE: We'd like this to list the infeasible character sets.
+	       ;; RFE: It also would be nice if the offending characters were
+	       ;; marked in the buffer being checked.
+	       (erase-buffer)
+	       (insert (format "\
+The default coding system for this buffer (%s) cannot
+appropriately encode some of the characters which are present in the buffer.
+Please pick a coding system.  The following are recommended because they can
+encode any character in the buffer:
+
+   "
+			       codesys))
+	       (mapc
+		(lambda (cs)
+		  (if (/= (logand (get cs 'latin-unity-flag-bit) lsets) 0)
+		      (let ((sys (cdr (assq cs
+					    latin-unity-cset-codesys-alist))))
+			(unless recommended
+			  (setq target-cs cs recommended sys))
+			(insert (format " %s" sys)))))
+		latin-unity-character-sets)
+	       ;; universal coding systems
+	       (mapc (lambda (cs)
+		       (when (find-coding-system cs)
+			 (unless recommended (setq recommended cs))