diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
index 8c39cfe..3177051 100644
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -650,6 +650,11 @@
     const char *errors		/* error handling */
     );
 
+PyAPI_FUNC(PyObject*) PyUnicode_BuildEncodingMap(
+    PyObject* string            /* 256 character map */
+   );
+
+
 /* --- UTF-7 Codecs ------------------------------------------------------- */
 
 PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF7(
diff --git a/Lib/encodings/cp037.py b/Lib/encodings/cp037.py
index 7e589a9..b73f3f8 100644
--- a/Lib/encodings/cp037.py
+++ b/Lib/encodings/cp037.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\x9f'     #  0xFF -> CONTROL
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x37,       #  END OF TRANSMISSION
-    0x0005: 0x2D,       #  ENQUIRY
-    0x0006: 0x2E,       #  ACKNOWLEDGE
-    0x0007: 0x2F,       #  BELL
-    0x0008: 0x16,       #  BACKSPACE
-    0x0009: 0x05,       #  HORIZONTAL TABULATION
-    0x000A: 0x25,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x3C,       #  DEVICE CONTROL FOUR
-    0x0015: 0x3D,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x32,       #  SYNCHRONOUS IDLE
-    0x0017: 0x26,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x3F,       #  SUBSTITUTE
-    0x001B: 0x27,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x40,       #  SPACE
-    0x0021: 0x5A,       #  EXCLAMATION MARK
-    0x0022: 0x7F,       #  QUOTATION MARK
-    0x0023: 0x7B,       #  NUMBER SIGN
-    0x0024: 0x5B,       #  DOLLAR SIGN
-    0x0025: 0x6C,       #  PERCENT SIGN
-    0x0026: 0x50,       #  AMPERSAND
-    0x0027: 0x7D,       #  APOSTROPHE
-    0x0028: 0x4D,       #  LEFT PARENTHESIS
-    0x0029: 0x5D,       #  RIGHT PARENTHESIS
-    0x002A: 0x5C,       #  ASTERISK
-    0x002B: 0x4E,       #  PLUS SIGN
-    0x002C: 0x6B,       #  COMMA
-    0x002D: 0x60,       #  HYPHEN-MINUS
-    0x002E: 0x4B,       #  FULL STOP
-    0x002F: 0x61,       #  SOLIDUS
-    0x0030: 0xF0,       #  DIGIT ZERO
-    0x0031: 0xF1,       #  DIGIT ONE
-    0x0032: 0xF2,       #  DIGIT TWO
-    0x0033: 0xF3,       #  DIGIT THREE
-    0x0034: 0xF4,       #  DIGIT FOUR
-    0x0035: 0xF5,       #  DIGIT FIVE
-    0x0036: 0xF6,       #  DIGIT SIX
-    0x0037: 0xF7,       #  DIGIT SEVEN
-    0x0038: 0xF8,       #  DIGIT EIGHT
-    0x0039: 0xF9,       #  DIGIT NINE
-    0x003A: 0x7A,       #  COLON
-    0x003B: 0x5E,       #  SEMICOLON
-    0x003C: 0x4C,       #  LESS-THAN SIGN
-    0x003D: 0x7E,       #  EQUALS SIGN
-    0x003E: 0x6E,       #  GREATER-THAN SIGN
-    0x003F: 0x6F,       #  QUESTION MARK
-    0x0040: 0x7C,       #  COMMERCIAL AT
-    0x0041: 0xC1,       #  LATIN CAPITAL LETTER A
-    0x0042: 0xC2,       #  LATIN CAPITAL LETTER B
-    0x0043: 0xC3,       #  LATIN CAPITAL LETTER C
-    0x0044: 0xC4,       #  LATIN CAPITAL LETTER D
-    0x0045: 0xC5,       #  LATIN CAPITAL LETTER E
-    0x0046: 0xC6,       #  LATIN CAPITAL LETTER F
-    0x0047: 0xC7,       #  LATIN CAPITAL LETTER G
-    0x0048: 0xC8,       #  LATIN CAPITAL LETTER H
-    0x0049: 0xC9,       #  LATIN CAPITAL LETTER I
-    0x004A: 0xD1,       #  LATIN CAPITAL LETTER J
-    0x004B: 0xD2,       #  LATIN CAPITAL LETTER K
-    0x004C: 0xD3,       #  LATIN CAPITAL LETTER L
-    0x004D: 0xD4,       #  LATIN CAPITAL LETTER M
-    0x004E: 0xD5,       #  LATIN CAPITAL LETTER N
-    0x004F: 0xD6,       #  LATIN CAPITAL LETTER O
-    0x0050: 0xD7,       #  LATIN CAPITAL LETTER P
-    0x0051: 0xD8,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0xD9,       #  LATIN CAPITAL LETTER R
-    0x0053: 0xE2,       #  LATIN CAPITAL LETTER S
-    0x0054: 0xE3,       #  LATIN CAPITAL LETTER T
-    0x0055: 0xE4,       #  LATIN CAPITAL LETTER U
-    0x0056: 0xE5,       #  LATIN CAPITAL LETTER V
-    0x0057: 0xE6,       #  LATIN CAPITAL LETTER W
-    0x0058: 0xE7,       #  LATIN CAPITAL LETTER X
-    0x0059: 0xE8,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0xE9,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0xBA,       #  LEFT SQUARE BRACKET
-    0x005C: 0xE0,       #  REVERSE SOLIDUS
-    0x005D: 0xBB,       #  RIGHT SQUARE BRACKET
-    0x005E: 0xB0,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x6D,       #  LOW LINE
-    0x0060: 0x79,       #  GRAVE ACCENT
-    0x0061: 0x81,       #  LATIN SMALL LETTER A
-    0x0062: 0x82,       #  LATIN SMALL LETTER B
-    0x0063: 0x83,       #  LATIN SMALL LETTER C
-    0x0064: 0x84,       #  LATIN SMALL LETTER D
-    0x0065: 0x85,       #  LATIN SMALL LETTER E
-    0x0066: 0x86,       #  LATIN SMALL LETTER F
-    0x0067: 0x87,       #  LATIN SMALL LETTER G
-    0x0068: 0x88,       #  LATIN SMALL LETTER H
-    0x0069: 0x89,       #  LATIN SMALL LETTER I
-    0x006A: 0x91,       #  LATIN SMALL LETTER J
-    0x006B: 0x92,       #  LATIN SMALL LETTER K
-    0x006C: 0x93,       #  LATIN SMALL LETTER L
-    0x006D: 0x94,       #  LATIN SMALL LETTER M
-    0x006E: 0x95,       #  LATIN SMALL LETTER N
-    0x006F: 0x96,       #  LATIN SMALL LETTER O
-    0x0070: 0x97,       #  LATIN SMALL LETTER P
-    0x0071: 0x98,       #  LATIN SMALL LETTER Q
-    0x0072: 0x99,       #  LATIN SMALL LETTER R
-    0x0073: 0xA2,       #  LATIN SMALL LETTER S
-    0x0074: 0xA3,       #  LATIN SMALL LETTER T
-    0x0075: 0xA4,       #  LATIN SMALL LETTER U
-    0x0076: 0xA5,       #  LATIN SMALL LETTER V
-    0x0077: 0xA6,       #  LATIN SMALL LETTER W
-    0x0078: 0xA7,       #  LATIN SMALL LETTER X
-    0x0079: 0xA8,       #  LATIN SMALL LETTER Y
-    0x007A: 0xA9,       #  LATIN SMALL LETTER Z
-    0x007B: 0xC0,       #  LEFT CURLY BRACKET
-    0x007C: 0x4F,       #  VERTICAL LINE
-    0x007D: 0xD0,       #  RIGHT CURLY BRACKET
-    0x007E: 0xA1,       #  TILDE
-    0x007F: 0x07,       #  DELETE
-    0x0080: 0x20,       #  CONTROL
-    0x0081: 0x21,       #  CONTROL
-    0x0082: 0x22,       #  CONTROL
-    0x0083: 0x23,       #  CONTROL
-    0x0084: 0x24,       #  CONTROL
-    0x0085: 0x15,       #  CONTROL
-    0x0086: 0x06,       #  CONTROL
-    0x0087: 0x17,       #  CONTROL
-    0x0088: 0x28,       #  CONTROL
-    0x0089: 0x29,       #  CONTROL
-    0x008A: 0x2A,       #  CONTROL
-    0x008B: 0x2B,       #  CONTROL
-    0x008C: 0x2C,       #  CONTROL
-    0x008D: 0x09,       #  CONTROL
-    0x008E: 0x0A,       #  CONTROL
-    0x008F: 0x1B,       #  CONTROL
-    0x0090: 0x30,       #  CONTROL
-    0x0091: 0x31,       #  CONTROL
-    0x0092: 0x1A,       #  CONTROL
-    0x0093: 0x33,       #  CONTROL
-    0x0094: 0x34,       #  CONTROL
-    0x0095: 0x35,       #  CONTROL
-    0x0096: 0x36,       #  CONTROL
-    0x0097: 0x08,       #  CONTROL
-    0x0098: 0x38,       #  CONTROL
-    0x0099: 0x39,       #  CONTROL
-    0x009A: 0x3A,       #  CONTROL
-    0x009B: 0x3B,       #  CONTROL
-    0x009C: 0x04,       #  CONTROL
-    0x009D: 0x14,       #  CONTROL
-    0x009E: 0x3E,       #  CONTROL
-    0x009F: 0xFF,       #  CONTROL
-    0x00A0: 0x41,       #  NO-BREAK SPACE
-    0x00A1: 0xAA,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0x4A,       #  CENT SIGN
-    0x00A3: 0xB1,       #  POUND SIGN
-    0x00A4: 0x9F,       #  CURRENCY SIGN
-    0x00A5: 0xB2,       #  YEN SIGN
-    0x00A6: 0x6A,       #  BROKEN BAR
-    0x00A7: 0xB5,       #  SECTION SIGN
-    0x00A8: 0xBD,       #  DIAERESIS
-    0x00A9: 0xB4,       #  COPYRIGHT SIGN
-    0x00AA: 0x9A,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0x8A,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0x5F,       #  NOT SIGN
-    0x00AD: 0xCA,       #  SOFT HYPHEN
-    0x00AE: 0xAF,       #  REGISTERED SIGN
-    0x00AF: 0xBC,       #  MACRON
-    0x00B0: 0x90,       #  DEGREE SIGN
-    0x00B1: 0x8F,       #  PLUS-MINUS SIGN
-    0x00B2: 0xEA,       #  SUPERSCRIPT TWO
-    0x00B3: 0xFA,       #  SUPERSCRIPT THREE
-    0x00B4: 0xBE,       #  ACUTE ACCENT
-    0x00B5: 0xA0,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB3,       #  MIDDLE DOT
-    0x00B8: 0x9D,       #  CEDILLA
-    0x00B9: 0xDA,       #  SUPERSCRIPT ONE
-    0x00BA: 0x9B,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0x8B,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xB7,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xB8,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xB9,       #  VULGAR FRACTION THREE QUARTERS
-    0x00BF: 0xAB,       #  INVERTED QUESTION MARK
-    0x00C0: 0x64,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0x65,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0x62,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0x66,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0x63,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0x67,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0x9E,       #  LATIN CAPITAL LIGATURE AE
-    0x00C7: 0x68,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0x74,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0x71,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0x72,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0x73,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0x78,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0x75,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0x76,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0x77,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D0: 0xAC,       #  LATIN CAPITAL LETTER ETH (ICELANDIC)
-    0x00D1: 0x69,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xED,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xEE,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xEB,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xEF,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xEC,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xBF,       #  MULTIPLICATION SIGN
-    0x00D8: 0x80,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xFD,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xFE,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xFB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xFC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xAD,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DE: 0xAE,       #  LATIN CAPITAL LETTER THORN (ICELANDIC)
-    0x00DF: 0x59,       #  LATIN SMALL LETTER SHARP S (GERMAN)
-    0x00E0: 0x44,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0x45,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0x42,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0x46,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0x43,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0x47,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0x9C,       #  LATIN SMALL LIGATURE AE
-    0x00E7: 0x48,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0x54,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0x51,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0x52,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0x53,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0x58,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0x55,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0x56,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0x57,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F0: 0x8C,       #  LATIN SMALL LETTER ETH (ICELANDIC)
-    0x00F1: 0x49,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0xCD,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xCE,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xCB,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xCF,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xCC,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xE1,       #  DIVISION SIGN
-    0x00F8: 0x70,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0xDD,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xDE,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xDB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xDC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0x8D,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x00FE: 0x8E,       #  LATIN SMALL LETTER THORN (ICELANDIC)
-    0x00FF: 0xDF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-}
diff --git a/Lib/encodings/cp1006.py b/Lib/encodings/cp1006.py
index 7829969..584dd31 100644
--- a/Lib/encodings/cp1006.py
+++ b/Lib/encodings/cp1006.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,262 +303,6 @@
     u'\ufe7d'   #  0xFF -> ARABIC SHADDA MEDIAL FORM
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x060C: 0xAB,       #  ARABIC COMMA
-    0x061B: 0xAC,       #  ARABIC SEMICOLON
-    0x061F: 0xAE,       #  ARABIC QUESTION MARK
-    0x06F0: 0xA1,       #  EXTENDED ARABIC-INDIC DIGIT ZERO
-    0x06F1: 0xA2,       #  EXTENDED ARABIC-INDIC DIGIT ONE
-    0x06F2: 0xA3,       #  EXTENDED ARABIC-INDIC DIGIT TWO
-    0x06F3: 0xA4,       #  EXTENDED ARABIC-INDIC DIGIT THREE
-    0x06F4: 0xA5,       #  EXTENDED ARABIC-INDIC DIGIT FOUR
-    0x06F5: 0xA6,       #  EXTENDED ARABIC-INDIC DIGIT FIVE
-    0x06F6: 0xA7,       #  EXTENDED ARABIC-INDIC DIGIT SIX
-    0x06F7: 0xA8,       #  EXTENDED ARABIC-INDIC DIGIT SEVEN
-    0x06F8: 0xA9,       #  EXTENDED ARABIC-INDIC DIGIT EIGHT
-    0x06F9: 0xAA,       #  EXTENDED ARABIC-INDIC DIGIT NINE
-    0xFB56: 0xB5,       #  ARABIC LETTER PEH ISOLATED FORM
-    0xFB58: 0xB6,       #  ARABIC LETTER PEH INITIAL FORM
-    0xFB66: 0xBA,       #  ARABIC LETTER TTEH ISOLATED FORM
-    0xFB68: 0xBB,       #  ARABIC LETTER TTEH INITIAL FORM
-    0xFB7A: 0xC0,       #  ARABIC LETTER TCHEH ISOLATED FORM
-    0xFB7C: 0xC1,       #  ARABIC LETTER TCHEH INITIAL FORM
-    0xFB84: 0xC7,       #  ARABIC LETTER DAHAL ISOLATED FORMN
-    0xFB8A: 0xCC,       #  ARABIC LETTER JEH ISOLATED FORM
-    0xFB8C: 0xCA,       #  ARABIC LETTER RREH ISOLATED FORM
-    0xFB92: 0xE5,       #  ARABIC LETTER GAF ISOLATED FORM
-    0xFB94: 0xE6,       #  ARABIC LETTER GAF INITIAL FORM
-    0xFB9E: 0xEC,       #  ARABIC LETTER NOON GHUNNA ISOLATED FORM
-    0xFBA6: 0xF1,       #  ARABIC LETTER HEH GOAL ISOLATED FORM
-    0xFBA8: 0xF2,       #  ARABIC LETTER HEH GOAL INITIAL FORM
-    0xFBA9: 0xF3,       #  ARABIC LETTER HEH GOAL MEDIAL FORM
-    0xFBAA: 0xF4,       #  ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
-    0xFBAE: 0xFD,       #  ARABIC LETTER YEH BARREE ISOLATED FORM
-    0xFBB0: 0xFC,       #  ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
-    0xFE7C: 0xFE,       #  ARABIC SHADDA ISOLATED FORM
-    0xFE7D: 0xFF,       #  ARABIC SHADDA MEDIAL FORM
-    0xFE80: 0xF5,       #  ARABIC LETTER HAMZA ISOLATED FORM
-    0xFE81: 0xAF,       #  ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
-    0xFE85: 0xEF,       #  ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
-    0xFE89: 0xF6,       #  ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
-    0xFE8A: 0xF7,       #  ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
-    0xFE8B: 0xF8,       #  ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
-    0xFE8D: 0xB0,       #  ARABIC LETTER ALEF ISOLATED FORM
-    0xFE8E: None,       #  ARABIC LETTER ALEF FINAL FORM
-    0xFE8F: 0xB3,       #  ARABIC LETTER BEH ISOLATED FORM
-    0xFE91: 0xB4,       #  ARABIC LETTER BEH INITIAL FORM
-    0xFE93: 0xB7,       #  ARABIC LETTER TEH MARBUTA ISOLATED FORM
-    0xFE95: 0xB8,       #  ARABIC LETTER TEH ISOLATED FORM
-    0xFE97: 0xB9,       #  ARABIC LETTER TEH INITIAL FORM
-    0xFE99: 0xBC,       #  ARABIC LETTER THEH ISOLATED FORM
-    0xFE9B: 0xBD,       #  ARABIC LETTER THEH INITIAL FORM
-    0xFE9D: 0xBE,       #  ARABIC LETTER JEEM ISOLATED FORM
-    0xFE9F: 0xBF,       #  ARABIC LETTER JEEM INITIAL FORM
-    0xFEA1: 0xC2,       #  ARABIC LETTER HAH ISOLATED FORM
-    0xFEA3: 0xC3,       #  ARABIC LETTER HAH INITIAL FORM
-    0xFEA5: 0xC4,       #  ARABIC LETTER KHAH ISOLATED FORM
-    0xFEA7: 0xC5,       #  ARABIC LETTER KHAH INITIAL FORM
-    0xFEA9: 0xC6,       #  ARABIC LETTER DAL ISOLATED FORM
-    0xFEAB: 0xC8,       #  ARABIC LETTER THAL ISOLATED FORM
-    0xFEAD: 0xC9,       #  ARABIC LETTER REH ISOLATED FORM
-    0xFEAF: 0xCB,       #  ARABIC LETTER ZAIN ISOLATED FORM
-    0xFEB1: 0xCD,       #  ARABIC LETTER SEEN ISOLATED FORM
-    0xFEB3: 0xCE,       #  ARABIC LETTER SEEN INITIAL FORM
-    0xFEB5: 0xCF,       #  ARABIC LETTER SHEEN ISOLATED FORM
-    0xFEB7: 0xD0,       #  ARABIC LETTER SHEEN INITIAL FORM
-    0xFEB9: 0xD1,       #  ARABIC LETTER SAD ISOLATED FORM
-    0xFEBB: 0xD2,       #  ARABIC LETTER SAD INITIAL FORM
-    0xFEBD: 0xD3,       #  ARABIC LETTER DAD ISOLATED FORM
-    0xFEBF: 0xD4,       #  ARABIC LETTER DAD INITIAL FORM
-    0xFEC1: 0xD5,       #  ARABIC LETTER TAH ISOLATED FORM
-    0xFEC5: 0xD6,       #  ARABIC LETTER ZAH ISOLATED FORM
-    0xFEC9: 0xD7,       #  ARABIC LETTER AIN ISOLATED FORM
-    0xFECA: 0xD8,       #  ARABIC LETTER AIN FINAL FORM
-    0xFECB: 0xD9,       #  ARABIC LETTER AIN INITIAL FORM
-    0xFECC: 0xDA,       #  ARABIC LETTER AIN MEDIAL FORM
-    0xFECD: 0xDB,       #  ARABIC LETTER GHAIN ISOLATED FORM
-    0xFECE: 0xDC,       #  ARABIC LETTER GHAIN FINAL FORM
-    0xFECF: 0xDD,       #  ARABIC LETTER GHAIN INITIAL FORM
-    0xFED0: 0xDE,       #  ARABIC LETTER GHAIN MEDIAL FORM
-    0xFED1: 0xDF,       #  ARABIC LETTER FEH ISOLATED FORM
-    0xFED3: 0xE0,       #  ARABIC LETTER FEH INITIAL FORM
-    0xFED5: 0xE1,       #  ARABIC LETTER QAF ISOLATED FORM
-    0xFED7: 0xE2,       #  ARABIC LETTER QAF INITIAL FORM
-    0xFED9: 0xE3,       #  ARABIC LETTER KAF ISOLATED FORM
-    0xFEDB: 0xE4,       #  ARABIC LETTER KAF INITIAL FORM
-    0xFEDD: 0xE7,       #  ARABIC LETTER LAM ISOLATED FORM
-    0xFEDF: 0xE8,       #  ARABIC LETTER LAM INITIAL FORM
-    0xFEE0: 0xE9,       #  ARABIC LETTER LAM MEDIAL FORM
-    0xFEE1: 0xEA,       #  ARABIC LETTER MEEM ISOLATED FORM
-    0xFEE3: 0xEB,       #  ARABIC LETTER MEEM INITIAL FORM
-    0xFEE5: 0xED,       #  ARABIC LETTER NOON ISOLATED FORM
-    0xFEE7: 0xEE,       #  ARABIC LETTER NOON INITIAL FORM
-    0xFEED: 0xF0,       #  ARABIC LETTER WAW ISOLATED FORM
-    0xFEF1: 0xF9,       #  ARABIC LETTER YEH ISOLATED FORM
-    0xFEF2: 0xFA,       #  ARABIC LETTER YEH FINAL FORM
-    0xFEF3: 0xFB,       #  ARABIC LETTER YEH INITIAL FORM
-}
diff --git a/Lib/encodings/cp1026.py b/Lib/encodings/cp1026.py
index 01c8804..6d607f9 100644
--- a/Lib/encodings/cp1026.py
+++ b/Lib/encodings/cp1026.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\x9f'     #  0xFF -> CONTROL
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x37,       #  END OF TRANSMISSION
-    0x0005: 0x2D,       #  ENQUIRY
-    0x0006: 0x2E,       #  ACKNOWLEDGE
-    0x0007: 0x2F,       #  BELL
-    0x0008: 0x16,       #  BACKSPACE
-    0x0009: 0x05,       #  HORIZONTAL TABULATION
-    0x000A: 0x25,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x3C,       #  DEVICE CONTROL FOUR
-    0x0015: 0x3D,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x32,       #  SYNCHRONOUS IDLE
-    0x0017: 0x26,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x3F,       #  SUBSTITUTE
-    0x001B: 0x27,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x40,       #  SPACE
-    0x0021: 0x4F,       #  EXCLAMATION MARK
-    0x0022: 0xFC,       #  QUOTATION MARK
-    0x0023: 0xEC,       #  NUMBER SIGN
-    0x0024: 0xAD,       #  DOLLAR SIGN
-    0x0025: 0x6C,       #  PERCENT SIGN
-    0x0026: 0x50,       #  AMPERSAND
-    0x0027: 0x7D,       #  APOSTROPHE
-    0x0028: 0x4D,       #  LEFT PARENTHESIS
-    0x0029: 0x5D,       #  RIGHT PARENTHESIS
-    0x002A: 0x5C,       #  ASTERISK
-    0x002B: 0x4E,       #  PLUS SIGN
-    0x002C: 0x6B,       #  COMMA
-    0x002D: 0x60,       #  HYPHEN-MINUS
-    0x002E: 0x4B,       #  FULL STOP
-    0x002F: 0x61,       #  SOLIDUS
-    0x0030: 0xF0,       #  DIGIT ZERO
-    0x0031: 0xF1,       #  DIGIT ONE
-    0x0032: 0xF2,       #  DIGIT TWO
-    0x0033: 0xF3,       #  DIGIT THREE
-    0x0034: 0xF4,       #  DIGIT FOUR
-    0x0035: 0xF5,       #  DIGIT FIVE
-    0x0036: 0xF6,       #  DIGIT SIX
-    0x0037: 0xF7,       #  DIGIT SEVEN
-    0x0038: 0xF8,       #  DIGIT EIGHT
-    0x0039: 0xF9,       #  DIGIT NINE
-    0x003A: 0x7A,       #  COLON
-    0x003B: 0x5E,       #  SEMICOLON
-    0x003C: 0x4C,       #  LESS-THAN SIGN
-    0x003D: 0x7E,       #  EQUALS SIGN
-    0x003E: 0x6E,       #  GREATER-THAN SIGN
-    0x003F: 0x6F,       #  QUESTION MARK
-    0x0040: 0xAE,       #  COMMERCIAL AT
-    0x0041: 0xC1,       #  LATIN CAPITAL LETTER A
-    0x0042: 0xC2,       #  LATIN CAPITAL LETTER B
-    0x0043: 0xC3,       #  LATIN CAPITAL LETTER C
-    0x0044: 0xC4,       #  LATIN CAPITAL LETTER D
-    0x0045: 0xC5,       #  LATIN CAPITAL LETTER E
-    0x0046: 0xC6,       #  LATIN CAPITAL LETTER F
-    0x0047: 0xC7,       #  LATIN CAPITAL LETTER G
-    0x0048: 0xC8,       #  LATIN CAPITAL LETTER H
-    0x0049: 0xC9,       #  LATIN CAPITAL LETTER I
-    0x004A: 0xD1,       #  LATIN CAPITAL LETTER J
-    0x004B: 0xD2,       #  LATIN CAPITAL LETTER K
-    0x004C: 0xD3,       #  LATIN CAPITAL LETTER L
-    0x004D: 0xD4,       #  LATIN CAPITAL LETTER M
-    0x004E: 0xD5,       #  LATIN CAPITAL LETTER N
-    0x004F: 0xD6,       #  LATIN CAPITAL LETTER O
-    0x0050: 0xD7,       #  LATIN CAPITAL LETTER P
-    0x0051: 0xD8,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0xD9,       #  LATIN CAPITAL LETTER R
-    0x0053: 0xE2,       #  LATIN CAPITAL LETTER S
-    0x0054: 0xE3,       #  LATIN CAPITAL LETTER T
-    0x0055: 0xE4,       #  LATIN CAPITAL LETTER U
-    0x0056: 0xE5,       #  LATIN CAPITAL LETTER V
-    0x0057: 0xE6,       #  LATIN CAPITAL LETTER W
-    0x0058: 0xE7,       #  LATIN CAPITAL LETTER X
-    0x0059: 0xE8,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0xE9,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x68,       #  LEFT SQUARE BRACKET
-    0x005C: 0xDC,       #  REVERSE SOLIDUS
-    0x005D: 0xAC,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5F,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x6D,       #  LOW LINE
-    0x0060: 0x8D,       #  GRAVE ACCENT
-    0x0061: 0x81,       #  LATIN SMALL LETTER A
-    0x0062: 0x82,       #  LATIN SMALL LETTER B
-    0x0063: 0x83,       #  LATIN SMALL LETTER C
-    0x0064: 0x84,       #  LATIN SMALL LETTER D
-    0x0065: 0x85,       #  LATIN SMALL LETTER E
-    0x0066: 0x86,       #  LATIN SMALL LETTER F
-    0x0067: 0x87,       #  LATIN SMALL LETTER G
-    0x0068: 0x88,       #  LATIN SMALL LETTER H
-    0x0069: 0x89,       #  LATIN SMALL LETTER I
-    0x006A: 0x91,       #  LATIN SMALL LETTER J
-    0x006B: 0x92,       #  LATIN SMALL LETTER K
-    0x006C: 0x93,       #  LATIN SMALL LETTER L
-    0x006D: 0x94,       #  LATIN SMALL LETTER M
-    0x006E: 0x95,       #  LATIN SMALL LETTER N
-    0x006F: 0x96,       #  LATIN SMALL LETTER O
-    0x0070: 0x97,       #  LATIN SMALL LETTER P
-    0x0071: 0x98,       #  LATIN SMALL LETTER Q
-    0x0072: 0x99,       #  LATIN SMALL LETTER R
-    0x0073: 0xA2,       #  LATIN SMALL LETTER S
-    0x0074: 0xA3,       #  LATIN SMALL LETTER T
-    0x0075: 0xA4,       #  LATIN SMALL LETTER U
-    0x0076: 0xA5,       #  LATIN SMALL LETTER V
-    0x0077: 0xA6,       #  LATIN SMALL LETTER W
-    0x0078: 0xA7,       #  LATIN SMALL LETTER X
-    0x0079: 0xA8,       #  LATIN SMALL LETTER Y
-    0x007A: 0xA9,       #  LATIN SMALL LETTER Z
-    0x007B: 0x48,       #  LEFT CURLY BRACKET
-    0x007C: 0xBB,       #  VERTICAL LINE
-    0x007D: 0x8C,       #  RIGHT CURLY BRACKET
-    0x007E: 0xCC,       #  TILDE
-    0x007F: 0x07,       #  DELETE
-    0x0080: 0x20,       #  CONTROL
-    0x0081: 0x21,       #  CONTROL
-    0x0082: 0x22,       #  CONTROL
-    0x0083: 0x23,       #  CONTROL
-    0x0084: 0x24,       #  CONTROL
-    0x0085: 0x15,       #  CONTROL
-    0x0086: 0x06,       #  CONTROL
-    0x0087: 0x17,       #  CONTROL
-    0x0088: 0x28,       #  CONTROL
-    0x0089: 0x29,       #  CONTROL
-    0x008A: 0x2A,       #  CONTROL
-    0x008B: 0x2B,       #  CONTROL
-    0x008C: 0x2C,       #  CONTROL
-    0x008D: 0x09,       #  CONTROL
-    0x008E: 0x0A,       #  CONTROL
-    0x008F: 0x1B,       #  CONTROL
-    0x0090: 0x30,       #  CONTROL
-    0x0091: 0x31,       #  CONTROL
-    0x0092: 0x1A,       #  CONTROL
-    0x0093: 0x33,       #  CONTROL
-    0x0094: 0x34,       #  CONTROL
-    0x0095: 0x35,       #  CONTROL
-    0x0096: 0x36,       #  CONTROL
-    0x0097: 0x08,       #  CONTROL
-    0x0098: 0x38,       #  CONTROL
-    0x0099: 0x39,       #  CONTROL
-    0x009A: 0x3A,       #  CONTROL
-    0x009B: 0x3B,       #  CONTROL
-    0x009C: 0x04,       #  CONTROL
-    0x009D: 0x14,       #  CONTROL
-    0x009E: 0x3E,       #  CONTROL
-    0x009F: 0xFF,       #  CONTROL
-    0x00A0: 0x41,       #  NO-BREAK SPACE
-    0x00A1: 0xAA,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xB0,       #  CENT SIGN
-    0x00A3: 0xB1,       #  POUND SIGN
-    0x00A4: 0x9F,       #  CURRENCY SIGN
-    0x00A5: 0xB2,       #  YEN SIGN
-    0x00A6: 0x8E,       #  BROKEN BAR
-    0x00A7: 0xB5,       #  SECTION SIGN
-    0x00A8: 0xBD,       #  DIAERESIS
-    0x00A9: 0xB4,       #  COPYRIGHT SIGN
-    0x00AA: 0x9A,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0x8A,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xBA,       #  NOT SIGN
-    0x00AD: 0xCA,       #  SOFT HYPHEN
-    0x00AE: 0xAF,       #  REGISTERED SIGN
-    0x00AF: 0xBC,       #  MACRON
-    0x00B0: 0x90,       #  DEGREE SIGN
-    0x00B1: 0x8F,       #  PLUS-MINUS SIGN
-    0x00B2: 0xEA,       #  SUPERSCRIPT TWO
-    0x00B3: 0xFA,       #  SUPERSCRIPT THREE
-    0x00B4: 0xBE,       #  ACUTE ACCENT
-    0x00B5: 0xA0,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB3,       #  MIDDLE DOT
-    0x00B8: 0x9D,       #  CEDILLA
-    0x00B9: 0xDA,       #  SUPERSCRIPT ONE
-    0x00BA: 0x9B,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0x8B,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xB7,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xB8,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xB9,       #  VULGAR FRACTION THREE QUARTERS
-    0x00BF: 0xAB,       #  INVERTED QUESTION MARK
-    0x00C0: 0x64,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0x65,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0x62,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0x66,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0x63,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0x67,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0x9E,       #  LATIN CAPITAL LIGATURE AE
-    0x00C7: 0x4A,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0x74,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0x71,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0x72,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0x73,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0x78,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0x75,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0x76,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0x77,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D1: 0x69,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xED,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xEE,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xEB,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xEF,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0x7B,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xBF,       #  MULTIPLICATION SIGN
-    0x00D8: 0x80,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xFD,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xFE,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xFB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0x7F,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0x59,       #  LATIN SMALL LETTER SHARP S (GERMAN)
-    0x00E0: 0x44,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0x45,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0x42,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0x46,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0x43,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0x47,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0x9C,       #  LATIN SMALL LIGATURE AE
-    0x00E7: 0xC0,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0x54,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0x51,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0x52,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0x53,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0x58,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0x55,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0x56,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0x57,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F1: 0x49,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0xCD,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xCE,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xCB,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xCF,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xA1,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xE1,       #  DIVISION SIGN
-    0x00F8: 0x70,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0xDD,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xDE,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xDB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xE0,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FF: 0xDF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x011E: 0x5A,       #  LATIN CAPITAL LETTER G WITH BREVE
-    0x011F: 0xD0,       #  LATIN SMALL LETTER G WITH BREVE
-    0x0130: 0x5B,       #  LATIN CAPITAL LETTER I WITH DOT ABOVE
-    0x0131: 0x79,       #  LATIN SMALL LETTER DOTLESS I
-    0x015E: 0x7C,       #  LATIN CAPITAL LETTER S WITH CEDILLA
-    0x015F: 0x6A,       #  LATIN SMALL LETTER S WITH CEDILLA
-}
diff --git a/Lib/encodings/cp1140.py b/Lib/encodings/cp1140.py
index ac8d41b..fd464ec 100644
--- a/Lib/encodings/cp1140.py
+++ b/Lib/encodings/cp1140.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\x9f'     #  0xFF -> CONTROL
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x37,       #  END OF TRANSMISSION
-    0x0005: 0x2D,       #  ENQUIRY
-    0x0006: 0x2E,       #  ACKNOWLEDGE
-    0x0007: 0x2F,       #  BELL
-    0x0008: 0x16,       #  BACKSPACE
-    0x0009: 0x05,       #  HORIZONTAL TABULATION
-    0x000A: 0x25,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x3C,       #  DEVICE CONTROL FOUR
-    0x0015: 0x3D,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x32,       #  SYNCHRONOUS IDLE
-    0x0017: 0x26,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x3F,       #  SUBSTITUTE
-    0x001B: 0x27,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x40,       #  SPACE
-    0x0021: 0x5A,       #  EXCLAMATION MARK
-    0x0022: 0x7F,       #  QUOTATION MARK
-    0x0023: 0x7B,       #  NUMBER SIGN
-    0x0024: 0x5B,       #  DOLLAR SIGN
-    0x0025: 0x6C,       #  PERCENT SIGN
-    0x0026: 0x50,       #  AMPERSAND
-    0x0027: 0x7D,       #  APOSTROPHE
-    0x0028: 0x4D,       #  LEFT PARENTHESIS
-    0x0029: 0x5D,       #  RIGHT PARENTHESIS
-    0x002A: 0x5C,       #  ASTERISK
-    0x002B: 0x4E,       #  PLUS SIGN
-    0x002C: 0x6B,       #  COMMA
-    0x002D: 0x60,       #  HYPHEN-MINUS
-    0x002E: 0x4B,       #  FULL STOP
-    0x002F: 0x61,       #  SOLIDUS
-    0x0030: 0xF0,       #  DIGIT ZERO
-    0x0031: 0xF1,       #  DIGIT ONE
-    0x0032: 0xF2,       #  DIGIT TWO
-    0x0033: 0xF3,       #  DIGIT THREE
-    0x0034: 0xF4,       #  DIGIT FOUR
-    0x0035: 0xF5,       #  DIGIT FIVE
-    0x0036: 0xF6,       #  DIGIT SIX
-    0x0037: 0xF7,       #  DIGIT SEVEN
-    0x0038: 0xF8,       #  DIGIT EIGHT
-    0x0039: 0xF9,       #  DIGIT NINE
-    0x003A: 0x7A,       #  COLON
-    0x003B: 0x5E,       #  SEMICOLON
-    0x003C: 0x4C,       #  LESS-THAN SIGN
-    0x003D: 0x7E,       #  EQUALS SIGN
-    0x003E: 0x6E,       #  GREATER-THAN SIGN
-    0x003F: 0x6F,       #  QUESTION MARK
-    0x0040: 0x7C,       #  COMMERCIAL AT
-    0x0041: 0xC1,       #  LATIN CAPITAL LETTER A
-    0x0042: 0xC2,       #  LATIN CAPITAL LETTER B
-    0x0043: 0xC3,       #  LATIN CAPITAL LETTER C
-    0x0044: 0xC4,       #  LATIN CAPITAL LETTER D
-    0x0045: 0xC5,       #  LATIN CAPITAL LETTER E
-    0x0046: 0xC6,       #  LATIN CAPITAL LETTER F
-    0x0047: 0xC7,       #  LATIN CAPITAL LETTER G
-    0x0048: 0xC8,       #  LATIN CAPITAL LETTER H
-    0x0049: 0xC9,       #  LATIN CAPITAL LETTER I
-    0x004A: 0xD1,       #  LATIN CAPITAL LETTER J
-    0x004B: 0xD2,       #  LATIN CAPITAL LETTER K
-    0x004C: 0xD3,       #  LATIN CAPITAL LETTER L
-    0x004D: 0xD4,       #  LATIN CAPITAL LETTER M
-    0x004E: 0xD5,       #  LATIN CAPITAL LETTER N
-    0x004F: 0xD6,       #  LATIN CAPITAL LETTER O
-    0x0050: 0xD7,       #  LATIN CAPITAL LETTER P
-    0x0051: 0xD8,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0xD9,       #  LATIN CAPITAL LETTER R
-    0x0053: 0xE2,       #  LATIN CAPITAL LETTER S
-    0x0054: 0xE3,       #  LATIN CAPITAL LETTER T
-    0x0055: 0xE4,       #  LATIN CAPITAL LETTER U
-    0x0056: 0xE5,       #  LATIN CAPITAL LETTER V
-    0x0057: 0xE6,       #  LATIN CAPITAL LETTER W
-    0x0058: 0xE7,       #  LATIN CAPITAL LETTER X
-    0x0059: 0xE8,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0xE9,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0xBA,       #  LEFT SQUARE BRACKET
-    0x005C: 0xE0,       #  REVERSE SOLIDUS
-    0x005D: 0xBB,       #  RIGHT SQUARE BRACKET
-    0x005E: 0xB0,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x6D,       #  LOW LINE
-    0x0060: 0x79,       #  GRAVE ACCENT
-    0x0061: 0x81,       #  LATIN SMALL LETTER A
-    0x0062: 0x82,       #  LATIN SMALL LETTER B
-    0x0063: 0x83,       #  LATIN SMALL LETTER C
-    0x0064: 0x84,       #  LATIN SMALL LETTER D
-    0x0065: 0x85,       #  LATIN SMALL LETTER E
-    0x0066: 0x86,       #  LATIN SMALL LETTER F
-    0x0067: 0x87,       #  LATIN SMALL LETTER G
-    0x0068: 0x88,       #  LATIN SMALL LETTER H
-    0x0069: 0x89,       #  LATIN SMALL LETTER I
-    0x006A: 0x91,       #  LATIN SMALL LETTER J
-    0x006B: 0x92,       #  LATIN SMALL LETTER K
-    0x006C: 0x93,       #  LATIN SMALL LETTER L
-    0x006D: 0x94,       #  LATIN SMALL LETTER M
-    0x006E: 0x95,       #  LATIN SMALL LETTER N
-    0x006F: 0x96,       #  LATIN SMALL LETTER O
-    0x0070: 0x97,       #  LATIN SMALL LETTER P
-    0x0071: 0x98,       #  LATIN SMALL LETTER Q
-    0x0072: 0x99,       #  LATIN SMALL LETTER R
-    0x0073: 0xA2,       #  LATIN SMALL LETTER S
-    0x0074: 0xA3,       #  LATIN SMALL LETTER T
-    0x0075: 0xA4,       #  LATIN SMALL LETTER U
-    0x0076: 0xA5,       #  LATIN SMALL LETTER V
-    0x0077: 0xA6,       #  LATIN SMALL LETTER W
-    0x0078: 0xA7,       #  LATIN SMALL LETTER X
-    0x0079: 0xA8,       #  LATIN SMALL LETTER Y
-    0x007A: 0xA9,       #  LATIN SMALL LETTER Z
-    0x007B: 0xC0,       #  LEFT CURLY BRACKET
-    0x007C: 0x4F,       #  VERTICAL LINE
-    0x007D: 0xD0,       #  RIGHT CURLY BRACKET
-    0x007E: 0xA1,       #  TILDE
-    0x007F: 0x07,       #  DELETE
-    0x0080: 0x20,       #  CONTROL
-    0x0081: 0x21,       #  CONTROL
-    0x0082: 0x22,       #  CONTROL
-    0x0083: 0x23,       #  CONTROL
-    0x0084: 0x24,       #  CONTROL
-    0x0085: 0x15,       #  CONTROL
-    0x0086: 0x06,       #  CONTROL
-    0x0087: 0x17,       #  CONTROL
-    0x0088: 0x28,       #  CONTROL
-    0x0089: 0x29,       #  CONTROL
-    0x008A: 0x2A,       #  CONTROL
-    0x008B: 0x2B,       #  CONTROL
-    0x008C: 0x2C,       #  CONTROL
-    0x008D: 0x09,       #  CONTROL
-    0x008E: 0x0A,       #  CONTROL
-    0x008F: 0x1B,       #  CONTROL
-    0x0090: 0x30,       #  CONTROL
-    0x0091: 0x31,       #  CONTROL
-    0x0092: 0x1A,       #  CONTROL
-    0x0093: 0x33,       #  CONTROL
-    0x0094: 0x34,       #  CONTROL
-    0x0095: 0x35,       #  CONTROL
-    0x0096: 0x36,       #  CONTROL
-    0x0097: 0x08,       #  CONTROL
-    0x0098: 0x38,       #  CONTROL
-    0x0099: 0x39,       #  CONTROL
-    0x009A: 0x3A,       #  CONTROL
-    0x009B: 0x3B,       #  CONTROL
-    0x009C: 0x04,       #  CONTROL
-    0x009D: 0x14,       #  CONTROL
-    0x009E: 0x3E,       #  CONTROL
-    0x009F: 0xFF,       #  CONTROL
-    0x00A0: 0x41,       #  NO-BREAK SPACE
-    0x00A1: 0xAA,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0x4A,       #  CENT SIGN
-    0x00A3: 0xB1,       #  POUND SIGN
-    0x00A5: 0xB2,       #  YEN SIGN
-    0x00A6: 0x6A,       #  BROKEN BAR
-    0x00A7: 0xB5,       #  SECTION SIGN
-    0x00A8: 0xBD,       #  DIAERESIS
-    0x00A9: 0xB4,       #  COPYRIGHT SIGN
-    0x00AA: 0x9A,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0x8A,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0x5F,       #  NOT SIGN
-    0x00AD: 0xCA,       #  SOFT HYPHEN
-    0x00AE: 0xAF,       #  REGISTERED SIGN
-    0x00AF: 0xBC,       #  MACRON
-    0x00B0: 0x90,       #  DEGREE SIGN
-    0x00B1: 0x8F,       #  PLUS-MINUS SIGN
-    0x00B2: 0xEA,       #  SUPERSCRIPT TWO
-    0x00B3: 0xFA,       #  SUPERSCRIPT THREE
-    0x00B4: 0xBE,       #  ACUTE ACCENT
-    0x00B5: 0xA0,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB3,       #  MIDDLE DOT
-    0x00B8: 0x9D,       #  CEDILLA
-    0x00B9: 0xDA,       #  SUPERSCRIPT ONE
-    0x00BA: 0x9B,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0x8B,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xB7,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xB8,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xB9,       #  VULGAR FRACTION THREE QUARTERS
-    0x00BF: 0xAB,       #  INVERTED QUESTION MARK
-    0x00C0: 0x64,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0x65,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0x62,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0x66,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0x63,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0x67,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0x9E,       #  LATIN CAPITAL LIGATURE AE
-    0x00C7: 0x68,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0x74,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0x71,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0x72,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0x73,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0x78,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0x75,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0x76,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0x77,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D0: 0xAC,       #  LATIN CAPITAL LETTER ETH (ICELANDIC)
-    0x00D1: 0x69,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xED,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xEE,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xEB,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xEF,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xEC,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xBF,       #  MULTIPLICATION SIGN
-    0x00D8: 0x80,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xFD,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xFE,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xFB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xFC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xAD,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DE: 0xAE,       #  LATIN CAPITAL LETTER THORN (ICELANDIC)
-    0x00DF: 0x59,       #  LATIN SMALL LETTER SHARP S (GERMAN)
-    0x00E0: 0x44,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0x45,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0x42,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0x46,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0x43,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0x47,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0x9C,       #  LATIN SMALL LIGATURE AE
-    0x00E7: 0x48,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0x54,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0x51,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0x52,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0x53,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0x58,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0x55,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0x56,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0x57,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F0: 0x8C,       #  LATIN SMALL LETTER ETH (ICELANDIC)
-    0x00F1: 0x49,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0xCD,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xCE,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xCB,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xCF,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xCC,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xE1,       #  DIVISION SIGN
-    0x00F8: 0x70,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0xDD,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xDE,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xDB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xDC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0x8D,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x00FE: 0x8E,       #  LATIN SMALL LETTER THORN (ICELANDIC)
-    0x00FF: 0xDF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x20AC: 0x9F,       #  EURO SIGN
-}
diff --git a/Lib/encodings/cp1250.py b/Lib/encodings/cp1250.py
index 6e6f57c..9685ed7 100644
--- a/Lib/encodings/cp1250.py
+++ b/Lib/encodings/cp1250.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,258 +303,6 @@
     u'\u02d9'   #  0xFF -> DOT ABOVE
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C7: 0xC7,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xDD,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0xFD,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x0102: 0xC3,       #  LATIN CAPITAL LETTER A WITH BREVE
-    0x0103: 0xE3,       #  LATIN SMALL LETTER A WITH BREVE
-    0x0104: 0xA5,       #  LATIN CAPITAL LETTER A WITH OGONEK
-    0x0105: 0xB9,       #  LATIN SMALL LETTER A WITH OGONEK
-    0x0106: 0xC6,       #  LATIN CAPITAL LETTER C WITH ACUTE
-    0x0107: 0xE6,       #  LATIN SMALL LETTER C WITH ACUTE
-    0x010C: 0xC8,       #  LATIN CAPITAL LETTER C WITH CARON
-    0x010D: 0xE8,       #  LATIN SMALL LETTER C WITH CARON
-    0x010E: 0xCF,       #  LATIN CAPITAL LETTER D WITH CARON
-    0x010F: 0xEF,       #  LATIN SMALL LETTER D WITH CARON
-    0x0110: 0xD0,       #  LATIN CAPITAL LETTER D WITH STROKE
-    0x0111: 0xF0,       #  LATIN SMALL LETTER D WITH STROKE
-    0x0118: 0xCA,       #  LATIN CAPITAL LETTER E WITH OGONEK
-    0x0119: 0xEA,       #  LATIN SMALL LETTER E WITH OGONEK
-    0x011A: 0xCC,       #  LATIN CAPITAL LETTER E WITH CARON
-    0x011B: 0xEC,       #  LATIN SMALL LETTER E WITH CARON
-    0x0139: 0xC5,       #  LATIN CAPITAL LETTER L WITH ACUTE
-    0x013A: 0xE5,       #  LATIN SMALL LETTER L WITH ACUTE
-    0x013D: 0xBC,       #  LATIN CAPITAL LETTER L WITH CARON
-    0x013E: 0xBE,       #  LATIN SMALL LETTER L WITH CARON
-    0x0141: 0xA3,       #  LATIN CAPITAL LETTER L WITH STROKE
-    0x0142: 0xB3,       #  LATIN SMALL LETTER L WITH STROKE
-    0x0143: 0xD1,       #  LATIN CAPITAL LETTER N WITH ACUTE
-    0x0144: 0xF1,       #  LATIN SMALL LETTER N WITH ACUTE
-    0x0147: 0xD2,       #  LATIN CAPITAL LETTER N WITH CARON
-    0x0148: 0xF2,       #  LATIN SMALL LETTER N WITH CARON
-    0x0150: 0xD5,       #  LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-    0x0151: 0xF5,       #  LATIN SMALL LETTER O WITH DOUBLE ACUTE
-    0x0154: 0xC0,       #  LATIN CAPITAL LETTER R WITH ACUTE
-    0x0155: 0xE0,       #  LATIN SMALL LETTER R WITH ACUTE
-    0x0158: 0xD8,       #  LATIN CAPITAL LETTER R WITH CARON
-    0x0159: 0xF8,       #  LATIN SMALL LETTER R WITH CARON
-    0x015A: 0x8C,       #  LATIN CAPITAL LETTER S WITH ACUTE
-    0x015B: 0x9C,       #  LATIN SMALL LETTER S WITH ACUTE
-    0x015E: 0xAA,       #  LATIN CAPITAL LETTER S WITH CEDILLA
-    0x015F: 0xBA,       #  LATIN SMALL LETTER S WITH CEDILLA
-    0x0160: 0x8A,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0x9A,       #  LATIN SMALL LETTER S WITH CARON
-    0x0162: 0xDE,       #  LATIN CAPITAL LETTER T WITH CEDILLA
-    0x0163: 0xFE,       #  LATIN SMALL LETTER T WITH CEDILLA
-    0x0164: 0x8D,       #  LATIN CAPITAL LETTER T WITH CARON
-    0x0165: 0x9D,       #  LATIN SMALL LETTER T WITH CARON
-    0x016E: 0xD9,       #  LATIN CAPITAL LETTER U WITH RING ABOVE
-    0x016F: 0xF9,       #  LATIN SMALL LETTER U WITH RING ABOVE
-    0x0170: 0xDB,       #  LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-    0x0171: 0xFB,       #  LATIN SMALL LETTER U WITH DOUBLE ACUTE
-    0x0179: 0x8F,       #  LATIN CAPITAL LETTER Z WITH ACUTE
-    0x017A: 0x9F,       #  LATIN SMALL LETTER Z WITH ACUTE
-    0x017B: 0xAF,       #  LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    0x017C: 0xBF,       #  LATIN SMALL LETTER Z WITH DOT ABOVE
-    0x017D: 0x8E,       #  LATIN CAPITAL LETTER Z WITH CARON
-    0x017E: 0x9E,       #  LATIN SMALL LETTER Z WITH CARON
-    0x02C7: 0xA1,       #  CARON
-    0x02D8: 0xA2,       #  BREVE
-    0x02D9: 0xFF,       #  DOT ABOVE
-    0x02DB: 0xB2,       #  OGONEK
-    0x02DD: 0xBD,       #  DOUBLE ACUTE ACCENT
-    0x2013: 0x96,       #  EN DASH
-    0x2014: 0x97,       #  EM DASH
-    0x2018: 0x91,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0x92,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0x82,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0x93,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0x94,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0x84,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0x86,       #  DAGGER
-    0x2021: 0x87,       #  DOUBLE DAGGER
-    0x2022: 0x95,       #  BULLET
-    0x2026: 0x85,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0x89,       #  PER MILLE SIGN
-    0x2039: 0x8B,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0x9B,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x20AC: 0x80,       #  EURO SIGN
-    0x2122: 0x99,       #  TRADE MARK SIGN
-}
diff --git a/Lib/encodings/cp1251.py b/Lib/encodings/cp1251.py
index ed835fe..dd21975 100644
--- a/Lib/encodings/cp1251.py
+++ b/Lib/encodings/cp1251.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,262 +303,6 @@
     u'\u044f'   #  0xFF -> CYRILLIC SMALL LETTER YA
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x0401: 0xA8,       #  CYRILLIC CAPITAL LETTER IO
-    0x0402: 0x80,       #  CYRILLIC CAPITAL LETTER DJE
-    0x0403: 0x81,       #  CYRILLIC CAPITAL LETTER GJE
-    0x0404: 0xAA,       #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
-    0x0405: 0xBD,       #  CYRILLIC CAPITAL LETTER DZE
-    0x0406: 0xB2,       #  CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-    0x0407: 0xAF,       #  CYRILLIC CAPITAL LETTER YI
-    0x0408: 0xA3,       #  CYRILLIC CAPITAL LETTER JE
-    0x0409: 0x8A,       #  CYRILLIC CAPITAL LETTER LJE
-    0x040A: 0x8C,       #  CYRILLIC CAPITAL LETTER NJE
-    0x040B: 0x8E,       #  CYRILLIC CAPITAL LETTER TSHE
-    0x040C: 0x8D,       #  CYRILLIC CAPITAL LETTER KJE
-    0x040E: 0xA1,       #  CYRILLIC CAPITAL LETTER SHORT U
-    0x040F: 0x8F,       #  CYRILLIC CAPITAL LETTER DZHE
-    0x0410: 0xC0,       #  CYRILLIC CAPITAL LETTER A
-    0x0411: 0xC1,       #  CYRILLIC CAPITAL LETTER BE
-    0x0412: 0xC2,       #  CYRILLIC CAPITAL LETTER VE
-    0x0413: 0xC3,       #  CYRILLIC CAPITAL LETTER GHE
-    0x0414: 0xC4,       #  CYRILLIC CAPITAL LETTER DE
-    0x0415: 0xC5,       #  CYRILLIC CAPITAL LETTER IE
-    0x0416: 0xC6,       #  CYRILLIC CAPITAL LETTER ZHE
-    0x0417: 0xC7,       #  CYRILLIC CAPITAL LETTER ZE
-    0x0418: 0xC8,       #  CYRILLIC CAPITAL LETTER I
-    0x0419: 0xC9,       #  CYRILLIC CAPITAL LETTER SHORT I
-    0x041A: 0xCA,       #  CYRILLIC CAPITAL LETTER KA
-    0x041B: 0xCB,       #  CYRILLIC CAPITAL LETTER EL
-    0x041C: 0xCC,       #  CYRILLIC CAPITAL LETTER EM
-    0x041D: 0xCD,       #  CYRILLIC CAPITAL LETTER EN
-    0x041E: 0xCE,       #  CYRILLIC CAPITAL LETTER O
-    0x041F: 0xCF,       #  CYRILLIC CAPITAL LETTER PE
-    0x0420: 0xD0,       #  CYRILLIC CAPITAL LETTER ER
-    0x0421: 0xD1,       #  CYRILLIC CAPITAL LETTER ES
-    0x0422: 0xD2,       #  CYRILLIC CAPITAL LETTER TE
-    0x0423: 0xD3,       #  CYRILLIC CAPITAL LETTER U
-    0x0424: 0xD4,       #  CYRILLIC CAPITAL LETTER EF
-    0x0425: 0xD5,       #  CYRILLIC CAPITAL LETTER HA
-    0x0426: 0xD6,       #  CYRILLIC CAPITAL LETTER TSE
-    0x0427: 0xD7,       #  CYRILLIC CAPITAL LETTER CHE
-    0x0428: 0xD8,       #  CYRILLIC CAPITAL LETTER SHA
-    0x0429: 0xD9,       #  CYRILLIC CAPITAL LETTER SHCHA
-    0x042A: 0xDA,       #  CYRILLIC CAPITAL LETTER HARD SIGN
-    0x042B: 0xDB,       #  CYRILLIC CAPITAL LETTER YERU
-    0x042C: 0xDC,       #  CYRILLIC CAPITAL LETTER SOFT SIGN
-    0x042D: 0xDD,       #  CYRILLIC CAPITAL LETTER E
-    0x042E: 0xDE,       #  CYRILLIC CAPITAL LETTER YU
-    0x042F: 0xDF,       #  CYRILLIC CAPITAL LETTER YA
-    0x0430: 0xE0,       #  CYRILLIC SMALL LETTER A
-    0x0431: 0xE1,       #  CYRILLIC SMALL LETTER BE
-    0x0432: 0xE2,       #  CYRILLIC SMALL LETTER VE
-    0x0433: 0xE3,       #  CYRILLIC SMALL LETTER GHE
-    0x0434: 0xE4,       #  CYRILLIC SMALL LETTER DE
-    0x0435: 0xE5,       #  CYRILLIC SMALL LETTER IE
-    0x0436: 0xE6,       #  CYRILLIC SMALL LETTER ZHE
-    0x0437: 0xE7,       #  CYRILLIC SMALL LETTER ZE
-    0x0438: 0xE8,       #  CYRILLIC SMALL LETTER I
-    0x0439: 0xE9,       #  CYRILLIC SMALL LETTER SHORT I
-    0x043A: 0xEA,       #  CYRILLIC SMALL LETTER KA
-    0x043B: 0xEB,       #  CYRILLIC SMALL LETTER EL
-    0x043C: 0xEC,       #  CYRILLIC SMALL LETTER EM
-    0x043D: 0xED,       #  CYRILLIC SMALL LETTER EN
-    0x043E: 0xEE,       #  CYRILLIC SMALL LETTER O
-    0x043F: 0xEF,       #  CYRILLIC SMALL LETTER PE
-    0x0440: 0xF0,       #  CYRILLIC SMALL LETTER ER
-    0x0441: 0xF1,       #  CYRILLIC SMALL LETTER ES
-    0x0442: 0xF2,       #  CYRILLIC SMALL LETTER TE
-    0x0443: 0xF3,       #  CYRILLIC SMALL LETTER U
-    0x0444: 0xF4,       #  CYRILLIC SMALL LETTER EF
-    0x0445: 0xF5,       #  CYRILLIC SMALL LETTER HA
-    0x0446: 0xF6,       #  CYRILLIC SMALL LETTER TSE
-    0x0447: 0xF7,       #  CYRILLIC SMALL LETTER CHE
-    0x0448: 0xF8,       #  CYRILLIC SMALL LETTER SHA
-    0x0449: 0xF9,       #  CYRILLIC SMALL LETTER SHCHA
-    0x044A: 0xFA,       #  CYRILLIC SMALL LETTER HARD SIGN
-    0x044B: 0xFB,       #  CYRILLIC SMALL LETTER YERU
-    0x044C: 0xFC,       #  CYRILLIC SMALL LETTER SOFT SIGN
-    0x044D: 0xFD,       #  CYRILLIC SMALL LETTER E
-    0x044E: 0xFE,       #  CYRILLIC SMALL LETTER YU
-    0x044F: 0xFF,       #  CYRILLIC SMALL LETTER YA
-    0x0451: 0xB8,       #  CYRILLIC SMALL LETTER IO
-    0x0452: 0x90,       #  CYRILLIC SMALL LETTER DJE
-    0x0453: 0x83,       #  CYRILLIC SMALL LETTER GJE
-    0x0454: 0xBA,       #  CYRILLIC SMALL LETTER UKRAINIAN IE
-    0x0455: 0xBE,       #  CYRILLIC SMALL LETTER DZE
-    0x0456: 0xB3,       #  CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-    0x0457: 0xBF,       #  CYRILLIC SMALL LETTER YI
-    0x0458: 0xBC,       #  CYRILLIC SMALL LETTER JE
-    0x0459: 0x9A,       #  CYRILLIC SMALL LETTER LJE
-    0x045A: 0x9C,       #  CYRILLIC SMALL LETTER NJE
-    0x045B: 0x9E,       #  CYRILLIC SMALL LETTER TSHE
-    0x045C: 0x9D,       #  CYRILLIC SMALL LETTER KJE
-    0x045E: 0xA2,       #  CYRILLIC SMALL LETTER SHORT U
-    0x045F: 0x9F,       #  CYRILLIC SMALL LETTER DZHE
-    0x0490: 0xA5,       #  CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-    0x0491: 0xB4,       #  CYRILLIC SMALL LETTER GHE WITH UPTURN
-    0x2013: 0x96,       #  EN DASH
-    0x2014: 0x97,       #  EM DASH
-    0x2018: 0x91,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0x92,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0x82,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0x93,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0x94,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0x84,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0x86,       #  DAGGER
-    0x2021: 0x87,       #  DOUBLE DAGGER
-    0x2022: 0x95,       #  BULLET
-    0x2026: 0x85,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0x89,       #  PER MILLE SIGN
-    0x2039: 0x8B,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0x9B,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x20AC: 0x88,       #  EURO SIGN
-    0x2116: 0xB9,       #  NUMERO SIGN
-    0x2122: 0x99,       #  TRADE MARK SIGN
-}
diff --git a/Lib/encodings/cp1252.py b/Lib/encodings/cp1252.py
index e5b6905..d98644a 100644
--- a/Lib/encodings/cp1252.py
+++ b/Lib/encodings/cp1252.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,258 +303,6 @@
     u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A1: 0xA1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A5: 0xA5,       #  YEN SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AA: 0xAA,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00AF: 0xAF,       #  MACRON
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00B9: 0xB9,       #  SUPERSCRIPT ONE
-    0x00BA: 0xBA,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xBC,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xBE,       #  VULGAR FRACTION THREE QUARTERS
-    0x00BF: 0xBF,       #  INVERTED QUESTION MARK
-    0x00C0: 0xC0,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xC3,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0xC5,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xC6,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0xC7,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xC8,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xCA,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xCC,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xCF,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D0: 0xD0,       #  LATIN CAPITAL LETTER ETH
-    0x00D1: 0xD1,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xD2,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xD5,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00D8: 0xD8,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xD9,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xDB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xDD,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DE: 0xDE,       #  LATIN CAPITAL LETTER THORN
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0xE0,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0xE3,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0xE5,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xE6,       #  LATIN SMALL LETTER AE
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0xE8,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0xEA,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0xEC,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0xEF,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F0: 0xF0,       #  LATIN SMALL LETTER ETH
-    0x00F1: 0xF1,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0xF2,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xF5,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00F8: 0xF8,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0xF9,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0xFD,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x00FE: 0xFE,       #  LATIN SMALL LETTER THORN
-    0x00FF: 0xFF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x0152: 0x8C,       #  LATIN CAPITAL LIGATURE OE
-    0x0153: 0x9C,       #  LATIN SMALL LIGATURE OE
-    0x0160: 0x8A,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0x9A,       #  LATIN SMALL LETTER S WITH CARON
-    0x0178: 0x9F,       #  LATIN CAPITAL LETTER Y WITH DIAERESIS
-    0x017D: 0x8E,       #  LATIN CAPITAL LETTER Z WITH CARON
-    0x017E: 0x9E,       #  LATIN SMALL LETTER Z WITH CARON
-    0x0192: 0x83,       #  LATIN SMALL LETTER F WITH HOOK
-    0x02C6: 0x88,       #  MODIFIER LETTER CIRCUMFLEX ACCENT
-    0x02DC: 0x98,       #  SMALL TILDE
-    0x2013: 0x96,       #  EN DASH
-    0x2014: 0x97,       #  EM DASH
-    0x2018: 0x91,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0x92,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0x82,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0x93,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0x94,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0x84,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0x86,       #  DAGGER
-    0x2021: 0x87,       #  DOUBLE DAGGER
-    0x2022: 0x95,       #  BULLET
-    0x2026: 0x85,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0x89,       #  PER MILLE SIGN
-    0x2039: 0x8B,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0x9B,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x20AC: 0x80,       #  EURO SIGN
-    0x2122: 0x99,       #  TRADE MARK SIGN
-}
diff --git a/Lib/encodings/cp1253.py b/Lib/encodings/cp1253.py
index 3ce70b25..60e6663 100644
--- a/Lib/encodings/cp1253.py
+++ b/Lib/encodings/cp1253.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,246 +303,6 @@
     u'\ufffe'   #  0xFF -> UNDEFINED
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A5: 0xA5,       #  YEN SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x0192: 0x83,       #  LATIN SMALL LETTER F WITH HOOK
-    0x0384: 0xB4,       #  GREEK TONOS
-    0x0385: 0xA1,       #  GREEK DIALYTIKA TONOS
-    0x0386: 0xA2,       #  GREEK CAPITAL LETTER ALPHA WITH TONOS
-    0x0388: 0xB8,       #  GREEK CAPITAL LETTER EPSILON WITH TONOS
-    0x0389: 0xB9,       #  GREEK CAPITAL LETTER ETA WITH TONOS
-    0x038A: 0xBA,       #  GREEK CAPITAL LETTER IOTA WITH TONOS
-    0x038C: 0xBC,       #  GREEK CAPITAL LETTER OMICRON WITH TONOS
-    0x038E: 0xBE,       #  GREEK CAPITAL LETTER UPSILON WITH TONOS
-    0x038F: 0xBF,       #  GREEK CAPITAL LETTER OMEGA WITH TONOS
-    0x0390: 0xC0,       #  GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-    0x0391: 0xC1,       #  GREEK CAPITAL LETTER ALPHA
-    0x0392: 0xC2,       #  GREEK CAPITAL LETTER BETA
-    0x0393: 0xC3,       #  GREEK CAPITAL LETTER GAMMA
-    0x0394: 0xC4,       #  GREEK CAPITAL LETTER DELTA
-    0x0395: 0xC5,       #  GREEK CAPITAL LETTER EPSILON
-    0x0396: 0xC6,       #  GREEK CAPITAL LETTER ZETA
-    0x0397: 0xC7,       #  GREEK CAPITAL LETTER ETA
-    0x0398: 0xC8,       #  GREEK CAPITAL LETTER THETA
-    0x0399: 0xC9,       #  GREEK CAPITAL LETTER IOTA
-    0x039A: 0xCA,       #  GREEK CAPITAL LETTER KAPPA
-    0x039B: 0xCB,       #  GREEK CAPITAL LETTER LAMDA
-    0x039C: 0xCC,       #  GREEK CAPITAL LETTER MU
-    0x039D: 0xCD,       #  GREEK CAPITAL LETTER NU
-    0x039E: 0xCE,       #  GREEK CAPITAL LETTER XI
-    0x039F: 0xCF,       #  GREEK CAPITAL LETTER OMICRON
-    0x03A0: 0xD0,       #  GREEK CAPITAL LETTER PI
-    0x03A1: 0xD1,       #  GREEK CAPITAL LETTER RHO
-    0x03A3: 0xD3,       #  GREEK CAPITAL LETTER SIGMA
-    0x03A4: 0xD4,       #  GREEK CAPITAL LETTER TAU
-    0x03A5: 0xD5,       #  GREEK CAPITAL LETTER UPSILON
-    0x03A6: 0xD6,       #  GREEK CAPITAL LETTER PHI
-    0x03A7: 0xD7,       #  GREEK CAPITAL LETTER CHI
-    0x03A8: 0xD8,       #  GREEK CAPITAL LETTER PSI
-    0x03A9: 0xD9,       #  GREEK CAPITAL LETTER OMEGA
-    0x03AA: 0xDA,       #  GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-    0x03AB: 0xDB,       #  GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-    0x03AC: 0xDC,       #  GREEK SMALL LETTER ALPHA WITH TONOS
-    0x03AD: 0xDD,       #  GREEK SMALL LETTER EPSILON WITH TONOS
-    0x03AE: 0xDE,       #  GREEK SMALL LETTER ETA WITH TONOS
-    0x03AF: 0xDF,       #  GREEK SMALL LETTER IOTA WITH TONOS
-    0x03B0: 0xE0,       #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-    0x03B1: 0xE1,       #  GREEK SMALL LETTER ALPHA
-    0x03B2: 0xE2,       #  GREEK SMALL LETTER BETA
-    0x03B3: 0xE3,       #  GREEK SMALL LETTER GAMMA
-    0x03B4: 0xE4,       #  GREEK SMALL LETTER DELTA
-    0x03B5: 0xE5,       #  GREEK SMALL LETTER EPSILON
-    0x03B6: 0xE6,       #  GREEK SMALL LETTER ZETA
-    0x03B7: 0xE7,       #  GREEK SMALL LETTER ETA
-    0x03B8: 0xE8,       #  GREEK SMALL LETTER THETA
-    0x03B9: 0xE9,       #  GREEK SMALL LETTER IOTA
-    0x03BA: 0xEA,       #  GREEK SMALL LETTER KAPPA
-    0x03BB: 0xEB,       #  GREEK SMALL LETTER LAMDA
-    0x03BC: 0xEC,       #  GREEK SMALL LETTER MU
-    0x03BD: 0xED,       #  GREEK SMALL LETTER NU
-    0x03BE: 0xEE,       #  GREEK SMALL LETTER XI
-    0x03BF: 0xEF,       #  GREEK SMALL LETTER OMICRON
-    0x03C0: 0xF0,       #  GREEK SMALL LETTER PI
-    0x03C1: 0xF1,       #  GREEK SMALL LETTER RHO
-    0x03C2: 0xF2,       #  GREEK SMALL LETTER FINAL SIGMA
-    0x03C3: 0xF3,       #  GREEK SMALL LETTER SIGMA
-    0x03C4: 0xF4,       #  GREEK SMALL LETTER TAU
-    0x03C5: 0xF5,       #  GREEK SMALL LETTER UPSILON
-    0x03C6: 0xF6,       #  GREEK SMALL LETTER PHI
-    0x03C7: 0xF7,       #  GREEK SMALL LETTER CHI
-    0x03C8: 0xF8,       #  GREEK SMALL LETTER PSI
-    0x03C9: 0xF9,       #  GREEK SMALL LETTER OMEGA
-    0x03CA: 0xFA,       #  GREEK SMALL LETTER IOTA WITH DIALYTIKA
-    0x03CB: 0xFB,       #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-    0x03CC: 0xFC,       #  GREEK SMALL LETTER OMICRON WITH TONOS
-    0x03CD: 0xFD,       #  GREEK SMALL LETTER UPSILON WITH TONOS
-    0x03CE: 0xFE,       #  GREEK SMALL LETTER OMEGA WITH TONOS
-    0x2013: 0x96,       #  EN DASH
-    0x2014: 0x97,       #  EM DASH
-    0x2015: 0xAF,       #  HORIZONTAL BAR
-    0x2018: 0x91,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0x92,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0x82,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0x93,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0x94,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0x84,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0x86,       #  DAGGER
-    0x2021: 0x87,       #  DOUBLE DAGGER
-    0x2022: 0x95,       #  BULLET
-    0x2026: 0x85,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0x89,       #  PER MILLE SIGN
-    0x2039: 0x8B,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0x9B,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x20AC: 0x80,       #  EURO SIGN
-    0x2122: 0x99,       #  TRADE MARK SIGN
-}
diff --git a/Lib/encodings/cp1254.py b/Lib/encodings/cp1254.py
index 31cd48c..04872c1 100644
--- a/Lib/encodings/cp1254.py
+++ b/Lib/encodings/cp1254.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,256 +303,6 @@
     u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A1: 0xA1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A5: 0xA5,       #  YEN SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AA: 0xAA,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00AF: 0xAF,       #  MACRON
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00B9: 0xB9,       #  SUPERSCRIPT ONE
-    0x00BA: 0xBA,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xBC,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xBE,       #  VULGAR FRACTION THREE QUARTERS
-    0x00BF: 0xBF,       #  INVERTED QUESTION MARK
-    0x00C0: 0xC0,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xC3,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0xC5,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xC6,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0xC7,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xC8,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xCA,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xCC,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xCF,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D1: 0xD1,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xD2,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xD5,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00D8: 0xD8,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xD9,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xDB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0xE0,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0xE3,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0xE5,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xE6,       #  LATIN SMALL LETTER AE
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0xE8,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0xEA,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0xEC,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0xEF,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F1: 0xF1,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0xF2,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xF5,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00F8: 0xF8,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0xF9,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FF: 0xFF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x011E: 0xD0,       #  LATIN CAPITAL LETTER G WITH BREVE
-    0x011F: 0xF0,       #  LATIN SMALL LETTER G WITH BREVE
-    0x0130: 0xDD,       #  LATIN CAPITAL LETTER I WITH DOT ABOVE
-    0x0131: 0xFD,       #  LATIN SMALL LETTER DOTLESS I
-    0x0152: 0x8C,       #  LATIN CAPITAL LIGATURE OE
-    0x0153: 0x9C,       #  LATIN SMALL LIGATURE OE
-    0x015E: 0xDE,       #  LATIN CAPITAL LETTER S WITH CEDILLA
-    0x015F: 0xFE,       #  LATIN SMALL LETTER S WITH CEDILLA
-    0x0160: 0x8A,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0x9A,       #  LATIN SMALL LETTER S WITH CARON
-    0x0178: 0x9F,       #  LATIN CAPITAL LETTER Y WITH DIAERESIS
-    0x0192: 0x83,       #  LATIN SMALL LETTER F WITH HOOK
-    0x02C6: 0x88,       #  MODIFIER LETTER CIRCUMFLEX ACCENT
-    0x02DC: 0x98,       #  SMALL TILDE
-    0x2013: 0x96,       #  EN DASH
-    0x2014: 0x97,       #  EM DASH
-    0x2018: 0x91,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0x92,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0x82,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0x93,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0x94,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0x84,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0x86,       #  DAGGER
-    0x2021: 0x87,       #  DOUBLE DAGGER
-    0x2022: 0x95,       #  BULLET
-    0x2026: 0x85,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0x89,       #  PER MILLE SIGN
-    0x2039: 0x8B,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0x9B,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x20AC: 0x80,       #  EURO SIGN
-    0x2122: 0x99,       #  TRADE MARK SIGN
-}
diff --git a/Lib/encodings/cp1255.py b/Lib/encodings/cp1255.py
index 47c43ce..cb59e3f 100644
--- a/Lib/encodings/cp1255.py
+++ b/Lib/encodings/cp1255.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,240 +303,6 @@
     u'\ufffe'   #  0xFF -> UNDEFINED
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A1: 0xA1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A5: 0xA5,       #  YEN SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00AF: 0xAF,       #  MACRON
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00B9: 0xB9,       #  SUPERSCRIPT ONE
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xBC,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xBE,       #  VULGAR FRACTION THREE QUARTERS
-    0x00BF: 0xBF,       #  INVERTED QUESTION MARK
-    0x00D7: 0xAA,       #  MULTIPLICATION SIGN
-    0x00F7: 0xBA,       #  DIVISION SIGN
-    0x0192: 0x83,       #  LATIN SMALL LETTER F WITH HOOK
-    0x02C6: 0x88,       #  MODIFIER LETTER CIRCUMFLEX ACCENT
-    0x02DC: 0x98,       #  SMALL TILDE
-    0x05B0: 0xC0,       #  HEBREW POINT SHEVA
-    0x05B1: 0xC1,       #  HEBREW POINT HATAF SEGOL
-    0x05B2: 0xC2,       #  HEBREW POINT HATAF PATAH
-    0x05B3: 0xC3,       #  HEBREW POINT HATAF QAMATS
-    0x05B4: 0xC4,       #  HEBREW POINT HIRIQ
-    0x05B5: 0xC5,       #  HEBREW POINT TSERE
-    0x05B6: 0xC6,       #  HEBREW POINT SEGOL
-    0x05B7: 0xC7,       #  HEBREW POINT PATAH
-    0x05B8: 0xC8,       #  HEBREW POINT QAMATS
-    0x05B9: 0xC9,       #  HEBREW POINT HOLAM
-    0x05BB: 0xCB,       #  HEBREW POINT QUBUTS
-    0x05BC: 0xCC,       #  HEBREW POINT DAGESH OR MAPIQ
-    0x05BD: 0xCD,       #  HEBREW POINT METEG
-    0x05BE: 0xCE,       #  HEBREW PUNCTUATION MAQAF
-    0x05BF: 0xCF,       #  HEBREW POINT RAFE
-    0x05C0: 0xD0,       #  HEBREW PUNCTUATION PASEQ
-    0x05C1: 0xD1,       #  HEBREW POINT SHIN DOT
-    0x05C2: 0xD2,       #  HEBREW POINT SIN DOT
-    0x05C3: 0xD3,       #  HEBREW PUNCTUATION SOF PASUQ
-    0x05D0: 0xE0,       #  HEBREW LETTER ALEF
-    0x05D1: 0xE1,       #  HEBREW LETTER BET
-    0x05D2: 0xE2,       #  HEBREW LETTER GIMEL
-    0x05D3: 0xE3,       #  HEBREW LETTER DALET
-    0x05D4: 0xE4,       #  HEBREW LETTER HE
-    0x05D5: 0xE5,       #  HEBREW LETTER VAV
-    0x05D6: 0xE6,       #  HEBREW LETTER ZAYIN
-    0x05D7: 0xE7,       #  HEBREW LETTER HET
-    0x05D8: 0xE8,       #  HEBREW LETTER TET
-    0x05D9: 0xE9,       #  HEBREW LETTER YOD
-    0x05DA: 0xEA,       #  HEBREW LETTER FINAL KAF
-    0x05DB: 0xEB,       #  HEBREW LETTER KAF
-    0x05DC: 0xEC,       #  HEBREW LETTER LAMED
-    0x05DD: 0xED,       #  HEBREW LETTER FINAL MEM
-    0x05DE: 0xEE,       #  HEBREW LETTER MEM
-    0x05DF: 0xEF,       #  HEBREW LETTER FINAL NUN
-    0x05E0: 0xF0,       #  HEBREW LETTER NUN
-    0x05E1: 0xF1,       #  HEBREW LETTER SAMEKH
-    0x05E2: 0xF2,       #  HEBREW LETTER AYIN
-    0x05E3: 0xF3,       #  HEBREW LETTER FINAL PE
-    0x05E4: 0xF4,       #  HEBREW LETTER PE
-    0x05E5: 0xF5,       #  HEBREW LETTER FINAL TSADI
-    0x05E6: 0xF6,       #  HEBREW LETTER TSADI
-    0x05E7: 0xF7,       #  HEBREW LETTER QOF
-    0x05E8: 0xF8,       #  HEBREW LETTER RESH
-    0x05E9: 0xF9,       #  HEBREW LETTER SHIN
-    0x05EA: 0xFA,       #  HEBREW LETTER TAV
-    0x05F0: 0xD4,       #  HEBREW LIGATURE YIDDISH DOUBLE VAV
-    0x05F1: 0xD5,       #  HEBREW LIGATURE YIDDISH VAV YOD
-    0x05F2: 0xD6,       #  HEBREW LIGATURE YIDDISH DOUBLE YOD
-    0x05F3: 0xD7,       #  HEBREW PUNCTUATION GERESH
-    0x05F4: 0xD8,       #  HEBREW PUNCTUATION GERSHAYIM
-    0x200E: 0xFD,       #  LEFT-TO-RIGHT MARK
-    0x200F: 0xFE,       #  RIGHT-TO-LEFT MARK
-    0x2013: 0x96,       #  EN DASH
-    0x2014: 0x97,       #  EM DASH
-    0x2018: 0x91,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0x92,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0x82,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0x93,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0x94,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0x84,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0x86,       #  DAGGER
-    0x2021: 0x87,       #  DOUBLE DAGGER
-    0x2022: 0x95,       #  BULLET
-    0x2026: 0x85,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0x89,       #  PER MILLE SIGN
-    0x2039: 0x8B,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0x9B,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x20AA: 0xA4,       #  NEW SHEQEL SIGN
-    0x20AC: 0x80,       #  EURO SIGN
-    0x2122: 0x99,       #  TRADE MARK SIGN
-}
diff --git a/Lib/encodings/cp1256.py b/Lib/encodings/cp1256.py
index e90393b..9ebb1df 100644
--- a/Lib/encodings/cp1256.py
+++ b/Lib/encodings/cp1256.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u06d2'   #  0xFF -> ARABIC LETTER YEH BARREE
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A5: 0xA5,       #  YEN SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00AF: 0xAF,       #  MACRON
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00B9: 0xB9,       #  SUPERSCRIPT ONE
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xBC,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xBE,       #  VULGAR FRACTION THREE QUARTERS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00E0: 0xE0,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0xE8,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0xEA,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0xEF,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00F9: 0xF9,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x0152: 0x8C,       #  LATIN CAPITAL LIGATURE OE
-    0x0153: 0x9C,       #  LATIN SMALL LIGATURE OE
-    0x0192: 0x83,       #  LATIN SMALL LETTER F WITH HOOK
-    0x02C6: 0x88,       #  MODIFIER LETTER CIRCUMFLEX ACCENT
-    0x060C: 0xA1,       #  ARABIC COMMA
-    0x061B: 0xBA,       #  ARABIC SEMICOLON
-    0x061F: 0xBF,       #  ARABIC QUESTION MARK
-    0x0621: 0xC1,       #  ARABIC LETTER HAMZA
-    0x0622: 0xC2,       #  ARABIC LETTER ALEF WITH MADDA ABOVE
-    0x0623: 0xC3,       #  ARABIC LETTER ALEF WITH HAMZA ABOVE
-    0x0624: 0xC4,       #  ARABIC LETTER WAW WITH HAMZA ABOVE
-    0x0625: 0xC5,       #  ARABIC LETTER ALEF WITH HAMZA BELOW
-    0x0626: 0xC6,       #  ARABIC LETTER YEH WITH HAMZA ABOVE
-    0x0627: 0xC7,       #  ARABIC LETTER ALEF
-    0x0628: 0xC8,       #  ARABIC LETTER BEH
-    0x0629: 0xC9,       #  ARABIC LETTER TEH MARBUTA
-    0x062A: 0xCA,       #  ARABIC LETTER TEH
-    0x062B: 0xCB,       #  ARABIC LETTER THEH
-    0x062C: 0xCC,       #  ARABIC LETTER JEEM
-    0x062D: 0xCD,       #  ARABIC LETTER HAH
-    0x062E: 0xCE,       #  ARABIC LETTER KHAH
-    0x062F: 0xCF,       #  ARABIC LETTER DAL
-    0x0630: 0xD0,       #  ARABIC LETTER THAL
-    0x0631: 0xD1,       #  ARABIC LETTER REH
-    0x0632: 0xD2,       #  ARABIC LETTER ZAIN
-    0x0633: 0xD3,       #  ARABIC LETTER SEEN
-    0x0634: 0xD4,       #  ARABIC LETTER SHEEN
-    0x0635: 0xD5,       #  ARABIC LETTER SAD
-    0x0636: 0xD6,       #  ARABIC LETTER DAD
-    0x0637: 0xD8,       #  ARABIC LETTER TAH
-    0x0638: 0xD9,       #  ARABIC LETTER ZAH
-    0x0639: 0xDA,       #  ARABIC LETTER AIN
-    0x063A: 0xDB,       #  ARABIC LETTER GHAIN
-    0x0640: 0xDC,       #  ARABIC TATWEEL
-    0x0641: 0xDD,       #  ARABIC LETTER FEH
-    0x0642: 0xDE,       #  ARABIC LETTER QAF
-    0x0643: 0xDF,       #  ARABIC LETTER KAF
-    0x0644: 0xE1,       #  ARABIC LETTER LAM
-    0x0645: 0xE3,       #  ARABIC LETTER MEEM
-    0x0646: 0xE4,       #  ARABIC LETTER NOON
-    0x0647: 0xE5,       #  ARABIC LETTER HEH
-    0x0648: 0xE6,       #  ARABIC LETTER WAW
-    0x0649: 0xEC,       #  ARABIC LETTER ALEF MAKSURA
-    0x064A: 0xED,       #  ARABIC LETTER YEH
-    0x064B: 0xF0,       #  ARABIC FATHATAN
-    0x064C: 0xF1,       #  ARABIC DAMMATAN
-    0x064D: 0xF2,       #  ARABIC KASRATAN
-    0x064E: 0xF3,       #  ARABIC FATHA
-    0x064F: 0xF5,       #  ARABIC DAMMA
-    0x0650: 0xF6,       #  ARABIC KASRA
-    0x0651: 0xF8,       #  ARABIC SHADDA
-    0x0652: 0xFA,       #  ARABIC SUKUN
-    0x0679: 0x8A,       #  ARABIC LETTER TTEH
-    0x067E: 0x81,       #  ARABIC LETTER PEH
-    0x0686: 0x8D,       #  ARABIC LETTER TCHEH
-    0x0688: 0x8F,       #  ARABIC LETTER DDAL
-    0x0691: 0x9A,       #  ARABIC LETTER RREH
-    0x0698: 0x8E,       #  ARABIC LETTER JEH
-    0x06A9: 0x98,       #  ARABIC LETTER KEHEH
-    0x06AF: 0x90,       #  ARABIC LETTER GAF
-    0x06BA: 0x9F,       #  ARABIC LETTER NOON GHUNNA
-    0x06BE: 0xAA,       #  ARABIC LETTER HEH DOACHASHMEE
-    0x06C1: 0xC0,       #  ARABIC LETTER HEH GOAL
-    0x06D2: 0xFF,       #  ARABIC LETTER YEH BARREE
-    0x200C: 0x9D,       #  ZERO WIDTH NON-JOINER
-    0x200D: 0x9E,       #  ZERO WIDTH JOINER
-    0x200E: 0xFD,       #  LEFT-TO-RIGHT MARK
-    0x200F: 0xFE,       #  RIGHT-TO-LEFT MARK
-    0x2013: 0x96,       #  EN DASH
-    0x2014: 0x97,       #  EM DASH
-    0x2018: 0x91,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0x92,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0x82,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0x93,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0x94,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0x84,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0x86,       #  DAGGER
-    0x2021: 0x87,       #  DOUBLE DAGGER
-    0x2022: 0x95,       #  BULLET
-    0x2026: 0x85,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0x89,       #  PER MILLE SIGN
-    0x2039: 0x8B,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0x9B,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x20AC: 0x80,       #  EURO SIGN
-    0x2122: 0x99,       #  TRADE MARK SIGN
-}
diff --git a/Lib/encodings/cp1257.py b/Lib/encodings/cp1257.py
index dcc81c0..57a86ed 100644
--- a/Lib/encodings/cp1257.py
+++ b/Lib/encodings/cp1257.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,251 +303,6 @@
     u'\u02d9'   #  0xFF -> DOT ABOVE
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0x8D,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00AF: 0x9D,       #  MACRON
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B8: 0x8F,       #  CEDILLA
-    0x00B9: 0xB9,       #  SUPERSCRIPT ONE
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xBC,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xBE,       #  VULGAR FRACTION THREE QUARTERS
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0xC5,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xAF,       #  LATIN CAPITAL LETTER AE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D5: 0xD5,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00D8: 0xA8,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0xE5,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xBF,       #  LATIN SMALL LETTER AE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F5: 0xF5,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00F8: 0xB8,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x0100: 0xC2,       #  LATIN CAPITAL LETTER A WITH MACRON
-    0x0101: 0xE2,       #  LATIN SMALL LETTER A WITH MACRON
-    0x0104: 0xC0,       #  LATIN CAPITAL LETTER A WITH OGONEK
-    0x0105: 0xE0,       #  LATIN SMALL LETTER A WITH OGONEK
-    0x0106: 0xC3,       #  LATIN CAPITAL LETTER C WITH ACUTE
-    0x0107: 0xE3,       #  LATIN SMALL LETTER C WITH ACUTE
-    0x010C: 0xC8,       #  LATIN CAPITAL LETTER C WITH CARON
-    0x010D: 0xE8,       #  LATIN SMALL LETTER C WITH CARON
-    0x0112: 0xC7,       #  LATIN CAPITAL LETTER E WITH MACRON
-    0x0113: 0xE7,       #  LATIN SMALL LETTER E WITH MACRON
-    0x0116: 0xCB,       #  LATIN CAPITAL LETTER E WITH DOT ABOVE
-    0x0117: 0xEB,       #  LATIN SMALL LETTER E WITH DOT ABOVE
-    0x0118: 0xC6,       #  LATIN CAPITAL LETTER E WITH OGONEK
-    0x0119: 0xE6,       #  LATIN SMALL LETTER E WITH OGONEK
-    0x0122: 0xCC,       #  LATIN CAPITAL LETTER G WITH CEDILLA
-    0x0123: 0xEC,       #  LATIN SMALL LETTER G WITH CEDILLA
-    0x012A: 0xCE,       #  LATIN CAPITAL LETTER I WITH MACRON
-    0x012B: 0xEE,       #  LATIN SMALL LETTER I WITH MACRON
-    0x012E: 0xC1,       #  LATIN CAPITAL LETTER I WITH OGONEK
-    0x012F: 0xE1,       #  LATIN SMALL LETTER I WITH OGONEK
-    0x0136: 0xCD,       #  LATIN CAPITAL LETTER K WITH CEDILLA
-    0x0137: 0xED,       #  LATIN SMALL LETTER K WITH CEDILLA
-    0x013B: 0xCF,       #  LATIN CAPITAL LETTER L WITH CEDILLA
-    0x013C: 0xEF,       #  LATIN SMALL LETTER L WITH CEDILLA
-    0x0141: 0xD9,       #  LATIN CAPITAL LETTER L WITH STROKE
-    0x0142: 0xF9,       #  LATIN SMALL LETTER L WITH STROKE
-    0x0143: 0xD1,       #  LATIN CAPITAL LETTER N WITH ACUTE
-    0x0144: 0xF1,       #  LATIN SMALL LETTER N WITH ACUTE
-    0x0145: 0xD2,       #  LATIN CAPITAL LETTER N WITH CEDILLA
-    0x0146: 0xF2,       #  LATIN SMALL LETTER N WITH CEDILLA
-    0x014C: 0xD4,       #  LATIN CAPITAL LETTER O WITH MACRON
-    0x014D: 0xF4,       #  LATIN SMALL LETTER O WITH MACRON
-    0x0156: 0xAA,       #  LATIN CAPITAL LETTER R WITH CEDILLA
-    0x0157: 0xBA,       #  LATIN SMALL LETTER R WITH CEDILLA
-    0x015A: 0xDA,       #  LATIN CAPITAL LETTER S WITH ACUTE
-    0x015B: 0xFA,       #  LATIN SMALL LETTER S WITH ACUTE
-    0x0160: 0xD0,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0xF0,       #  LATIN SMALL LETTER S WITH CARON
-    0x016A: 0xDB,       #  LATIN CAPITAL LETTER U WITH MACRON
-    0x016B: 0xFB,       #  LATIN SMALL LETTER U WITH MACRON
-    0x0172: 0xD8,       #  LATIN CAPITAL LETTER U WITH OGONEK
-    0x0173: 0xF8,       #  LATIN SMALL LETTER U WITH OGONEK
-    0x0179: 0xCA,       #  LATIN CAPITAL LETTER Z WITH ACUTE
-    0x017A: 0xEA,       #  LATIN SMALL LETTER Z WITH ACUTE
-    0x017B: 0xDD,       #  LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    0x017C: 0xFD,       #  LATIN SMALL LETTER Z WITH DOT ABOVE
-    0x017D: 0xDE,       #  LATIN CAPITAL LETTER Z WITH CARON
-    0x017E: 0xFE,       #  LATIN SMALL LETTER Z WITH CARON
-    0x02C7: 0x8E,       #  CARON
-    0x02D9: 0xFF,       #  DOT ABOVE
-    0x02DB: 0x9E,       #  OGONEK
-    0x2013: 0x96,       #  EN DASH
-    0x2014: 0x97,       #  EM DASH
-    0x2018: 0x91,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0x92,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0x82,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0x93,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0x94,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0x84,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0x86,       #  DAGGER
-    0x2021: 0x87,       #  DOUBLE DAGGER
-    0x2022: 0x95,       #  BULLET
-    0x2026: 0x85,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0x89,       #  PER MILLE SIGN
-    0x2039: 0x8B,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0x9B,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x20AC: 0x80,       #  EURO SIGN
-    0x2122: 0x99,       #  TRADE MARK SIGN
-}
diff --git a/Lib/encodings/cp1258.py b/Lib/encodings/cp1258.py
index d4d2271..bd1728c 100644
--- a/Lib/encodings/cp1258.py
+++ b/Lib/encodings/cp1258.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,254 +303,6 @@
     u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A1: 0xA1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A5: 0xA5,       #  YEN SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AA: 0xAA,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00AF: 0xAF,       #  MACRON
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00B9: 0xB9,       #  SUPERSCRIPT ONE
-    0x00BA: 0xBA,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xBC,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xBE,       #  VULGAR FRACTION THREE QUARTERS
-    0x00BF: 0xBF,       #  INVERTED QUESTION MARK
-    0x00C0: 0xC0,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0xC5,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xC6,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0xC7,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xC8,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xCA,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xCF,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D1: 0xD1,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00D8: 0xD8,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xD9,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xDB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0xE0,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0xE5,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xE6,       #  LATIN SMALL LETTER AE
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0xE8,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0xEA,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0xEF,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F1: 0xF1,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00F8: 0xF8,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0xF9,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FF: 0xFF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x0102: 0xC3,       #  LATIN CAPITAL LETTER A WITH BREVE
-    0x0103: 0xE3,       #  LATIN SMALL LETTER A WITH BREVE
-    0x0110: 0xD0,       #  LATIN CAPITAL LETTER D WITH STROKE
-    0x0111: 0xF0,       #  LATIN SMALL LETTER D WITH STROKE
-    0x0152: 0x8C,       #  LATIN CAPITAL LIGATURE OE
-    0x0153: 0x9C,       #  LATIN SMALL LIGATURE OE
-    0x0178: 0x9F,       #  LATIN CAPITAL LETTER Y WITH DIAERESIS
-    0x0192: 0x83,       #  LATIN SMALL LETTER F WITH HOOK
-    0x01A0: 0xD5,       #  LATIN CAPITAL LETTER O WITH HORN
-    0x01A1: 0xF5,       #  LATIN SMALL LETTER O WITH HORN
-    0x01AF: 0xDD,       #  LATIN CAPITAL LETTER U WITH HORN
-    0x01B0: 0xFD,       #  LATIN SMALL LETTER U WITH HORN
-    0x02C6: 0x88,       #  MODIFIER LETTER CIRCUMFLEX ACCENT
-    0x02DC: 0x98,       #  SMALL TILDE
-    0x0300: 0xCC,       #  COMBINING GRAVE ACCENT
-    0x0301: 0xEC,       #  COMBINING ACUTE ACCENT
-    0x0303: 0xDE,       #  COMBINING TILDE
-    0x0309: 0xD2,       #  COMBINING HOOK ABOVE
-    0x0323: 0xF2,       #  COMBINING DOT BELOW
-    0x2013: 0x96,       #  EN DASH
-    0x2014: 0x97,       #  EM DASH
-    0x2018: 0x91,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0x92,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0x82,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0x93,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0x94,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0x84,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0x86,       #  DAGGER
-    0x2021: 0x87,       #  DOUBLE DAGGER
-    0x2022: 0x95,       #  BULLET
-    0x2026: 0x85,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0x89,       #  PER MILLE SIGN
-    0x2039: 0x8B,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0x9B,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x20AB: 0xFE,       #  DONG SIGN
-    0x20AC: 0x80,       #  EURO SIGN
-    0x2122: 0x99,       #  TRADE MARK SIGN
-}
diff --git a/Lib/encodings/cp424.py b/Lib/encodings/cp424.py
index 966aecb..b83787e 100644
--- a/Lib/encodings/cp424.py
+++ b/Lib/encodings/cp424.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,225 +303,6 @@
     u'\x9f'     #  0xFF -> EIGHT ONES
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x37,       #  END OF TRANSMISSION
-    0x0005: 0x2D,       #  ENQUIRY
-    0x0006: 0x2E,       #  ACKNOWLEDGE
-    0x0007: 0x2F,       #  BELL
-    0x0008: 0x16,       #  BACKSPACE
-    0x0009: 0x05,       #  HORIZONTAL TABULATION
-    0x000A: 0x25,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x3C,       #  DEVICE CONTROL FOUR
-    0x0015: 0x3D,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x32,       #  SYNCHRONOUS IDLE
-    0x0017: 0x26,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x3F,       #  SUBSTITUTE
-    0x001B: 0x27,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x40,       #  SPACE
-    0x0021: 0x5A,       #  EXCLAMATION MARK
-    0x0022: 0x7F,       #  QUOTATION MARK
-    0x0023: 0x7B,       #  NUMBER SIGN
-    0x0024: 0x5B,       #  DOLLAR SIGN
-    0x0025: 0x6C,       #  PERCENT SIGN
-    0x0026: 0x50,       #  AMPERSAND
-    0x0027: 0x7D,       #  APOSTROPHE
-    0x0028: 0x4D,       #  LEFT PARENTHESIS
-    0x0029: 0x5D,       #  RIGHT PARENTHESIS
-    0x002A: 0x5C,       #  ASTERISK
-    0x002B: 0x4E,       #  PLUS SIGN
-    0x002C: 0x6B,       #  COMMA
-    0x002D: 0x60,       #  HYPHEN-MINUS
-    0x002E: 0x4B,       #  FULL STOP
-    0x002F: 0x61,       #  SOLIDUS
-    0x0030: 0xF0,       #  DIGIT ZERO
-    0x0031: 0xF1,       #  DIGIT ONE
-    0x0032: 0xF2,       #  DIGIT TWO
-    0x0033: 0xF3,       #  DIGIT THREE
-    0x0034: 0xF4,       #  DIGIT FOUR
-    0x0035: 0xF5,       #  DIGIT FIVE
-    0x0036: 0xF6,       #  DIGIT SIX
-    0x0037: 0xF7,       #  DIGIT SEVEN
-    0x0038: 0xF8,       #  DIGIT EIGHT
-    0x0039: 0xF9,       #  DIGIT NINE
-    0x003A: 0x7A,       #  COLON
-    0x003B: 0x5E,       #  SEMICOLON
-    0x003C: 0x4C,       #  LESS-THAN SIGN
-    0x003D: 0x7E,       #  EQUALS SIGN
-    0x003E: 0x6E,       #  GREATER-THAN SIGN
-    0x003F: 0x6F,       #  QUESTION MARK
-    0x0040: 0x7C,       #  COMMERCIAL AT
-    0x0041: 0xC1,       #  LATIN CAPITAL LETTER A
-    0x0042: 0xC2,       #  LATIN CAPITAL LETTER B
-    0x0043: 0xC3,       #  LATIN CAPITAL LETTER C
-    0x0044: 0xC4,       #  LATIN CAPITAL LETTER D
-    0x0045: 0xC5,       #  LATIN CAPITAL LETTER E
-    0x0046: 0xC6,       #  LATIN CAPITAL LETTER F
-    0x0047: 0xC7,       #  LATIN CAPITAL LETTER G
-    0x0048: 0xC8,       #  LATIN CAPITAL LETTER H
-    0x0049: 0xC9,       #  LATIN CAPITAL LETTER I
-    0x004A: 0xD1,       #  LATIN CAPITAL LETTER J
-    0x004B: 0xD2,       #  LATIN CAPITAL LETTER K
-    0x004C: 0xD3,       #  LATIN CAPITAL LETTER L
-    0x004D: 0xD4,       #  LATIN CAPITAL LETTER M
-    0x004E: 0xD5,       #  LATIN CAPITAL LETTER N
-    0x004F: 0xD6,       #  LATIN CAPITAL LETTER O
-    0x0050: 0xD7,       #  LATIN CAPITAL LETTER P
-    0x0051: 0xD8,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0xD9,       #  LATIN CAPITAL LETTER R
-    0x0053: 0xE2,       #  LATIN CAPITAL LETTER S
-    0x0054: 0xE3,       #  LATIN CAPITAL LETTER T
-    0x0055: 0xE4,       #  LATIN CAPITAL LETTER U
-    0x0056: 0xE5,       #  LATIN CAPITAL LETTER V
-    0x0057: 0xE6,       #  LATIN CAPITAL LETTER W
-    0x0058: 0xE7,       #  LATIN CAPITAL LETTER X
-    0x0059: 0xE8,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0xE9,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0xBA,       #  LEFT SQUARE BRACKET
-    0x005C: 0xE0,       #  REVERSE SOLIDUS
-    0x005D: 0xBB,       #  RIGHT SQUARE BRACKET
-    0x005E: 0xB0,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x6D,       #  LOW LINE
-    0x0060: 0x79,       #  GRAVE ACCENT
-    0x0061: 0x81,       #  LATIN SMALL LETTER A
-    0x0062: 0x82,       #  LATIN SMALL LETTER B
-    0x0063: 0x83,       #  LATIN SMALL LETTER C
-    0x0064: 0x84,       #  LATIN SMALL LETTER D
-    0x0065: 0x85,       #  LATIN SMALL LETTER E
-    0x0066: 0x86,       #  LATIN SMALL LETTER F
-    0x0067: 0x87,       #  LATIN SMALL LETTER G
-    0x0068: 0x88,       #  LATIN SMALL LETTER H
-    0x0069: 0x89,       #  LATIN SMALL LETTER I
-    0x006A: 0x91,       #  LATIN SMALL LETTER J
-    0x006B: 0x92,       #  LATIN SMALL LETTER K
-    0x006C: 0x93,       #  LATIN SMALL LETTER L
-    0x006D: 0x94,       #  LATIN SMALL LETTER M
-    0x006E: 0x95,       #  LATIN SMALL LETTER N
-    0x006F: 0x96,       #  LATIN SMALL LETTER O
-    0x0070: 0x97,       #  LATIN SMALL LETTER P
-    0x0071: 0x98,       #  LATIN SMALL LETTER Q
-    0x0072: 0x99,       #  LATIN SMALL LETTER R
-    0x0073: 0xA2,       #  LATIN SMALL LETTER S
-    0x0074: 0xA3,       #  LATIN SMALL LETTER T
-    0x0075: 0xA4,       #  LATIN SMALL LETTER U
-    0x0076: 0xA5,       #  LATIN SMALL LETTER V
-    0x0077: 0xA6,       #  LATIN SMALL LETTER W
-    0x0078: 0xA7,       #  LATIN SMALL LETTER X
-    0x0079: 0xA8,       #  LATIN SMALL LETTER Y
-    0x007A: 0xA9,       #  LATIN SMALL LETTER Z
-    0x007B: 0xC0,       #  LEFT CURLY BRACKET
-    0x007C: 0x4F,       #  VERTICAL LINE
-    0x007D: 0xD0,       #  RIGHT CURLY BRACKET
-    0x007E: 0xA1,       #  TILDE
-    0x007F: 0x07,       #  DELETE
-    0x0080: 0x20,       #  DIGIT SELECT
-    0x0081: 0x21,       #  START OF SIGNIFICANCE
-    0x0082: 0x22,       #  FIELD SEPARATOR
-    0x0083: 0x23,       #  WORD UNDERSCORE
-    0x0084: 0x24,       #  BYPASS OR INHIBIT PRESENTATION
-    0x0085: 0x15,       #  NEW LINE
-    0x0086: 0x06,       #  REQUIRED NEW LINE
-    0x0087: 0x17,       #  PROGRAM OPERATOR COMMUNICATION
-    0x0088: 0x28,       #  SET ATTRIBUTE
-    0x0089: 0x29,       #  START FIELD EXTENDED
-    0x008A: 0x2A,       #  SET MODE OR SWITCH
-    0x008B: 0x2B,       #  CONTROL SEQUENCE PREFIX
-    0x008C: 0x2C,       #  MODIFY FIELD ATTRIBUTE
-    0x008D: 0x09,       #  SUPERSCRIPT
-    0x008E: 0x0A,       #  REPEAT
-    0x008F: 0x1B,       #  CUSTOMER USE ONE
-    0x0090: 0x30,       #  <reserved>
-    0x0091: 0x31,       #  <reserved>
-    0x0092: 0x1A,       #  UNIT BACK SPACE
-    0x0093: 0x33,       #  INDEX RETURN
-    0x0094: 0x34,       #  PRESENTATION POSITION
-    0x0095: 0x35,       #  TRANSPARENT
-    0x0096: 0x36,       #  NUMERIC BACKSPACE
-    0x0097: 0x08,       #  GRAPHIC ESCAPE
-    0x0098: 0x38,       #  SUBSCRIPT
-    0x0099: 0x39,       #  INDENT TABULATION
-    0x009A: 0x3A,       #  REVERSE FORM FEED
-    0x009B: 0x3B,       #  CUSTOMER USE THREE
-    0x009C: 0x04,       #  SELECT
-    0x009D: 0x14,       #  RESTORE/ENABLE PRESENTATION
-    0x009E: 0x3E,       #  <reserved>
-    0x009F: 0xFF,       #  EIGHT ONES
-    0x00A0: 0x74,       #  NO-BREAK SPACE
-    0x00A2: 0x4A,       #  CENT SIGN
-    0x00A3: 0xB1,       #  POUND SIGN
-    0x00A4: 0x9F,       #  CURRENCY SIGN
-    0x00A5: 0xB2,       #  YEN SIGN
-    0x00A6: 0x6A,       #  BROKEN BAR
-    0x00A7: 0xB5,       #  SECTION SIGN
-    0x00A8: 0xBD,       #  DIAERESIS
-    0x00A9: 0xB4,       #  COPYRIGHT SIGN
-    0x00AB: 0x8A,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0x5F,       #  NOT SIGN
-    0x00AD: 0xCA,       #  SOFT HYPHEN
-    0x00AE: 0xAF,       #  REGISTERED SIGN
-    0x00AF: 0xBC,       #  MACRON
-    0x00B0: 0x90,       #  DEGREE SIGN
-    0x00B1: 0x8F,       #  PLUS-MINUS SIGN
-    0x00B2: 0xEA,       #  SUPERSCRIPT TWO
-    0x00B3: 0xFA,       #  SUPERSCRIPT THREE
-    0x00B4: 0xBE,       #  ACUTE ACCENT
-    0x00B5: 0xA0,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB3,       #  MIDDLE DOT
-    0x00B8: 0x9D,       #  CEDILLA
-    0x00B9: 0xDA,       #  SUPERSCRIPT ONE
-    0x00BB: 0x8B,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xB7,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xB8,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xB9,       #  VULGAR FRACTION THREE QUARTERS
-    0x00D7: 0xBF,       #  MULTIPLICATION SIGN
-    0x00F7: 0xE1,       #  DIVISION SIGN
-    0x05D0: 0x41,       #  HEBREW LETTER ALEF
-    0x05D1: 0x42,       #  HEBREW LETTER BET
-    0x05D2: 0x43,       #  HEBREW LETTER GIMEL
-    0x05D3: 0x44,       #  HEBREW LETTER DALET
-    0x05D4: 0x45,       #  HEBREW LETTER HE
-    0x05D5: 0x46,       #  HEBREW LETTER VAV
-    0x05D6: 0x47,       #  HEBREW LETTER ZAYIN
-    0x05D7: 0x48,       #  HEBREW LETTER HET
-    0x05D8: 0x49,       #  HEBREW LETTER TET
-    0x05D9: 0x51,       #  HEBREW LETTER YOD
-    0x05DA: 0x52,       #  HEBREW LETTER FINAL KAF
-    0x05DB: 0x53,       #  HEBREW LETTER KAF
-    0x05DC: 0x54,       #  HEBREW LETTER LAMED
-    0x05DD: 0x55,       #  HEBREW LETTER FINAL MEM
-    0x05DE: 0x56,       #  HEBREW LETTER MEM
-    0x05DF: 0x57,       #  HEBREW LETTER FINAL NUN
-    0x05E0: 0x58,       #  HEBREW LETTER NUN
-    0x05E1: 0x59,       #  HEBREW LETTER SAMEKH
-    0x05E2: 0x62,       #  HEBREW LETTER AYIN
-    0x05E3: 0x63,       #  HEBREW LETTER FINAL PE
-    0x05E4: 0x64,       #  HEBREW LETTER PE
-    0x05E5: 0x65,       #  HEBREW LETTER FINAL TSADI
-    0x05E6: 0x66,       #  HEBREW LETTER TSADI
-    0x05E7: 0x67,       #  HEBREW LETTER QOF
-    0x05E8: 0x68,       #  HEBREW LETTER RESH
-    0x05E9: 0x69,       #  HEBREW LETTER SHIN
-    0x05EA: 0x71,       #  HEBREW LETTER TAV
-    0x2017: 0x78,       #  DOUBLE LOW LINE
-}
diff --git a/Lib/encodings/cp500.py b/Lib/encodings/cp500.py
index 83af090..0f48437 100644
--- a/Lib/encodings/cp500.py
+++ b/Lib/encodings/cp500.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\x9f'     #  0xFF -> CONTROL
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x37,       #  END OF TRANSMISSION
-    0x0005: 0x2D,       #  ENQUIRY
-    0x0006: 0x2E,       #  ACKNOWLEDGE
-    0x0007: 0x2F,       #  BELL
-    0x0008: 0x16,       #  BACKSPACE
-    0x0009: 0x05,       #  HORIZONTAL TABULATION
-    0x000A: 0x25,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x3C,       #  DEVICE CONTROL FOUR
-    0x0015: 0x3D,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x32,       #  SYNCHRONOUS IDLE
-    0x0017: 0x26,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x3F,       #  SUBSTITUTE
-    0x001B: 0x27,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x40,       #  SPACE
-    0x0021: 0x4F,       #  EXCLAMATION MARK
-    0x0022: 0x7F,       #  QUOTATION MARK
-    0x0023: 0x7B,       #  NUMBER SIGN
-    0x0024: 0x5B,       #  DOLLAR SIGN
-    0x0025: 0x6C,       #  PERCENT SIGN
-    0x0026: 0x50,       #  AMPERSAND
-    0x0027: 0x7D,       #  APOSTROPHE
-    0x0028: 0x4D,       #  LEFT PARENTHESIS
-    0x0029: 0x5D,       #  RIGHT PARENTHESIS
-    0x002A: 0x5C,       #  ASTERISK
-    0x002B: 0x4E,       #  PLUS SIGN
-    0x002C: 0x6B,       #  COMMA
-    0x002D: 0x60,       #  HYPHEN-MINUS
-    0x002E: 0x4B,       #  FULL STOP
-    0x002F: 0x61,       #  SOLIDUS
-    0x0030: 0xF0,       #  DIGIT ZERO
-    0x0031: 0xF1,       #  DIGIT ONE
-    0x0032: 0xF2,       #  DIGIT TWO
-    0x0033: 0xF3,       #  DIGIT THREE
-    0x0034: 0xF4,       #  DIGIT FOUR
-    0x0035: 0xF5,       #  DIGIT FIVE
-    0x0036: 0xF6,       #  DIGIT SIX
-    0x0037: 0xF7,       #  DIGIT SEVEN
-    0x0038: 0xF8,       #  DIGIT EIGHT
-    0x0039: 0xF9,       #  DIGIT NINE
-    0x003A: 0x7A,       #  COLON
-    0x003B: 0x5E,       #  SEMICOLON
-    0x003C: 0x4C,       #  LESS-THAN SIGN
-    0x003D: 0x7E,       #  EQUALS SIGN
-    0x003E: 0x6E,       #  GREATER-THAN SIGN
-    0x003F: 0x6F,       #  QUESTION MARK
-    0x0040: 0x7C,       #  COMMERCIAL AT
-    0x0041: 0xC1,       #  LATIN CAPITAL LETTER A
-    0x0042: 0xC2,       #  LATIN CAPITAL LETTER B
-    0x0043: 0xC3,       #  LATIN CAPITAL LETTER C
-    0x0044: 0xC4,       #  LATIN CAPITAL LETTER D
-    0x0045: 0xC5,       #  LATIN CAPITAL LETTER E
-    0x0046: 0xC6,       #  LATIN CAPITAL LETTER F
-    0x0047: 0xC7,       #  LATIN CAPITAL LETTER G
-    0x0048: 0xC8,       #  LATIN CAPITAL LETTER H
-    0x0049: 0xC9,       #  LATIN CAPITAL LETTER I
-    0x004A: 0xD1,       #  LATIN CAPITAL LETTER J
-    0x004B: 0xD2,       #  LATIN CAPITAL LETTER K
-    0x004C: 0xD3,       #  LATIN CAPITAL LETTER L
-    0x004D: 0xD4,       #  LATIN CAPITAL LETTER M
-    0x004E: 0xD5,       #  LATIN CAPITAL LETTER N
-    0x004F: 0xD6,       #  LATIN CAPITAL LETTER O
-    0x0050: 0xD7,       #  LATIN CAPITAL LETTER P
-    0x0051: 0xD8,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0xD9,       #  LATIN CAPITAL LETTER R
-    0x0053: 0xE2,       #  LATIN CAPITAL LETTER S
-    0x0054: 0xE3,       #  LATIN CAPITAL LETTER T
-    0x0055: 0xE4,       #  LATIN CAPITAL LETTER U
-    0x0056: 0xE5,       #  LATIN CAPITAL LETTER V
-    0x0057: 0xE6,       #  LATIN CAPITAL LETTER W
-    0x0058: 0xE7,       #  LATIN CAPITAL LETTER X
-    0x0059: 0xE8,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0xE9,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x4A,       #  LEFT SQUARE BRACKET
-    0x005C: 0xE0,       #  REVERSE SOLIDUS
-    0x005D: 0x5A,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5F,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x6D,       #  LOW LINE
-    0x0060: 0x79,       #  GRAVE ACCENT
-    0x0061: 0x81,       #  LATIN SMALL LETTER A
-    0x0062: 0x82,       #  LATIN SMALL LETTER B
-    0x0063: 0x83,       #  LATIN SMALL LETTER C
-    0x0064: 0x84,       #  LATIN SMALL LETTER D
-    0x0065: 0x85,       #  LATIN SMALL LETTER E
-    0x0066: 0x86,       #  LATIN SMALL LETTER F
-    0x0067: 0x87,       #  LATIN SMALL LETTER G
-    0x0068: 0x88,       #  LATIN SMALL LETTER H
-    0x0069: 0x89,       #  LATIN SMALL LETTER I
-    0x006A: 0x91,       #  LATIN SMALL LETTER J
-    0x006B: 0x92,       #  LATIN SMALL LETTER K
-    0x006C: 0x93,       #  LATIN SMALL LETTER L
-    0x006D: 0x94,       #  LATIN SMALL LETTER M
-    0x006E: 0x95,       #  LATIN SMALL LETTER N
-    0x006F: 0x96,       #  LATIN SMALL LETTER O
-    0x0070: 0x97,       #  LATIN SMALL LETTER P
-    0x0071: 0x98,       #  LATIN SMALL LETTER Q
-    0x0072: 0x99,       #  LATIN SMALL LETTER R
-    0x0073: 0xA2,       #  LATIN SMALL LETTER S
-    0x0074: 0xA3,       #  LATIN SMALL LETTER T
-    0x0075: 0xA4,       #  LATIN SMALL LETTER U
-    0x0076: 0xA5,       #  LATIN SMALL LETTER V
-    0x0077: 0xA6,       #  LATIN SMALL LETTER W
-    0x0078: 0xA7,       #  LATIN SMALL LETTER X
-    0x0079: 0xA8,       #  LATIN SMALL LETTER Y
-    0x007A: 0xA9,       #  LATIN SMALL LETTER Z
-    0x007B: 0xC0,       #  LEFT CURLY BRACKET
-    0x007C: 0xBB,       #  VERTICAL LINE
-    0x007D: 0xD0,       #  RIGHT CURLY BRACKET
-    0x007E: 0xA1,       #  TILDE
-    0x007F: 0x07,       #  DELETE
-    0x0080: 0x20,       #  CONTROL
-    0x0081: 0x21,       #  CONTROL
-    0x0082: 0x22,       #  CONTROL
-    0x0083: 0x23,       #  CONTROL
-    0x0084: 0x24,       #  CONTROL
-    0x0085: 0x15,       #  CONTROL
-    0x0086: 0x06,       #  CONTROL
-    0x0087: 0x17,       #  CONTROL
-    0x0088: 0x28,       #  CONTROL
-    0x0089: 0x29,       #  CONTROL
-    0x008A: 0x2A,       #  CONTROL
-    0x008B: 0x2B,       #  CONTROL
-    0x008C: 0x2C,       #  CONTROL
-    0x008D: 0x09,       #  CONTROL
-    0x008E: 0x0A,       #  CONTROL
-    0x008F: 0x1B,       #  CONTROL
-    0x0090: 0x30,       #  CONTROL
-    0x0091: 0x31,       #  CONTROL
-    0x0092: 0x1A,       #  CONTROL
-    0x0093: 0x33,       #  CONTROL
-    0x0094: 0x34,       #  CONTROL
-    0x0095: 0x35,       #  CONTROL
-    0x0096: 0x36,       #  CONTROL
-    0x0097: 0x08,       #  CONTROL
-    0x0098: 0x38,       #  CONTROL
-    0x0099: 0x39,       #  CONTROL
-    0x009A: 0x3A,       #  CONTROL
-    0x009B: 0x3B,       #  CONTROL
-    0x009C: 0x04,       #  CONTROL
-    0x009D: 0x14,       #  CONTROL
-    0x009E: 0x3E,       #  CONTROL
-    0x009F: 0xFF,       #  CONTROL
-    0x00A0: 0x41,       #  NO-BREAK SPACE
-    0x00A1: 0xAA,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xB0,       #  CENT SIGN
-    0x00A3: 0xB1,       #  POUND SIGN
-    0x00A4: 0x9F,       #  CURRENCY SIGN
-    0x00A5: 0xB2,       #  YEN SIGN
-    0x00A6: 0x6A,       #  BROKEN BAR
-    0x00A7: 0xB5,       #  SECTION SIGN
-    0x00A8: 0xBD,       #  DIAERESIS
-    0x00A9: 0xB4,       #  COPYRIGHT SIGN
-    0x00AA: 0x9A,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0x8A,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xBA,       #  NOT SIGN
-    0x00AD: 0xCA,       #  SOFT HYPHEN
-    0x00AE: 0xAF,       #  REGISTERED SIGN
-    0x00AF: 0xBC,       #  MACRON
-    0x00B0: 0x90,       #  DEGREE SIGN
-    0x00B1: 0x8F,       #  PLUS-MINUS SIGN
-    0x00B2: 0xEA,       #  SUPERSCRIPT TWO
-    0x00B3: 0xFA,       #  SUPERSCRIPT THREE
-    0x00B4: 0xBE,       #  ACUTE ACCENT
-    0x00B5: 0xA0,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB3,       #  MIDDLE DOT
-    0x00B8: 0x9D,       #  CEDILLA
-    0x00B9: 0xDA,       #  SUPERSCRIPT ONE
-    0x00BA: 0x9B,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0x8B,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xB7,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xB8,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xB9,       #  VULGAR FRACTION THREE QUARTERS
-    0x00BF: 0xAB,       #  INVERTED QUESTION MARK
-    0x00C0: 0x64,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0x65,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0x62,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0x66,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0x63,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0x67,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0x9E,       #  LATIN CAPITAL LIGATURE AE
-    0x00C7: 0x68,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0x74,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0x71,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0x72,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0x73,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0x78,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0x75,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0x76,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0x77,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D0: 0xAC,       #  LATIN CAPITAL LETTER ETH (ICELANDIC)
-    0x00D1: 0x69,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xED,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xEE,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xEB,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xEF,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xEC,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xBF,       #  MULTIPLICATION SIGN
-    0x00D8: 0x80,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xFD,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xFE,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xFB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xFC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xAD,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DE: 0xAE,       #  LATIN CAPITAL LETTER THORN (ICELANDIC)
-    0x00DF: 0x59,       #  LATIN SMALL LETTER SHARP S (GERMAN)
-    0x00E0: 0x44,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0x45,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0x42,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0x46,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0x43,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0x47,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0x9C,       #  LATIN SMALL LIGATURE AE
-    0x00E7: 0x48,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0x54,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0x51,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0x52,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0x53,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0x58,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0x55,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0x56,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0x57,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F0: 0x8C,       #  LATIN SMALL LETTER ETH (ICELANDIC)
-    0x00F1: 0x49,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0xCD,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xCE,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xCB,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xCF,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xCC,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xE1,       #  DIVISION SIGN
-    0x00F8: 0x70,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0xDD,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xDE,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xDB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xDC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0x8D,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x00FE: 0x8E,       #  LATIN SMALL LETTER THORN (ICELANDIC)
-    0x00FF: 0xDF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-}
diff --git a/Lib/encodings/cp856.py b/Lib/encodings/cp856.py
index c72fcad..ef017e4 100644
--- a/Lib/encodings/cp856.py
+++ b/Lib/encodings/cp856.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,222 +303,6 @@
     u'\xa0'     #  0xFF -> NO-BREAK SPACE
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0xFF,       #  NO-BREAK SPACE
-    0x00A2: 0xBD,       #  CENT SIGN
-    0x00A3: 0x9C,       #  POUND SIGN
-    0x00A4: 0xCF,       #  CURRENCY SIGN
-    0x00A5: 0xBE,       #  YEN SIGN
-    0x00A6: 0xDD,       #  BROKEN BAR
-    0x00A7: 0xF5,       #  SECTION SIGN
-    0x00A8: 0xF9,       #  DIAERESIS
-    0x00A9: 0xB8,       #  COPYRIGHT SIGN
-    0x00AB: 0xAE,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAA,       #  NOT SIGN
-    0x00AD: 0xF0,       #  SOFT HYPHEN
-    0x00AE: 0xA9,       #  REGISTERED SIGN
-    0x00AF: 0xEE,       #  MACRON
-    0x00B0: 0xF8,       #  DEGREE SIGN
-    0x00B1: 0xF1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xFD,       #  SUPERSCRIPT TWO
-    0x00B3: 0xFC,       #  SUPERSCRIPT THREE
-    0x00B4: 0xEF,       #  ACUTE ACCENT
-    0x00B5: 0xE6,       #  MICRO SIGN
-    0x00B6: 0xF4,       #  PILCROW SIGN
-    0x00B7: 0xFA,       #  MIDDLE DOT
-    0x00B8: 0xF7,       #  CEDILLA
-    0x00B9: 0xFB,       #  SUPERSCRIPT ONE
-    0x00BB: 0xAF,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xAC,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xAB,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xF3,       #  VULGAR FRACTION THREE QUARTERS
-    0x00D7: 0x9E,       #  MULTIPLICATION SIGN
-    0x00F7: 0xF6,       #  DIVISION SIGN
-    0x05D0: 0x80,       #  HEBREW LETTER ALEF
-    0x05D1: 0x81,       #  HEBREW LETTER BET
-    0x05D2: 0x82,       #  HEBREW LETTER GIMEL
-    0x05D3: 0x83,       #  HEBREW LETTER DALET
-    0x05D4: 0x84,       #  HEBREW LETTER HE
-    0x05D5: 0x85,       #  HEBREW LETTER VAV
-    0x05D6: 0x86,       #  HEBREW LETTER ZAYIN
-    0x05D7: 0x87,       #  HEBREW LETTER HET
-    0x05D8: 0x88,       #  HEBREW LETTER TET
-    0x05D9: 0x89,       #  HEBREW LETTER YOD
-    0x05DA: 0x8A,       #  HEBREW LETTER FINAL KAF
-    0x05DB: 0x8B,       #  HEBREW LETTER KAF
-    0x05DC: 0x8C,       #  HEBREW LETTER LAMED
-    0x05DD: 0x8D,       #  HEBREW LETTER FINAL MEM
-    0x05DE: 0x8E,       #  HEBREW LETTER MEM
-    0x05DF: 0x8F,       #  HEBREW LETTER FINAL NUN
-    0x05E0: 0x90,       #  HEBREW LETTER NUN
-    0x05E1: 0x91,       #  HEBREW LETTER SAMEKH
-    0x05E2: 0x92,       #  HEBREW LETTER AYIN
-    0x05E3: 0x93,       #  HEBREW LETTER FINAL PE
-    0x05E4: 0x94,       #  HEBREW LETTER PE
-    0x05E5: 0x95,       #  HEBREW LETTER FINAL TSADI
-    0x05E6: 0x96,       #  HEBREW LETTER TSADI
-    0x05E7: 0x97,       #  HEBREW LETTER QOF
-    0x05E8: 0x98,       #  HEBREW LETTER RESH
-    0x05E9: 0x99,       #  HEBREW LETTER SHIN
-    0x05EA: 0x9A,       #  HEBREW LETTER TAV
-    0x2017: 0xF2,       #  DOUBLE LOW LINE
-    0x2500: 0xC4,       #  BOX DRAWINGS LIGHT HORIZONTAL
-    0x2502: 0xB3,       #  BOX DRAWINGS LIGHT VERTICAL
-    0x250C: 0xDA,       #  BOX DRAWINGS LIGHT DOWN AND RIGHT
-    0x2510: 0xBF,       #  BOX DRAWINGS LIGHT DOWN AND LEFT
-    0x2514: 0xC0,       #  BOX DRAWINGS LIGHT UP AND RIGHT
-    0x2518: 0xD9,       #  BOX DRAWINGS LIGHT UP AND LEFT
-    0x251C: 0xC3,       #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    0x2524: 0xB4,       #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    0x252C: 0xC2,       #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    0x2534: 0xC1,       #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    0x253C: 0xC5,       #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    0x2550: 0xCD,       #  BOX DRAWINGS DOUBLE HORIZONTAL
-    0x2551: 0xBA,       #  BOX DRAWINGS DOUBLE VERTICAL
-    0x2554: 0xC9,       #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    0x2557: 0xBB,       #  BOX DRAWINGS DOUBLE DOWN AND LEFT
-    0x255A: 0xC8,       #  BOX DRAWINGS DOUBLE UP AND RIGHT
-    0x255D: 0xBC,       #  BOX DRAWINGS DOUBLE UP AND LEFT
-    0x2560: 0xCC,       #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    0x2563: 0xB9,       #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    0x2566: 0xCB,       #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    0x2569: 0xCA,       #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    0x256C: 0xCE,       #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    0x2580: 0xDF,       #  UPPER HALF BLOCK
-    0x2584: 0xDC,       #  LOWER HALF BLOCK
-    0x2588: 0xDB,       #  FULL BLOCK
-    0x2591: 0xB0,       #  LIGHT SHADE
-    0x2592: 0xB1,       #  MEDIUM SHADE
-    0x2593: 0xB2,       #  DARK SHADE
-    0x25A0: 0xFE,       #  BLACK SQUARE
-}
diff --git a/Lib/encodings/cp874.py b/Lib/encodings/cp874.py
index 591e8aa..684d3bf 100644
--- a/Lib/encodings/cp874.py
+++ b/Lib/encodings/cp874.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,232 +303,6 @@
     u'\ufffe'   #  0xFF -> UNDEFINED
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x0E01: 0xA1,       #  THAI CHARACTER KO KAI
-    0x0E02: 0xA2,       #  THAI CHARACTER KHO KHAI
-    0x0E03: 0xA3,       #  THAI CHARACTER KHO KHUAT
-    0x0E04: 0xA4,       #  THAI CHARACTER KHO KHWAI
-    0x0E05: 0xA5,       #  THAI CHARACTER KHO KHON
-    0x0E06: 0xA6,       #  THAI CHARACTER KHO RAKHANG
-    0x0E07: 0xA7,       #  THAI CHARACTER NGO NGU
-    0x0E08: 0xA8,       #  THAI CHARACTER CHO CHAN
-    0x0E09: 0xA9,       #  THAI CHARACTER CHO CHING
-    0x0E0A: 0xAA,       #  THAI CHARACTER CHO CHANG
-    0x0E0B: 0xAB,       #  THAI CHARACTER SO SO
-    0x0E0C: 0xAC,       #  THAI CHARACTER CHO CHOE
-    0x0E0D: 0xAD,       #  THAI CHARACTER YO YING
-    0x0E0E: 0xAE,       #  THAI CHARACTER DO CHADA
-    0x0E0F: 0xAF,       #  THAI CHARACTER TO PATAK
-    0x0E10: 0xB0,       #  THAI CHARACTER THO THAN
-    0x0E11: 0xB1,       #  THAI CHARACTER THO NANGMONTHO
-    0x0E12: 0xB2,       #  THAI CHARACTER THO PHUTHAO
-    0x0E13: 0xB3,       #  THAI CHARACTER NO NEN
-    0x0E14: 0xB4,       #  THAI CHARACTER DO DEK
-    0x0E15: 0xB5,       #  THAI CHARACTER TO TAO
-    0x0E16: 0xB6,       #  THAI CHARACTER THO THUNG
-    0x0E17: 0xB7,       #  THAI CHARACTER THO THAHAN
-    0x0E18: 0xB8,       #  THAI CHARACTER THO THONG
-    0x0E19: 0xB9,       #  THAI CHARACTER NO NU
-    0x0E1A: 0xBA,       #  THAI CHARACTER BO BAIMAI
-    0x0E1B: 0xBB,       #  THAI CHARACTER PO PLA
-    0x0E1C: 0xBC,       #  THAI CHARACTER PHO PHUNG
-    0x0E1D: 0xBD,       #  THAI CHARACTER FO FA
-    0x0E1E: 0xBE,       #  THAI CHARACTER PHO PHAN
-    0x0E1F: 0xBF,       #  THAI CHARACTER FO FAN
-    0x0E20: 0xC0,       #  THAI CHARACTER PHO SAMPHAO
-    0x0E21: 0xC1,       #  THAI CHARACTER MO MA
-    0x0E22: 0xC2,       #  THAI CHARACTER YO YAK
-    0x0E23: 0xC3,       #  THAI CHARACTER RO RUA
-    0x0E24: 0xC4,       #  THAI CHARACTER RU
-    0x0E25: 0xC5,       #  THAI CHARACTER LO LING
-    0x0E26: 0xC6,       #  THAI CHARACTER LU
-    0x0E27: 0xC7,       #  THAI CHARACTER WO WAEN
-    0x0E28: 0xC8,       #  THAI CHARACTER SO SALA
-    0x0E29: 0xC9,       #  THAI CHARACTER SO RUSI
-    0x0E2A: 0xCA,       #  THAI CHARACTER SO SUA
-    0x0E2B: 0xCB,       #  THAI CHARACTER HO HIP
-    0x0E2C: 0xCC,       #  THAI CHARACTER LO CHULA
-    0x0E2D: 0xCD,       #  THAI CHARACTER O ANG
-    0x0E2E: 0xCE,       #  THAI CHARACTER HO NOKHUK
-    0x0E2F: 0xCF,       #  THAI CHARACTER PAIYANNOI
-    0x0E30: 0xD0,       #  THAI CHARACTER SARA A
-    0x0E31: 0xD1,       #  THAI CHARACTER MAI HAN-AKAT
-    0x0E32: 0xD2,       #  THAI CHARACTER SARA AA
-    0x0E33: 0xD3,       #  THAI CHARACTER SARA AM
-    0x0E34: 0xD4,       #  THAI CHARACTER SARA I
-    0x0E35: 0xD5,       #  THAI CHARACTER SARA II
-    0x0E36: 0xD6,       #  THAI CHARACTER SARA UE
-    0x0E37: 0xD7,       #  THAI CHARACTER SARA UEE
-    0x0E38: 0xD8,       #  THAI CHARACTER SARA U
-    0x0E39: 0xD9,       #  THAI CHARACTER SARA UU
-    0x0E3A: 0xDA,       #  THAI CHARACTER PHINTHU
-    0x0E3F: 0xDF,       #  THAI CURRENCY SYMBOL BAHT
-    0x0E40: 0xE0,       #  THAI CHARACTER SARA E
-    0x0E41: 0xE1,       #  THAI CHARACTER SARA AE
-    0x0E42: 0xE2,       #  THAI CHARACTER SARA O
-    0x0E43: 0xE3,       #  THAI CHARACTER SARA AI MAIMUAN
-    0x0E44: 0xE4,       #  THAI CHARACTER SARA AI MAIMALAI
-    0x0E45: 0xE5,       #  THAI CHARACTER LAKKHANGYAO
-    0x0E46: 0xE6,       #  THAI CHARACTER MAIYAMOK
-    0x0E47: 0xE7,       #  THAI CHARACTER MAITAIKHU
-    0x0E48: 0xE8,       #  THAI CHARACTER MAI EK
-    0x0E49: 0xE9,       #  THAI CHARACTER MAI THO
-    0x0E4A: 0xEA,       #  THAI CHARACTER MAI TRI
-    0x0E4B: 0xEB,       #  THAI CHARACTER MAI CHATTAWA
-    0x0E4C: 0xEC,       #  THAI CHARACTER THANTHAKHAT
-    0x0E4D: 0xED,       #  THAI CHARACTER NIKHAHIT
-    0x0E4E: 0xEE,       #  THAI CHARACTER YAMAKKAN
-    0x0E4F: 0xEF,       #  THAI CHARACTER FONGMAN
-    0x0E50: 0xF0,       #  THAI DIGIT ZERO
-    0x0E51: 0xF1,       #  THAI DIGIT ONE
-    0x0E52: 0xF2,       #  THAI DIGIT TWO
-    0x0E53: 0xF3,       #  THAI DIGIT THREE
-    0x0E54: 0xF4,       #  THAI DIGIT FOUR
-    0x0E55: 0xF5,       #  THAI DIGIT FIVE
-    0x0E56: 0xF6,       #  THAI DIGIT SIX
-    0x0E57: 0xF7,       #  THAI DIGIT SEVEN
-    0x0E58: 0xF8,       #  THAI DIGIT EIGHT
-    0x0E59: 0xF9,       #  THAI DIGIT NINE
-    0x0E5A: 0xFA,       #  THAI CHARACTER ANGKHANKHU
-    0x0E5B: 0xFB,       #  THAI CHARACTER KHOMUT
-    0x2013: 0x96,       #  EN DASH
-    0x2014: 0x97,       #  EM DASH
-    0x2018: 0x91,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0x92,       #  RIGHT SINGLE QUOTATION MARK
-    0x201C: 0x93,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0x94,       #  RIGHT DOUBLE QUOTATION MARK
-    0x2022: 0x95,       #  BULLET
-    0x2026: 0x85,       #  HORIZONTAL ELLIPSIS
-    0x20AC: 0x80,       #  EURO SIGN
-}
diff --git a/Lib/encodings/cp875.py b/Lib/encodings/cp875.py
index 879d5a4..07e1c08 100644
--- a/Lib/encodings/cp875.py
+++ b/Lib/encodings/cp875.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,257 +303,6 @@
     u'\x9f'     #  0xFF -> CONTROL
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x37,       #  END OF TRANSMISSION
-    0x0005: 0x2D,       #  ENQUIRY
-    0x0006: 0x2E,       #  ACKNOWLEDGE
-    0x0007: 0x2F,       #  BELL
-    0x0008: 0x16,       #  BACKSPACE
-    0x0009: 0x05,       #  HORIZONTAL TABULATION
-    0x000A: 0x25,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x3C,       #  DEVICE CONTROL FOUR
-    0x0015: 0x3D,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x32,       #  SYNCHRONOUS IDLE
-    0x0017: 0x26,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: None,       #  SUBSTITUTE
-    0x001B: 0x27,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x40,       #  SPACE
-    0x0021: 0x4F,       #  EXCLAMATION MARK
-    0x0022: 0x7F,       #  QUOTATION MARK
-    0x0023: 0x7B,       #  NUMBER SIGN
-    0x0024: 0x5B,       #  DOLLAR SIGN
-    0x0025: 0x6C,       #  PERCENT SIGN
-    0x0026: 0x50,       #  AMPERSAND
-    0x0027: 0x7D,       #  APOSTROPHE
-    0x0028: 0x4D,       #  LEFT PARENTHESIS
-    0x0029: 0x5D,       #  RIGHT PARENTHESIS
-    0x002A: 0x5C,       #  ASTERISK
-    0x002B: 0x4E,       #  PLUS SIGN
-    0x002C: 0x6B,       #  COMMA
-    0x002D: 0x60,       #  HYPHEN-MINUS
-    0x002E: 0x4B,       #  FULL STOP
-    0x002F: 0x61,       #  SOLIDUS
-    0x0030: 0xF0,       #  DIGIT ZERO
-    0x0031: 0xF1,       #  DIGIT ONE
-    0x0032: 0xF2,       #  DIGIT TWO
-    0x0033: 0xF3,       #  DIGIT THREE
-    0x0034: 0xF4,       #  DIGIT FOUR
-    0x0035: 0xF5,       #  DIGIT FIVE
-    0x0036: 0xF6,       #  DIGIT SIX
-    0x0037: 0xF7,       #  DIGIT SEVEN
-    0x0038: 0xF8,       #  DIGIT EIGHT
-    0x0039: 0xF9,       #  DIGIT NINE
-    0x003A: 0x7A,       #  COLON
-    0x003B: 0x5E,       #  SEMICOLON
-    0x003C: 0x4C,       #  LESS-THAN SIGN
-    0x003D: 0x7E,       #  EQUALS SIGN
-    0x003E: 0x6E,       #  GREATER-THAN SIGN
-    0x003F: 0x6F,       #  QUESTION MARK
-    0x0040: 0x7C,       #  COMMERCIAL AT
-    0x0041: 0xC1,       #  LATIN CAPITAL LETTER A
-    0x0042: 0xC2,       #  LATIN CAPITAL LETTER B
-    0x0043: 0xC3,       #  LATIN CAPITAL LETTER C
-    0x0044: 0xC4,       #  LATIN CAPITAL LETTER D
-    0x0045: 0xC5,       #  LATIN CAPITAL LETTER E
-    0x0046: 0xC6,       #  LATIN CAPITAL LETTER F
-    0x0047: 0xC7,       #  LATIN CAPITAL LETTER G
-    0x0048: 0xC8,       #  LATIN CAPITAL LETTER H
-    0x0049: 0xC9,       #  LATIN CAPITAL LETTER I
-    0x004A: 0xD1,       #  LATIN CAPITAL LETTER J
-    0x004B: 0xD2,       #  LATIN CAPITAL LETTER K
-    0x004C: 0xD3,       #  LATIN CAPITAL LETTER L
-    0x004D: 0xD4,       #  LATIN CAPITAL LETTER M
-    0x004E: 0xD5,       #  LATIN CAPITAL LETTER N
-    0x004F: 0xD6,       #  LATIN CAPITAL LETTER O
-    0x0050: 0xD7,       #  LATIN CAPITAL LETTER P
-    0x0051: 0xD8,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0xD9,       #  LATIN CAPITAL LETTER R
-    0x0053: 0xE2,       #  LATIN CAPITAL LETTER S
-    0x0054: 0xE3,       #  LATIN CAPITAL LETTER T
-    0x0055: 0xE4,       #  LATIN CAPITAL LETTER U
-    0x0056: 0xE5,       #  LATIN CAPITAL LETTER V
-    0x0057: 0xE6,       #  LATIN CAPITAL LETTER W
-    0x0058: 0xE7,       #  LATIN CAPITAL LETTER X
-    0x0059: 0xE8,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0xE9,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x4A,       #  LEFT SQUARE BRACKET
-    0x005C: 0xE0,       #  REVERSE SOLIDUS
-    0x005D: 0x5A,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5F,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x6D,       #  LOW LINE
-    0x0060: 0x79,       #  GRAVE ACCENT
-    0x0061: 0x81,       #  LATIN SMALL LETTER A
-    0x0062: 0x82,       #  LATIN SMALL LETTER B
-    0x0063: 0x83,       #  LATIN SMALL LETTER C
-    0x0064: 0x84,       #  LATIN SMALL LETTER D
-    0x0065: 0x85,       #  LATIN SMALL LETTER E
-    0x0066: 0x86,       #  LATIN SMALL LETTER F
-    0x0067: 0x87,       #  LATIN SMALL LETTER G
-    0x0068: 0x88,       #  LATIN SMALL LETTER H
-    0x0069: 0x89,       #  LATIN SMALL LETTER I
-    0x006A: 0x91,       #  LATIN SMALL LETTER J
-    0x006B: 0x92,       #  LATIN SMALL LETTER K
-    0x006C: 0x93,       #  LATIN SMALL LETTER L
-    0x006D: 0x94,       #  LATIN SMALL LETTER M
-    0x006E: 0x95,       #  LATIN SMALL LETTER N
-    0x006F: 0x96,       #  LATIN SMALL LETTER O
-    0x0070: 0x97,       #  LATIN SMALL LETTER P
-    0x0071: 0x98,       #  LATIN SMALL LETTER Q
-    0x0072: 0x99,       #  LATIN SMALL LETTER R
-    0x0073: 0xA2,       #  LATIN SMALL LETTER S
-    0x0074: 0xA3,       #  LATIN SMALL LETTER T
-    0x0075: 0xA4,       #  LATIN SMALL LETTER U
-    0x0076: 0xA5,       #  LATIN SMALL LETTER V
-    0x0077: 0xA6,       #  LATIN SMALL LETTER W
-    0x0078: 0xA7,       #  LATIN SMALL LETTER X
-    0x0079: 0xA8,       #  LATIN SMALL LETTER Y
-    0x007A: 0xA9,       #  LATIN SMALL LETTER Z
-    0x007B: 0xC0,       #  LEFT CURLY BRACKET
-    0x007C: 0x6A,       #  VERTICAL LINE
-    0x007D: 0xD0,       #  RIGHT CURLY BRACKET
-    0x007E: 0xA1,       #  TILDE
-    0x007F: 0x07,       #  DELETE
-    0x0080: 0x20,       #  CONTROL
-    0x0081: 0x21,       #  CONTROL
-    0x0082: 0x22,       #  CONTROL
-    0x0083: 0x23,       #  CONTROL
-    0x0084: 0x24,       #  CONTROL
-    0x0085: 0x15,       #  CONTROL
-    0x0086: 0x06,       #  CONTROL
-    0x0087: 0x17,       #  CONTROL
-    0x0088: 0x28,       #  CONTROL
-    0x0089: 0x29,       #  CONTROL
-    0x008A: 0x2A,       #  CONTROL
-    0x008B: 0x2B,       #  CONTROL
-    0x008C: 0x2C,       #  CONTROL
-    0x008D: 0x09,       #  CONTROL
-    0x008E: 0x0A,       #  CONTROL
-    0x008F: 0x1B,       #  CONTROL
-    0x0090: 0x30,       #  CONTROL
-    0x0091: 0x31,       #  CONTROL
-    0x0092: 0x1A,       #  CONTROL
-    0x0093: 0x33,       #  CONTROL
-    0x0094: 0x34,       #  CONTROL
-    0x0095: 0x35,       #  CONTROL
-    0x0096: 0x36,       #  CONTROL
-    0x0097: 0x08,       #  CONTROL
-    0x0098: 0x38,       #  CONTROL
-    0x0099: 0x39,       #  CONTROL
-    0x009A: 0x3A,       #  CONTROL
-    0x009B: 0x3B,       #  CONTROL
-    0x009C: 0x04,       #  CONTROL
-    0x009D: 0x14,       #  CONTROL
-    0x009E: 0x3E,       #  CONTROL
-    0x009F: 0xFF,       #  CONTROL
-    0x00A0: 0x74,       #  NO-BREAK SPACE
-    0x00A3: 0xB0,       #  POUND SIGN
-    0x00A6: 0xDF,       #  BROKEN BAR
-    0x00A7: 0xEB,       #  SECTION SIGN
-    0x00A8: 0x70,       #  DIAERESIS
-    0x00A9: 0xFB,       #  COPYRIGHT SIGN
-    0x00AB: 0xEE,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xEF,       #  NOT SIGN
-    0x00AD: 0xCA,       #  SOFT HYPHEN
-    0x00B0: 0x90,       #  DEGREE SIGN
-    0x00B1: 0xDA,       #  PLUS-MINUS SIGN
-    0x00B2: 0xEA,       #  SUPERSCRIPT TWO
-    0x00B3: 0xFA,       #  SUPERSCRIPT THREE
-    0x00B4: 0xA0,       #  ACUTE ACCENT
-    0x00BB: 0xFE,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BD: 0xDB,       #  VULGAR FRACTION ONE HALF
-    0x0385: 0x80,       #  GREEK DIALYTIKA TONOS
-    0x0386: 0x71,       #  GREEK CAPITAL LETTER ALPHA WITH TONOS
-    0x0387: 0xDD,       #  GREEK ANO TELEIA
-    0x0388: 0x72,       #  GREEK CAPITAL LETTER EPSILON WITH TONOS
-    0x0389: 0x73,       #  GREEK CAPITAL LETTER ETA WITH TONOS
-    0x038A: 0x75,       #  GREEK CAPITAL LETTER IOTA WITH TONOS
-    0x038C: 0x76,       #  GREEK CAPITAL LETTER OMICRON WITH TONOS
-    0x038E: 0x77,       #  GREEK CAPITAL LETTER UPSILON WITH TONOS
-    0x038F: 0x78,       #  GREEK CAPITAL LETTER OMEGA WITH TONOS
-    0x0390: 0xCC,       #  GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-    0x0391: 0x41,       #  GREEK CAPITAL LETTER ALPHA
-    0x0392: 0x42,       #  GREEK CAPITAL LETTER BETA
-    0x0393: 0x43,       #  GREEK CAPITAL LETTER GAMMA
-    0x0394: 0x44,       #  GREEK CAPITAL LETTER DELTA
-    0x0395: 0x45,       #  GREEK CAPITAL LETTER EPSILON
-    0x0396: 0x46,       #  GREEK CAPITAL LETTER ZETA
-    0x0397: 0x47,       #  GREEK CAPITAL LETTER ETA
-    0x0398: 0x48,       #  GREEK CAPITAL LETTER THETA
-    0x0399: 0x49,       #  GREEK CAPITAL LETTER IOTA
-    0x039A: 0x51,       #  GREEK CAPITAL LETTER KAPPA
-    0x039B: 0x52,       #  GREEK CAPITAL LETTER LAMDA
-    0x039C: 0x53,       #  GREEK CAPITAL LETTER MU
-    0x039D: 0x54,       #  GREEK CAPITAL LETTER NU
-    0x039E: 0x55,       #  GREEK CAPITAL LETTER XI
-    0x039F: 0x56,       #  GREEK CAPITAL LETTER OMICRON
-    0x03A0: 0x57,       #  GREEK CAPITAL LETTER PI
-    0x03A1: 0x58,       #  GREEK CAPITAL LETTER RHO
-    0x03A3: 0x59,       #  GREEK CAPITAL LETTER SIGMA
-    0x03A4: 0x62,       #  GREEK CAPITAL LETTER TAU
-    0x03A5: 0x63,       #  GREEK CAPITAL LETTER UPSILON
-    0x03A6: 0x64,       #  GREEK CAPITAL LETTER PHI
-    0x03A7: 0x65,       #  GREEK CAPITAL LETTER CHI
-    0x03A8: 0x66,       #  GREEK CAPITAL LETTER PSI
-    0x03A9: 0x67,       #  GREEK CAPITAL LETTER OMEGA
-    0x03AA: 0x68,       #  GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-    0x03AB: 0x69,       #  GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-    0x03AC: 0xB1,       #  GREEK SMALL LETTER ALPHA WITH TONOS
-    0x03AD: 0xB2,       #  GREEK SMALL LETTER EPSILON WITH TONOS
-    0x03AE: 0xB3,       #  GREEK SMALL LETTER ETA WITH TONOS
-    0x03AF: 0xB5,       #  GREEK SMALL LETTER IOTA WITH TONOS
-    0x03B0: 0xCD,       #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-    0x03B1: 0x8A,       #  GREEK SMALL LETTER ALPHA
-    0x03B2: 0x8B,       #  GREEK SMALL LETTER BETA
-    0x03B3: 0x8C,       #  GREEK SMALL LETTER GAMMA
-    0x03B4: 0x8D,       #  GREEK SMALL LETTER DELTA
-    0x03B5: 0x8E,       #  GREEK SMALL LETTER EPSILON
-    0x03B6: 0x8F,       #  GREEK SMALL LETTER ZETA
-    0x03B7: 0x9A,       #  GREEK SMALL LETTER ETA
-    0x03B8: 0x9B,       #  GREEK SMALL LETTER THETA
-    0x03B9: 0x9C,       #  GREEK SMALL LETTER IOTA
-    0x03BA: 0x9D,       #  GREEK SMALL LETTER KAPPA
-    0x03BB: 0x9E,       #  GREEK SMALL LETTER LAMDA
-    0x03BC: 0x9F,       #  GREEK SMALL LETTER MU
-    0x03BD: 0xAA,       #  GREEK SMALL LETTER NU
-    0x03BE: 0xAB,       #  GREEK SMALL LETTER XI
-    0x03BF: 0xAC,       #  GREEK SMALL LETTER OMICRON
-    0x03C0: 0xAD,       #  GREEK SMALL LETTER PI
-    0x03C1: 0xAE,       #  GREEK SMALL LETTER RHO
-    0x03C2: 0xBA,       #  GREEK SMALL LETTER FINAL SIGMA
-    0x03C3: 0xAF,       #  GREEK SMALL LETTER SIGMA
-    0x03C4: 0xBB,       #  GREEK SMALL LETTER TAU
-    0x03C5: 0xBC,       #  GREEK SMALL LETTER UPSILON
-    0x03C6: 0xBD,       #  GREEK SMALL LETTER PHI
-    0x03C7: 0xBE,       #  GREEK SMALL LETTER CHI
-    0x03C8: 0xBF,       #  GREEK SMALL LETTER PSI
-    0x03C9: 0xCB,       #  GREEK SMALL LETTER OMEGA
-    0x03CA: 0xB4,       #  GREEK SMALL LETTER IOTA WITH DIALYTIKA
-    0x03CB: 0xB8,       #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-    0x03CC: 0xB6,       #  GREEK SMALL LETTER OMICRON WITH TONOS
-    0x03CD: 0xB7,       #  GREEK SMALL LETTER UPSILON WITH TONOS
-    0x03CE: 0xB9,       #  GREEK SMALL LETTER OMEGA WITH TONOS
-    0x2015: 0xCF,       #  HORIZONTAL BAR
-    0x2018: 0xCE,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0xDE,       #  RIGHT SINGLE QUOTATION MARK
-}
diff --git a/Lib/encodings/iso8859_1.py b/Lib/encodings/iso8859_1.py
index b985585..cef5930 100644
--- a/Lib/encodings/iso8859_1.py
+++ b/Lib/encodings/iso8859_1.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A1: 0xA1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A5: 0xA5,       #  YEN SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AA: 0xAA,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00AF: 0xAF,       #  MACRON
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00B9: 0xB9,       #  SUPERSCRIPT ONE
-    0x00BA: 0xBA,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xBC,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xBE,       #  VULGAR FRACTION THREE QUARTERS
-    0x00BF: 0xBF,       #  INVERTED QUESTION MARK
-    0x00C0: 0xC0,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xC3,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0xC5,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xC6,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0xC7,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xC8,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xCA,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xCC,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xCF,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D0: 0xD0,       #  LATIN CAPITAL LETTER ETH (Icelandic)
-    0x00D1: 0xD1,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xD2,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xD5,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00D8: 0xD8,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xD9,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xDB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xDD,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DE: 0xDE,       #  LATIN CAPITAL LETTER THORN (Icelandic)
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S (German)
-    0x00E0: 0xE0,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0xE3,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0xE5,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xE6,       #  LATIN SMALL LETTER AE
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0xE8,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0xEA,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0xEC,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0xEF,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F0: 0xF0,       #  LATIN SMALL LETTER ETH (Icelandic)
-    0x00F1: 0xF1,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0xF2,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xF5,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00F8: 0xF8,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0xF9,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0xFD,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x00FE: 0xFE,       #  LATIN SMALL LETTER THORN (Icelandic)
-    0x00FF: 0xFF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-}
diff --git a/Lib/encodings/iso8859_10.py b/Lib/encodings/iso8859_10.py
index 8588430..9c972b8 100644
--- a/Lib/encodings/iso8859_10.py
+++ b/Lib/encodings/iso8859_10.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u0138'   #  0xFF -> LATIN SMALL LETTER KRA
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xC3,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0xC5,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xC6,       #  LATIN CAPITAL LETTER AE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xCF,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D0: 0xD0,       #  LATIN CAPITAL LETTER ETH (Icelandic)
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xD5,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D8: 0xD8,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xDB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xDD,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DE: 0xDE,       #  LATIN CAPITAL LETTER THORN (Icelandic)
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S (German)
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0xE3,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0xE5,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xE6,       #  LATIN SMALL LETTER AE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0xEF,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F0: 0xF0,       #  LATIN SMALL LETTER ETH (Icelandic)
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xF5,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F8: 0xF8,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0xFD,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x00FE: 0xFE,       #  LATIN SMALL LETTER THORN (Icelandic)
-    0x0100: 0xC0,       #  LATIN CAPITAL LETTER A WITH MACRON
-    0x0101: 0xE0,       #  LATIN SMALL LETTER A WITH MACRON
-    0x0104: 0xA1,       #  LATIN CAPITAL LETTER A WITH OGONEK
-    0x0105: 0xB1,       #  LATIN SMALL LETTER A WITH OGONEK
-    0x010C: 0xC8,       #  LATIN CAPITAL LETTER C WITH CARON
-    0x010D: 0xE8,       #  LATIN SMALL LETTER C WITH CARON
-    0x0110: 0xA9,       #  LATIN CAPITAL LETTER D WITH STROKE
-    0x0111: 0xB9,       #  LATIN SMALL LETTER D WITH STROKE
-    0x0112: 0xA2,       #  LATIN CAPITAL LETTER E WITH MACRON
-    0x0113: 0xB2,       #  LATIN SMALL LETTER E WITH MACRON
-    0x0116: 0xCC,       #  LATIN CAPITAL LETTER E WITH DOT ABOVE
-    0x0117: 0xEC,       #  LATIN SMALL LETTER E WITH DOT ABOVE
-    0x0118: 0xCA,       #  LATIN CAPITAL LETTER E WITH OGONEK
-    0x0119: 0xEA,       #  LATIN SMALL LETTER E WITH OGONEK
-    0x0122: 0xA3,       #  LATIN CAPITAL LETTER G WITH CEDILLA
-    0x0123: 0xB3,       #  LATIN SMALL LETTER G WITH CEDILLA
-    0x0128: 0xA5,       #  LATIN CAPITAL LETTER I WITH TILDE
-    0x0129: 0xB5,       #  LATIN SMALL LETTER I WITH TILDE
-    0x012A: 0xA4,       #  LATIN CAPITAL LETTER I WITH MACRON
-    0x012B: 0xB4,       #  LATIN SMALL LETTER I WITH MACRON
-    0x012E: 0xC7,       #  LATIN CAPITAL LETTER I WITH OGONEK
-    0x012F: 0xE7,       #  LATIN SMALL LETTER I WITH OGONEK
-    0x0136: 0xA6,       #  LATIN CAPITAL LETTER K WITH CEDILLA
-    0x0137: 0xB6,       #  LATIN SMALL LETTER K WITH CEDILLA
-    0x0138: 0xFF,       #  LATIN SMALL LETTER KRA
-    0x013B: 0xA8,       #  LATIN CAPITAL LETTER L WITH CEDILLA
-    0x013C: 0xB8,       #  LATIN SMALL LETTER L WITH CEDILLA
-    0x0145: 0xD1,       #  LATIN CAPITAL LETTER N WITH CEDILLA
-    0x0146: 0xF1,       #  LATIN SMALL LETTER N WITH CEDILLA
-    0x014A: 0xAF,       #  LATIN CAPITAL LETTER ENG
-    0x014B: 0xBF,       #  LATIN SMALL LETTER ENG
-    0x014C: 0xD2,       #  LATIN CAPITAL LETTER O WITH MACRON
-    0x014D: 0xF2,       #  LATIN SMALL LETTER O WITH MACRON
-    0x0160: 0xAA,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0xBA,       #  LATIN SMALL LETTER S WITH CARON
-    0x0166: 0xAB,       #  LATIN CAPITAL LETTER T WITH STROKE
-    0x0167: 0xBB,       #  LATIN SMALL LETTER T WITH STROKE
-    0x0168: 0xD7,       #  LATIN CAPITAL LETTER U WITH TILDE
-    0x0169: 0xF7,       #  LATIN SMALL LETTER U WITH TILDE
-    0x016A: 0xAE,       #  LATIN CAPITAL LETTER U WITH MACRON
-    0x016B: 0xBE,       #  LATIN SMALL LETTER U WITH MACRON
-    0x0172: 0xD9,       #  LATIN CAPITAL LETTER U WITH OGONEK
-    0x0173: 0xF9,       #  LATIN SMALL LETTER U WITH OGONEK
-    0x017D: 0xAC,       #  LATIN CAPITAL LETTER Z WITH CARON
-    0x017E: 0xBC,       #  LATIN SMALL LETTER Z WITH CARON
-    0x2015: 0xBD,       #  HORIZONTAL BAR
-}
diff --git a/Lib/encodings/iso8859_11.py b/Lib/encodings/iso8859_11.py
index fffe692..7688224 100644
--- a/Lib/encodings/iso8859_11.py
+++ b/Lib/encodings/iso8859_11.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,255 +303,6 @@
     u'\ufffe'
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x0E01: 0xA1,       #  THAI CHARACTER KO KAI
-    0x0E02: 0xA2,       #  THAI CHARACTER KHO KHAI
-    0x0E03: 0xA3,       #  THAI CHARACTER KHO KHUAT
-    0x0E04: 0xA4,       #  THAI CHARACTER KHO KHWAI
-    0x0E05: 0xA5,       #  THAI CHARACTER KHO KHON
-    0x0E06: 0xA6,       #  THAI CHARACTER KHO RAKHANG
-    0x0E07: 0xA7,       #  THAI CHARACTER NGO NGU
-    0x0E08: 0xA8,       #  THAI CHARACTER CHO CHAN
-    0x0E09: 0xA9,       #  THAI CHARACTER CHO CHING
-    0x0E0A: 0xAA,       #  THAI CHARACTER CHO CHANG
-    0x0E0B: 0xAB,       #  THAI CHARACTER SO SO
-    0x0E0C: 0xAC,       #  THAI CHARACTER CHO CHOE
-    0x0E0D: 0xAD,       #  THAI CHARACTER YO YING
-    0x0E0E: 0xAE,       #  THAI CHARACTER DO CHADA
-    0x0E0F: 0xAF,       #  THAI CHARACTER TO PATAK
-    0x0E10: 0xB0,       #  THAI CHARACTER THO THAN
-    0x0E11: 0xB1,       #  THAI CHARACTER THO NANGMONTHO
-    0x0E12: 0xB2,       #  THAI CHARACTER THO PHUTHAO
-    0x0E13: 0xB3,       #  THAI CHARACTER NO NEN
-    0x0E14: 0xB4,       #  THAI CHARACTER DO DEK
-    0x0E15: 0xB5,       #  THAI CHARACTER TO TAO
-    0x0E16: 0xB6,       #  THAI CHARACTER THO THUNG
-    0x0E17: 0xB7,       #  THAI CHARACTER THO THAHAN
-    0x0E18: 0xB8,       #  THAI CHARACTER THO THONG
-    0x0E19: 0xB9,       #  THAI CHARACTER NO NU
-    0x0E1A: 0xBA,       #  THAI CHARACTER BO BAIMAI
-    0x0E1B: 0xBB,       #  THAI CHARACTER PO PLA
-    0x0E1C: 0xBC,       #  THAI CHARACTER PHO PHUNG
-    0x0E1D: 0xBD,       #  THAI CHARACTER FO FA
-    0x0E1E: 0xBE,       #  THAI CHARACTER PHO PHAN
-    0x0E1F: 0xBF,       #  THAI CHARACTER FO FAN
-    0x0E20: 0xC0,       #  THAI CHARACTER PHO SAMPHAO
-    0x0E21: 0xC1,       #  THAI CHARACTER MO MA
-    0x0E22: 0xC2,       #  THAI CHARACTER YO YAK
-    0x0E23: 0xC3,       #  THAI CHARACTER RO RUA
-    0x0E24: 0xC4,       #  THAI CHARACTER RU
-    0x0E25: 0xC5,       #  THAI CHARACTER LO LING
-    0x0E26: 0xC6,       #  THAI CHARACTER LU
-    0x0E27: 0xC7,       #  THAI CHARACTER WO WAEN
-    0x0E28: 0xC8,       #  THAI CHARACTER SO SALA
-    0x0E29: 0xC9,       #  THAI CHARACTER SO RUSI
-    0x0E2A: 0xCA,       #  THAI CHARACTER SO SUA
-    0x0E2B: 0xCB,       #  THAI CHARACTER HO HIP
-    0x0E2C: 0xCC,       #  THAI CHARACTER LO CHULA
-    0x0E2D: 0xCD,       #  THAI CHARACTER O ANG
-    0x0E2E: 0xCE,       #  THAI CHARACTER HO NOKHUK
-    0x0E2F: 0xCF,       #  THAI CHARACTER PAIYANNOI
-    0x0E30: 0xD0,       #  THAI CHARACTER SARA A
-    0x0E31: 0xD1,       #  THAI CHARACTER MAI HAN-AKAT
-    0x0E32: 0xD2,       #  THAI CHARACTER SARA AA
-    0x0E33: 0xD3,       #  THAI CHARACTER SARA AM
-    0x0E34: 0xD4,       #  THAI CHARACTER SARA I
-    0x0E35: 0xD5,       #  THAI CHARACTER SARA II
-    0x0E36: 0xD6,       #  THAI CHARACTER SARA UE
-    0x0E37: 0xD7,       #  THAI CHARACTER SARA UEE
-    0x0E38: 0xD8,       #  THAI CHARACTER SARA U
-    0x0E39: 0xD9,       #  THAI CHARACTER SARA UU
-    0x0E3A: 0xDA,       #  THAI CHARACTER PHINTHU
-    0x0E3F: 0xDF,       #  THAI CURRENCY SYMBOL BAHT
-    0x0E40: 0xE0,       #  THAI CHARACTER SARA E
-    0x0E41: 0xE1,       #  THAI CHARACTER SARA AE
-    0x0E42: 0xE2,       #  THAI CHARACTER SARA O
-    0x0E43: 0xE3,       #  THAI CHARACTER SARA AI MAIMUAN
-    0x0E44: 0xE4,       #  THAI CHARACTER SARA AI MAIMALAI
-    0x0E45: 0xE5,       #  THAI CHARACTER LAKKHANGYAO
-    0x0E46: 0xE6,       #  THAI CHARACTER MAIYAMOK
-    0x0E47: 0xE7,       #  THAI CHARACTER MAITAIKHU
-    0x0E48: 0xE8,       #  THAI CHARACTER MAI EK
-    0x0E49: 0xE9,       #  THAI CHARACTER MAI THO
-    0x0E4A: 0xEA,       #  THAI CHARACTER MAI TRI
-    0x0E4B: 0xEB,       #  THAI CHARACTER MAI CHATTAWA
-    0x0E4C: 0xEC,       #  THAI CHARACTER THANTHAKHAT
-    0x0E4D: 0xED,       #  THAI CHARACTER NIKHAHIT
-    0x0E4E: 0xEE,       #  THAI CHARACTER YAMAKKAN
-    0x0E4F: 0xEF,       #  THAI CHARACTER FONGMAN
-    0x0E50: 0xF0,       #  THAI DIGIT ZERO
-    0x0E51: 0xF1,       #  THAI DIGIT ONE
-    0x0E52: 0xF2,       #  THAI DIGIT TWO
-    0x0E53: 0xF3,       #  THAI DIGIT THREE
-    0x0E54: 0xF4,       #  THAI DIGIT FOUR
-    0x0E55: 0xF5,       #  THAI DIGIT FIVE
-    0x0E56: 0xF6,       #  THAI DIGIT SIX
-    0x0E57: 0xF7,       #  THAI DIGIT SEVEN
-    0x0E58: 0xF8,       #  THAI DIGIT EIGHT
-    0x0E59: 0xF9,       #  THAI DIGIT NINE
-    0x0E5A: 0xFA,       #  THAI CHARACTER ANGKHANKHU
-    0x0E5B: 0xFB,       #  THAI CHARACTER KHOMUT
-}
diff --git a/Lib/encodings/iso8859_13.py b/Lib/encodings/iso8859_13.py
index a890580..571e14b 100644
--- a/Lib/encodings/iso8859_13.py
+++ b/Lib/encodings/iso8859_13.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u2019'   #  0xFF -> RIGHT SINGLE QUOTATION MARK
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B9: 0xB9,       #  SUPERSCRIPT ONE
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xBC,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xBE,       #  VULGAR FRACTION THREE QUARTERS
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0xC5,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xAF,       #  LATIN CAPITAL LETTER AE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D5: 0xD5,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00D8: 0xA8,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S (German)
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0xE5,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xBF,       #  LATIN SMALL LETTER AE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F5: 0xF5,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00F8: 0xB8,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x0100: 0xC2,       #  LATIN CAPITAL LETTER A WITH MACRON
-    0x0101: 0xE2,       #  LATIN SMALL LETTER A WITH MACRON
-    0x0104: 0xC0,       #  LATIN CAPITAL LETTER A WITH OGONEK
-    0x0105: 0xE0,       #  LATIN SMALL LETTER A WITH OGONEK
-    0x0106: 0xC3,       #  LATIN CAPITAL LETTER C WITH ACUTE
-    0x0107: 0xE3,       #  LATIN SMALL LETTER C WITH ACUTE
-    0x010C: 0xC8,       #  LATIN CAPITAL LETTER C WITH CARON
-    0x010D: 0xE8,       #  LATIN SMALL LETTER C WITH CARON
-    0x0112: 0xC7,       #  LATIN CAPITAL LETTER E WITH MACRON
-    0x0113: 0xE7,       #  LATIN SMALL LETTER E WITH MACRON
-    0x0116: 0xCB,       #  LATIN CAPITAL LETTER E WITH DOT ABOVE
-    0x0117: 0xEB,       #  LATIN SMALL LETTER E WITH DOT ABOVE
-    0x0118: 0xC6,       #  LATIN CAPITAL LETTER E WITH OGONEK
-    0x0119: 0xE6,       #  LATIN SMALL LETTER E WITH OGONEK
-    0x0122: 0xCC,       #  LATIN CAPITAL LETTER G WITH CEDILLA
-    0x0123: 0xEC,       #  LATIN SMALL LETTER G WITH CEDILLA
-    0x012A: 0xCE,       #  LATIN CAPITAL LETTER I WITH MACRON
-    0x012B: 0xEE,       #  LATIN SMALL LETTER I WITH MACRON
-    0x012E: 0xC1,       #  LATIN CAPITAL LETTER I WITH OGONEK
-    0x012F: 0xE1,       #  LATIN SMALL LETTER I WITH OGONEK
-    0x0136: 0xCD,       #  LATIN CAPITAL LETTER K WITH CEDILLA
-    0x0137: 0xED,       #  LATIN SMALL LETTER K WITH CEDILLA
-    0x013B: 0xCF,       #  LATIN CAPITAL LETTER L WITH CEDILLA
-    0x013C: 0xEF,       #  LATIN SMALL LETTER L WITH CEDILLA
-    0x0141: 0xD9,       #  LATIN CAPITAL LETTER L WITH STROKE
-    0x0142: 0xF9,       #  LATIN SMALL LETTER L WITH STROKE
-    0x0143: 0xD1,       #  LATIN CAPITAL LETTER N WITH ACUTE
-    0x0144: 0xF1,       #  LATIN SMALL LETTER N WITH ACUTE
-    0x0145: 0xD2,       #  LATIN CAPITAL LETTER N WITH CEDILLA
-    0x0146: 0xF2,       #  LATIN SMALL LETTER N WITH CEDILLA
-    0x014C: 0xD4,       #  LATIN CAPITAL LETTER O WITH MACRON
-    0x014D: 0xF4,       #  LATIN SMALL LETTER O WITH MACRON
-    0x0156: 0xAA,       #  LATIN CAPITAL LETTER R WITH CEDILLA
-    0x0157: 0xBA,       #  LATIN SMALL LETTER R WITH CEDILLA
-    0x015A: 0xDA,       #  LATIN CAPITAL LETTER S WITH ACUTE
-    0x015B: 0xFA,       #  LATIN SMALL LETTER S WITH ACUTE
-    0x0160: 0xD0,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0xF0,       #  LATIN SMALL LETTER S WITH CARON
-    0x016A: 0xDB,       #  LATIN CAPITAL LETTER U WITH MACRON
-    0x016B: 0xFB,       #  LATIN SMALL LETTER U WITH MACRON
-    0x0172: 0xD8,       #  LATIN CAPITAL LETTER U WITH OGONEK
-    0x0173: 0xF8,       #  LATIN SMALL LETTER U WITH OGONEK
-    0x0179: 0xCA,       #  LATIN CAPITAL LETTER Z WITH ACUTE
-    0x017A: 0xEA,       #  LATIN SMALL LETTER Z WITH ACUTE
-    0x017B: 0xDD,       #  LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    0x017C: 0xFD,       #  LATIN SMALL LETTER Z WITH DOT ABOVE
-    0x017D: 0xDE,       #  LATIN CAPITAL LETTER Z WITH CARON
-    0x017E: 0xFE,       #  LATIN SMALL LETTER Z WITH CARON
-    0x2019: 0xFF,       #  RIGHT SINGLE QUOTATION MARK
-    0x201C: 0xB4,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0xA1,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0xA5,       #  DOUBLE LOW-9 QUOTATION MARK
-}
diff --git a/Lib/encodings/iso8859_14.py b/Lib/encodings/iso8859_14.py
index afa458c..022063d 100644
--- a/Lib/encodings/iso8859_14.py
+++ b/Lib/encodings/iso8859_14.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00C0: 0xC0,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xC3,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0xC5,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xC6,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0xC7,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xC8,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xCA,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xCC,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xCF,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D1: 0xD1,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xD2,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xD5,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D8: 0xD8,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xD9,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xDB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xDD,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0xE0,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0xE3,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0xE5,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xE6,       #  LATIN SMALL LETTER AE
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0xE8,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0xEA,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0xEC,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0xEF,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F1: 0xF1,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0xF2,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xF5,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F8: 0xF8,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0xF9,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0xFD,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x00FF: 0xFF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x010A: 0xA4,       #  LATIN CAPITAL LETTER C WITH DOT ABOVE
-    0x010B: 0xA5,       #  LATIN SMALL LETTER C WITH DOT ABOVE
-    0x0120: 0xB2,       #  LATIN CAPITAL LETTER G WITH DOT ABOVE
-    0x0121: 0xB3,       #  LATIN SMALL LETTER G WITH DOT ABOVE
-    0x0174: 0xD0,       #  LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-    0x0175: 0xF0,       #  LATIN SMALL LETTER W WITH CIRCUMFLEX
-    0x0176: 0xDE,       #  LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-    0x0177: 0xFE,       #  LATIN SMALL LETTER Y WITH CIRCUMFLEX
-    0x0178: 0xAF,       #  LATIN CAPITAL LETTER Y WITH DIAERESIS
-    0x1E02: 0xA1,       #  LATIN CAPITAL LETTER B WITH DOT ABOVE
-    0x1E03: 0xA2,       #  LATIN SMALL LETTER B WITH DOT ABOVE
-    0x1E0A: 0xA6,       #  LATIN CAPITAL LETTER D WITH DOT ABOVE
-    0x1E0B: 0xAB,       #  LATIN SMALL LETTER D WITH DOT ABOVE
-    0x1E1E: 0xB0,       #  LATIN CAPITAL LETTER F WITH DOT ABOVE
-    0x1E1F: 0xB1,       #  LATIN SMALL LETTER F WITH DOT ABOVE
-    0x1E40: 0xB4,       #  LATIN CAPITAL LETTER M WITH DOT ABOVE
-    0x1E41: 0xB5,       #  LATIN SMALL LETTER M WITH DOT ABOVE
-    0x1E56: 0xB7,       #  LATIN CAPITAL LETTER P WITH DOT ABOVE
-    0x1E57: 0xB9,       #  LATIN SMALL LETTER P WITH DOT ABOVE
-    0x1E60: 0xBB,       #  LATIN CAPITAL LETTER S WITH DOT ABOVE
-    0x1E61: 0xBF,       #  LATIN SMALL LETTER S WITH DOT ABOVE
-    0x1E6A: 0xD7,       #  LATIN CAPITAL LETTER T WITH DOT ABOVE
-    0x1E6B: 0xF7,       #  LATIN SMALL LETTER T WITH DOT ABOVE
-    0x1E80: 0xA8,       #  LATIN CAPITAL LETTER W WITH GRAVE
-    0x1E81: 0xB8,       #  LATIN SMALL LETTER W WITH GRAVE
-    0x1E82: 0xAA,       #  LATIN CAPITAL LETTER W WITH ACUTE
-    0x1E83: 0xBA,       #  LATIN SMALL LETTER W WITH ACUTE
-    0x1E84: 0xBD,       #  LATIN CAPITAL LETTER W WITH DIAERESIS
-    0x1E85: 0xBE,       #  LATIN SMALL LETTER W WITH DIAERESIS
-    0x1EF2: 0xAC,       #  LATIN CAPITAL LETTER Y WITH GRAVE
-    0x1EF3: 0xBC,       #  LATIN SMALL LETTER Y WITH GRAVE
-}
diff --git a/Lib/encodings/iso8859_15.py b/Lib/encodings/iso8859_15.py
index 4a8334e..25deaf6 100644
--- a/Lib/encodings/iso8859_15.py
+++ b/Lib/encodings/iso8859_15.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A1: 0xA1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A5: 0xA5,       #  YEN SIGN
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AA: 0xAA,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00AF: 0xAF,       #  MACRON
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B9: 0xB9,       #  SUPERSCRIPT ONE
-    0x00BA: 0xBA,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BF: 0xBF,       #  INVERTED QUESTION MARK
-    0x00C0: 0xC0,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xC3,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0xC5,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xC6,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0xC7,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xC8,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xCA,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xCC,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xCF,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D0: 0xD0,       #  LATIN CAPITAL LETTER ETH
-    0x00D1: 0xD1,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xD2,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xD5,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00D8: 0xD8,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xD9,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xDB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xDD,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DE: 0xDE,       #  LATIN CAPITAL LETTER THORN
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0xE0,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0xE3,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0xE5,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xE6,       #  LATIN SMALL LETTER AE
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0xE8,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0xEA,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0xEC,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0xEF,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F0: 0xF0,       #  LATIN SMALL LETTER ETH
-    0x00F1: 0xF1,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0xF2,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xF5,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00F8: 0xF8,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0xF9,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0xFD,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x00FE: 0xFE,       #  LATIN SMALL LETTER THORN
-    0x00FF: 0xFF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x0152: 0xBC,       #  LATIN CAPITAL LIGATURE OE
-    0x0153: 0xBD,       #  LATIN SMALL LIGATURE OE
-    0x0160: 0xA6,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0xA8,       #  LATIN SMALL LETTER S WITH CARON
-    0x0178: 0xBE,       #  LATIN CAPITAL LETTER Y WITH DIAERESIS
-    0x017D: 0xB4,       #  LATIN CAPITAL LETTER Z WITH CARON
-    0x017E: 0xB8,       #  LATIN SMALL LETTER Z WITH CARON
-    0x20AC: 0xA4,       #  EURO SIGN
-}
diff --git a/Lib/encodings/iso8859_16.py b/Lib/encodings/iso8859_16.py
index aeebfb6..a4ed7f2 100644
--- a/Lib/encodings/iso8859_16.py
+++ b/Lib/encodings/iso8859_16.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00C0: 0xC0,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C6: 0xC6,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0xC7,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xC8,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xCA,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xCC,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xCF,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D2: 0xD2,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D9: 0xD9,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xDB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0xE0,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E6: 0xE6,       #  LATIN SMALL LETTER AE
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0xE8,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0xEA,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0xEC,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0xEF,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F2: 0xF2,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F9: 0xF9,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FF: 0xFF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x0102: 0xC3,       #  LATIN CAPITAL LETTER A WITH BREVE
-    0x0103: 0xE3,       #  LATIN SMALL LETTER A WITH BREVE
-    0x0104: 0xA1,       #  LATIN CAPITAL LETTER A WITH OGONEK
-    0x0105: 0xA2,       #  LATIN SMALL LETTER A WITH OGONEK
-    0x0106: 0xC5,       #  LATIN CAPITAL LETTER C WITH ACUTE
-    0x0107: 0xE5,       #  LATIN SMALL LETTER C WITH ACUTE
-    0x010C: 0xB2,       #  LATIN CAPITAL LETTER C WITH CARON
-    0x010D: 0xB9,       #  LATIN SMALL LETTER C WITH CARON
-    0x0110: 0xD0,       #  LATIN CAPITAL LETTER D WITH STROKE
-    0x0111: 0xF0,       #  LATIN SMALL LETTER D WITH STROKE
-    0x0118: 0xDD,       #  LATIN CAPITAL LETTER E WITH OGONEK
-    0x0119: 0xFD,       #  LATIN SMALL LETTER E WITH OGONEK
-    0x0141: 0xA3,       #  LATIN CAPITAL LETTER L WITH STROKE
-    0x0142: 0xB3,       #  LATIN SMALL LETTER L WITH STROKE
-    0x0143: 0xD1,       #  LATIN CAPITAL LETTER N WITH ACUTE
-    0x0144: 0xF1,       #  LATIN SMALL LETTER N WITH ACUTE
-    0x0150: 0xD5,       #  LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-    0x0151: 0xF5,       #  LATIN SMALL LETTER O WITH DOUBLE ACUTE
-    0x0152: 0xBC,       #  LATIN CAPITAL LIGATURE OE
-    0x0153: 0xBD,       #  LATIN SMALL LIGATURE OE
-    0x015A: 0xD7,       #  LATIN CAPITAL LETTER S WITH ACUTE
-    0x015B: 0xF7,       #  LATIN SMALL LETTER S WITH ACUTE
-    0x0160: 0xA6,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0xA8,       #  LATIN SMALL LETTER S WITH CARON
-    0x0170: 0xD8,       #  LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-    0x0171: 0xF8,       #  LATIN SMALL LETTER U WITH DOUBLE ACUTE
-    0x0178: 0xBE,       #  LATIN CAPITAL LETTER Y WITH DIAERESIS
-    0x0179: 0xAC,       #  LATIN CAPITAL LETTER Z WITH ACUTE
-    0x017A: 0xAE,       #  LATIN SMALL LETTER Z WITH ACUTE
-    0x017B: 0xAF,       #  LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    0x017C: 0xBF,       #  LATIN SMALL LETTER Z WITH DOT ABOVE
-    0x017D: 0xB4,       #  LATIN CAPITAL LETTER Z WITH CARON
-    0x017E: 0xB8,       #  LATIN SMALL LETTER Z WITH CARON
-    0x0218: 0xAA,       #  LATIN CAPITAL LETTER S WITH COMMA BELOW
-    0x0219: 0xBA,       #  LATIN SMALL LETTER S WITH COMMA BELOW
-    0x021A: 0xDE,       #  LATIN CAPITAL LETTER T WITH COMMA BELOW
-    0x021B: 0xFE,       #  LATIN SMALL LETTER T WITH COMMA BELOW
-    0x201D: 0xB5,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0xA5,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x20AC: 0xA4,       #  EURO SIGN
-}
diff --git a/Lib/encodings/iso8859_2.py b/Lib/encodings/iso8859_2.py
index 845f322..eb2bc97 100644
--- a/Lib/encodings/iso8859_2.py
+++ b/Lib/encodings/iso8859_2.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u02d9'   #  0xFF -> DOT ABOVE
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C7: 0xC7,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xDD,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0xFD,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x0102: 0xC3,       #  LATIN CAPITAL LETTER A WITH BREVE
-    0x0103: 0xE3,       #  LATIN SMALL LETTER A WITH BREVE
-    0x0104: 0xA1,       #  LATIN CAPITAL LETTER A WITH OGONEK
-    0x0105: 0xB1,       #  LATIN SMALL LETTER A WITH OGONEK
-    0x0106: 0xC6,       #  LATIN CAPITAL LETTER C WITH ACUTE
-    0x0107: 0xE6,       #  LATIN SMALL LETTER C WITH ACUTE
-    0x010C: 0xC8,       #  LATIN CAPITAL LETTER C WITH CARON
-    0x010D: 0xE8,       #  LATIN SMALL LETTER C WITH CARON
-    0x010E: 0xCF,       #  LATIN CAPITAL LETTER D WITH CARON
-    0x010F: 0xEF,       #  LATIN SMALL LETTER D WITH CARON
-    0x0110: 0xD0,       #  LATIN CAPITAL LETTER D WITH STROKE
-    0x0111: 0xF0,       #  LATIN SMALL LETTER D WITH STROKE
-    0x0118: 0xCA,       #  LATIN CAPITAL LETTER E WITH OGONEK
-    0x0119: 0xEA,       #  LATIN SMALL LETTER E WITH OGONEK
-    0x011A: 0xCC,       #  LATIN CAPITAL LETTER E WITH CARON
-    0x011B: 0xEC,       #  LATIN SMALL LETTER E WITH CARON
-    0x0139: 0xC5,       #  LATIN CAPITAL LETTER L WITH ACUTE
-    0x013A: 0xE5,       #  LATIN SMALL LETTER L WITH ACUTE
-    0x013D: 0xA5,       #  LATIN CAPITAL LETTER L WITH CARON
-    0x013E: 0xB5,       #  LATIN SMALL LETTER L WITH CARON
-    0x0141: 0xA3,       #  LATIN CAPITAL LETTER L WITH STROKE
-    0x0142: 0xB3,       #  LATIN SMALL LETTER L WITH STROKE
-    0x0143: 0xD1,       #  LATIN CAPITAL LETTER N WITH ACUTE
-    0x0144: 0xF1,       #  LATIN SMALL LETTER N WITH ACUTE
-    0x0147: 0xD2,       #  LATIN CAPITAL LETTER N WITH CARON
-    0x0148: 0xF2,       #  LATIN SMALL LETTER N WITH CARON
-    0x0150: 0xD5,       #  LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-    0x0151: 0xF5,       #  LATIN SMALL LETTER O WITH DOUBLE ACUTE
-    0x0154: 0xC0,       #  LATIN CAPITAL LETTER R WITH ACUTE
-    0x0155: 0xE0,       #  LATIN SMALL LETTER R WITH ACUTE
-    0x0158: 0xD8,       #  LATIN CAPITAL LETTER R WITH CARON
-    0x0159: 0xF8,       #  LATIN SMALL LETTER R WITH CARON
-    0x015A: 0xA6,       #  LATIN CAPITAL LETTER S WITH ACUTE
-    0x015B: 0xB6,       #  LATIN SMALL LETTER S WITH ACUTE
-    0x015E: 0xAA,       #  LATIN CAPITAL LETTER S WITH CEDILLA
-    0x015F: 0xBA,       #  LATIN SMALL LETTER S WITH CEDILLA
-    0x0160: 0xA9,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0xB9,       #  LATIN SMALL LETTER S WITH CARON
-    0x0162: 0xDE,       #  LATIN CAPITAL LETTER T WITH CEDILLA
-    0x0163: 0xFE,       #  LATIN SMALL LETTER T WITH CEDILLA
-    0x0164: 0xAB,       #  LATIN CAPITAL LETTER T WITH CARON
-    0x0165: 0xBB,       #  LATIN SMALL LETTER T WITH CARON
-    0x016E: 0xD9,       #  LATIN CAPITAL LETTER U WITH RING ABOVE
-    0x016F: 0xF9,       #  LATIN SMALL LETTER U WITH RING ABOVE
-    0x0170: 0xDB,       #  LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-    0x0171: 0xFB,       #  LATIN SMALL LETTER U WITH DOUBLE ACUTE
-    0x0179: 0xAC,       #  LATIN CAPITAL LETTER Z WITH ACUTE
-    0x017A: 0xBC,       #  LATIN SMALL LETTER Z WITH ACUTE
-    0x017B: 0xAF,       #  LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    0x017C: 0xBF,       #  LATIN SMALL LETTER Z WITH DOT ABOVE
-    0x017D: 0xAE,       #  LATIN CAPITAL LETTER Z WITH CARON
-    0x017E: 0xBE,       #  LATIN SMALL LETTER Z WITH CARON
-    0x02C7: 0xB7,       #  CARON
-    0x02D8: 0xA2,       #  BREVE
-    0x02D9: 0xFF,       #  DOT ABOVE
-    0x02DB: 0xB2,       #  OGONEK
-    0x02DD: 0xBD,       #  DOUBLE ACUTE ACCENT
-}
diff --git a/Lib/encodings/iso8859_3.py b/Lib/encodings/iso8859_3.py
index fbc8775..3922229 100644
--- a/Lib/encodings/iso8859_3.py
+++ b/Lib/encodings/iso8859_3.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,256 +303,6 @@
     u'\u02d9'   #  0xFF -> DOT ABOVE
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x00C0: 0xC0,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C7: 0xC7,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xC8,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xCA,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xCC,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xCF,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D1: 0xD1,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xD2,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00D9: 0xD9,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xDB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0xE0,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0xE8,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0xEA,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0xEC,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0xEF,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F1: 0xF1,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0xF2,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00F9: 0xF9,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x0108: 0xC6,       #  LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-    0x0109: 0xE6,       #  LATIN SMALL LETTER C WITH CIRCUMFLEX
-    0x010A: 0xC5,       #  LATIN CAPITAL LETTER C WITH DOT ABOVE
-    0x010B: 0xE5,       #  LATIN SMALL LETTER C WITH DOT ABOVE
-    0x011C: 0xD8,       #  LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-    0x011D: 0xF8,       #  LATIN SMALL LETTER G WITH CIRCUMFLEX
-    0x011E: 0xAB,       #  LATIN CAPITAL LETTER G WITH BREVE
-    0x011F: 0xBB,       #  LATIN SMALL LETTER G WITH BREVE
-    0x0120: 0xD5,       #  LATIN CAPITAL LETTER G WITH DOT ABOVE
-    0x0121: 0xF5,       #  LATIN SMALL LETTER G WITH DOT ABOVE
-    0x0124: 0xA6,       #  LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-    0x0125: 0xB6,       #  LATIN SMALL LETTER H WITH CIRCUMFLEX
-    0x0126: 0xA1,       #  LATIN CAPITAL LETTER H WITH STROKE
-    0x0127: 0xB1,       #  LATIN SMALL LETTER H WITH STROKE
-    0x0130: 0xA9,       #  LATIN CAPITAL LETTER I WITH DOT ABOVE
-    0x0131: 0xB9,       #  LATIN SMALL LETTER DOTLESS I
-    0x0134: 0xAC,       #  LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-    0x0135: 0xBC,       #  LATIN SMALL LETTER J WITH CIRCUMFLEX
-    0x015C: 0xDE,       #  LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-    0x015D: 0xFE,       #  LATIN SMALL LETTER S WITH CIRCUMFLEX
-    0x015E: 0xAA,       #  LATIN CAPITAL LETTER S WITH CEDILLA
-    0x015F: 0xBA,       #  LATIN SMALL LETTER S WITH CEDILLA
-    0x016C: 0xDD,       #  LATIN CAPITAL LETTER U WITH BREVE
-    0x016D: 0xFD,       #  LATIN SMALL LETTER U WITH BREVE
-    0x017B: 0xAF,       #  LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    0x017C: 0xBF,       #  LATIN SMALL LETTER Z WITH DOT ABOVE
-    0x02D8: 0xA2,       #  BREVE
-    0x02D9: 0xFF,       #  DOT ABOVE
-}
diff --git a/Lib/encodings/iso8859_4.py b/Lib/encodings/iso8859_4.py
index e705954..abdd7cf 100644
--- a/Lib/encodings/iso8859_4.py
+++ b/Lib/encodings/iso8859_4.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u02d9'   #  0xFF -> DOT ABOVE
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AF: 0xAF,       #  MACRON
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xC3,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0xC5,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xC6,       #  LATIN CAPITAL LETTER AE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xD5,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00D8: 0xD8,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xDB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0xE3,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0xE5,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xE6,       #  LATIN SMALL LETTER AE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xF5,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00F8: 0xF8,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x0100: 0xC0,       #  LATIN CAPITAL LETTER A WITH MACRON
-    0x0101: 0xE0,       #  LATIN SMALL LETTER A WITH MACRON
-    0x0104: 0xA1,       #  LATIN CAPITAL LETTER A WITH OGONEK
-    0x0105: 0xB1,       #  LATIN SMALL LETTER A WITH OGONEK
-    0x010C: 0xC8,       #  LATIN CAPITAL LETTER C WITH CARON
-    0x010D: 0xE8,       #  LATIN SMALL LETTER C WITH CARON
-    0x0110: 0xD0,       #  LATIN CAPITAL LETTER D WITH STROKE
-    0x0111: 0xF0,       #  LATIN SMALL LETTER D WITH STROKE
-    0x0112: 0xAA,       #  LATIN CAPITAL LETTER E WITH MACRON
-    0x0113: 0xBA,       #  LATIN SMALL LETTER E WITH MACRON
-    0x0116: 0xCC,       #  LATIN CAPITAL LETTER E WITH DOT ABOVE
-    0x0117: 0xEC,       #  LATIN SMALL LETTER E WITH DOT ABOVE
-    0x0118: 0xCA,       #  LATIN CAPITAL LETTER E WITH OGONEK
-    0x0119: 0xEA,       #  LATIN SMALL LETTER E WITH OGONEK
-    0x0122: 0xAB,       #  LATIN CAPITAL LETTER G WITH CEDILLA
-    0x0123: 0xBB,       #  LATIN SMALL LETTER G WITH CEDILLA
-    0x0128: 0xA5,       #  LATIN CAPITAL LETTER I WITH TILDE
-    0x0129: 0xB5,       #  LATIN SMALL LETTER I WITH TILDE
-    0x012A: 0xCF,       #  LATIN CAPITAL LETTER I WITH MACRON
-    0x012B: 0xEF,       #  LATIN SMALL LETTER I WITH MACRON
-    0x012E: 0xC7,       #  LATIN CAPITAL LETTER I WITH OGONEK
-    0x012F: 0xE7,       #  LATIN SMALL LETTER I WITH OGONEK
-    0x0136: 0xD3,       #  LATIN CAPITAL LETTER K WITH CEDILLA
-    0x0137: 0xF3,       #  LATIN SMALL LETTER K WITH CEDILLA
-    0x0138: 0xA2,       #  LATIN SMALL LETTER KRA
-    0x013B: 0xA6,       #  LATIN CAPITAL LETTER L WITH CEDILLA
-    0x013C: 0xB6,       #  LATIN SMALL LETTER L WITH CEDILLA
-    0x0145: 0xD1,       #  LATIN CAPITAL LETTER N WITH CEDILLA
-    0x0146: 0xF1,       #  LATIN SMALL LETTER N WITH CEDILLA
-    0x014A: 0xBD,       #  LATIN CAPITAL LETTER ENG
-    0x014B: 0xBF,       #  LATIN SMALL LETTER ENG
-    0x014C: 0xD2,       #  LATIN CAPITAL LETTER O WITH MACRON
-    0x014D: 0xF2,       #  LATIN SMALL LETTER O WITH MACRON
-    0x0156: 0xA3,       #  LATIN CAPITAL LETTER R WITH CEDILLA
-    0x0157: 0xB3,       #  LATIN SMALL LETTER R WITH CEDILLA
-    0x0160: 0xA9,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0xB9,       #  LATIN SMALL LETTER S WITH CARON
-    0x0166: 0xAC,       #  LATIN CAPITAL LETTER T WITH STROKE
-    0x0167: 0xBC,       #  LATIN SMALL LETTER T WITH STROKE
-    0x0168: 0xDD,       #  LATIN CAPITAL LETTER U WITH TILDE
-    0x0169: 0xFD,       #  LATIN SMALL LETTER U WITH TILDE
-    0x016A: 0xDE,       #  LATIN CAPITAL LETTER U WITH MACRON
-    0x016B: 0xFE,       #  LATIN SMALL LETTER U WITH MACRON
-    0x0172: 0xD9,       #  LATIN CAPITAL LETTER U WITH OGONEK
-    0x0173: 0xF9,       #  LATIN SMALL LETTER U WITH OGONEK
-    0x017D: 0xAE,       #  LATIN CAPITAL LETTER Z WITH CARON
-    0x017E: 0xBE,       #  LATIN SMALL LETTER Z WITH CARON
-    0x02C7: 0xB7,       #  CARON
-    0x02D9: 0xFF,       #  DOT ABOVE
-    0x02DB: 0xB2,       #  OGONEK
-}
diff --git a/Lib/encodings/iso8859_5.py b/Lib/encodings/iso8859_5.py
index 93a4e90..698f879 100644
--- a/Lib/encodings/iso8859_5.py
+++ b/Lib/encodings/iso8859_5.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u045f'   #  0xFF -> CYRILLIC SMALL LETTER DZHE
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A7: 0xFD,       #  SECTION SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x0401: 0xA1,       #  CYRILLIC CAPITAL LETTER IO
-    0x0402: 0xA2,       #  CYRILLIC CAPITAL LETTER DJE
-    0x0403: 0xA3,       #  CYRILLIC CAPITAL LETTER GJE
-    0x0404: 0xA4,       #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
-    0x0405: 0xA5,       #  CYRILLIC CAPITAL LETTER DZE
-    0x0406: 0xA6,       #  CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-    0x0407: 0xA7,       #  CYRILLIC CAPITAL LETTER YI
-    0x0408: 0xA8,       #  CYRILLIC CAPITAL LETTER JE
-    0x0409: 0xA9,       #  CYRILLIC CAPITAL LETTER LJE
-    0x040A: 0xAA,       #  CYRILLIC CAPITAL LETTER NJE
-    0x040B: 0xAB,       #  CYRILLIC CAPITAL LETTER TSHE
-    0x040C: 0xAC,       #  CYRILLIC CAPITAL LETTER KJE
-    0x040E: 0xAE,       #  CYRILLIC CAPITAL LETTER SHORT U
-    0x040F: 0xAF,       #  CYRILLIC CAPITAL LETTER DZHE
-    0x0410: 0xB0,       #  CYRILLIC CAPITAL LETTER A
-    0x0411: 0xB1,       #  CYRILLIC CAPITAL LETTER BE
-    0x0412: 0xB2,       #  CYRILLIC CAPITAL LETTER VE
-    0x0413: 0xB3,       #  CYRILLIC CAPITAL LETTER GHE
-    0x0414: 0xB4,       #  CYRILLIC CAPITAL LETTER DE
-    0x0415: 0xB5,       #  CYRILLIC CAPITAL LETTER IE
-    0x0416: 0xB6,       #  CYRILLIC CAPITAL LETTER ZHE
-    0x0417: 0xB7,       #  CYRILLIC CAPITAL LETTER ZE
-    0x0418: 0xB8,       #  CYRILLIC CAPITAL LETTER I
-    0x0419: 0xB9,       #  CYRILLIC CAPITAL LETTER SHORT I
-    0x041A: 0xBA,       #  CYRILLIC CAPITAL LETTER KA
-    0x041B: 0xBB,       #  CYRILLIC CAPITAL LETTER EL
-    0x041C: 0xBC,       #  CYRILLIC CAPITAL LETTER EM
-    0x041D: 0xBD,       #  CYRILLIC CAPITAL LETTER EN
-    0x041E: 0xBE,       #  CYRILLIC CAPITAL LETTER O
-    0x041F: 0xBF,       #  CYRILLIC CAPITAL LETTER PE
-    0x0420: 0xC0,       #  CYRILLIC CAPITAL LETTER ER
-    0x0421: 0xC1,       #  CYRILLIC CAPITAL LETTER ES
-    0x0422: 0xC2,       #  CYRILLIC CAPITAL LETTER TE
-    0x0423: 0xC3,       #  CYRILLIC CAPITAL LETTER U
-    0x0424: 0xC4,       #  CYRILLIC CAPITAL LETTER EF
-    0x0425: 0xC5,       #  CYRILLIC CAPITAL LETTER HA
-    0x0426: 0xC6,       #  CYRILLIC CAPITAL LETTER TSE
-    0x0427: 0xC7,       #  CYRILLIC CAPITAL LETTER CHE
-    0x0428: 0xC8,       #  CYRILLIC CAPITAL LETTER SHA
-    0x0429: 0xC9,       #  CYRILLIC CAPITAL LETTER SHCHA
-    0x042A: 0xCA,       #  CYRILLIC CAPITAL LETTER HARD SIGN
-    0x042B: 0xCB,       #  CYRILLIC CAPITAL LETTER YERU
-    0x042C: 0xCC,       #  CYRILLIC CAPITAL LETTER SOFT SIGN
-    0x042D: 0xCD,       #  CYRILLIC CAPITAL LETTER E
-    0x042E: 0xCE,       #  CYRILLIC CAPITAL LETTER YU
-    0x042F: 0xCF,       #  CYRILLIC CAPITAL LETTER YA
-    0x0430: 0xD0,       #  CYRILLIC SMALL LETTER A
-    0x0431: 0xD1,       #  CYRILLIC SMALL LETTER BE
-    0x0432: 0xD2,       #  CYRILLIC SMALL LETTER VE
-    0x0433: 0xD3,       #  CYRILLIC SMALL LETTER GHE
-    0x0434: 0xD4,       #  CYRILLIC SMALL LETTER DE
-    0x0435: 0xD5,       #  CYRILLIC SMALL LETTER IE
-    0x0436: 0xD6,       #  CYRILLIC SMALL LETTER ZHE
-    0x0437: 0xD7,       #  CYRILLIC SMALL LETTER ZE
-    0x0438: 0xD8,       #  CYRILLIC SMALL LETTER I
-    0x0439: 0xD9,       #  CYRILLIC SMALL LETTER SHORT I
-    0x043A: 0xDA,       #  CYRILLIC SMALL LETTER KA
-    0x043B: 0xDB,       #  CYRILLIC SMALL LETTER EL
-    0x043C: 0xDC,       #  CYRILLIC SMALL LETTER EM
-    0x043D: 0xDD,       #  CYRILLIC SMALL LETTER EN
-    0x043E: 0xDE,       #  CYRILLIC SMALL LETTER O
-    0x043F: 0xDF,       #  CYRILLIC SMALL LETTER PE
-    0x0440: 0xE0,       #  CYRILLIC SMALL LETTER ER
-    0x0441: 0xE1,       #  CYRILLIC SMALL LETTER ES
-    0x0442: 0xE2,       #  CYRILLIC SMALL LETTER TE
-    0x0443: 0xE3,       #  CYRILLIC SMALL LETTER U
-    0x0444: 0xE4,       #  CYRILLIC SMALL LETTER EF
-    0x0445: 0xE5,       #  CYRILLIC SMALL LETTER HA
-    0x0446: 0xE6,       #  CYRILLIC SMALL LETTER TSE
-    0x0447: 0xE7,       #  CYRILLIC SMALL LETTER CHE
-    0x0448: 0xE8,       #  CYRILLIC SMALL LETTER SHA
-    0x0449: 0xE9,       #  CYRILLIC SMALL LETTER SHCHA
-    0x044A: 0xEA,       #  CYRILLIC SMALL LETTER HARD SIGN
-    0x044B: 0xEB,       #  CYRILLIC SMALL LETTER YERU
-    0x044C: 0xEC,       #  CYRILLIC SMALL LETTER SOFT SIGN
-    0x044D: 0xED,       #  CYRILLIC SMALL LETTER E
-    0x044E: 0xEE,       #  CYRILLIC SMALL LETTER YU
-    0x044F: 0xEF,       #  CYRILLIC SMALL LETTER YA
-    0x0451: 0xF1,       #  CYRILLIC SMALL LETTER IO
-    0x0452: 0xF2,       #  CYRILLIC SMALL LETTER DJE
-    0x0453: 0xF3,       #  CYRILLIC SMALL LETTER GJE
-    0x0454: 0xF4,       #  CYRILLIC SMALL LETTER UKRAINIAN IE
-    0x0455: 0xF5,       #  CYRILLIC SMALL LETTER DZE
-    0x0456: 0xF6,       #  CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-    0x0457: 0xF7,       #  CYRILLIC SMALL LETTER YI
-    0x0458: 0xF8,       #  CYRILLIC SMALL LETTER JE
-    0x0459: 0xF9,       #  CYRILLIC SMALL LETTER LJE
-    0x045A: 0xFA,       #  CYRILLIC SMALL LETTER NJE
-    0x045B: 0xFB,       #  CYRILLIC SMALL LETTER TSHE
-    0x045C: 0xFC,       #  CYRILLIC SMALL LETTER KJE
-    0x045E: 0xFE,       #  CYRILLIC SMALL LETTER SHORT U
-    0x045F: 0xFF,       #  CYRILLIC SMALL LETTER DZHE
-    0x2116: 0xF0,       #  NUMERO SIGN
-}
diff --git a/Lib/encodings/iso8859_6.py b/Lib/encodings/iso8859_6.py
index f911cc4..060822a 100644
--- a/Lib/encodings/iso8859_6.py
+++ b/Lib/encodings/iso8859_6.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,218 +303,6 @@
     u'\ufffe'
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x060C: 0xAC,       #  ARABIC COMMA
-    0x061B: 0xBB,       #  ARABIC SEMICOLON
-    0x061F: 0xBF,       #  ARABIC QUESTION MARK
-    0x0621: 0xC1,       #  ARABIC LETTER HAMZA
-    0x0622: 0xC2,       #  ARABIC LETTER ALEF WITH MADDA ABOVE
-    0x0623: 0xC3,       #  ARABIC LETTER ALEF WITH HAMZA ABOVE
-    0x0624: 0xC4,       #  ARABIC LETTER WAW WITH HAMZA ABOVE
-    0x0625: 0xC5,       #  ARABIC LETTER ALEF WITH HAMZA BELOW
-    0x0626: 0xC6,       #  ARABIC LETTER YEH WITH HAMZA ABOVE
-    0x0627: 0xC7,       #  ARABIC LETTER ALEF
-    0x0628: 0xC8,       #  ARABIC LETTER BEH
-    0x0629: 0xC9,       #  ARABIC LETTER TEH MARBUTA
-    0x062A: 0xCA,       #  ARABIC LETTER TEH
-    0x062B: 0xCB,       #  ARABIC LETTER THEH
-    0x062C: 0xCC,       #  ARABIC LETTER JEEM
-    0x062D: 0xCD,       #  ARABIC LETTER HAH
-    0x062E: 0xCE,       #  ARABIC LETTER KHAH
-    0x062F: 0xCF,       #  ARABIC LETTER DAL
-    0x0630: 0xD0,       #  ARABIC LETTER THAL
-    0x0631: 0xD1,       #  ARABIC LETTER REH
-    0x0632: 0xD2,       #  ARABIC LETTER ZAIN
-    0x0633: 0xD3,       #  ARABIC LETTER SEEN
-    0x0634: 0xD4,       #  ARABIC LETTER SHEEN
-    0x0635: 0xD5,       #  ARABIC LETTER SAD
-    0x0636: 0xD6,       #  ARABIC LETTER DAD
-    0x0637: 0xD7,       #  ARABIC LETTER TAH
-    0x0638: 0xD8,       #  ARABIC LETTER ZAH
-    0x0639: 0xD9,       #  ARABIC LETTER AIN
-    0x063A: 0xDA,       #  ARABIC LETTER GHAIN
-    0x0640: 0xE0,       #  ARABIC TATWEEL
-    0x0641: 0xE1,       #  ARABIC LETTER FEH
-    0x0642: 0xE2,       #  ARABIC LETTER QAF
-    0x0643: 0xE3,       #  ARABIC LETTER KAF
-    0x0644: 0xE4,       #  ARABIC LETTER LAM
-    0x0645: 0xE5,       #  ARABIC LETTER MEEM
-    0x0646: 0xE6,       #  ARABIC LETTER NOON
-    0x0647: 0xE7,       #  ARABIC LETTER HEH
-    0x0648: 0xE8,       #  ARABIC LETTER WAW
-    0x0649: 0xE9,       #  ARABIC LETTER ALEF MAKSURA
-    0x064A: 0xEA,       #  ARABIC LETTER YEH
-    0x064B: 0xEB,       #  ARABIC FATHATAN
-    0x064C: 0xEC,       #  ARABIC DAMMATAN
-    0x064D: 0xED,       #  ARABIC KASRATAN
-    0x064E: 0xEE,       #  ARABIC FATHA
-    0x064F: 0xEF,       #  ARABIC DAMMA
-    0x0650: 0xF0,       #  ARABIC KASRA
-    0x0651: 0xF1,       #  ARABIC SHADDA
-    0x0652: 0xF2,       #  ARABIC SUKUN
-}
diff --git a/Lib/encodings/iso8859_7.py b/Lib/encodings/iso8859_7.py
index 4cce6e2..2152194 100644
--- a/Lib/encodings/iso8859_7.py
+++ b/Lib/encodings/iso8859_7.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,260 +303,6 @@
     u'\ufffe'
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x037A: 0xAA,       #  GREEK YPOGEGRAMMENI
-    0x0384: 0xB4,       #  GREEK TONOS
-    0x0385: 0xB5,       #  GREEK DIALYTIKA TONOS
-    0x0386: 0xB6,       #  GREEK CAPITAL LETTER ALPHA WITH TONOS
-    0x0388: 0xB8,       #  GREEK CAPITAL LETTER EPSILON WITH TONOS
-    0x0389: 0xB9,       #  GREEK CAPITAL LETTER ETA WITH TONOS
-    0x038A: 0xBA,       #  GREEK CAPITAL LETTER IOTA WITH TONOS
-    0x038C: 0xBC,       #  GREEK CAPITAL LETTER OMICRON WITH TONOS
-    0x038E: 0xBE,       #  GREEK CAPITAL LETTER UPSILON WITH TONOS
-    0x038F: 0xBF,       #  GREEK CAPITAL LETTER OMEGA WITH TONOS
-    0x0390: 0xC0,       #  GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-    0x0391: 0xC1,       #  GREEK CAPITAL LETTER ALPHA
-    0x0392: 0xC2,       #  GREEK CAPITAL LETTER BETA
-    0x0393: 0xC3,       #  GREEK CAPITAL LETTER GAMMA
-    0x0394: 0xC4,       #  GREEK CAPITAL LETTER DELTA
-    0x0395: 0xC5,       #  GREEK CAPITAL LETTER EPSILON
-    0x0396: 0xC6,       #  GREEK CAPITAL LETTER ZETA
-    0x0397: 0xC7,       #  GREEK CAPITAL LETTER ETA
-    0x0398: 0xC8,       #  GREEK CAPITAL LETTER THETA
-    0x0399: 0xC9,       #  GREEK CAPITAL LETTER IOTA
-    0x039A: 0xCA,       #  GREEK CAPITAL LETTER KAPPA
-    0x039B: 0xCB,       #  GREEK CAPITAL LETTER LAMDA
-    0x039C: 0xCC,       #  GREEK CAPITAL LETTER MU
-    0x039D: 0xCD,       #  GREEK CAPITAL LETTER NU
-    0x039E: 0xCE,       #  GREEK CAPITAL LETTER XI
-    0x039F: 0xCF,       #  GREEK CAPITAL LETTER OMICRON
-    0x03A0: 0xD0,       #  GREEK CAPITAL LETTER PI
-    0x03A1: 0xD1,       #  GREEK CAPITAL LETTER RHO
-    0x03A3: 0xD3,       #  GREEK CAPITAL LETTER SIGMA
-    0x03A4: 0xD4,       #  GREEK CAPITAL LETTER TAU
-    0x03A5: 0xD5,       #  GREEK CAPITAL LETTER UPSILON
-    0x03A6: 0xD6,       #  GREEK CAPITAL LETTER PHI
-    0x03A7: 0xD7,       #  GREEK CAPITAL LETTER CHI
-    0x03A8: 0xD8,       #  GREEK CAPITAL LETTER PSI
-    0x03A9: 0xD9,       #  GREEK CAPITAL LETTER OMEGA
-    0x03AA: 0xDA,       #  GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-    0x03AB: 0xDB,       #  GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-    0x03AC: 0xDC,       #  GREEK SMALL LETTER ALPHA WITH TONOS
-    0x03AD: 0xDD,       #  GREEK SMALL LETTER EPSILON WITH TONOS
-    0x03AE: 0xDE,       #  GREEK SMALL LETTER ETA WITH TONOS
-    0x03AF: 0xDF,       #  GREEK SMALL LETTER IOTA WITH TONOS
-    0x03B0: 0xE0,       #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-    0x03B1: 0xE1,       #  GREEK SMALL LETTER ALPHA
-    0x03B2: 0xE2,       #  GREEK SMALL LETTER BETA
-    0x03B3: 0xE3,       #  GREEK SMALL LETTER GAMMA
-    0x03B4: 0xE4,       #  GREEK SMALL LETTER DELTA
-    0x03B5: 0xE5,       #  GREEK SMALL LETTER EPSILON
-    0x03B6: 0xE6,       #  GREEK SMALL LETTER ZETA
-    0x03B7: 0xE7,       #  GREEK SMALL LETTER ETA
-    0x03B8: 0xE8,       #  GREEK SMALL LETTER THETA
-    0x03B9: 0xE9,       #  GREEK SMALL LETTER IOTA
-    0x03BA: 0xEA,       #  GREEK SMALL LETTER KAPPA
-    0x03BB: 0xEB,       #  GREEK SMALL LETTER LAMDA
-    0x03BC: 0xEC,       #  GREEK SMALL LETTER MU
-    0x03BD: 0xED,       #  GREEK SMALL LETTER NU
-    0x03BE: 0xEE,       #  GREEK SMALL LETTER XI
-    0x03BF: 0xEF,       #  GREEK SMALL LETTER OMICRON
-    0x03C0: 0xF0,       #  GREEK SMALL LETTER PI
-    0x03C1: 0xF1,       #  GREEK SMALL LETTER RHO
-    0x03C2: 0xF2,       #  GREEK SMALL LETTER FINAL SIGMA
-    0x03C3: 0xF3,       #  GREEK SMALL LETTER SIGMA
-    0x03C4: 0xF4,       #  GREEK SMALL LETTER TAU
-    0x03C5: 0xF5,       #  GREEK SMALL LETTER UPSILON
-    0x03C6: 0xF6,       #  GREEK SMALL LETTER PHI
-    0x03C7: 0xF7,       #  GREEK SMALL LETTER CHI
-    0x03C8: 0xF8,       #  GREEK SMALL LETTER PSI
-    0x03C9: 0xF9,       #  GREEK SMALL LETTER OMEGA
-    0x03CA: 0xFA,       #  GREEK SMALL LETTER IOTA WITH DIALYTIKA
-    0x03CB: 0xFB,       #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-    0x03CC: 0xFC,       #  GREEK SMALL LETTER OMICRON WITH TONOS
-    0x03CD: 0xFD,       #  GREEK SMALL LETTER UPSILON WITH TONOS
-    0x03CE: 0xFE,       #  GREEK SMALL LETTER OMEGA WITH TONOS
-    0x2015: 0xAF,       #  HORIZONTAL BAR
-    0x2018: 0xA1,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0xA2,       #  RIGHT SINGLE QUOTATION MARK
-    0x20AC: 0xA4,       #  EURO SIGN
-    0x20AF: 0xA5,       #  DRACHMA SIGN
-}
diff --git a/Lib/encodings/iso8859_8.py b/Lib/encodings/iso8859_8.py
index 8c29a87..053a5f5 100644
--- a/Lib/encodings/iso8859_8.py
+++ b/Lib/encodings/iso8859_8.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,227 +303,6 @@
     u'\ufffe'
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A5: 0xA5,       #  YEN SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00AF: 0xAF,       #  MACRON
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00B9: 0xB9,       #  SUPERSCRIPT ONE
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xBC,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xBE,       #  VULGAR FRACTION THREE QUARTERS
-    0x00D7: 0xAA,       #  MULTIPLICATION SIGN
-    0x00F7: 0xBA,       #  DIVISION SIGN
-    0x05D0: 0xE0,       #  HEBREW LETTER ALEF
-    0x05D1: 0xE1,       #  HEBREW LETTER BET
-    0x05D2: 0xE2,       #  HEBREW LETTER GIMEL
-    0x05D3: 0xE3,       #  HEBREW LETTER DALET
-    0x05D4: 0xE4,       #  HEBREW LETTER HE
-    0x05D5: 0xE5,       #  HEBREW LETTER VAV
-    0x05D6: 0xE6,       #  HEBREW LETTER ZAYIN
-    0x05D7: 0xE7,       #  HEBREW LETTER HET
-    0x05D8: 0xE8,       #  HEBREW LETTER TET
-    0x05D9: 0xE9,       #  HEBREW LETTER YOD
-    0x05DA: 0xEA,       #  HEBREW LETTER FINAL KAF
-    0x05DB: 0xEB,       #  HEBREW LETTER KAF
-    0x05DC: 0xEC,       #  HEBREW LETTER LAMED
-    0x05DD: 0xED,       #  HEBREW LETTER FINAL MEM
-    0x05DE: 0xEE,       #  HEBREW LETTER MEM
-    0x05DF: 0xEF,       #  HEBREW LETTER FINAL NUN
-    0x05E0: 0xF0,       #  HEBREW LETTER NUN
-    0x05E1: 0xF1,       #  HEBREW LETTER SAMEKH
-    0x05E2: 0xF2,       #  HEBREW LETTER AYIN
-    0x05E3: 0xF3,       #  HEBREW LETTER FINAL PE
-    0x05E4: 0xF4,       #  HEBREW LETTER PE
-    0x05E5: 0xF5,       #  HEBREW LETTER FINAL TSADI
-    0x05E6: 0xF6,       #  HEBREW LETTER TSADI
-    0x05E7: 0xF7,       #  HEBREW LETTER QOF
-    0x05E8: 0xF8,       #  HEBREW LETTER RESH
-    0x05E9: 0xF9,       #  HEBREW LETTER SHIN
-    0x05EA: 0xFA,       #  HEBREW LETTER TAV
-    0x200E: 0xFD,       #  LEFT-TO-RIGHT MARK
-    0x200F: 0xFE,       #  RIGHT-TO-LEFT MARK
-    0x2017: 0xDF,       #  DOUBLE LOW LINE
-}
diff --git a/Lib/encodings/iso8859_9.py b/Lib/encodings/iso8859_9.py
index 9648e9f..8c3b3bc 100644
--- a/Lib/encodings/iso8859_9.py
+++ b/Lib/encodings/iso8859_9.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x00A0: 0xA0,       #  NO-BREAK SPACE
-    0x00A1: 0xA1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A4: 0xA4,       #  CURRENCY SIGN
-    0x00A5: 0xA5,       #  YEN SIGN
-    0x00A6: 0xA6,       #  BROKEN BAR
-    0x00A7: 0xA7,       #  SECTION SIGN
-    0x00A8: 0xA8,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AA: 0xAA,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0xAB,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xAC,       #  NOT SIGN
-    0x00AD: 0xAD,       #  SOFT HYPHEN
-    0x00AE: 0xAE,       #  REGISTERED SIGN
-    0x00AF: 0xAF,       #  MACRON
-    0x00B0: 0xB0,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0xB2,       #  SUPERSCRIPT TWO
-    0x00B3: 0xB3,       #  SUPERSCRIPT THREE
-    0x00B4: 0xB4,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xB6,       #  PILCROW SIGN
-    0x00B7: 0xB7,       #  MIDDLE DOT
-    0x00B8: 0xB8,       #  CEDILLA
-    0x00B9: 0xB9,       #  SUPERSCRIPT ONE
-    0x00BA: 0xBA,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0xBB,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BC: 0xBC,       #  VULGAR FRACTION ONE QUARTER
-    0x00BD: 0xBD,       #  VULGAR FRACTION ONE HALF
-    0x00BE: 0xBE,       #  VULGAR FRACTION THREE QUARTERS
-    0x00BF: 0xBF,       #  INVERTED QUESTION MARK
-    0x00C0: 0xC0,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xC1,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xC2,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xC3,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0xC4,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0xC5,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xC6,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0xC7,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xC8,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0xC9,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xCA,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xCB,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xCC,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xCD,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xCE,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xCF,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D1: 0xD1,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xD2,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xD3,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xD4,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xD5,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0xD6,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D7: 0xD7,       #  MULTIPLICATION SIGN
-    0x00D8: 0xD8,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xD9,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xDA,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xDB,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0xDC,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xDF,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0xE0,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0xE1,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0xE2,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0xE3,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0xE4,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0xE5,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xE6,       #  LATIN SMALL LETTER AE
-    0x00E7: 0xE7,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0xE8,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0xE9,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0xEA,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0xEB,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0xEC,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0xED,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0xEE,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0xEF,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F1: 0xF1,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0xF2,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0xF3,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0xF4,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0xF5,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0xF6,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xF7,       #  DIVISION SIGN
-    0x00F8: 0xF8,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0xF9,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0xFA,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0xFB,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0xFC,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FF: 0xFF,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x011E: 0xD0,       #  LATIN CAPITAL LETTER G WITH BREVE
-    0x011F: 0xF0,       #  LATIN SMALL LETTER G WITH BREVE
-    0x0130: 0xDD,       #  LATIN CAPITAL LETTER I WITH DOT ABOVE
-    0x0131: 0xFD,       #  LATIN SMALL LETTER DOTLESS I
-    0x015E: 0xDE,       #  LATIN CAPITAL LETTER S WITH CEDILLA
-    0x015F: 0xFE,       #  LATIN SMALL LETTER S WITH CEDILLA
-}
diff --git a/Lib/encodings/koi8_r.py b/Lib/encodings/koi8_r.py
index 3efeb56..7295260 100644
--- a/Lib/encodings/koi8_r.py
+++ b/Lib/encodings/koi8_r.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u042a'   #  0xFF -> CYRILLIC CAPITAL LETTER HARD SIGN
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0x9A,       #  NO-BREAK SPACE
-    0x00A9: 0xBF,       #  COPYRIGHT SIGN
-    0x00B0: 0x9C,       #  DEGREE SIGN
-    0x00B2: 0x9D,       #  SUPERSCRIPT TWO
-    0x00B7: 0x9E,       #  MIDDLE DOT
-    0x00F7: 0x9F,       #  DIVISION SIGN
-    0x0401: 0xB3,       #  CYRILLIC CAPITAL LETTER IO
-    0x0410: 0xE1,       #  CYRILLIC CAPITAL LETTER A
-    0x0411: 0xE2,       #  CYRILLIC CAPITAL LETTER BE
-    0x0412: 0xF7,       #  CYRILLIC CAPITAL LETTER VE
-    0x0413: 0xE7,       #  CYRILLIC CAPITAL LETTER GHE
-    0x0414: 0xE4,       #  CYRILLIC CAPITAL LETTER DE
-    0x0415: 0xE5,       #  CYRILLIC CAPITAL LETTER IE
-    0x0416: 0xF6,       #  CYRILLIC CAPITAL LETTER ZHE
-    0x0417: 0xFA,       #  CYRILLIC CAPITAL LETTER ZE
-    0x0418: 0xE9,       #  CYRILLIC CAPITAL LETTER I
-    0x0419: 0xEA,       #  CYRILLIC CAPITAL LETTER SHORT I
-    0x041A: 0xEB,       #  CYRILLIC CAPITAL LETTER KA
-    0x041B: 0xEC,       #  CYRILLIC CAPITAL LETTER EL
-    0x041C: 0xED,       #  CYRILLIC CAPITAL LETTER EM
-    0x041D: 0xEE,       #  CYRILLIC CAPITAL LETTER EN
-    0x041E: 0xEF,       #  CYRILLIC CAPITAL LETTER O
-    0x041F: 0xF0,       #  CYRILLIC CAPITAL LETTER PE
-    0x0420: 0xF2,       #  CYRILLIC CAPITAL LETTER ER
-    0x0421: 0xF3,       #  CYRILLIC CAPITAL LETTER ES
-    0x0422: 0xF4,       #  CYRILLIC CAPITAL LETTER TE
-    0x0423: 0xF5,       #  CYRILLIC CAPITAL LETTER U
-    0x0424: 0xE6,       #  CYRILLIC CAPITAL LETTER EF
-    0x0425: 0xE8,       #  CYRILLIC CAPITAL LETTER HA
-    0x0426: 0xE3,       #  CYRILLIC CAPITAL LETTER TSE
-    0x0427: 0xFE,       #  CYRILLIC CAPITAL LETTER CHE
-    0x0428: 0xFB,       #  CYRILLIC CAPITAL LETTER SHA
-    0x0429: 0xFD,       #  CYRILLIC CAPITAL LETTER SHCHA
-    0x042A: 0xFF,       #  CYRILLIC CAPITAL LETTER HARD SIGN
-    0x042B: 0xF9,       #  CYRILLIC CAPITAL LETTER YERU
-    0x042C: 0xF8,       #  CYRILLIC CAPITAL LETTER SOFT SIGN
-    0x042D: 0xFC,       #  CYRILLIC CAPITAL LETTER E
-    0x042E: 0xE0,       #  CYRILLIC CAPITAL LETTER YU
-    0x042F: 0xF1,       #  CYRILLIC CAPITAL LETTER YA
-    0x0430: 0xC1,       #  CYRILLIC SMALL LETTER A
-    0x0431: 0xC2,       #  CYRILLIC SMALL LETTER BE
-    0x0432: 0xD7,       #  CYRILLIC SMALL LETTER VE
-    0x0433: 0xC7,       #  CYRILLIC SMALL LETTER GHE
-    0x0434: 0xC4,       #  CYRILLIC SMALL LETTER DE
-    0x0435: 0xC5,       #  CYRILLIC SMALL LETTER IE
-    0x0436: 0xD6,       #  CYRILLIC SMALL LETTER ZHE
-    0x0437: 0xDA,       #  CYRILLIC SMALL LETTER ZE
-    0x0438: 0xC9,       #  CYRILLIC SMALL LETTER I
-    0x0439: 0xCA,       #  CYRILLIC SMALL LETTER SHORT I
-    0x043A: 0xCB,       #  CYRILLIC SMALL LETTER KA
-    0x043B: 0xCC,       #  CYRILLIC SMALL LETTER EL
-    0x043C: 0xCD,       #  CYRILLIC SMALL LETTER EM
-    0x043D: 0xCE,       #  CYRILLIC SMALL LETTER EN
-    0x043E: 0xCF,       #  CYRILLIC SMALL LETTER O
-    0x043F: 0xD0,       #  CYRILLIC SMALL LETTER PE
-    0x0440: 0xD2,       #  CYRILLIC SMALL LETTER ER
-    0x0441: 0xD3,       #  CYRILLIC SMALL LETTER ES
-    0x0442: 0xD4,       #  CYRILLIC SMALL LETTER TE
-    0x0443: 0xD5,       #  CYRILLIC SMALL LETTER U
-    0x0444: 0xC6,       #  CYRILLIC SMALL LETTER EF
-    0x0445: 0xC8,       #  CYRILLIC SMALL LETTER HA
-    0x0446: 0xC3,       #  CYRILLIC SMALL LETTER TSE
-    0x0447: 0xDE,       #  CYRILLIC SMALL LETTER CHE
-    0x0448: 0xDB,       #  CYRILLIC SMALL LETTER SHA
-    0x0449: 0xDD,       #  CYRILLIC SMALL LETTER SHCHA
-    0x044A: 0xDF,       #  CYRILLIC SMALL LETTER HARD SIGN
-    0x044B: 0xD9,       #  CYRILLIC SMALL LETTER YERU
-    0x044C: 0xD8,       #  CYRILLIC SMALL LETTER SOFT SIGN
-    0x044D: 0xDC,       #  CYRILLIC SMALL LETTER E
-    0x044E: 0xC0,       #  CYRILLIC SMALL LETTER YU
-    0x044F: 0xD1,       #  CYRILLIC SMALL LETTER YA
-    0x0451: 0xA3,       #  CYRILLIC SMALL LETTER IO
-    0x2219: 0x95,       #  BULLET OPERATOR
-    0x221A: 0x96,       #  SQUARE ROOT
-    0x2248: 0x97,       #  ALMOST EQUAL TO
-    0x2264: 0x98,       #  LESS-THAN OR EQUAL TO
-    0x2265: 0x99,       #  GREATER-THAN OR EQUAL TO
-    0x2320: 0x93,       #  TOP HALF INTEGRAL
-    0x2321: 0x9B,       #  BOTTOM HALF INTEGRAL
-    0x2500: 0x80,       #  BOX DRAWINGS LIGHT HORIZONTAL
-    0x2502: 0x81,       #  BOX DRAWINGS LIGHT VERTICAL
-    0x250C: 0x82,       #  BOX DRAWINGS LIGHT DOWN AND RIGHT
-    0x2510: 0x83,       #  BOX DRAWINGS LIGHT DOWN AND LEFT
-    0x2514: 0x84,       #  BOX DRAWINGS LIGHT UP AND RIGHT
-    0x2518: 0x85,       #  BOX DRAWINGS LIGHT UP AND LEFT
-    0x251C: 0x86,       #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    0x2524: 0x87,       #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    0x252C: 0x88,       #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    0x2534: 0x89,       #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    0x253C: 0x8A,       #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    0x2550: 0xA0,       #  BOX DRAWINGS DOUBLE HORIZONTAL
-    0x2551: 0xA1,       #  BOX DRAWINGS DOUBLE VERTICAL
-    0x2552: 0xA2,       #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    0x2553: 0xA4,       #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-    0x2554: 0xA5,       #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    0x2555: 0xA6,       #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-    0x2556: 0xA7,       #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-    0x2557: 0xA8,       #  BOX DRAWINGS DOUBLE DOWN AND LEFT
-    0x2558: 0xA9,       #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    0x2559: 0xAA,       #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    0x255A: 0xAB,       #  BOX DRAWINGS DOUBLE UP AND RIGHT
-    0x255B: 0xAC,       #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    0x255C: 0xAD,       #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-    0x255D: 0xAE,       #  BOX DRAWINGS DOUBLE UP AND LEFT
-    0x255E: 0xAF,       #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    0x255F: 0xB0,       #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    0x2560: 0xB1,       #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    0x2561: 0xB2,       #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    0x2562: 0xB4,       #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-    0x2563: 0xB5,       #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    0x2564: 0xB6,       #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-    0x2565: 0xB7,       #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-    0x2566: 0xB8,       #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    0x2567: 0xB9,       #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    0x2568: 0xBA,       #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    0x2569: 0xBB,       #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    0x256A: 0xBC,       #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    0x256B: 0xBD,       #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-    0x256C: 0xBE,       #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    0x2580: 0x8B,       #  UPPER HALF BLOCK
-    0x2584: 0x8C,       #  LOWER HALF BLOCK
-    0x2588: 0x8D,       #  FULL BLOCK
-    0x258C: 0x8E,       #  LEFT HALF BLOCK
-    0x2590: 0x8F,       #  RIGHT HALF BLOCK
-    0x2591: 0x90,       #  LIGHT SHADE
-    0x2592: 0x91,       #  MEDIUM SHADE
-    0x2593: 0x92,       #  DARK SHADE
-    0x25A0: 0x94,       #  BLACK SQUARE
-}
diff --git a/Lib/encodings/koi8_u.py b/Lib/encodings/koi8_u.py
index 5f46db1..ce63d97 100644
--- a/Lib/encodings/koi8_u.py
+++ b/Lib/encodings/koi8_u.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u042a'   #  0xFF -> CYRILLIC CAPITAL LETTER HARD SIGN
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x00A0: 0x9A,       #  NO-BREAK SPACE
-    0x00A9: 0xBF,       #  COPYRIGHT SIGN
-    0x00B0: 0x9C,       #  DEGREE SIGN
-    0x00B2: 0x9D,       #  SUPERSCRIPT TWO
-    0x00B7: 0x9E,       #  MIDDLE DOT
-    0x00F7: 0x9F,       #  DIVISION SIGN
-    0x0401: 0xB3,       #  CYRILLIC CAPITAL LETTER IO
-    0x0404: 0xB4,       #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
-    0x0406: 0xB6,       #  CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-    0x0407: 0xB7,       #  CYRILLIC CAPITAL LETTER YI (UKRAINIAN)
-    0x0410: 0xE1,       #  CYRILLIC CAPITAL LETTER A
-    0x0411: 0xE2,       #  CYRILLIC CAPITAL LETTER BE
-    0x0412: 0xF7,       #  CYRILLIC CAPITAL LETTER VE
-    0x0413: 0xE7,       #  CYRILLIC CAPITAL LETTER GHE
-    0x0414: 0xE4,       #  CYRILLIC CAPITAL LETTER DE
-    0x0415: 0xE5,       #  CYRILLIC CAPITAL LETTER IE
-    0x0416: 0xF6,       #  CYRILLIC CAPITAL LETTER ZHE
-    0x0417: 0xFA,       #  CYRILLIC CAPITAL LETTER ZE
-    0x0418: 0xE9,       #  CYRILLIC CAPITAL LETTER I
-    0x0419: 0xEA,       #  CYRILLIC CAPITAL LETTER SHORT I
-    0x041A: 0xEB,       #  CYRILLIC CAPITAL LETTER KA
-    0x041B: 0xEC,       #  CYRILLIC CAPITAL LETTER EL
-    0x041C: 0xED,       #  CYRILLIC CAPITAL LETTER EM
-    0x041D: 0xEE,       #  CYRILLIC CAPITAL LETTER EN
-    0x041E: 0xEF,       #  CYRILLIC CAPITAL LETTER O
-    0x041F: 0xF0,       #  CYRILLIC CAPITAL LETTER PE
-    0x0420: 0xF2,       #  CYRILLIC CAPITAL LETTER ER
-    0x0421: 0xF3,       #  CYRILLIC CAPITAL LETTER ES
-    0x0422: 0xF4,       #  CYRILLIC CAPITAL LETTER TE
-    0x0423: 0xF5,       #  CYRILLIC CAPITAL LETTER U
-    0x0424: 0xE6,       #  CYRILLIC CAPITAL LETTER EF
-    0x0425: 0xE8,       #  CYRILLIC CAPITAL LETTER HA
-    0x0426: 0xE3,       #  CYRILLIC CAPITAL LETTER TSE
-    0x0427: 0xFE,       #  CYRILLIC CAPITAL LETTER CHE
-    0x0428: 0xFB,       #  CYRILLIC CAPITAL LETTER SHA
-    0x0429: 0xFD,       #  CYRILLIC CAPITAL LETTER SHCHA
-    0x042A: 0xFF,       #  CYRILLIC CAPITAL LETTER HARD SIGN
-    0x042B: 0xF9,       #  CYRILLIC CAPITAL LETTER YERU
-    0x042C: 0xF8,       #  CYRILLIC CAPITAL LETTER SOFT SIGN
-    0x042D: 0xFC,       #  CYRILLIC CAPITAL LETTER E
-    0x042E: 0xE0,       #  CYRILLIC CAPITAL LETTER YU
-    0x042F: 0xF1,       #  CYRILLIC CAPITAL LETTER YA
-    0x0430: 0xC1,       #  CYRILLIC SMALL LETTER A
-    0x0431: 0xC2,       #  CYRILLIC SMALL LETTER BE
-    0x0432: 0xD7,       #  CYRILLIC SMALL LETTER VE
-    0x0433: 0xC7,       #  CYRILLIC SMALL LETTER GHE
-    0x0434: 0xC4,       #  CYRILLIC SMALL LETTER DE
-    0x0435: 0xC5,       #  CYRILLIC SMALL LETTER IE
-    0x0436: 0xD6,       #  CYRILLIC SMALL LETTER ZHE
-    0x0437: 0xDA,       #  CYRILLIC SMALL LETTER ZE
-    0x0438: 0xC9,       #  CYRILLIC SMALL LETTER I
-    0x0439: 0xCA,       #  CYRILLIC SMALL LETTER SHORT I
-    0x043A: 0xCB,       #  CYRILLIC SMALL LETTER KA
-    0x043B: 0xCC,       #  CYRILLIC SMALL LETTER EL
-    0x043C: 0xCD,       #  CYRILLIC SMALL LETTER EM
-    0x043D: 0xCE,       #  CYRILLIC SMALL LETTER EN
-    0x043E: 0xCF,       #  CYRILLIC SMALL LETTER O
-    0x043F: 0xD0,       #  CYRILLIC SMALL LETTER PE
-    0x0440: 0xD2,       #  CYRILLIC SMALL LETTER ER
-    0x0441: 0xD3,       #  CYRILLIC SMALL LETTER ES
-    0x0442: 0xD4,       #  CYRILLIC SMALL LETTER TE
-    0x0443: 0xD5,       #  CYRILLIC SMALL LETTER U
-    0x0444: 0xC6,       #  CYRILLIC SMALL LETTER EF
-    0x0445: 0xC8,       #  CYRILLIC SMALL LETTER HA
-    0x0446: 0xC3,       #  CYRILLIC SMALL LETTER TSE
-    0x0447: 0xDE,       #  CYRILLIC SMALL LETTER CHE
-    0x0448: 0xDB,       #  CYRILLIC SMALL LETTER SHA
-    0x0449: 0xDD,       #  CYRILLIC SMALL LETTER SHCHA
-    0x044A: 0xDF,       #  CYRILLIC SMALL LETTER HARD SIGN
-    0x044B: 0xD9,       #  CYRILLIC SMALL LETTER YERU
-    0x044C: 0xD8,       #  CYRILLIC SMALL LETTER SOFT SIGN
-    0x044D: 0xDC,       #  CYRILLIC SMALL LETTER E
-    0x044E: 0xC0,       #  CYRILLIC SMALL LETTER YU
-    0x044F: 0xD1,       #  CYRILLIC SMALL LETTER YA
-    0x0451: 0xA3,       #  CYRILLIC SMALL LETTER IO
-    0x0454: 0xA4,       #  CYRILLIC SMALL LETTER UKRAINIAN IE
-    0x0456: 0xA6,       #  CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-    0x0457: 0xA7,       #  CYRILLIC SMALL LETTER YI (UKRAINIAN)
-    0x0490: 0xBD,       #  CYRILLIC CAPITAL LETTER UKRAINIAN GHE WITH UPTURN
-    0x0491: 0xAD,       #  CYRILLIC SMALL LETTER UKRAINIAN GHE WITH UPTURN
-    0x2219: 0x95,       #  BULLET OPERATOR
-    0x221A: 0x96,       #  SQUARE ROOT
-    0x2248: 0x97,       #  ALMOST EQUAL TO
-    0x2264: 0x98,       #  LESS-THAN OR EQUAL TO
-    0x2265: 0x99,       #  GREATER-THAN OR EQUAL TO
-    0x2320: 0x93,       #  TOP HALF INTEGRAL
-    0x2321: 0x9B,       #  BOTTOM HALF INTEGRAL
-    0x2500: 0x80,       #  BOX DRAWINGS LIGHT HORIZONTAL
-    0x2502: 0x81,       #  BOX DRAWINGS LIGHT VERTICAL
-    0x250C: 0x82,       #  BOX DRAWINGS LIGHT DOWN AND RIGHT
-    0x2510: 0x83,       #  BOX DRAWINGS LIGHT DOWN AND LEFT
-    0x2514: 0x84,       #  BOX DRAWINGS LIGHT UP AND RIGHT
-    0x2518: 0x85,       #  BOX DRAWINGS LIGHT UP AND LEFT
-    0x251C: 0x86,       #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    0x2524: 0x87,       #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    0x252C: 0x88,       #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    0x2534: 0x89,       #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    0x253C: 0x8A,       #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    0x2550: 0xA0,       #  BOX DRAWINGS DOUBLE HORIZONTAL
-    0x2551: 0xA1,       #  BOX DRAWINGS DOUBLE VERTICAL
-    0x2552: 0xA2,       #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    0x2554: 0xA5,       #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    0x2557: 0xA8,       #  BOX DRAWINGS DOUBLE DOWN AND LEFT
-    0x2558: 0xA9,       #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    0x2559: 0xAA,       #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    0x255A: 0xAB,       #  BOX DRAWINGS DOUBLE UP AND RIGHT
-    0x255B: 0xAC,       #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    0x255D: 0xAE,       #  BOX DRAWINGS DOUBLE UP AND LEFT
-    0x255E: 0xAF,       #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    0x255F: 0xB0,       #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    0x2560: 0xB1,       #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    0x2561: 0xB2,       #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    0x2563: 0xB5,       #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    0x2566: 0xB8,       #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    0x2567: 0xB9,       #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    0x2568: 0xBA,       #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    0x2569: 0xBB,       #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    0x256A: 0xBC,       #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    0x256C: 0xBE,       #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    0x2580: 0x8B,       #  UPPER HALF BLOCK
-    0x2584: 0x8C,       #  LOWER HALF BLOCK
-    0x2588: 0x8D,       #  FULL BLOCK
-    0x258C: 0x8E,       #  LEFT HALF BLOCK
-    0x2590: 0x8F,       #  RIGHT HALF BLOCK
-    0x2591: 0x90,       #  LIGHT SHADE
-    0x2592: 0x91,       #  MEDIUM SHADE
-    0x2593: 0x92,       #  DARK SHADE
-    0x25A0: 0x94,       #  BLACK SQUARE
-}
diff --git a/Lib/encodings/mac_centeuro.py b/Lib/encodings/mac_centeuro.py
index 54a1510..0ceba55 100644
--- a/Lib/encodings/mac_centeuro.py
+++ b/Lib/encodings/mac_centeuro.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u02c7'   #  0xFF -> CARON
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  CONTROL CHARACTER
-    0x0001: 0x01,       #  CONTROL CHARACTER
-    0x0002: 0x02,       #  CONTROL CHARACTER
-    0x0003: 0x03,       #  CONTROL CHARACTER
-    0x0004: 0x04,       #  CONTROL CHARACTER
-    0x0005: 0x05,       #  CONTROL CHARACTER
-    0x0006: 0x06,       #  CONTROL CHARACTER
-    0x0007: 0x07,       #  CONTROL CHARACTER
-    0x0008: 0x08,       #  CONTROL CHARACTER
-    0x0009: 0x09,       #  CONTROL CHARACTER
-    0x000A: 0x0A,       #  CONTROL CHARACTER
-    0x000B: 0x0B,       #  CONTROL CHARACTER
-    0x000C: 0x0C,       #  CONTROL CHARACTER
-    0x000D: 0x0D,       #  CONTROL CHARACTER
-    0x000E: 0x0E,       #  CONTROL CHARACTER
-    0x000F: 0x0F,       #  CONTROL CHARACTER
-    0x0010: 0x10,       #  CONTROL CHARACTER
-    0x0011: 0x11,       #  CONTROL CHARACTER
-    0x0012: 0x12,       #  CONTROL CHARACTER
-    0x0013: 0x13,       #  CONTROL CHARACTER
-    0x0014: 0x14,       #  CONTROL CHARACTER
-    0x0015: 0x15,       #  CONTROL CHARACTER
-    0x0016: 0x16,       #  CONTROL CHARACTER
-    0x0017: 0x17,       #  CONTROL CHARACTER
-    0x0018: 0x18,       #  CONTROL CHARACTER
-    0x0019: 0x19,       #  CONTROL CHARACTER
-    0x001A: 0x1A,       #  CONTROL CHARACTER
-    0x001B: 0x1B,       #  CONTROL CHARACTER
-    0x001C: 0x1C,       #  CONTROL CHARACTER
-    0x001D: 0x1D,       #  CONTROL CHARACTER
-    0x001E: 0x1E,       #  CONTROL CHARACTER
-    0x001F: 0x1F,       #  CONTROL CHARACTER
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  CONTROL CHARACTER
-    0x00A0: 0xCA,       #  NO-BREAK SPACE
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A7: 0xA4,       #  SECTION SIGN
-    0x00A8: 0xAC,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xC7,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xC2,       #  NOT SIGN
-    0x00AE: 0xA8,       #  REGISTERED SIGN
-    0x00B0: 0xA1,       #  DEGREE SIGN
-    0x00B6: 0xA6,       #  PILCROW SIGN
-    0x00BB: 0xC8,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00C1: 0xE7,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C4: 0x80,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C9: 0x83,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CD: 0xEA,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00D3: 0xEE,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xEF,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xCD,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0x85,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00DA: 0xF2,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DC: 0x86,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xF8,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DF: 0xA7,       #  LATIN SMALL LETTER SHARP S
-    0x00E1: 0x87,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E4: 0x8A,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E9: 0x8E,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00ED: 0x92,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00F3: 0x97,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0x99,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0x9B,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0x9A,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xD6,       #  DIVISION SIGN
-    0x00FA: 0x9C,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FC: 0x9F,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0xF9,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x0100: 0x81,       #  LATIN CAPITAL LETTER A WITH MACRON
-    0x0101: 0x82,       #  LATIN SMALL LETTER A WITH MACRON
-    0x0104: 0x84,       #  LATIN CAPITAL LETTER A WITH OGONEK
-    0x0105: 0x88,       #  LATIN SMALL LETTER A WITH OGONEK
-    0x0106: 0x8C,       #  LATIN CAPITAL LETTER C WITH ACUTE
-    0x0107: 0x8D,       #  LATIN SMALL LETTER C WITH ACUTE
-    0x010C: 0x89,       #  LATIN CAPITAL LETTER C WITH CARON
-    0x010D: 0x8B,       #  LATIN SMALL LETTER C WITH CARON
-    0x010E: 0x91,       #  LATIN CAPITAL LETTER D WITH CARON
-    0x010F: 0x93,       #  LATIN SMALL LETTER D WITH CARON
-    0x0112: 0x94,       #  LATIN CAPITAL LETTER E WITH MACRON
-    0x0113: 0x95,       #  LATIN SMALL LETTER E WITH MACRON
-    0x0116: 0x96,       #  LATIN CAPITAL LETTER E WITH DOT ABOVE
-    0x0117: 0x98,       #  LATIN SMALL LETTER E WITH DOT ABOVE
-    0x0118: 0xA2,       #  LATIN CAPITAL LETTER E WITH OGONEK
-    0x0119: 0xAB,       #  LATIN SMALL LETTER E WITH OGONEK
-    0x011A: 0x9D,       #  LATIN CAPITAL LETTER E WITH CARON
-    0x011B: 0x9E,       #  LATIN SMALL LETTER E WITH CARON
-    0x0122: 0xFE,       #  LATIN CAPITAL LETTER G WITH CEDILLA
-    0x0123: 0xAE,       #  LATIN SMALL LETTER G WITH CEDILLA
-    0x012A: 0xB1,       #  LATIN CAPITAL LETTER I WITH MACRON
-    0x012B: 0xB4,       #  LATIN SMALL LETTER I WITH MACRON
-    0x012E: 0xAF,       #  LATIN CAPITAL LETTER I WITH OGONEK
-    0x012F: 0xB0,       #  LATIN SMALL LETTER I WITH OGONEK
-    0x0136: 0xB5,       #  LATIN CAPITAL LETTER K WITH CEDILLA
-    0x0137: 0xFA,       #  LATIN SMALL LETTER K WITH CEDILLA
-    0x0139: 0xBD,       #  LATIN CAPITAL LETTER L WITH ACUTE
-    0x013A: 0xBE,       #  LATIN SMALL LETTER L WITH ACUTE
-    0x013B: 0xB9,       #  LATIN CAPITAL LETTER L WITH CEDILLA
-    0x013C: 0xBA,       #  LATIN SMALL LETTER L WITH CEDILLA
-    0x013D: 0xBB,       #  LATIN CAPITAL LETTER L WITH CARON
-    0x013E: 0xBC,       #  LATIN SMALL LETTER L WITH CARON
-    0x0141: 0xFC,       #  LATIN CAPITAL LETTER L WITH STROKE
-    0x0142: 0xB8,       #  LATIN SMALL LETTER L WITH STROKE
-    0x0143: 0xC1,       #  LATIN CAPITAL LETTER N WITH ACUTE
-    0x0144: 0xC4,       #  LATIN SMALL LETTER N WITH ACUTE
-    0x0145: 0xBF,       #  LATIN CAPITAL LETTER N WITH CEDILLA
-    0x0146: 0xC0,       #  LATIN SMALL LETTER N WITH CEDILLA
-    0x0147: 0xC5,       #  LATIN CAPITAL LETTER N WITH CARON
-    0x0148: 0xCB,       #  LATIN SMALL LETTER N WITH CARON
-    0x014C: 0xCF,       #  LATIN CAPITAL LETTER O WITH MACRON
-    0x014D: 0xD8,       #  LATIN SMALL LETTER O WITH MACRON
-    0x0150: 0xCC,       #  LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-    0x0151: 0xCE,       #  LATIN SMALL LETTER O WITH DOUBLE ACUTE
-    0x0154: 0xD9,       #  LATIN CAPITAL LETTER R WITH ACUTE
-    0x0155: 0xDA,       #  LATIN SMALL LETTER R WITH ACUTE
-    0x0156: 0xDF,       #  LATIN CAPITAL LETTER R WITH CEDILLA
-    0x0157: 0xE0,       #  LATIN SMALL LETTER R WITH CEDILLA
-    0x0158: 0xDB,       #  LATIN CAPITAL LETTER R WITH CARON
-    0x0159: 0xDE,       #  LATIN SMALL LETTER R WITH CARON
-    0x015A: 0xE5,       #  LATIN CAPITAL LETTER S WITH ACUTE
-    0x015B: 0xE6,       #  LATIN SMALL LETTER S WITH ACUTE
-    0x0160: 0xE1,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0xE4,       #  LATIN SMALL LETTER S WITH CARON
-    0x0164: 0xE8,       #  LATIN CAPITAL LETTER T WITH CARON
-    0x0165: 0xE9,       #  LATIN SMALL LETTER T WITH CARON
-    0x016A: 0xED,       #  LATIN CAPITAL LETTER U WITH MACRON
-    0x016B: 0xF0,       #  LATIN SMALL LETTER U WITH MACRON
-    0x016E: 0xF1,       #  LATIN CAPITAL LETTER U WITH RING ABOVE
-    0x016F: 0xF3,       #  LATIN SMALL LETTER U WITH RING ABOVE
-    0x0170: 0xF4,       #  LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-    0x0171: 0xF5,       #  LATIN SMALL LETTER U WITH DOUBLE ACUTE
-    0x0172: 0xF6,       #  LATIN CAPITAL LETTER U WITH OGONEK
-    0x0173: 0xF7,       #  LATIN SMALL LETTER U WITH OGONEK
-    0x0179: 0x8F,       #  LATIN CAPITAL LETTER Z WITH ACUTE
-    0x017A: 0x90,       #  LATIN SMALL LETTER Z WITH ACUTE
-    0x017B: 0xFB,       #  LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    0x017C: 0xFD,       #  LATIN SMALL LETTER Z WITH DOT ABOVE
-    0x017D: 0xEB,       #  LATIN CAPITAL LETTER Z WITH CARON
-    0x017E: 0xEC,       #  LATIN SMALL LETTER Z WITH CARON
-    0x02C7: 0xFF,       #  CARON
-    0x2013: 0xD0,       #  EN DASH
-    0x2014: 0xD1,       #  EM DASH
-    0x2018: 0xD4,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0xD5,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0xE2,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0xD2,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0xD3,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0xE3,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0xA0,       #  DAGGER
-    0x2022: 0xA5,       #  BULLET
-    0x2026: 0xC9,       #  HORIZONTAL ELLIPSIS
-    0x2039: 0xDC,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0xDD,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x2122: 0xAA,       #  TRADE MARK SIGN
-    0x2202: 0xB6,       #  PARTIAL DIFFERENTIAL
-    0x2206: 0xC6,       #  INCREMENT
-    0x2211: 0xB7,       #  N-ARY SUMMATION
-    0x221A: 0xC3,       #  SQUARE ROOT
-    0x2260: 0xAD,       #  NOT EQUAL TO
-    0x2264: 0xB2,       #  LESS-THAN OR EQUAL TO
-    0x2265: 0xB3,       #  GREATER-THAN OR EQUAL TO
-    0x25CA: 0xD7,       #  LOZENGE
-}
diff --git a/Lib/encodings/mac_croatian.py b/Lib/encodings/mac_croatian.py
index 9e93cdd..535c5ff 100644
--- a/Lib/encodings/mac_croatian.py
+++ b/Lib/encodings/mac_croatian.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u02c7'   #  0xFF -> CARON
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  CONTROL CHARACTER
-    0x0001: 0x01,       #  CONTROL CHARACTER
-    0x0002: 0x02,       #  CONTROL CHARACTER
-    0x0003: 0x03,       #  CONTROL CHARACTER
-    0x0004: 0x04,       #  CONTROL CHARACTER
-    0x0005: 0x05,       #  CONTROL CHARACTER
-    0x0006: 0x06,       #  CONTROL CHARACTER
-    0x0007: 0x07,       #  CONTROL CHARACTER
-    0x0008: 0x08,       #  CONTROL CHARACTER
-    0x0009: 0x09,       #  CONTROL CHARACTER
-    0x000A: 0x0A,       #  CONTROL CHARACTER
-    0x000B: 0x0B,       #  CONTROL CHARACTER
-    0x000C: 0x0C,       #  CONTROL CHARACTER
-    0x000D: 0x0D,       #  CONTROL CHARACTER
-    0x000E: 0x0E,       #  CONTROL CHARACTER
-    0x000F: 0x0F,       #  CONTROL CHARACTER
-    0x0010: 0x10,       #  CONTROL CHARACTER
-    0x0011: 0x11,       #  CONTROL CHARACTER
-    0x0012: 0x12,       #  CONTROL CHARACTER
-    0x0013: 0x13,       #  CONTROL CHARACTER
-    0x0014: 0x14,       #  CONTROL CHARACTER
-    0x0015: 0x15,       #  CONTROL CHARACTER
-    0x0016: 0x16,       #  CONTROL CHARACTER
-    0x0017: 0x17,       #  CONTROL CHARACTER
-    0x0018: 0x18,       #  CONTROL CHARACTER
-    0x0019: 0x19,       #  CONTROL CHARACTER
-    0x001A: 0x1A,       #  CONTROL CHARACTER
-    0x001B: 0x1B,       #  CONTROL CHARACTER
-    0x001C: 0x1C,       #  CONTROL CHARACTER
-    0x001D: 0x1D,       #  CONTROL CHARACTER
-    0x001E: 0x1E,       #  CONTROL CHARACTER
-    0x001F: 0x1F,       #  CONTROL CHARACTER
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  CONTROL CHARACTER
-    0x00A0: 0xCA,       #  NO-BREAK SPACE
-    0x00A1: 0xC1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A7: 0xA4,       #  SECTION SIGN
-    0x00A8: 0xAC,       #  DIAERESIS
-    0x00A9: 0xD9,       #  COPYRIGHT SIGN
-    0x00AA: 0xBB,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0xC7,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xC2,       #  NOT SIGN
-    0x00AE: 0xA8,       #  REGISTERED SIGN
-    0x00AF: 0xF8,       #  MACRON
-    0x00B0: 0xA1,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B4: 0xAB,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xA6,       #  PILCROW SIGN
-    0x00B7: 0xE1,       #  MIDDLE DOT
-    0x00B8: 0xFC,       #  CEDILLA
-    0x00BA: 0xBC,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0xDF,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BF: 0xC0,       #  INVERTED QUESTION MARK
-    0x00C0: 0xCB,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xE7,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xE5,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xCC,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0x80,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0x81,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xDE,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0x82,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xE9,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0x83,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xFD,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xFA,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xED,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xEA,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xEB,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xEC,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D1: 0x84,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xF1,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xEE,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xEF,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xCD,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0x85,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D8: 0xAF,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xF4,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xF2,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xF3,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0x86,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xA7,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0x88,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0x87,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0x89,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0x8B,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0x8A,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0x8C,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xFE,       #  LATIN SMALL LETTER AE
-    0x00E7: 0x8D,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0x8F,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0x8E,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0x90,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0x91,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0x93,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0x92,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0x94,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0x95,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F1: 0x96,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0x98,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0x97,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0x99,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0x9B,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0x9A,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xD6,       #  DIVISION SIGN
-    0x00F8: 0xBF,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0x9D,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0x9C,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0x9E,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0x9F,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x0106: 0xC6,       #  LATIN CAPITAL LETTER C WITH ACUTE
-    0x0107: 0xE6,       #  LATIN SMALL LETTER C WITH ACUTE
-    0x010C: 0xC8,       #  LATIN CAPITAL LETTER C WITH CARON
-    0x010D: 0xE8,       #  LATIN SMALL LETTER C WITH CARON
-    0x0110: 0xD0,       #  LATIN CAPITAL LETTER D WITH STROKE
-    0x0111: 0xF0,       #  LATIN SMALL LETTER D WITH STROKE
-    0x0131: 0xF5,       #  LATIN SMALL LETTER DOTLESS I
-    0x0152: 0xCE,       #  LATIN CAPITAL LIGATURE OE
-    0x0153: 0xCF,       #  LATIN SMALL LIGATURE OE
-    0x0160: 0xA9,       #  LATIN CAPITAL LETTER S WITH CARON
-    0x0161: 0xB9,       #  LATIN SMALL LETTER S WITH CARON
-    0x017D: 0xAE,       #  LATIN CAPITAL LETTER Z WITH CARON
-    0x017E: 0xBE,       #  LATIN SMALL LETTER Z WITH CARON
-    0x0192: 0xC4,       #  LATIN SMALL LETTER F WITH HOOK
-    0x02C6: 0xF6,       #  MODIFIER LETTER CIRCUMFLEX ACCENT
-    0x02C7: 0xFF,       #  CARON
-    0x02DA: 0xFB,       #  RING ABOVE
-    0x02DC: 0xF7,       #  SMALL TILDE
-    0x03A9: 0xBD,       #  GREEK CAPITAL LETTER OMEGA
-    0x03C0: 0xF9,       #  GREEK SMALL LETTER PI
-    0x2013: 0xE0,       #  EN DASH
-    0x2014: 0xD1,       #  EM DASH
-    0x2018: 0xD4,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0xD5,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0xE2,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0xD2,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0xD3,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0xE3,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0xA0,       #  DAGGER
-    0x2022: 0xA5,       #  BULLET
-    0x2026: 0xC9,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0xE4,       #  PER MILLE SIGN
-    0x2039: 0xDC,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0xDD,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x2044: 0xDA,       #  FRACTION SLASH
-    0x20AC: 0xDB,       #  EURO SIGN
-    0x2122: 0xAA,       #  TRADE MARK SIGN
-    0x2202: 0xB6,       #  PARTIAL DIFFERENTIAL
-    0x2206: 0xB4,       #  INCREMENT
-    0x220F: 0xB8,       #  N-ARY PRODUCT
-    0x2211: 0xB7,       #  N-ARY SUMMATION
-    0x221A: 0xC3,       #  SQUARE ROOT
-    0x221E: 0xB0,       #  INFINITY
-    0x222B: 0xBA,       #  INTEGRAL
-    0x2248: 0xC5,       #  ALMOST EQUAL TO
-    0x2260: 0xAD,       #  NOT EQUAL TO
-    0x2264: 0xB2,       #  LESS-THAN OR EQUAL TO
-    0x2265: 0xB3,       #  GREATER-THAN OR EQUAL TO
-    0x25CA: 0xD7,       #  LOZENGE
-    0xF8FF: 0xD8,       #  Apple logo
-}
diff --git a/Lib/encodings/mac_cyrillic.py b/Lib/encodings/mac_cyrillic.py
index 8ffd715..a56b8c4 100644
--- a/Lib/encodings/mac_cyrillic.py
+++ b/Lib/encodings/mac_cyrillic.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u20ac'   #  0xFF -> EURO SIGN
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  CONTROL CHARACTER
-    0x0001: 0x01,       #  CONTROL CHARACTER
-    0x0002: 0x02,       #  CONTROL CHARACTER
-    0x0003: 0x03,       #  CONTROL CHARACTER
-    0x0004: 0x04,       #  CONTROL CHARACTER
-    0x0005: 0x05,       #  CONTROL CHARACTER
-    0x0006: 0x06,       #  CONTROL CHARACTER
-    0x0007: 0x07,       #  CONTROL CHARACTER
-    0x0008: 0x08,       #  CONTROL CHARACTER
-    0x0009: 0x09,       #  CONTROL CHARACTER
-    0x000A: 0x0A,       #  CONTROL CHARACTER
-    0x000B: 0x0B,       #  CONTROL CHARACTER
-    0x000C: 0x0C,       #  CONTROL CHARACTER
-    0x000D: 0x0D,       #  CONTROL CHARACTER
-    0x000E: 0x0E,       #  CONTROL CHARACTER
-    0x000F: 0x0F,       #  CONTROL CHARACTER
-    0x0010: 0x10,       #  CONTROL CHARACTER
-    0x0011: 0x11,       #  CONTROL CHARACTER
-    0x0012: 0x12,       #  CONTROL CHARACTER
-    0x0013: 0x13,       #  CONTROL CHARACTER
-    0x0014: 0x14,       #  CONTROL CHARACTER
-    0x0015: 0x15,       #  CONTROL CHARACTER
-    0x0016: 0x16,       #  CONTROL CHARACTER
-    0x0017: 0x17,       #  CONTROL CHARACTER
-    0x0018: 0x18,       #  CONTROL CHARACTER
-    0x0019: 0x19,       #  CONTROL CHARACTER
-    0x001A: 0x1A,       #  CONTROL CHARACTER
-    0x001B: 0x1B,       #  CONTROL CHARACTER
-    0x001C: 0x1C,       #  CONTROL CHARACTER
-    0x001D: 0x1D,       #  CONTROL CHARACTER
-    0x001E: 0x1E,       #  CONTROL CHARACTER
-    0x001F: 0x1F,       #  CONTROL CHARACTER
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  CONTROL CHARACTER
-    0x00A0: 0xCA,       #  NO-BREAK SPACE
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A7: 0xA4,       #  SECTION SIGN
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xC7,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xC2,       #  NOT SIGN
-    0x00AE: 0xA8,       #  REGISTERED SIGN
-    0x00B0: 0xA1,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xA6,       #  PILCROW SIGN
-    0x00BB: 0xC8,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00F7: 0xD6,       #  DIVISION SIGN
-    0x0192: 0xC4,       #  LATIN SMALL LETTER F WITH HOOK
-    0x0401: 0xDD,       #  CYRILLIC CAPITAL LETTER IO
-    0x0402: 0xAB,       #  CYRILLIC CAPITAL LETTER DJE
-    0x0403: 0xAE,       #  CYRILLIC CAPITAL LETTER GJE
-    0x0404: 0xB8,       #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
-    0x0405: 0xC1,       #  CYRILLIC CAPITAL LETTER DZE
-    0x0406: 0xA7,       #  CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-    0x0407: 0xBA,       #  CYRILLIC CAPITAL LETTER YI
-    0x0408: 0xB7,       #  CYRILLIC CAPITAL LETTER JE
-    0x0409: 0xBC,       #  CYRILLIC CAPITAL LETTER LJE
-    0x040A: 0xBE,       #  CYRILLIC CAPITAL LETTER NJE
-    0x040B: 0xCB,       #  CYRILLIC CAPITAL LETTER TSHE
-    0x040C: 0xCD,       #  CYRILLIC CAPITAL LETTER KJE
-    0x040E: 0xD8,       #  CYRILLIC CAPITAL LETTER SHORT U
-    0x040F: 0xDA,       #  CYRILLIC CAPITAL LETTER DZHE
-    0x0410: 0x80,       #  CYRILLIC CAPITAL LETTER A
-    0x0411: 0x81,       #  CYRILLIC CAPITAL LETTER BE
-    0x0412: 0x82,       #  CYRILLIC CAPITAL LETTER VE
-    0x0413: 0x83,       #  CYRILLIC CAPITAL LETTER GHE
-    0x0414: 0x84,       #  CYRILLIC CAPITAL LETTER DE
-    0x0415: 0x85,       #  CYRILLIC CAPITAL LETTER IE
-    0x0416: 0x86,       #  CYRILLIC CAPITAL LETTER ZHE
-    0x0417: 0x87,       #  CYRILLIC CAPITAL LETTER ZE
-    0x0418: 0x88,       #  CYRILLIC CAPITAL LETTER I
-    0x0419: 0x89,       #  CYRILLIC CAPITAL LETTER SHORT I
-    0x041A: 0x8A,       #  CYRILLIC CAPITAL LETTER KA
-    0x041B: 0x8B,       #  CYRILLIC CAPITAL LETTER EL
-    0x041C: 0x8C,       #  CYRILLIC CAPITAL LETTER EM
-    0x041D: 0x8D,       #  CYRILLIC CAPITAL LETTER EN
-    0x041E: 0x8E,       #  CYRILLIC CAPITAL LETTER O
-    0x041F: 0x8F,       #  CYRILLIC CAPITAL LETTER PE
-    0x0420: 0x90,       #  CYRILLIC CAPITAL LETTER ER
-    0x0421: 0x91,       #  CYRILLIC CAPITAL LETTER ES
-    0x0422: 0x92,       #  CYRILLIC CAPITAL LETTER TE
-    0x0423: 0x93,       #  CYRILLIC CAPITAL LETTER U
-    0x0424: 0x94,       #  CYRILLIC CAPITAL LETTER EF
-    0x0425: 0x95,       #  CYRILLIC CAPITAL LETTER HA
-    0x0426: 0x96,       #  CYRILLIC CAPITAL LETTER TSE
-    0x0427: 0x97,       #  CYRILLIC CAPITAL LETTER CHE
-    0x0428: 0x98,       #  CYRILLIC CAPITAL LETTER SHA
-    0x0429: 0x99,       #  CYRILLIC CAPITAL LETTER SHCHA
-    0x042A: 0x9A,       #  CYRILLIC CAPITAL LETTER HARD SIGN
-    0x042B: 0x9B,       #  CYRILLIC CAPITAL LETTER YERU
-    0x042C: 0x9C,       #  CYRILLIC CAPITAL LETTER SOFT SIGN
-    0x042D: 0x9D,       #  CYRILLIC CAPITAL LETTER E
-    0x042E: 0x9E,       #  CYRILLIC CAPITAL LETTER YU
-    0x042F: 0x9F,       #  CYRILLIC CAPITAL LETTER YA
-    0x0430: 0xE0,       #  CYRILLIC SMALL LETTER A
-    0x0431: 0xE1,       #  CYRILLIC SMALL LETTER BE
-    0x0432: 0xE2,       #  CYRILLIC SMALL LETTER VE
-    0x0433: 0xE3,       #  CYRILLIC SMALL LETTER GHE
-    0x0434: 0xE4,       #  CYRILLIC SMALL LETTER DE
-    0x0435: 0xE5,       #  CYRILLIC SMALL LETTER IE
-    0x0436: 0xE6,       #  CYRILLIC SMALL LETTER ZHE
-    0x0437: 0xE7,       #  CYRILLIC SMALL LETTER ZE
-    0x0438: 0xE8,       #  CYRILLIC SMALL LETTER I
-    0x0439: 0xE9,       #  CYRILLIC SMALL LETTER SHORT I
-    0x043A: 0xEA,       #  CYRILLIC SMALL LETTER KA
-    0x043B: 0xEB,       #  CYRILLIC SMALL LETTER EL
-    0x043C: 0xEC,       #  CYRILLIC SMALL LETTER EM
-    0x043D: 0xED,       #  CYRILLIC SMALL LETTER EN
-    0x043E: 0xEE,       #  CYRILLIC SMALL LETTER O
-    0x043F: 0xEF,       #  CYRILLIC SMALL LETTER PE
-    0x0440: 0xF0,       #  CYRILLIC SMALL LETTER ER
-    0x0441: 0xF1,       #  CYRILLIC SMALL LETTER ES
-    0x0442: 0xF2,       #  CYRILLIC SMALL LETTER TE
-    0x0443: 0xF3,       #  CYRILLIC SMALL LETTER U
-    0x0444: 0xF4,       #  CYRILLIC SMALL LETTER EF
-    0x0445: 0xF5,       #  CYRILLIC SMALL LETTER HA
-    0x0446: 0xF6,       #  CYRILLIC SMALL LETTER TSE
-    0x0447: 0xF7,       #  CYRILLIC SMALL LETTER CHE
-    0x0448: 0xF8,       #  CYRILLIC SMALL LETTER SHA
-    0x0449: 0xF9,       #  CYRILLIC SMALL LETTER SHCHA
-    0x044A: 0xFA,       #  CYRILLIC SMALL LETTER HARD SIGN
-    0x044B: 0xFB,       #  CYRILLIC SMALL LETTER YERU
-    0x044C: 0xFC,       #  CYRILLIC SMALL LETTER SOFT SIGN
-    0x044D: 0xFD,       #  CYRILLIC SMALL LETTER E
-    0x044E: 0xFE,       #  CYRILLIC SMALL LETTER YU
-    0x044F: 0xDF,       #  CYRILLIC SMALL LETTER YA
-    0x0451: 0xDE,       #  CYRILLIC SMALL LETTER IO
-    0x0452: 0xAC,       #  CYRILLIC SMALL LETTER DJE
-    0x0453: 0xAF,       #  CYRILLIC SMALL LETTER GJE
-    0x0454: 0xB9,       #  CYRILLIC SMALL LETTER UKRAINIAN IE
-    0x0455: 0xCF,       #  CYRILLIC SMALL LETTER DZE
-    0x0456: 0xB4,       #  CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-    0x0457: 0xBB,       #  CYRILLIC SMALL LETTER YI
-    0x0458: 0xC0,       #  CYRILLIC SMALL LETTER JE
-    0x0459: 0xBD,       #  CYRILLIC SMALL LETTER LJE
-    0x045A: 0xBF,       #  CYRILLIC SMALL LETTER NJE
-    0x045B: 0xCC,       #  CYRILLIC SMALL LETTER TSHE
-    0x045C: 0xCE,       #  CYRILLIC SMALL LETTER KJE
-    0x045E: 0xD9,       #  CYRILLIC SMALL LETTER SHORT U
-    0x045F: 0xDB,       #  CYRILLIC SMALL LETTER DZHE
-    0x0490: 0xA2,       #  CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-    0x0491: 0xB6,       #  CYRILLIC SMALL LETTER GHE WITH UPTURN
-    0x2013: 0xD0,       #  EN DASH
-    0x2014: 0xD1,       #  EM DASH
-    0x2018: 0xD4,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0xD5,       #  RIGHT SINGLE QUOTATION MARK
-    0x201C: 0xD2,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0xD3,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0xD7,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0xA0,       #  DAGGER
-    0x2022: 0xA5,       #  BULLET
-    0x2026: 0xC9,       #  HORIZONTAL ELLIPSIS
-    0x20AC: 0xFF,       #  EURO SIGN
-    0x2116: 0xDC,       #  NUMERO SIGN
-    0x2122: 0xAA,       #  TRADE MARK SIGN
-    0x2206: 0xC6,       #  INCREMENT
-    0x221A: 0xC3,       #  SQUARE ROOT
-    0x221E: 0xB0,       #  INFINITY
-    0x2248: 0xC5,       #  ALMOST EQUAL TO
-    0x2260: 0xAD,       #  NOT EQUAL TO
-    0x2264: 0xB2,       #  LESS-THAN OR EQUAL TO
-    0x2265: 0xB3,       #  GREATER-THAN OR EQUAL TO
-}
diff --git a/Lib/encodings/mac_farsi.py b/Lib/encodings/mac_farsi.py
index 6d26a42..a6afd14 100644
--- a/Lib/encodings/mac_farsi.py
+++ b/Lib/encodings/mac_farsi.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u06d2'   #  0xFF -> ARABIC LETTER YEH BARREE
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  CONTROL CHARACTER
-    0x0001: 0x01,       #  CONTROL CHARACTER
-    0x0002: 0x02,       #  CONTROL CHARACTER
-    0x0003: 0x03,       #  CONTROL CHARACTER
-    0x0004: 0x04,       #  CONTROL CHARACTER
-    0x0005: 0x05,       #  CONTROL CHARACTER
-    0x0006: 0x06,       #  CONTROL CHARACTER
-    0x0007: 0x07,       #  CONTROL CHARACTER
-    0x0008: 0x08,       #  CONTROL CHARACTER
-    0x0009: 0x09,       #  CONTROL CHARACTER
-    0x000A: 0x0A,       #  CONTROL CHARACTER
-    0x000B: 0x0B,       #  CONTROL CHARACTER
-    0x000C: 0x0C,       #  CONTROL CHARACTER
-    0x000D: 0x0D,       #  CONTROL CHARACTER
-    0x000E: 0x0E,       #  CONTROL CHARACTER
-    0x000F: 0x0F,       #  CONTROL CHARACTER
-    0x0010: 0x10,       #  CONTROL CHARACTER
-    0x0011: 0x11,       #  CONTROL CHARACTER
-    0x0012: 0x12,       #  CONTROL CHARACTER
-    0x0013: 0x13,       #  CONTROL CHARACTER
-    0x0014: 0x14,       #  CONTROL CHARACTER
-    0x0015: 0x15,       #  CONTROL CHARACTER
-    0x0016: 0x16,       #  CONTROL CHARACTER
-    0x0017: 0x17,       #  CONTROL CHARACTER
-    0x0018: 0x18,       #  CONTROL CHARACTER
-    0x0019: 0x19,       #  CONTROL CHARACTER
-    0x001A: 0x1A,       #  CONTROL CHARACTER
-    0x001B: 0x1B,       #  CONTROL CHARACTER
-    0x001C: 0x1C,       #  CONTROL CHARACTER
-    0x001D: 0x1D,       #  CONTROL CHARACTER
-    0x001E: 0x1E,       #  CONTROL CHARACTER
-    0x001F: 0x1F,       #  CONTROL CHARACTER
-    0x0020: 0x20,       #  SPACE, left-right
-    0x0020: 0xA0,       #  SPACE, right-left
-    0x0021: 0x21,       #  EXCLAMATION MARK, left-right
-    0x0021: 0xA1,       #  EXCLAMATION MARK, right-left
-    0x0022: 0x22,       #  QUOTATION MARK, left-right
-    0x0022: 0xA2,       #  QUOTATION MARK, right-left
-    0x0023: 0x23,       #  NUMBER SIGN, left-right
-    0x0023: 0xA3,       #  NUMBER SIGN, right-left
-    0x0024: 0x24,       #  DOLLAR SIGN, left-right
-    0x0024: 0xA4,       #  DOLLAR SIGN, right-left
-    0x0025: 0x25,       #  PERCENT SIGN, left-right
-    0x0026: 0x26,       #  AMPERSAND, left-right
-    0x0026: 0xA6,       #  AMPERSAND, right-left
-    0x0027: 0x27,       #  APOSTROPHE, left-right
-    0x0027: 0xA7,       #  APOSTROPHE, right-left
-    0x0028: 0x28,       #  LEFT PARENTHESIS, left-right
-    0x0028: 0xA8,       #  LEFT PARENTHESIS, right-left
-    0x0029: 0x29,       #  RIGHT PARENTHESIS, left-right
-    0x0029: 0xA9,       #  RIGHT PARENTHESIS, right-left
-    0x002A: 0x2A,       #  ASTERISK, left-right
-    0x002A: 0xAA,       #  ASTERISK, right-left
-    0x002B: 0x2B,       #  PLUS SIGN, left-right
-    0x002B: 0xAB,       #  PLUS SIGN, right-left
-    0x002C: 0x2C,       #  COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
-    0x002D: 0x2D,       #  HYPHEN-MINUS, left-right
-    0x002D: 0xAD,       #  HYPHEN-MINUS, right-left
-    0x002E: 0x2E,       #  FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
-    0x002E: 0xAE,       #  FULL STOP, right-left
-    0x002F: 0x2F,       #  SOLIDUS, left-right
-    0x002F: 0xAF,       #  SOLIDUS, right-left
-    0x0030: 0x30,       #  DIGIT ZERO;  in Arabic-script context, displayed as 0x06F0 EXTENDED ARABIC-INDIC DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE;   in Arabic-script context, displayed as 0x06F1 EXTENDED ARABIC-INDIC DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO;   in Arabic-script context, displayed as 0x06F2 EXTENDED ARABIC-INDIC DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE; in Arabic-script context, displayed as 0x06F3 EXTENDED ARABIC-INDIC DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR;  in Arabic-script context, displayed as 0x06F4 EXTENDED ARABIC-INDIC DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE;  in Arabic-script context, displayed as 0x06F5 EXTENDED ARABIC-INDIC DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX;   in Arabic-script context, displayed as 0x06F6 EXTENDED ARABIC-INDIC DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN; in Arabic-script context, displayed as 0x06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT; in Arabic-script context, displayed as 0x06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE;  in Arabic-script context, displayed as 0x06F9 EXTENDED ARABIC-INDIC DIGIT NINE
-    0x003A: 0x3A,       #  COLON, left-right
-    0x003A: 0xBA,       #  COLON, right-left
-    0x003B: 0x3B,       #  SEMICOLON, left-right
-    0x003C: 0x3C,       #  LESS-THAN SIGN, left-right
-    0x003C: 0xBC,       #  LESS-THAN SIGN, right-left
-    0x003D: 0x3D,       #  EQUALS SIGN, left-right
-    0x003D: 0xBD,       #  EQUALS SIGN, right-left
-    0x003E: 0x3E,       #  GREATER-THAN SIGN, left-right
-    0x003E: 0xBE,       #  GREATER-THAN SIGN, right-left
-    0x003F: 0x3F,       #  QUESTION MARK, left-right
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET, left-right
-    0x005B: 0xDB,       #  LEFT SQUARE BRACKET, right-left
-    0x005C: 0x5C,       #  REVERSE SOLIDUS, left-right
-    0x005C: 0xDC,       #  REVERSE SOLIDUS, right-left
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET, left-right
-    0x005D: 0xDD,       #  RIGHT SQUARE BRACKET, right-left
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT, left-right
-    0x005E: 0xDE,       #  CIRCUMFLEX ACCENT, right-left
-    0x005F: 0x5F,       #  LOW LINE, left-right
-    0x005F: 0xDF,       #  LOW LINE, right-left
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET, left-right
-    0x007B: 0xFB,       #  LEFT CURLY BRACKET, right-left
-    0x007C: 0x7C,       #  VERTICAL LINE, left-right
-    0x007C: 0xFC,       #  VERTICAL LINE, right-left
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET, left-right
-    0x007D: 0xFD,       #  RIGHT CURLY BRACKET, right-left
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  CONTROL CHARACTER
-    0x00A0: 0x81,       #  NO-BREAK SPACE, right-left
-    0x00AB: 0x8C,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
-    0x00BB: 0x98,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
-    0x00C4: 0x80,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C7: 0x82,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C9: 0x83,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00D1: 0x84,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D6: 0x85,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00DC: 0x86,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00E0: 0x88,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0x87,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0x89,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E4: 0x8A,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E7: 0x8D,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0x8F,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0x8E,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0x90,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0x91,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00ED: 0x92,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0x94,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0x95,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F1: 0x96,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F3: 0x97,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0x99,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F6: 0x9A,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0x9B,       #  DIVISION SIGN, right-left
-    0x00F9: 0x9D,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0x9C,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0x9E,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0x9F,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x060C: 0xAC,       #  ARABIC COMMA
-    0x061B: 0xBB,       #  ARABIC SEMICOLON
-    0x061F: 0xBF,       #  ARABIC QUESTION MARK
-    0x0621: 0xC1,       #  ARABIC LETTER HAMZA
-    0x0622: 0xC2,       #  ARABIC LETTER ALEF WITH MADDA ABOVE
-    0x0623: 0xC3,       #  ARABIC LETTER ALEF WITH HAMZA ABOVE
-    0x0624: 0xC4,       #  ARABIC LETTER WAW WITH HAMZA ABOVE
-    0x0625: 0xC5,       #  ARABIC LETTER ALEF WITH HAMZA BELOW
-    0x0626: 0xC6,       #  ARABIC LETTER YEH WITH HAMZA ABOVE
-    0x0627: 0xC7,       #  ARABIC LETTER ALEF
-    0x0628: 0xC8,       #  ARABIC LETTER BEH
-    0x0629: 0xC9,       #  ARABIC LETTER TEH MARBUTA
-    0x062A: 0xCA,       #  ARABIC LETTER TEH
-    0x062B: 0xCB,       #  ARABIC LETTER THEH
-    0x062C: 0xCC,       #  ARABIC LETTER JEEM
-    0x062D: 0xCD,       #  ARABIC LETTER HAH
-    0x062E: 0xCE,       #  ARABIC LETTER KHAH
-    0x062F: 0xCF,       #  ARABIC LETTER DAL
-    0x0630: 0xD0,       #  ARABIC LETTER THAL
-    0x0631: 0xD1,       #  ARABIC LETTER REH
-    0x0632: 0xD2,       #  ARABIC LETTER ZAIN
-    0x0633: 0xD3,       #  ARABIC LETTER SEEN
-    0x0634: 0xD4,       #  ARABIC LETTER SHEEN
-    0x0635: 0xD5,       #  ARABIC LETTER SAD
-    0x0636: 0xD6,       #  ARABIC LETTER DAD
-    0x0637: 0xD7,       #  ARABIC LETTER TAH
-    0x0638: 0xD8,       #  ARABIC LETTER ZAH
-    0x0639: 0xD9,       #  ARABIC LETTER AIN
-    0x063A: 0xDA,       #  ARABIC LETTER GHAIN
-    0x0640: 0xE0,       #  ARABIC TATWEEL
-    0x0641: 0xE1,       #  ARABIC LETTER FEH
-    0x0642: 0xE2,       #  ARABIC LETTER QAF
-    0x0643: 0xE3,       #  ARABIC LETTER KAF
-    0x0644: 0xE4,       #  ARABIC LETTER LAM
-    0x0645: 0xE5,       #  ARABIC LETTER MEEM
-    0x0646: 0xE6,       #  ARABIC LETTER NOON
-    0x0647: 0xE7,       #  ARABIC LETTER HEH
-    0x0648: 0xE8,       #  ARABIC LETTER WAW
-    0x0649: 0xE9,       #  ARABIC LETTER ALEF MAKSURA
-    0x064A: 0xEA,       #  ARABIC LETTER YEH
-    0x064B: 0xEB,       #  ARABIC FATHATAN
-    0x064C: 0xEC,       #  ARABIC DAMMATAN
-    0x064D: 0xED,       #  ARABIC KASRATAN
-    0x064E: 0xEE,       #  ARABIC FATHA
-    0x064F: 0xEF,       #  ARABIC DAMMA
-    0x0650: 0xF0,       #  ARABIC KASRA
-    0x0651: 0xF1,       #  ARABIC SHADDA
-    0x0652: 0xF2,       #  ARABIC SUKUN
-    0x066A: 0xA5,       #  ARABIC PERCENT SIGN
-    0x0679: 0xF4,       #  ARABIC LETTER TTEH
-    0x067E: 0xF3,       #  ARABIC LETTER PEH
-    0x0686: 0xF5,       #  ARABIC LETTER TCHEH
-    0x0688: 0xF9,       #  ARABIC LETTER DDAL
-    0x0691: 0xFA,       #  ARABIC LETTER RREH
-    0x0698: 0xFE,       #  ARABIC LETTER JEH
-    0x06A4: 0xF7,       #  ARABIC LETTER VEH
-    0x06AF: 0xF8,       #  ARABIC LETTER GAF
-    0x06BA: 0x8B,       #  ARABIC LETTER NOON GHUNNA
-    0x06D2: 0xFF,       #  ARABIC LETTER YEH BARREE
-    0x06D5: 0xF6,       #  ARABIC LETTER AE
-    0x06F0: 0xB0,       #  EXTENDED ARABIC-INDIC DIGIT ZERO, right-left (need override)
-    0x06F1: 0xB1,       #  EXTENDED ARABIC-INDIC DIGIT ONE, right-left (need override)
-    0x06F2: 0xB2,       #  EXTENDED ARABIC-INDIC DIGIT TWO, right-left (need override)
-    0x06F3: 0xB3,       #  EXTENDED ARABIC-INDIC DIGIT THREE, right-left (need override)
-    0x06F4: 0xB4,       #  EXTENDED ARABIC-INDIC DIGIT FOUR, right-left (need override)
-    0x06F5: 0xB5,       #  EXTENDED ARABIC-INDIC DIGIT FIVE, right-left (need override)
-    0x06F6: 0xB6,       #  EXTENDED ARABIC-INDIC DIGIT SIX, right-left (need override)
-    0x06F7: 0xB7,       #  EXTENDED ARABIC-INDIC DIGIT SEVEN, right-left (need override)
-    0x06F8: 0xB8,       #  EXTENDED ARABIC-INDIC DIGIT EIGHT, right-left (need override)
-    0x06F9: 0xB9,       #  EXTENDED ARABIC-INDIC DIGIT NINE, right-left (need override)
-    0x2026: 0x93,       #  HORIZONTAL ELLIPSIS, right-left
-    0x274A: 0xC0,       #  EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
-}
diff --git a/Lib/encodings/mac_greek.py b/Lib/encodings/mac_greek.py
index 7264f9a..526cd9e 100644
--- a/Lib/encodings/mac_greek.py
+++ b/Lib/encodings/mac_greek.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\xad'     #  0xFF -> SOFT HYPHEN # before Mac OS 9.2.2, was undefined
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  CONTROL CHARACTER
-    0x0001: 0x01,       #  CONTROL CHARACTER
-    0x0002: 0x02,       #  CONTROL CHARACTER
-    0x0003: 0x03,       #  CONTROL CHARACTER
-    0x0004: 0x04,       #  CONTROL CHARACTER
-    0x0005: 0x05,       #  CONTROL CHARACTER
-    0x0006: 0x06,       #  CONTROL CHARACTER
-    0x0007: 0x07,       #  CONTROL CHARACTER
-    0x0008: 0x08,       #  CONTROL CHARACTER
-    0x0009: 0x09,       #  CONTROL CHARACTER
-    0x000A: 0x0A,       #  CONTROL CHARACTER
-    0x000B: 0x0B,       #  CONTROL CHARACTER
-    0x000C: 0x0C,       #  CONTROL CHARACTER
-    0x000D: 0x0D,       #  CONTROL CHARACTER
-    0x000E: 0x0E,       #  CONTROL CHARACTER
-    0x000F: 0x0F,       #  CONTROL CHARACTER
-    0x0010: 0x10,       #  CONTROL CHARACTER
-    0x0011: 0x11,       #  CONTROL CHARACTER
-    0x0012: 0x12,       #  CONTROL CHARACTER
-    0x0013: 0x13,       #  CONTROL CHARACTER
-    0x0014: 0x14,       #  CONTROL CHARACTER
-    0x0015: 0x15,       #  CONTROL CHARACTER
-    0x0016: 0x16,       #  CONTROL CHARACTER
-    0x0017: 0x17,       #  CONTROL CHARACTER
-    0x0018: 0x18,       #  CONTROL CHARACTER
-    0x0019: 0x19,       #  CONTROL CHARACTER
-    0x001A: 0x1A,       #  CONTROL CHARACTER
-    0x001B: 0x1B,       #  CONTROL CHARACTER
-    0x001C: 0x1C,       #  CONTROL CHARACTER
-    0x001D: 0x1D,       #  CONTROL CHARACTER
-    0x001E: 0x1E,       #  CONTROL CHARACTER
-    0x001F: 0x1F,       #  CONTROL CHARACTER
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  CONTROL CHARACTER
-    0x00A0: 0xCA,       #  NO-BREAK SPACE
-    0x00A3: 0x92,       #  POUND SIGN
-    0x00A5: 0xB4,       #  YEN SIGN
-    0x00A6: 0x9B,       #  BROKEN BAR
-    0x00A7: 0xAC,       #  SECTION SIGN
-    0x00A8: 0x8C,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AB: 0xC7,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xC2,       #  NOT SIGN
-    0x00AD: 0xFF,       #  SOFT HYPHEN # before Mac OS 9.2.2, was undefined
-    0x00AE: 0xA8,       #  REGISTERED SIGN
-    0x00B0: 0xAE,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B2: 0x82,       #  SUPERSCRIPT TWO
-    0x00B3: 0x84,       #  SUPERSCRIPT THREE
-    0x00B7: 0xAF,       #  MIDDLE DOT
-    0x00B9: 0x81,       #  SUPERSCRIPT ONE
-    0x00BB: 0xC8,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BD: 0x97,       #  VULGAR FRACTION ONE HALF
-    0x00C4: 0x80,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C9: 0x83,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00D6: 0x85,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00DC: 0x86,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xA7,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0x88,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E2: 0x89,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E4: 0x8A,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E7: 0x8D,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0x8F,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0x8E,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0x90,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0x91,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EE: 0x94,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0x95,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F4: 0x99,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F6: 0x9A,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xD6,       #  DIVISION SIGN
-    0x00F9: 0x9D,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FB: 0x9E,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0x9F,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x0153: 0xCF,       #  LATIN SMALL LIGATURE OE
-    0x0384: 0x8B,       #  GREEK TONOS
-    0x0385: 0x87,       #  GREEK DIALYTIKA TONOS
-    0x0386: 0xCD,       #  GREEK CAPITAL LETTER ALPHA WITH TONOS
-    0x0388: 0xCE,       #  GREEK CAPITAL LETTER EPSILON WITH TONOS
-    0x0389: 0xD7,       #  GREEK CAPITAL LETTER ETA WITH TONOS
-    0x038A: 0xD8,       #  GREEK CAPITAL LETTER IOTA WITH TONOS
-    0x038C: 0xD9,       #  GREEK CAPITAL LETTER OMICRON WITH TONOS
-    0x038E: 0xDA,       #  GREEK CAPITAL LETTER UPSILON WITH TONOS
-    0x038F: 0xDF,       #  GREEK CAPITAL LETTER OMEGA WITH TONOS
-    0x0390: 0xFD,       #  GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-    0x0391: 0xB0,       #  GREEK CAPITAL LETTER ALPHA
-    0x0392: 0xB5,       #  GREEK CAPITAL LETTER BETA
-    0x0393: 0xA1,       #  GREEK CAPITAL LETTER GAMMA
-    0x0394: 0xA2,       #  GREEK CAPITAL LETTER DELTA
-    0x0395: 0xB6,       #  GREEK CAPITAL LETTER EPSILON
-    0x0396: 0xB7,       #  GREEK CAPITAL LETTER ZETA
-    0x0397: 0xB8,       #  GREEK CAPITAL LETTER ETA
-    0x0398: 0xA3,       #  GREEK CAPITAL LETTER THETA
-    0x0399: 0xB9,       #  GREEK CAPITAL LETTER IOTA
-    0x039A: 0xBA,       #  GREEK CAPITAL LETTER KAPPA
-    0x039B: 0xA4,       #  GREEK CAPITAL LETTER LAMDA
-    0x039C: 0xBB,       #  GREEK CAPITAL LETTER MU
-    0x039D: 0xC1,       #  GREEK CAPITAL LETTER NU
-    0x039E: 0xA5,       #  GREEK CAPITAL LETTER XI
-    0x039F: 0xC3,       #  GREEK CAPITAL LETTER OMICRON
-    0x03A0: 0xA6,       #  GREEK CAPITAL LETTER PI
-    0x03A1: 0xC4,       #  GREEK CAPITAL LETTER RHO
-    0x03A3: 0xAA,       #  GREEK CAPITAL LETTER SIGMA
-    0x03A4: 0xC6,       #  GREEK CAPITAL LETTER TAU
-    0x03A5: 0xCB,       #  GREEK CAPITAL LETTER UPSILON
-    0x03A6: 0xBC,       #  GREEK CAPITAL LETTER PHI
-    0x03A7: 0xCC,       #  GREEK CAPITAL LETTER CHI
-    0x03A8: 0xBE,       #  GREEK CAPITAL LETTER PSI
-    0x03A9: 0xBF,       #  GREEK CAPITAL LETTER OMEGA
-    0x03AA: 0xAB,       #  GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-    0x03AB: 0xBD,       #  GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-    0x03AC: 0xC0,       #  GREEK SMALL LETTER ALPHA WITH TONOS
-    0x03AD: 0xDB,       #  GREEK SMALL LETTER EPSILON WITH TONOS
-    0x03AE: 0xDC,       #  GREEK SMALL LETTER ETA WITH TONOS
-    0x03AF: 0xDD,       #  GREEK SMALL LETTER IOTA WITH TONOS
-    0x03B0: 0xFE,       #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-    0x03B1: 0xE1,       #  GREEK SMALL LETTER ALPHA
-    0x03B2: 0xE2,       #  GREEK SMALL LETTER BETA
-    0x03B3: 0xE7,       #  GREEK SMALL LETTER GAMMA
-    0x03B4: 0xE4,       #  GREEK SMALL LETTER DELTA
-    0x03B5: 0xE5,       #  GREEK SMALL LETTER EPSILON
-    0x03B6: 0xFA,       #  GREEK SMALL LETTER ZETA
-    0x03B7: 0xE8,       #  GREEK SMALL LETTER ETA
-    0x03B8: 0xF5,       #  GREEK SMALL LETTER THETA
-    0x03B9: 0xE9,       #  GREEK SMALL LETTER IOTA
-    0x03BA: 0xEB,       #  GREEK SMALL LETTER KAPPA
-    0x03BB: 0xEC,       #  GREEK SMALL LETTER LAMDA
-    0x03BC: 0xED,       #  GREEK SMALL LETTER MU
-    0x03BD: 0xEE,       #  GREEK SMALL LETTER NU
-    0x03BE: 0xEA,       #  GREEK SMALL LETTER XI
-    0x03BF: 0xEF,       #  GREEK SMALL LETTER OMICRON
-    0x03C0: 0xF0,       #  GREEK SMALL LETTER PI
-    0x03C1: 0xF2,       #  GREEK SMALL LETTER RHO
-    0x03C2: 0xF7,       #  GREEK SMALL LETTER FINAL SIGMA
-    0x03C3: 0xF3,       #  GREEK SMALL LETTER SIGMA
-    0x03C4: 0xF4,       #  GREEK SMALL LETTER TAU
-    0x03C5: 0xF9,       #  GREEK SMALL LETTER UPSILON
-    0x03C6: 0xE6,       #  GREEK SMALL LETTER PHI
-    0x03C7: 0xF8,       #  GREEK SMALL LETTER CHI
-    0x03C8: 0xE3,       #  GREEK SMALL LETTER PSI
-    0x03C9: 0xF6,       #  GREEK SMALL LETTER OMEGA
-    0x03CA: 0xFB,       #  GREEK SMALL LETTER IOTA WITH DIALYTIKA
-    0x03CB: 0xFC,       #  GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-    0x03CC: 0xDE,       #  GREEK SMALL LETTER OMICRON WITH TONOS
-    0x03CD: 0xE0,       #  GREEK SMALL LETTER UPSILON WITH TONOS
-    0x03CE: 0xF1,       #  GREEK SMALL LETTER OMEGA WITH TONOS
-    0x2013: 0xD0,       #  EN DASH
-    0x2015: 0xD1,       #  HORIZONTAL BAR
-    0x2018: 0xD4,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0xD5,       #  RIGHT SINGLE QUOTATION MARK
-    0x201C: 0xD2,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0xD3,       #  RIGHT DOUBLE QUOTATION MARK
-    0x2020: 0xA0,       #  DAGGER
-    0x2022: 0x96,       #  BULLET
-    0x2026: 0xC9,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0x98,       #  PER MILLE SIGN
-    0x20AC: 0x9C,       #  EURO SIGN # before Mac OS 9.2.2, was SOFT HYPHEN
-    0x2122: 0x93,       #  TRADE MARK SIGN
-    0x2248: 0xC5,       #  ALMOST EQUAL TO
-    0x2260: 0xAD,       #  NOT EQUAL TO
-    0x2264: 0xB2,       #  LESS-THAN OR EQUAL TO
-    0x2265: 0xB3,       #  GREATER-THAN OR EQUAL TO
-}
diff --git a/Lib/encodings/mac_iceland.py b/Lib/encodings/mac_iceland.py
index 5d8d9ad..dea5220 100644
--- a/Lib/encodings/mac_iceland.py
+++ b/Lib/encodings/mac_iceland.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u02c7'   #  0xFF -> CARON
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  CONTROL CHARACTER
-    0x0001: 0x01,       #  CONTROL CHARACTER
-    0x0002: 0x02,       #  CONTROL CHARACTER
-    0x0003: 0x03,       #  CONTROL CHARACTER
-    0x0004: 0x04,       #  CONTROL CHARACTER
-    0x0005: 0x05,       #  CONTROL CHARACTER
-    0x0006: 0x06,       #  CONTROL CHARACTER
-    0x0007: 0x07,       #  CONTROL CHARACTER
-    0x0008: 0x08,       #  CONTROL CHARACTER
-    0x0009: 0x09,       #  CONTROL CHARACTER
-    0x000A: 0x0A,       #  CONTROL CHARACTER
-    0x000B: 0x0B,       #  CONTROL CHARACTER
-    0x000C: 0x0C,       #  CONTROL CHARACTER
-    0x000D: 0x0D,       #  CONTROL CHARACTER
-    0x000E: 0x0E,       #  CONTROL CHARACTER
-    0x000F: 0x0F,       #  CONTROL CHARACTER
-    0x0010: 0x10,       #  CONTROL CHARACTER
-    0x0011: 0x11,       #  CONTROL CHARACTER
-    0x0012: 0x12,       #  CONTROL CHARACTER
-    0x0013: 0x13,       #  CONTROL CHARACTER
-    0x0014: 0x14,       #  CONTROL CHARACTER
-    0x0015: 0x15,       #  CONTROL CHARACTER
-    0x0016: 0x16,       #  CONTROL CHARACTER
-    0x0017: 0x17,       #  CONTROL CHARACTER
-    0x0018: 0x18,       #  CONTROL CHARACTER
-    0x0019: 0x19,       #  CONTROL CHARACTER
-    0x001A: 0x1A,       #  CONTROL CHARACTER
-    0x001B: 0x1B,       #  CONTROL CHARACTER
-    0x001C: 0x1C,       #  CONTROL CHARACTER
-    0x001D: 0x1D,       #  CONTROL CHARACTER
-    0x001E: 0x1E,       #  CONTROL CHARACTER
-    0x001F: 0x1F,       #  CONTROL CHARACTER
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  CONTROL CHARACTER
-    0x00A0: 0xCA,       #  NO-BREAK SPACE
-    0x00A1: 0xC1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A5: 0xB4,       #  YEN SIGN
-    0x00A7: 0xA4,       #  SECTION SIGN
-    0x00A8: 0xAC,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AA: 0xBB,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0xC7,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xC2,       #  NOT SIGN
-    0x00AE: 0xA8,       #  REGISTERED SIGN
-    0x00AF: 0xF8,       #  MACRON
-    0x00B0: 0xA1,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B4: 0xAB,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xA6,       #  PILCROW SIGN
-    0x00B7: 0xE1,       #  MIDDLE DOT
-    0x00B8: 0xFC,       #  CEDILLA
-    0x00BA: 0xBC,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0xC8,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BF: 0xC0,       #  INVERTED QUESTION MARK
-    0x00C0: 0xCB,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xE7,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xE5,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xCC,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0x80,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0x81,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xAE,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0x82,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xE9,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0x83,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xE6,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xE8,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xED,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xEA,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xEB,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xEC,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D0: 0xDC,       #  LATIN CAPITAL LETTER ETH
-    0x00D1: 0x84,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xF1,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xEE,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xEF,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xCD,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0x85,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D8: 0xAF,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xF4,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xF2,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xF3,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0x86,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DD: 0xA0,       #  LATIN CAPITAL LETTER Y WITH ACUTE
-    0x00DE: 0xDE,       #  LATIN CAPITAL LETTER THORN
-    0x00DF: 0xA7,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0x88,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0x87,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0x89,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0x8B,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0x8A,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0x8C,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xBE,       #  LATIN SMALL LETTER AE
-    0x00E7: 0x8D,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0x8F,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0x8E,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0x90,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0x91,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0x93,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0x92,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0x94,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0x95,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F0: 0xDD,       #  LATIN SMALL LETTER ETH
-    0x00F1: 0x96,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0x98,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0x97,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0x99,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0x9B,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0x9A,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xD6,       #  DIVISION SIGN
-    0x00F8: 0xBF,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0x9D,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0x9C,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0x9E,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0x9F,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FD: 0xE0,       #  LATIN SMALL LETTER Y WITH ACUTE
-    0x00FE: 0xDF,       #  LATIN SMALL LETTER THORN
-    0x00FF: 0xD8,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x0131: 0xF5,       #  LATIN SMALL LETTER DOTLESS I
-    0x0152: 0xCE,       #  LATIN CAPITAL LIGATURE OE
-    0x0153: 0xCF,       #  LATIN SMALL LIGATURE OE
-    0x0178: 0xD9,       #  LATIN CAPITAL LETTER Y WITH DIAERESIS
-    0x0192: 0xC4,       #  LATIN SMALL LETTER F WITH HOOK
-    0x02C6: 0xF6,       #  MODIFIER LETTER CIRCUMFLEX ACCENT
-    0x02C7: 0xFF,       #  CARON
-    0x02D8: 0xF9,       #  BREVE
-    0x02D9: 0xFA,       #  DOT ABOVE
-    0x02DA: 0xFB,       #  RING ABOVE
-    0x02DB: 0xFE,       #  OGONEK
-    0x02DC: 0xF7,       #  SMALL TILDE
-    0x02DD: 0xFD,       #  DOUBLE ACUTE ACCENT
-    0x03A9: 0xBD,       #  GREEK CAPITAL LETTER OMEGA
-    0x03C0: 0xB9,       #  GREEK SMALL LETTER PI
-    0x2013: 0xD0,       #  EN DASH
-    0x2014: 0xD1,       #  EM DASH
-    0x2018: 0xD4,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0xD5,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0xE2,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0xD2,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0xD3,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0xE3,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2022: 0xA5,       #  BULLET
-    0x2026: 0xC9,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0xE4,       #  PER MILLE SIGN
-    0x2044: 0xDA,       #  FRACTION SLASH
-    0x20AC: 0xDB,       #  EURO SIGN
-    0x2122: 0xAA,       #  TRADE MARK SIGN
-    0x2202: 0xB6,       #  PARTIAL DIFFERENTIAL
-    0x2206: 0xC6,       #  INCREMENT
-    0x220F: 0xB8,       #  N-ARY PRODUCT
-    0x2211: 0xB7,       #  N-ARY SUMMATION
-    0x221A: 0xC3,       #  SQUARE ROOT
-    0x221E: 0xB0,       #  INFINITY
-    0x222B: 0xBA,       #  INTEGRAL
-    0x2248: 0xC5,       #  ALMOST EQUAL TO
-    0x2260: 0xAD,       #  NOT EQUAL TO
-    0x2264: 0xB2,       #  LESS-THAN OR EQUAL TO
-    0x2265: 0xB3,       #  GREATER-THAN OR EQUAL TO
-    0x25CA: 0xD7,       #  LOZENGE
-    0xF8FF: 0xF0,       #  Apple logo
-}
diff --git a/Lib/encodings/mac_roman.py b/Lib/encodings/mac_roman.py
index 9552e53..aa99e5e 100644
--- a/Lib/encodings/mac_roman.py
+++ b/Lib/encodings/mac_roman.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u02c7'   #  0xFF -> CARON
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  CONTROL CHARACTER
-    0x0001: 0x01,       #  CONTROL CHARACTER
-    0x0002: 0x02,       #  CONTROL CHARACTER
-    0x0003: 0x03,       #  CONTROL CHARACTER
-    0x0004: 0x04,       #  CONTROL CHARACTER
-    0x0005: 0x05,       #  CONTROL CHARACTER
-    0x0006: 0x06,       #  CONTROL CHARACTER
-    0x0007: 0x07,       #  CONTROL CHARACTER
-    0x0008: 0x08,       #  CONTROL CHARACTER
-    0x0009: 0x09,       #  CONTROL CHARACTER
-    0x000A: 0x0A,       #  CONTROL CHARACTER
-    0x000B: 0x0B,       #  CONTROL CHARACTER
-    0x000C: 0x0C,       #  CONTROL CHARACTER
-    0x000D: 0x0D,       #  CONTROL CHARACTER
-    0x000E: 0x0E,       #  CONTROL CHARACTER
-    0x000F: 0x0F,       #  CONTROL CHARACTER
-    0x0010: 0x10,       #  CONTROL CHARACTER
-    0x0011: 0x11,       #  CONTROL CHARACTER
-    0x0012: 0x12,       #  CONTROL CHARACTER
-    0x0013: 0x13,       #  CONTROL CHARACTER
-    0x0014: 0x14,       #  CONTROL CHARACTER
-    0x0015: 0x15,       #  CONTROL CHARACTER
-    0x0016: 0x16,       #  CONTROL CHARACTER
-    0x0017: 0x17,       #  CONTROL CHARACTER
-    0x0018: 0x18,       #  CONTROL CHARACTER
-    0x0019: 0x19,       #  CONTROL CHARACTER
-    0x001A: 0x1A,       #  CONTROL CHARACTER
-    0x001B: 0x1B,       #  CONTROL CHARACTER
-    0x001C: 0x1C,       #  CONTROL CHARACTER
-    0x001D: 0x1D,       #  CONTROL CHARACTER
-    0x001E: 0x1E,       #  CONTROL CHARACTER
-    0x001F: 0x1F,       #  CONTROL CHARACTER
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  CONTROL CHARACTER
-    0x00A0: 0xCA,       #  NO-BREAK SPACE
-    0x00A1: 0xC1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A5: 0xB4,       #  YEN SIGN
-    0x00A7: 0xA4,       #  SECTION SIGN
-    0x00A8: 0xAC,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AA: 0xBB,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0xC7,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xC2,       #  NOT SIGN
-    0x00AE: 0xA8,       #  REGISTERED SIGN
-    0x00AF: 0xF8,       #  MACRON
-    0x00B0: 0xA1,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B4: 0xAB,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xA6,       #  PILCROW SIGN
-    0x00B7: 0xE1,       #  MIDDLE DOT
-    0x00B8: 0xFC,       #  CEDILLA
-    0x00BA: 0xBC,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0xC8,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BF: 0xC0,       #  INVERTED QUESTION MARK
-    0x00C0: 0xCB,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xE7,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xE5,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xCC,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0x80,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0x81,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xAE,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0x82,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xE9,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0x83,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xE6,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xE8,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xED,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xEA,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xEB,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xEC,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D1: 0x84,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xF1,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xEE,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xEF,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xCD,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0x85,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D8: 0xAF,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xF4,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xF2,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xF3,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0x86,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xA7,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0x88,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0x87,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0x89,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0x8B,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0x8A,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0x8C,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xBE,       #  LATIN SMALL LETTER AE
-    0x00E7: 0x8D,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0x8F,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0x8E,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0x90,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0x91,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0x93,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0x92,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0x94,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0x95,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F1: 0x96,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0x98,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0x97,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0x99,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0x9B,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0x9A,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xD6,       #  DIVISION SIGN
-    0x00F8: 0xBF,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0x9D,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0x9C,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0x9E,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0x9F,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FF: 0xD8,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x0131: 0xF5,       #  LATIN SMALL LETTER DOTLESS I
-    0x0152: 0xCE,       #  LATIN CAPITAL LIGATURE OE
-    0x0153: 0xCF,       #  LATIN SMALL LIGATURE OE
-    0x0178: 0xD9,       #  LATIN CAPITAL LETTER Y WITH DIAERESIS
-    0x0192: 0xC4,       #  LATIN SMALL LETTER F WITH HOOK
-    0x02C6: 0xF6,       #  MODIFIER LETTER CIRCUMFLEX ACCENT
-    0x02C7: 0xFF,       #  CARON
-    0x02D8: 0xF9,       #  BREVE
-    0x02D9: 0xFA,       #  DOT ABOVE
-    0x02DA: 0xFB,       #  RING ABOVE
-    0x02DB: 0xFE,       #  OGONEK
-    0x02DC: 0xF7,       #  SMALL TILDE
-    0x02DD: 0xFD,       #  DOUBLE ACUTE ACCENT
-    0x03A9: 0xBD,       #  GREEK CAPITAL LETTER OMEGA
-    0x03C0: 0xB9,       #  GREEK SMALL LETTER PI
-    0x2013: 0xD0,       #  EN DASH
-    0x2014: 0xD1,       #  EM DASH
-    0x2018: 0xD4,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0xD5,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0xE2,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0xD2,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0xD3,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0xE3,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0xA0,       #  DAGGER
-    0x2021: 0xE0,       #  DOUBLE DAGGER
-    0x2022: 0xA5,       #  BULLET
-    0x2026: 0xC9,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0xE4,       #  PER MILLE SIGN
-    0x2039: 0xDC,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0xDD,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x2044: 0xDA,       #  FRACTION SLASH
-    0x20AC: 0xDB,       #  EURO SIGN
-    0x2122: 0xAA,       #  TRADE MARK SIGN
-    0x2202: 0xB6,       #  PARTIAL DIFFERENTIAL
-    0x2206: 0xC6,       #  INCREMENT
-    0x220F: 0xB8,       #  N-ARY PRODUCT
-    0x2211: 0xB7,       #  N-ARY SUMMATION
-    0x221A: 0xC3,       #  SQUARE ROOT
-    0x221E: 0xB0,       #  INFINITY
-    0x222B: 0xBA,       #  INTEGRAL
-    0x2248: 0xC5,       #  ALMOST EQUAL TO
-    0x2260: 0xAD,       #  NOT EQUAL TO
-    0x2264: 0xB2,       #  LESS-THAN OR EQUAL TO
-    0x2265: 0xB3,       #  GREATER-THAN OR EQUAL TO
-    0x25CA: 0xD7,       #  LOZENGE
-    0xF8FF: 0xF0,       #  Apple logo
-    0xFB01: 0xDE,       #  LATIN SMALL LIGATURE FI
-    0xFB02: 0xDF,       #  LATIN SMALL LIGATURE FL
-}
diff --git a/Lib/encodings/mac_romanian.py b/Lib/encodings/mac_romanian.py
index 51282c3..b8ada81 100644
--- a/Lib/encodings/mac_romanian.py
+++ b/Lib/encodings/mac_romanian.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u02c7'   #  0xFF -> CARON
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  CONTROL CHARACTER
-    0x0001: 0x01,       #  CONTROL CHARACTER
-    0x0002: 0x02,       #  CONTROL CHARACTER
-    0x0003: 0x03,       #  CONTROL CHARACTER
-    0x0004: 0x04,       #  CONTROL CHARACTER
-    0x0005: 0x05,       #  CONTROL CHARACTER
-    0x0006: 0x06,       #  CONTROL CHARACTER
-    0x0007: 0x07,       #  CONTROL CHARACTER
-    0x0008: 0x08,       #  CONTROL CHARACTER
-    0x0009: 0x09,       #  CONTROL CHARACTER
-    0x000A: 0x0A,       #  CONTROL CHARACTER
-    0x000B: 0x0B,       #  CONTROL CHARACTER
-    0x000C: 0x0C,       #  CONTROL CHARACTER
-    0x000D: 0x0D,       #  CONTROL CHARACTER
-    0x000E: 0x0E,       #  CONTROL CHARACTER
-    0x000F: 0x0F,       #  CONTROL CHARACTER
-    0x0010: 0x10,       #  CONTROL CHARACTER
-    0x0011: 0x11,       #  CONTROL CHARACTER
-    0x0012: 0x12,       #  CONTROL CHARACTER
-    0x0013: 0x13,       #  CONTROL CHARACTER
-    0x0014: 0x14,       #  CONTROL CHARACTER
-    0x0015: 0x15,       #  CONTROL CHARACTER
-    0x0016: 0x16,       #  CONTROL CHARACTER
-    0x0017: 0x17,       #  CONTROL CHARACTER
-    0x0018: 0x18,       #  CONTROL CHARACTER
-    0x0019: 0x19,       #  CONTROL CHARACTER
-    0x001A: 0x1A,       #  CONTROL CHARACTER
-    0x001B: 0x1B,       #  CONTROL CHARACTER
-    0x001C: 0x1C,       #  CONTROL CHARACTER
-    0x001D: 0x1D,       #  CONTROL CHARACTER
-    0x001E: 0x1E,       #  CONTROL CHARACTER
-    0x001F: 0x1F,       #  CONTROL CHARACTER
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  CONTROL CHARACTER
-    0x00A0: 0xCA,       #  NO-BREAK SPACE
-    0x00A1: 0xC1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A5: 0xB4,       #  YEN SIGN
-    0x00A7: 0xA4,       #  SECTION SIGN
-    0x00A8: 0xAC,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AA: 0xBB,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0xC7,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xC2,       #  NOT SIGN
-    0x00AE: 0xA8,       #  REGISTERED SIGN
-    0x00AF: 0xF8,       #  MACRON
-    0x00B0: 0xA1,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B4: 0xAB,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xA6,       #  PILCROW SIGN
-    0x00B7: 0xE1,       #  MIDDLE DOT
-    0x00B8: 0xFC,       #  CEDILLA
-    0x00BA: 0xBC,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0xC8,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BF: 0xC0,       #  INVERTED QUESTION MARK
-    0x00C0: 0xCB,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xE7,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xE5,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xCC,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0x80,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0x81,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C7: 0x82,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xE9,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0x83,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xE6,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xE8,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xED,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xEA,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xEB,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xEC,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D1: 0x84,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xF1,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xEE,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xEF,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xCD,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0x85,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D9: 0xF4,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xF2,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xF3,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0x86,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xA7,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0x88,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0x87,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0x89,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0x8B,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0x8A,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0x8C,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E7: 0x8D,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0x8F,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0x8E,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0x90,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0x91,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0x93,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0x92,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0x94,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0x95,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F1: 0x96,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0x98,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0x97,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0x99,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0x9B,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0x9A,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xD6,       #  DIVISION SIGN
-    0x00F9: 0x9D,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0x9C,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0x9E,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0x9F,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FF: 0xD8,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x0102: 0xAE,       #  LATIN CAPITAL LETTER A WITH BREVE
-    0x0103: 0xBE,       #  LATIN SMALL LETTER A WITH BREVE
-    0x0131: 0xF5,       #  LATIN SMALL LETTER DOTLESS I
-    0x0152: 0xCE,       #  LATIN CAPITAL LIGATURE OE
-    0x0153: 0xCF,       #  LATIN SMALL LIGATURE OE
-    0x0178: 0xD9,       #  LATIN CAPITAL LETTER Y WITH DIAERESIS
-    0x0192: 0xC4,       #  LATIN SMALL LETTER F WITH HOOK
-    0x0218: 0xAF,       #  LATIN CAPITAL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
-    0x0219: 0xBF,       #  LATIN SMALL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
-    0x021A: 0xDE,       #  LATIN CAPITAL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
-    0x021B: 0xDF,       #  LATIN SMALL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
-    0x02C6: 0xF6,       #  MODIFIER LETTER CIRCUMFLEX ACCENT
-    0x02C7: 0xFF,       #  CARON
-    0x02D8: 0xF9,       #  BREVE
-    0x02D9: 0xFA,       #  DOT ABOVE
-    0x02DA: 0xFB,       #  RING ABOVE
-    0x02DB: 0xFE,       #  OGONEK
-    0x02DC: 0xF7,       #  SMALL TILDE
-    0x02DD: 0xFD,       #  DOUBLE ACUTE ACCENT
-    0x03A9: 0xBD,       #  GREEK CAPITAL LETTER OMEGA
-    0x03C0: 0xB9,       #  GREEK SMALL LETTER PI
-    0x2013: 0xD0,       #  EN DASH
-    0x2014: 0xD1,       #  EM DASH
-    0x2018: 0xD4,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0xD5,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0xE2,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0xD2,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0xD3,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0xE3,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0xA0,       #  DAGGER
-    0x2021: 0xE0,       #  DOUBLE DAGGER
-    0x2022: 0xA5,       #  BULLET
-    0x2026: 0xC9,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0xE4,       #  PER MILLE SIGN
-    0x2039: 0xDC,       #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    0x203A: 0xDD,       #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    0x2044: 0xDA,       #  FRACTION SLASH
-    0x20AC: 0xDB,       #  EURO SIGN
-    0x2122: 0xAA,       #  TRADE MARK SIGN
-    0x2202: 0xB6,       #  PARTIAL DIFFERENTIAL
-    0x2206: 0xC6,       #  INCREMENT
-    0x220F: 0xB8,       #  N-ARY PRODUCT
-    0x2211: 0xB7,       #  N-ARY SUMMATION
-    0x221A: 0xC3,       #  SQUARE ROOT
-    0x221E: 0xB0,       #  INFINITY
-    0x222B: 0xBA,       #  INTEGRAL
-    0x2248: 0xC5,       #  ALMOST EQUAL TO
-    0x2260: 0xAD,       #  NOT EQUAL TO
-    0x2264: 0xB2,       #  LESS-THAN OR EQUAL TO
-    0x2265: 0xB3,       #  GREATER-THAN OR EQUAL TO
-    0x25CA: 0xD7,       #  LOZENGE
-    0xF8FF: 0xF0,       #  Apple logo
-}
diff --git a/Lib/encodings/mac_turkish.py b/Lib/encodings/mac_turkish.py
index 4e5641f..9a747ee 100644
--- a/Lib/encodings/mac_turkish.py
+++ b/Lib/encodings/mac_turkish.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,263 +303,6 @@
     u'\u02c7'   #  0xFF -> CARON
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  CONTROL CHARACTER
-    0x0001: 0x01,       #  CONTROL CHARACTER
-    0x0002: 0x02,       #  CONTROL CHARACTER
-    0x0003: 0x03,       #  CONTROL CHARACTER
-    0x0004: 0x04,       #  CONTROL CHARACTER
-    0x0005: 0x05,       #  CONTROL CHARACTER
-    0x0006: 0x06,       #  CONTROL CHARACTER
-    0x0007: 0x07,       #  CONTROL CHARACTER
-    0x0008: 0x08,       #  CONTROL CHARACTER
-    0x0009: 0x09,       #  CONTROL CHARACTER
-    0x000A: 0x0A,       #  CONTROL CHARACTER
-    0x000B: 0x0B,       #  CONTROL CHARACTER
-    0x000C: 0x0C,       #  CONTROL CHARACTER
-    0x000D: 0x0D,       #  CONTROL CHARACTER
-    0x000E: 0x0E,       #  CONTROL CHARACTER
-    0x000F: 0x0F,       #  CONTROL CHARACTER
-    0x0010: 0x10,       #  CONTROL CHARACTER
-    0x0011: 0x11,       #  CONTROL CHARACTER
-    0x0012: 0x12,       #  CONTROL CHARACTER
-    0x0013: 0x13,       #  CONTROL CHARACTER
-    0x0014: 0x14,       #  CONTROL CHARACTER
-    0x0015: 0x15,       #  CONTROL CHARACTER
-    0x0016: 0x16,       #  CONTROL CHARACTER
-    0x0017: 0x17,       #  CONTROL CHARACTER
-    0x0018: 0x18,       #  CONTROL CHARACTER
-    0x0019: 0x19,       #  CONTROL CHARACTER
-    0x001A: 0x1A,       #  CONTROL CHARACTER
-    0x001B: 0x1B,       #  CONTROL CHARACTER
-    0x001C: 0x1C,       #  CONTROL CHARACTER
-    0x001D: 0x1D,       #  CONTROL CHARACTER
-    0x001E: 0x1E,       #  CONTROL CHARACTER
-    0x001F: 0x1F,       #  CONTROL CHARACTER
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  CONTROL CHARACTER
-    0x00A0: 0xCA,       #  NO-BREAK SPACE
-    0x00A1: 0xC1,       #  INVERTED EXCLAMATION MARK
-    0x00A2: 0xA2,       #  CENT SIGN
-    0x00A3: 0xA3,       #  POUND SIGN
-    0x00A5: 0xB4,       #  YEN SIGN
-    0x00A7: 0xA4,       #  SECTION SIGN
-    0x00A8: 0xAC,       #  DIAERESIS
-    0x00A9: 0xA9,       #  COPYRIGHT SIGN
-    0x00AA: 0xBB,       #  FEMININE ORDINAL INDICATOR
-    0x00AB: 0xC7,       #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00AC: 0xC2,       #  NOT SIGN
-    0x00AE: 0xA8,       #  REGISTERED SIGN
-    0x00AF: 0xF8,       #  MACRON
-    0x00B0: 0xA1,       #  DEGREE SIGN
-    0x00B1: 0xB1,       #  PLUS-MINUS SIGN
-    0x00B4: 0xAB,       #  ACUTE ACCENT
-    0x00B5: 0xB5,       #  MICRO SIGN
-    0x00B6: 0xA6,       #  PILCROW SIGN
-    0x00B7: 0xE1,       #  MIDDLE DOT
-    0x00B8: 0xFC,       #  CEDILLA
-    0x00BA: 0xBC,       #  MASCULINE ORDINAL INDICATOR
-    0x00BB: 0xC8,       #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    0x00BF: 0xC0,       #  INVERTED QUESTION MARK
-    0x00C0: 0xCB,       #  LATIN CAPITAL LETTER A WITH GRAVE
-    0x00C1: 0xE7,       #  LATIN CAPITAL LETTER A WITH ACUTE
-    0x00C2: 0xE5,       #  LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    0x00C3: 0xCC,       #  LATIN CAPITAL LETTER A WITH TILDE
-    0x00C4: 0x80,       #  LATIN CAPITAL LETTER A WITH DIAERESIS
-    0x00C5: 0x81,       #  LATIN CAPITAL LETTER A WITH RING ABOVE
-    0x00C6: 0xAE,       #  LATIN CAPITAL LETTER AE
-    0x00C7: 0x82,       #  LATIN CAPITAL LETTER C WITH CEDILLA
-    0x00C8: 0xE9,       #  LATIN CAPITAL LETTER E WITH GRAVE
-    0x00C9: 0x83,       #  LATIN CAPITAL LETTER E WITH ACUTE
-    0x00CA: 0xE6,       #  LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    0x00CB: 0xE8,       #  LATIN CAPITAL LETTER E WITH DIAERESIS
-    0x00CC: 0xED,       #  LATIN CAPITAL LETTER I WITH GRAVE
-    0x00CD: 0xEA,       #  LATIN CAPITAL LETTER I WITH ACUTE
-    0x00CE: 0xEB,       #  LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    0x00CF: 0xEC,       #  LATIN CAPITAL LETTER I WITH DIAERESIS
-    0x00D1: 0x84,       #  LATIN CAPITAL LETTER N WITH TILDE
-    0x00D2: 0xF1,       #  LATIN CAPITAL LETTER O WITH GRAVE
-    0x00D3: 0xEE,       #  LATIN CAPITAL LETTER O WITH ACUTE
-    0x00D4: 0xEF,       #  LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    0x00D5: 0xCD,       #  LATIN CAPITAL LETTER O WITH TILDE
-    0x00D6: 0x85,       #  LATIN CAPITAL LETTER O WITH DIAERESIS
-    0x00D8: 0xAF,       #  LATIN CAPITAL LETTER O WITH STROKE
-    0x00D9: 0xF4,       #  LATIN CAPITAL LETTER U WITH GRAVE
-    0x00DA: 0xF2,       #  LATIN CAPITAL LETTER U WITH ACUTE
-    0x00DB: 0xF3,       #  LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    0x00DC: 0x86,       #  LATIN CAPITAL LETTER U WITH DIAERESIS
-    0x00DF: 0xA7,       #  LATIN SMALL LETTER SHARP S
-    0x00E0: 0x88,       #  LATIN SMALL LETTER A WITH GRAVE
-    0x00E1: 0x87,       #  LATIN SMALL LETTER A WITH ACUTE
-    0x00E2: 0x89,       #  LATIN SMALL LETTER A WITH CIRCUMFLEX
-    0x00E3: 0x8B,       #  LATIN SMALL LETTER A WITH TILDE
-    0x00E4: 0x8A,       #  LATIN SMALL LETTER A WITH DIAERESIS
-    0x00E5: 0x8C,       #  LATIN SMALL LETTER A WITH RING ABOVE
-    0x00E6: 0xBE,       #  LATIN SMALL LETTER AE
-    0x00E7: 0x8D,       #  LATIN SMALL LETTER C WITH CEDILLA
-    0x00E8: 0x8F,       #  LATIN SMALL LETTER E WITH GRAVE
-    0x00E9: 0x8E,       #  LATIN SMALL LETTER E WITH ACUTE
-    0x00EA: 0x90,       #  LATIN SMALL LETTER E WITH CIRCUMFLEX
-    0x00EB: 0x91,       #  LATIN SMALL LETTER E WITH DIAERESIS
-    0x00EC: 0x93,       #  LATIN SMALL LETTER I WITH GRAVE
-    0x00ED: 0x92,       #  LATIN SMALL LETTER I WITH ACUTE
-    0x00EE: 0x94,       #  LATIN SMALL LETTER I WITH CIRCUMFLEX
-    0x00EF: 0x95,       #  LATIN SMALL LETTER I WITH DIAERESIS
-    0x00F1: 0x96,       #  LATIN SMALL LETTER N WITH TILDE
-    0x00F2: 0x98,       #  LATIN SMALL LETTER O WITH GRAVE
-    0x00F3: 0x97,       #  LATIN SMALL LETTER O WITH ACUTE
-    0x00F4: 0x99,       #  LATIN SMALL LETTER O WITH CIRCUMFLEX
-    0x00F5: 0x9B,       #  LATIN SMALL LETTER O WITH TILDE
-    0x00F6: 0x9A,       #  LATIN SMALL LETTER O WITH DIAERESIS
-    0x00F7: 0xD6,       #  DIVISION SIGN
-    0x00F8: 0xBF,       #  LATIN SMALL LETTER O WITH STROKE
-    0x00F9: 0x9D,       #  LATIN SMALL LETTER U WITH GRAVE
-    0x00FA: 0x9C,       #  LATIN SMALL LETTER U WITH ACUTE
-    0x00FB: 0x9E,       #  LATIN SMALL LETTER U WITH CIRCUMFLEX
-    0x00FC: 0x9F,       #  LATIN SMALL LETTER U WITH DIAERESIS
-    0x00FF: 0xD8,       #  LATIN SMALL LETTER Y WITH DIAERESIS
-    0x011E: 0xDA,       #  LATIN CAPITAL LETTER G WITH BREVE
-    0x011F: 0xDB,       #  LATIN SMALL LETTER G WITH BREVE
-    0x0130: 0xDC,       #  LATIN CAPITAL LETTER I WITH DOT ABOVE
-    0x0131: 0xDD,       #  LATIN SMALL LETTER DOTLESS I
-    0x0152: 0xCE,       #  LATIN CAPITAL LIGATURE OE
-    0x0153: 0xCF,       #  LATIN SMALL LIGATURE OE
-    0x015E: 0xDE,       #  LATIN CAPITAL LETTER S WITH CEDILLA
-    0x015F: 0xDF,       #  LATIN SMALL LETTER S WITH CEDILLA
-    0x0178: 0xD9,       #  LATIN CAPITAL LETTER Y WITH DIAERESIS
-    0x0192: 0xC4,       #  LATIN SMALL LETTER F WITH HOOK
-    0x02C6: 0xF6,       #  MODIFIER LETTER CIRCUMFLEX ACCENT
-    0x02C7: 0xFF,       #  CARON
-    0x02D8: 0xF9,       #  BREVE
-    0x02D9: 0xFA,       #  DOT ABOVE
-    0x02DA: 0xFB,       #  RING ABOVE
-    0x02DB: 0xFE,       #  OGONEK
-    0x02DC: 0xF7,       #  SMALL TILDE
-    0x02DD: 0xFD,       #  DOUBLE ACUTE ACCENT
-    0x03A9: 0xBD,       #  GREEK CAPITAL LETTER OMEGA
-    0x03C0: 0xB9,       #  GREEK SMALL LETTER PI
-    0x2013: 0xD0,       #  EN DASH
-    0x2014: 0xD1,       #  EM DASH
-    0x2018: 0xD4,       #  LEFT SINGLE QUOTATION MARK
-    0x2019: 0xD5,       #  RIGHT SINGLE QUOTATION MARK
-    0x201A: 0xE2,       #  SINGLE LOW-9 QUOTATION MARK
-    0x201C: 0xD2,       #  LEFT DOUBLE QUOTATION MARK
-    0x201D: 0xD3,       #  RIGHT DOUBLE QUOTATION MARK
-    0x201E: 0xE3,       #  DOUBLE LOW-9 QUOTATION MARK
-    0x2020: 0xA0,       #  DAGGER
-    0x2021: 0xE0,       #  DOUBLE DAGGER
-    0x2022: 0xA5,       #  BULLET
-    0x2026: 0xC9,       #  HORIZONTAL ELLIPSIS
-    0x2030: 0xE4,       #  PER MILLE SIGN
-    0x2122: 0xAA,       #  TRADE MARK SIGN
-    0x2202: 0xB6,       #  PARTIAL DIFFERENTIAL
-    0x2206: 0xC6,       #  INCREMENT
-    0x220F: 0xB8,       #  N-ARY PRODUCT
-    0x2211: 0xB7,       #  N-ARY SUMMATION
-    0x221A: 0xC3,       #  SQUARE ROOT
-    0x221E: 0xB0,       #  INFINITY
-    0x222B: 0xBA,       #  INTEGRAL
-    0x2248: 0xC5,       #  ALMOST EQUAL TO
-    0x2260: 0xAD,       #  NOT EQUAL TO
-    0x2264: 0xB2,       #  LESS-THAN OR EQUAL TO
-    0x2265: 0xB3,       #  GREATER-THAN OR EQUAL TO
-    0x25CA: 0xD7,       #  LOZENGE
-    0xF8A0: 0xF5,       #  undefined1
-    0xF8FF: 0xF0,       #  Apple logo
-}
diff --git a/Lib/encodings/tis_620.py b/Lib/encodings/tis_620.py
index 166d932..6fd8deb 100644
--- a/Lib/encodings/tis_620.py
+++ b/Lib/encodings/tis_620.py
@@ -9,14 +9,14 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_table)
 
     def decode(self,input,errors='strict'):
         return codecs.charmap_decode(input,errors,decoding_table)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
     def decode(self, input, final=False):
@@ -303,254 +303,6 @@
     u'\ufffe'
 )
 
-### Encoding Map
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
 
-encoding_map = {
-    0x0000: 0x00,       #  NULL
-    0x0001: 0x01,       #  START OF HEADING
-    0x0002: 0x02,       #  START OF TEXT
-    0x0003: 0x03,       #  END OF TEXT
-    0x0004: 0x04,       #  END OF TRANSMISSION
-    0x0005: 0x05,       #  ENQUIRY
-    0x0006: 0x06,       #  ACKNOWLEDGE
-    0x0007: 0x07,       #  BELL
-    0x0008: 0x08,       #  BACKSPACE
-    0x0009: 0x09,       #  HORIZONTAL TABULATION
-    0x000A: 0x0A,       #  LINE FEED
-    0x000B: 0x0B,       #  VERTICAL TABULATION
-    0x000C: 0x0C,       #  FORM FEED
-    0x000D: 0x0D,       #  CARRIAGE RETURN
-    0x000E: 0x0E,       #  SHIFT OUT
-    0x000F: 0x0F,       #  SHIFT IN
-    0x0010: 0x10,       #  DATA LINK ESCAPE
-    0x0011: 0x11,       #  DEVICE CONTROL ONE
-    0x0012: 0x12,       #  DEVICE CONTROL TWO
-    0x0013: 0x13,       #  DEVICE CONTROL THREE
-    0x0014: 0x14,       #  DEVICE CONTROL FOUR
-    0x0015: 0x15,       #  NEGATIVE ACKNOWLEDGE
-    0x0016: 0x16,       #  SYNCHRONOUS IDLE
-    0x0017: 0x17,       #  END OF TRANSMISSION BLOCK
-    0x0018: 0x18,       #  CANCEL
-    0x0019: 0x19,       #  END OF MEDIUM
-    0x001A: 0x1A,       #  SUBSTITUTE
-    0x001B: 0x1B,       #  ESCAPE
-    0x001C: 0x1C,       #  FILE SEPARATOR
-    0x001D: 0x1D,       #  GROUP SEPARATOR
-    0x001E: 0x1E,       #  RECORD SEPARATOR
-    0x001F: 0x1F,       #  UNIT SEPARATOR
-    0x0020: 0x20,       #  SPACE
-    0x0021: 0x21,       #  EXCLAMATION MARK
-    0x0022: 0x22,       #  QUOTATION MARK
-    0x0023: 0x23,       #  NUMBER SIGN
-    0x0024: 0x24,       #  DOLLAR SIGN
-    0x0025: 0x25,       #  PERCENT SIGN
-    0x0026: 0x26,       #  AMPERSAND
-    0x0027: 0x27,       #  APOSTROPHE
-    0x0028: 0x28,       #  LEFT PARENTHESIS
-    0x0029: 0x29,       #  RIGHT PARENTHESIS
-    0x002A: 0x2A,       #  ASTERISK
-    0x002B: 0x2B,       #  PLUS SIGN
-    0x002C: 0x2C,       #  COMMA
-    0x002D: 0x2D,       #  HYPHEN-MINUS
-    0x002E: 0x2E,       #  FULL STOP
-    0x002F: 0x2F,       #  SOLIDUS
-    0x0030: 0x30,       #  DIGIT ZERO
-    0x0031: 0x31,       #  DIGIT ONE
-    0x0032: 0x32,       #  DIGIT TWO
-    0x0033: 0x33,       #  DIGIT THREE
-    0x0034: 0x34,       #  DIGIT FOUR
-    0x0035: 0x35,       #  DIGIT FIVE
-    0x0036: 0x36,       #  DIGIT SIX
-    0x0037: 0x37,       #  DIGIT SEVEN
-    0x0038: 0x38,       #  DIGIT EIGHT
-    0x0039: 0x39,       #  DIGIT NINE
-    0x003A: 0x3A,       #  COLON
-    0x003B: 0x3B,       #  SEMICOLON
-    0x003C: 0x3C,       #  LESS-THAN SIGN
-    0x003D: 0x3D,       #  EQUALS SIGN
-    0x003E: 0x3E,       #  GREATER-THAN SIGN
-    0x003F: 0x3F,       #  QUESTION MARK
-    0x0040: 0x40,       #  COMMERCIAL AT
-    0x0041: 0x41,       #  LATIN CAPITAL LETTER A
-    0x0042: 0x42,       #  LATIN CAPITAL LETTER B
-    0x0043: 0x43,       #  LATIN CAPITAL LETTER C
-    0x0044: 0x44,       #  LATIN CAPITAL LETTER D
-    0x0045: 0x45,       #  LATIN CAPITAL LETTER E
-    0x0046: 0x46,       #  LATIN CAPITAL LETTER F
-    0x0047: 0x47,       #  LATIN CAPITAL LETTER G
-    0x0048: 0x48,       #  LATIN CAPITAL LETTER H
-    0x0049: 0x49,       #  LATIN CAPITAL LETTER I
-    0x004A: 0x4A,       #  LATIN CAPITAL LETTER J
-    0x004B: 0x4B,       #  LATIN CAPITAL LETTER K
-    0x004C: 0x4C,       #  LATIN CAPITAL LETTER L
-    0x004D: 0x4D,       #  LATIN CAPITAL LETTER M
-    0x004E: 0x4E,       #  LATIN CAPITAL LETTER N
-    0x004F: 0x4F,       #  LATIN CAPITAL LETTER O
-    0x0050: 0x50,       #  LATIN CAPITAL LETTER P
-    0x0051: 0x51,       #  LATIN CAPITAL LETTER Q
-    0x0052: 0x52,       #  LATIN CAPITAL LETTER R
-    0x0053: 0x53,       #  LATIN CAPITAL LETTER S
-    0x0054: 0x54,       #  LATIN CAPITAL LETTER T
-    0x0055: 0x55,       #  LATIN CAPITAL LETTER U
-    0x0056: 0x56,       #  LATIN CAPITAL LETTER V
-    0x0057: 0x57,       #  LATIN CAPITAL LETTER W
-    0x0058: 0x58,       #  LATIN CAPITAL LETTER X
-    0x0059: 0x59,       #  LATIN CAPITAL LETTER Y
-    0x005A: 0x5A,       #  LATIN CAPITAL LETTER Z
-    0x005B: 0x5B,       #  LEFT SQUARE BRACKET
-    0x005C: 0x5C,       #  REVERSE SOLIDUS
-    0x005D: 0x5D,       #  RIGHT SQUARE BRACKET
-    0x005E: 0x5E,       #  CIRCUMFLEX ACCENT
-    0x005F: 0x5F,       #  LOW LINE
-    0x0060: 0x60,       #  GRAVE ACCENT
-    0x0061: 0x61,       #  LATIN SMALL LETTER A
-    0x0062: 0x62,       #  LATIN SMALL LETTER B
-    0x0063: 0x63,       #  LATIN SMALL LETTER C
-    0x0064: 0x64,       #  LATIN SMALL LETTER D
-    0x0065: 0x65,       #  LATIN SMALL LETTER E
-    0x0066: 0x66,       #  LATIN SMALL LETTER F
-    0x0067: 0x67,       #  LATIN SMALL LETTER G
-    0x0068: 0x68,       #  LATIN SMALL LETTER H
-    0x0069: 0x69,       #  LATIN SMALL LETTER I
-    0x006A: 0x6A,       #  LATIN SMALL LETTER J
-    0x006B: 0x6B,       #  LATIN SMALL LETTER K
-    0x006C: 0x6C,       #  LATIN SMALL LETTER L
-    0x006D: 0x6D,       #  LATIN SMALL LETTER M
-    0x006E: 0x6E,       #  LATIN SMALL LETTER N
-    0x006F: 0x6F,       #  LATIN SMALL LETTER O
-    0x0070: 0x70,       #  LATIN SMALL LETTER P
-    0x0071: 0x71,       #  LATIN SMALL LETTER Q
-    0x0072: 0x72,       #  LATIN SMALL LETTER R
-    0x0073: 0x73,       #  LATIN SMALL LETTER S
-    0x0074: 0x74,       #  LATIN SMALL LETTER T
-    0x0075: 0x75,       #  LATIN SMALL LETTER U
-    0x0076: 0x76,       #  LATIN SMALL LETTER V
-    0x0077: 0x77,       #  LATIN SMALL LETTER W
-    0x0078: 0x78,       #  LATIN SMALL LETTER X
-    0x0079: 0x79,       #  LATIN SMALL LETTER Y
-    0x007A: 0x7A,       #  LATIN SMALL LETTER Z
-    0x007B: 0x7B,       #  LEFT CURLY BRACKET
-    0x007C: 0x7C,       #  VERTICAL LINE
-    0x007D: 0x7D,       #  RIGHT CURLY BRACKET
-    0x007E: 0x7E,       #  TILDE
-    0x007F: 0x7F,       #  DELETE
-    0x0080: 0x80,       #  <control>
-    0x0081: 0x81,       #  <control>
-    0x0082: 0x82,       #  <control>
-    0x0083: 0x83,       #  <control>
-    0x0084: 0x84,       #  <control>
-    0x0085: 0x85,       #  <control>
-    0x0086: 0x86,       #  <control>
-    0x0087: 0x87,       #  <control>
-    0x0088: 0x88,       #  <control>
-    0x0089: 0x89,       #  <control>
-    0x008A: 0x8A,       #  <control>
-    0x008B: 0x8B,       #  <control>
-    0x008C: 0x8C,       #  <control>
-    0x008D: 0x8D,       #  <control>
-    0x008E: 0x8E,       #  <control>
-    0x008F: 0x8F,       #  <control>
-    0x0090: 0x90,       #  <control>
-    0x0091: 0x91,       #  <control>
-    0x0092: 0x92,       #  <control>
-    0x0093: 0x93,       #  <control>
-    0x0094: 0x94,       #  <control>
-    0x0095: 0x95,       #  <control>
-    0x0096: 0x96,       #  <control>
-    0x0097: 0x97,       #  <control>
-    0x0098: 0x98,       #  <control>
-    0x0099: 0x99,       #  <control>
-    0x009A: 0x9A,       #  <control>
-    0x009B: 0x9B,       #  <control>
-    0x009C: 0x9C,       #  <control>
-    0x009D: 0x9D,       #  <control>
-    0x009E: 0x9E,       #  <control>
-    0x009F: 0x9F,       #  <control>
-    0x0E01: 0xA1,       #  THAI CHARACTER KO KAI
-    0x0E02: 0xA2,       #  THAI CHARACTER KHO KHAI
-    0x0E03: 0xA3,       #  THAI CHARACTER KHO KHUAT
-    0x0E04: 0xA4,       #  THAI CHARACTER KHO KHWAI
-    0x0E05: 0xA5,       #  THAI CHARACTER KHO KHON
-    0x0E06: 0xA6,       #  THAI CHARACTER KHO RAKHANG
-    0x0E07: 0xA7,       #  THAI CHARACTER NGO NGU
-    0x0E08: 0xA8,       #  THAI CHARACTER CHO CHAN
-    0x0E09: 0xA9,       #  THAI CHARACTER CHO CHING
-    0x0E0A: 0xAA,       #  THAI CHARACTER CHO CHANG
-    0x0E0B: 0xAB,       #  THAI CHARACTER SO SO
-    0x0E0C: 0xAC,       #  THAI CHARACTER CHO CHOE
-    0x0E0D: 0xAD,       #  THAI CHARACTER YO YING
-    0x0E0E: 0xAE,       #  THAI CHARACTER DO CHADA
-    0x0E0F: 0xAF,       #  THAI CHARACTER TO PATAK
-    0x0E10: 0xB0,       #  THAI CHARACTER THO THAN
-    0x0E11: 0xB1,       #  THAI CHARACTER THO NANGMONTHO
-    0x0E12: 0xB2,       #  THAI CHARACTER THO PHUTHAO
-    0x0E13: 0xB3,       #  THAI CHARACTER NO NEN
-    0x0E14: 0xB4,       #  THAI CHARACTER DO DEK
-    0x0E15: 0xB5,       #  THAI CHARACTER TO TAO
-    0x0E16: 0xB6,       #  THAI CHARACTER THO THUNG
-    0x0E17: 0xB7,       #  THAI CHARACTER THO THAHAN
-    0x0E18: 0xB8,       #  THAI CHARACTER THO THONG
-    0x0E19: 0xB9,       #  THAI CHARACTER NO NU
-    0x0E1A: 0xBA,       #  THAI CHARACTER BO BAIMAI
-    0x0E1B: 0xBB,       #  THAI CHARACTER PO PLA
-    0x0E1C: 0xBC,       #  THAI CHARACTER PHO PHUNG
-    0x0E1D: 0xBD,       #  THAI CHARACTER FO FA
-    0x0E1E: 0xBE,       #  THAI CHARACTER PHO PHAN
-    0x0E1F: 0xBF,       #  THAI CHARACTER FO FAN
-    0x0E20: 0xC0,       #  THAI CHARACTER PHO SAMPHAO
-    0x0E21: 0xC1,       #  THAI CHARACTER MO MA
-    0x0E22: 0xC2,       #  THAI CHARACTER YO YAK
-    0x0E23: 0xC3,       #  THAI CHARACTER RO RUA
-    0x0E24: 0xC4,       #  THAI CHARACTER RU
-    0x0E25: 0xC5,       #  THAI CHARACTER LO LING
-    0x0E26: 0xC6,       #  THAI CHARACTER LU
-    0x0E27: 0xC7,       #  THAI CHARACTER WO WAEN
-    0x0E28: 0xC8,       #  THAI CHARACTER SO SALA
-    0x0E29: 0xC9,       #  THAI CHARACTER SO RUSI
-    0x0E2A: 0xCA,       #  THAI CHARACTER SO SUA
-    0x0E2B: 0xCB,       #  THAI CHARACTER HO HIP
-    0x0E2C: 0xCC,       #  THAI CHARACTER LO CHULA
-    0x0E2D: 0xCD,       #  THAI CHARACTER O ANG
-    0x0E2E: 0xCE,       #  THAI CHARACTER HO NOKHUK
-    0x0E2F: 0xCF,       #  THAI CHARACTER PAIYANNOI
-    0x0E30: 0xD0,       #  THAI CHARACTER SARA A
-    0x0E31: 0xD1,       #  THAI CHARACTER MAI HAN-AKAT
-    0x0E32: 0xD2,       #  THAI CHARACTER SARA AA
-    0x0E33: 0xD3,       #  THAI CHARACTER SARA AM
-    0x0E34: 0xD4,       #  THAI CHARACTER SARA I
-    0x0E35: 0xD5,       #  THAI CHARACTER SARA II
-    0x0E36: 0xD6,       #  THAI CHARACTER SARA UE
-    0x0E37: 0xD7,       #  THAI CHARACTER SARA UEE
-    0x0E38: 0xD8,       #  THAI CHARACTER SARA U
-    0x0E39: 0xD9,       #  THAI CHARACTER SARA UU
-    0x0E3A: 0xDA,       #  THAI CHARACTER PHINTHU
-    0x0E3F: 0xDF,       #  THAI CURRENCY SYMBOL BAHT
-    0x0E40: 0xE0,       #  THAI CHARACTER SARA E
-    0x0E41: 0xE1,       #  THAI CHARACTER SARA AE
-    0x0E42: 0xE2,       #  THAI CHARACTER SARA O
-    0x0E43: 0xE3,       #  THAI CHARACTER SARA AI MAIMUAN
-    0x0E44: 0xE4,       #  THAI CHARACTER SARA AI MAIMALAI
-    0x0E45: 0xE5,       #  THAI CHARACTER LAKKHANGYAO
-    0x0E46: 0xE6,       #  THAI CHARACTER MAIYAMOK
-    0x0E47: 0xE7,       #  THAI CHARACTER MAITAIKHU
-    0x0E48: 0xE8,       #  THAI CHARACTER MAI EK
-    0x0E49: 0xE9,       #  THAI CHARACTER MAI THO
-    0x0E4A: 0xEA,       #  THAI CHARACTER MAI TRI
-    0x0E4B: 0xEB,       #  THAI CHARACTER MAI CHATTAWA
-    0x0E4C: 0xEC,       #  THAI CHARACTER THANTHAKHAT
-    0x0E4D: 0xED,       #  THAI CHARACTER NIKHAHIT
-    0x0E4E: 0xEE,       #  THAI CHARACTER YAMAKKAN
-    0x0E4F: 0xEF,       #  THAI CHARACTER FONGMAN
-    0x0E50: 0xF0,       #  THAI DIGIT ZERO
-    0x0E51: 0xF1,       #  THAI DIGIT ONE
-    0x0E52: 0xF2,       #  THAI DIGIT TWO
-    0x0E53: 0xF3,       #  THAI DIGIT THREE
-    0x0E54: 0xF4,       #  THAI DIGIT FOUR
-    0x0E55: 0xF5,       #  THAI DIGIT FIVE
-    0x0E56: 0xF6,       #  THAI DIGIT SIX
-    0x0E57: 0xF7,       #  THAI DIGIT SEVEN
-    0x0E58: 0xF8,       #  THAI DIGIT EIGHT
-    0x0E59: 0xF9,       #  THAI DIGIT NINE
-    0x0E5A: 0xFA,       #  THAI CHARACTER ANGKHANKHU
-    0x0E5B: 0xFB,       #  THAI CHARACTER KHOMUT
-}
diff --git a/Misc/NEWS b/Misc/NEWS
index 176fa3a..50e7907 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -104,6 +104,9 @@
 Library
 -------
 
+- Patch #1359618: Speed up charmap encoder by using a trie structure
+  for lookup.
+
 - The functions in the ``pprint`` module now sort dictionaries by key
   before computing the display.  Before 2.5, ``pprint`` sorted a dictionary
   if and only if its display required more than one line, although that
diff --git a/Modules/_codecsmodule.c b/Modules/_codecsmodule.c
index 080fa74..32fa82f 100644
--- a/Modules/_codecsmodule.c
+++ b/Modules/_codecsmodule.c
@@ -792,6 +792,15 @@
     return v;
 }
 
+static PyObject*
+charmap_build(PyObject *self, PyObject *args)
+{
+    PyObject *map;
+    if (!PyArg_ParseTuple(args, "U:charmap_build", &map))
+        return NULL;
+    return PyUnicode_BuildEncodingMap(map);
+}
+
 #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T)
 
 static PyObject *
@@ -897,6 +906,7 @@
     {"ascii_decode", 		ascii_decode,			METH_VARARGS},
     {"charmap_encode", 		charmap_encode,			METH_VARARGS},
     {"charmap_decode", 		charmap_decode,			METH_VARARGS},
+    {"charmap_build", 		charmap_build,			METH_VARARGS},
     {"readbuffer_encode",	readbuffer_encode,		METH_VARARGS},
     {"charbuffer_encode",	charbuffer_encode,		METH_VARARGS},
 #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T)
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index f93cfa5..eb5bdd8 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -3057,6 +3057,219 @@
     return NULL;
 }
 
+/* Charmap encoding: the lookup table */
+
+struct encoding_map{
+  PyObject_HEAD
+  unsigned char level1[32];
+  int count2, count3;
+  unsigned char level23[1];
+};
+
+static PyObject*
+encoding_map_size(PyObject *obj, PyObject* args)
+{
+    struct encoding_map *map = (struct encoding_map*)obj;
+    return PyInt_FromLong(sizeof(*map) - 1 + 16*map->count2 + 
+                          128*map->count3);
+}
+
+static PyMethodDef encoding_map_methods[] = {
+	{"size", encoding_map_size, METH_NOARGS, 
+         PyDoc_STR("Return the size (in bytes) of this object") },
+        { 0 }
+};
+
+static void
+encoding_map_dealloc(PyObject* o)
+{
+	PyObject_FREE(o);
+}
+
+static PyTypeObject EncodingMapType = {
+	PyObject_HEAD_INIT(NULL)
+        0,                      /*ob_size*/
+        "EncodingMap",          /*tp_name*/
+        sizeof(struct encoding_map),   /*tp_basicsize*/
+        0,                      /*tp_itemsize*/
+        /* methods */
+        encoding_map_dealloc,   /*tp_dealloc*/
+        0,                      /*tp_print*/
+        0,                      /*tp_getattr*/
+        0,                      /*tp_setattr*/
+        0,                      /*tp_compare*/
+        0,                      /*tp_repr*/
+        0,                      /*tp_as_number*/
+        0,                      /*tp_as_sequence*/
+        0,                      /*tp_as_mapping*/
+        0,                      /*tp_hash*/
+        0,                      /*tp_call*/
+        0,                      /*tp_str*/
+        0,                      /*tp_getattro*/
+        0,                      /*tp_setattro*/
+        0,                      /*tp_as_buffer*/
+        Py_TPFLAGS_DEFAULT,     /*tp_flags*/
+        0,                      /*tp_doc*/
+        0,                      /*tp_traverse*/
+        0,                      /*tp_clear*/
+        0,                      /*tp_richcompare*/
+        0,                      /*tp_weaklistoffset*/
+        0,                      /*tp_iter*/
+        0,                      /*tp_iternext*/
+        encoding_map_methods,   /*tp_methods*/
+        0,                      /*tp_members*/
+        0,                      /*tp_getset*/
+        0,                      /*tp_base*/
+        0,                      /*tp_dict*/
+        0,                      /*tp_descr_get*/
+        0,                      /*tp_descr_set*/
+        0,                      /*tp_dictoffset*/
+        0,                      /*tp_init*/
+        0,                      /*tp_alloc*/
+        0,                      /*tp_new*/
+        0,                      /*tp_free*/
+        0,                      /*tp_is_gc*/
+};
+
+PyObject*
+PyUnicode_BuildEncodingMap(PyObject* string)
+{
+    Py_UNICODE *decode;
+    PyObject *result;
+    struct encoding_map *mresult;
+    int i;
+    int need_dict = 0;
+    unsigned char level1[32];
+    unsigned char level2[512];
+    unsigned char *mlevel1, *mlevel2, *mlevel3;
+    int count2 = 0, count3 = 0;
+
+    if (!PyUnicode_Check(string) || PyUnicode_GetSize(string) != 256) {
+        PyErr_BadArgument();
+        return NULL;
+    }
+    decode = PyUnicode_AS_UNICODE(string);
+    memset(level1, 0xFF, sizeof level1);
+    memset(level2, 0xFF, sizeof level2);
+
+    /* If there isn't a one-to-one mapping of NULL to \0,
+       or if there are non-BMP characters, we need to use
+       a mapping dictionary. */
+    if (decode[0] != 0)
+        need_dict = 1;
+    for (i = 1; i < 256; i++) {
+        int l1, l2;
+        if (decode[i] == 0
+            #ifdef Py_UNICODE_WIDE
+            || decode[i] > 0xFFFF
+            #endif
+        ) {
+            need_dict = 1;
+            break;
+        }
+        if (decode[i] == 0xFFFE)
+            /* unmapped character */
+            continue;
+        l1 = decode[i] >> 11;
+        l2 = decode[i] >> 7;
+        if (level1[l1] == 0xFF)
+            level1[l1] = count2++;
+        if (level2[l2] == 0xFF)
+            level2[l2] = count3++; 
+    }
+
+    if (count2 >= 0xFF || count3 >= 0xFF)
+        need_dict = 1;
+
+    if (need_dict) {
+        PyObject *result = PyDict_New();
+        PyObject *key, *value;
+        if (!result)
+            return NULL;
+        for (i = 0; i < 256; i++) {
+            key = value = NULL;
+            key = PyInt_FromLong(decode[i]);
+            value = PyInt_FromLong(i);
+            if (!key || !value)
+                goto failed1;
+            if (PyDict_SetItem(result, key, value) == -1)
+                goto failed1;
+        }
+        return result;
+      failed1:
+        Py_XDECREF(key);
+        Py_XDECREF(value);
+        Py_DECREF(result);
+        return NULL;
+    }
+
+    /* Create a three-level trie */
+    result = PyObject_MALLOC(sizeof(struct encoding_map) +
+                             16*count2 + 128*count3 - 1);
+    if (!result)
+        return PyErr_NoMemory();
+    PyObject_Init(result, &EncodingMapType);
+    mresult = (struct encoding_map*)result;
+    mresult->count2 = count2;
+    mresult->count3 = count3;
+    mlevel1 = mresult->level1;
+    mlevel2 = mresult->level23;
+    mlevel3 = mresult->level23 + 16*count2;
+    memcpy(mlevel1, level1, 32);
+    memset(mlevel2, 0xFF, 16*count2);
+    memset(mlevel3, 0, 128*count3);
+    count3 = 0;
+    for (i = 1; i < 256; i++) {
+        int o1, o2, o3, i2, i3;
+        if (decode[i] == 0xFFFE)
+            /* unmapped character */
+            continue;
+        o1 = decode[i]>>11;
+        o2 = (decode[i]>>7) & 0xF;
+        i2 = 16*mlevel1[o1] + o2;
+        if (mlevel2[i2] == 0xFF)
+            mlevel2[i2] = count3++;
+        o3 = decode[i] & 0x7F;
+        i3 = 128*mlevel2[i2] + o3;
+        mlevel3[i3] = i;
+    }
+    return result;
+}
+
+static int
+encoding_map_lookup(Py_UNICODE c, PyObject *mapping)
+{
+    struct encoding_map *map = (struct encoding_map*)mapping;
+    int l1 = c>>11;
+    int l2 = (c>>7) & 0xF;
+    int l3 = c & 0x7F;
+    int i;
+
+#ifdef Py_UNICODE_WIDE
+    if (c > 0xFFFF) {
+	return -1;
+    }
+#endif
+    if (c == 0)
+        return 0;
+    /* level 1*/
+    i = map->level1[l1];
+    if (i == 0xFF) {
+        return -1;
+    }
+    /* level 2*/
+    i = map->level23[16*i+l2];
+    if (i == 0xFF) {
+        return -1;
+    }
+    /* level 3 */
+    i = map->level23[16*map->count2 + 128*i + l3];
+    if (i == 0) {
+        return -1;
+    }
+    return i;
+}
+
 /* Lookup the character ch in the mapping. If the character
    can't be found, Py_None is returned (or NULL, if another
    error occurred). */
@@ -3102,6 +3315,22 @@
     }
 }
 
+static int
+charmapencode_resize(PyObject **outobj, Py_ssize_t *outpos, Py_ssize_t requiredsize)
+{
+	Py_ssize_t outsize = PyString_GET_SIZE(*outobj);
+	/* exponentially overallocate to minimize reallocations */
+	if (requiredsize < 2*outsize)
+	    requiredsize = 2*outsize;
+	if (_PyString_Resize(outobj, requiredsize)) {
+	    return 0;
+	}
+	return 1;
+}
+
+typedef enum charmapencode_result { 
+  enc_SUCCESS, enc_FAILED, enc_EXCEPTION 
+}charmapencode_result;
 /* lookup the character, put the result in the output string and adjust
    various state variables. Reallocate the output string if not enough
    space is available. Return a new reference to the object that
@@ -3109,51 +3338,58 @@
    (in which case no character was written) or NULL, if a
    reallocation error occurred. The caller must decref the result */
 static
-PyObject *charmapencode_output(Py_UNICODE c, PyObject *mapping,
+charmapencode_result charmapencode_output(Py_UNICODE c, PyObject *mapping,
     PyObject **outobj, Py_ssize_t *outpos)
 {
-    PyObject *rep = charmapencode_lookup(c, mapping);
+    PyObject *rep;
+    char *outstart;
+    Py_ssize_t outsize = PyString_GET_SIZE(*outobj);
 
+    if (mapping->ob_type == &EncodingMapType) {
+        int res = encoding_map_lookup(c, mapping);
+	Py_ssize_t requiredsize = *outpos+1;
+        if (res == -1)
+            return enc_FAILED;
+	if (outsize<requiredsize) 
+	    if (!charmapencode_resize(outobj, outpos, requiredsize))
+		return enc_EXCEPTION;
+        outstart = PyString_AS_STRING(*outobj);
+	outstart[(*outpos)++] = (char)res;
+	return enc_SUCCESS;
+    }
+
+    rep = charmapencode_lookup(c, mapping);
     if (rep==NULL)
-	return NULL;
-    else if (rep==Py_None)
-	return rep;
-    else {
-	char *outstart = PyString_AS_STRING(*outobj);
-	Py_ssize_t outsize = PyString_GET_SIZE(*outobj);
+	return enc_EXCEPTION;
+    else if (rep==Py_None) {
+	Py_DECREF(rep);
+	return enc_FAILED;
+    } else {
 	if (PyInt_Check(rep)) {
 	    Py_ssize_t requiredsize = *outpos+1;
-	    if (outsize<requiredsize) {
-		/* exponentially overallocate to minimize reallocations */
-		if (requiredsize < 2*outsize)
-		    requiredsize = 2*outsize;
-		if (_PyString_Resize(outobj, requiredsize)) {
+	    if (outsize<requiredsize)
+		if (!charmapencode_resize(outobj, outpos, requiredsize)) {
 		    Py_DECREF(rep);
-		    return NULL;
+		    return enc_EXCEPTION;
 		}
-		outstart = PyString_AS_STRING(*outobj);
-	    }
+            outstart = PyString_AS_STRING(*outobj);
 	    outstart[(*outpos)++] = (char)PyInt_AS_LONG(rep);
 	}
 	else {
 	    const char *repchars = PyString_AS_STRING(rep);
 	    Py_ssize_t repsize = PyString_GET_SIZE(rep);
 	    Py_ssize_t requiredsize = *outpos+repsize;
-	    if (outsize<requiredsize) {
-		/* exponentially overallocate to minimize reallocations */
-		if (requiredsize < 2*outsize)
-		    requiredsize = 2*outsize;
-		if (_PyString_Resize(outobj, requiredsize)) {
+	    if (outsize<requiredsize)
+		if (!charmapencode_resize(outobj, outpos, requiredsize)) {
 		    Py_DECREF(rep);
-		    return NULL;
+		    return enc_EXCEPTION;
 		}
-		outstart = PyString_AS_STRING(*outobj);
-	    }
+            outstart = PyString_AS_STRING(*outobj);
 	    memcpy(outstart + *outpos, repchars, repsize);
 	    *outpos += repsize;
 	}
     }
-    return rep;
+    return enc_SUCCESS;
 }
 
 /* handle an error in PyUnicode_EncodeCharmap
@@ -3175,18 +3411,27 @@
     Py_ssize_t collpos;
     char *encoding = "charmap";
     char *reason = "character maps to <undefined>";
+    charmapencode_result x;
 
-    PyObject *x;
     /* find all unencodable characters */
     while (collendpos < size) {
-	x = charmapencode_lookup(p[collendpos], mapping);
-	if (x==NULL)
+        PyObject *rep;
+        if (mapping->ob_type == &EncodingMapType) {
+	    int res = encoding_map_lookup(p[collendpos], mapping);
+	    if (res != -1)
+		break;
+	    ++collendpos;
+	    continue;
+	}
+            
+	rep = charmapencode_lookup(p[collendpos], mapping);
+	if (rep==NULL)
 	    return -1;
-	else if (x!=Py_None) {
-	    Py_DECREF(x);
+	else if (rep!=Py_None) {
+	    Py_DECREF(rep);
 	    break;
 	}
-	Py_DECREF(x);
+	Py_DECREF(rep);
 	++collendpos;
     }
     /* cache callback name lookup
@@ -3210,15 +3455,13 @@
 	case 2: /* replace */
 	    for (collpos = collstartpos; collpos<collendpos; ++collpos) {
 		x = charmapencode_output('?', mapping, res, respos);
-		if (x==NULL) {
+		if (x==enc_EXCEPTION) {
 		    return -1;
 		}
-		else if (x==Py_None) {
-		    Py_DECREF(x);
+		else if (x==enc_FAILED) {
 		    raise_encode_exception(exceptionObject, encoding, p, size, collstartpos, collendpos, reason);
 		    return -1;
 		}
-		Py_DECREF(x);
 	    }
 	    /* fall through */
 	case 3: /* ignore */
@@ -3232,14 +3475,12 @@
 		sprintf(buffer, "&#%d;", (int)p[collpos]);
 		for (cp = buffer; *cp; ++cp) {
 		    x = charmapencode_output(*cp, mapping, res, respos);
-		    if (x==NULL)
+		    if (x==enc_EXCEPTION)
 			return -1;
-		    else if (x==Py_None) {
-			Py_DECREF(x);
+		    else if (x==enc_FAILED) {
 			raise_encode_exception(exceptionObject, encoding, p, size, collstartpos, collendpos, reason);
 			return -1;
 		    }
-		    Py_DECREF(x);
 		}
 	    }
 	    *inpos = collendpos;
@@ -3254,17 +3495,14 @@
 	    repsize = PyUnicode_GET_SIZE(repunicode);
 	    for (uni2 = PyUnicode_AS_UNICODE(repunicode); repsize-->0; ++uni2) {
 		x = charmapencode_output(*uni2, mapping, res, respos);
-		if (x==NULL) {
-		    Py_DECREF(repunicode);
+		if (x==enc_EXCEPTION) {
 		    return -1;
 		}
-		else if (x==Py_None) {
+		else if (x==enc_FAILED) {
 		    Py_DECREF(repunicode);
-		    Py_DECREF(x);
 		    raise_encode_exception(exceptionObject, encoding, p, size, collstartpos, collendpos, reason);
 		    return -1;
 		}
-		Py_DECREF(x);
 	    }
 	    *inpos = newpos;
 	    Py_DECREF(repunicode);
@@ -3304,22 +3542,20 @@
 
     while (inpos<size) {
 	/* try to encode it */
-	PyObject *x = charmapencode_output(p[inpos], mapping, &res, &respos);
-	if (x==NULL) /* error */
+	charmapencode_result x = charmapencode_output(p[inpos], mapping, &res, &respos);
+	if (x==enc_EXCEPTION) /* error */
 	    goto onError;
-	if (x==Py_None) { /* unencodable character */
+	if (x==enc_FAILED) { /* unencodable character */
 	    if (charmap_encoding_error(p, size, &inpos, mapping,
 		&exc,
 		&known_errorHandler, &errorHandler, errors,
 		&res, &respos)) {
-		Py_DECREF(x);
 		goto onError;
 	    }
 	}
 	else
 	    /* done with this character => adjust input position */
 	    ++inpos;
-	Py_DECREF(x);
     }
 
     /* Resize if we allocated to much */
diff --git a/Tools/unicode/Makefile b/Tools/unicode/Makefile
index fbd3557..35744ad 100644
--- a/Tools/unicode/Makefile
+++ b/Tools/unicode/Makefile
@@ -78,7 +78,7 @@
 ### Cleanup
 
 clean:
-	$(RM) build/*
+	$(RM) -f build/*
 
 distclean:	clean
 	$(RM) -rf MAPPINGS/
diff --git a/Tools/unicode/gencodec.py b/Tools/unicode/gencodec.py
index 0c55de6..8a2ca64 100644
--- a/Tools/unicode/gencodec.py
+++ b/Tools/unicode/gencodec.py
@@ -270,6 +270,11 @@
         comments=comments,
         precisions=(4, 2))
 
+    if decoding_table_code:
+        suffix = 'table'
+    else:
+        suffix = 'map'
+
     l = [
         '''\
 """ Python Character Mapping Codec %s generated from '%s' with gencodec.py.
@@ -283,30 +288,20 @@
 class Codec(codecs.Codec):
 
     def encode(self,input,errors='strict'):
-        return codecs.charmap_encode(input,errors,encoding_map)
+        return codecs.charmap_encode(input,errors,encoding_%s)
 
-    def decode(self,input,errors='strict'):''' % (encodingname, name)
-        ]
-    if decoding_table_code:
-        l.append('''\
-        return codecs.charmap_decode(input,errors,decoding_table)''')
-    else:
-        l.append('''\
-        return codecs.charmap_decode(input,errors,decoding_map)''')
-
-    l.append('''
+    def decode(self,input,errors='strict'):
+        return codecs.charmap_decode(input,errors,decoding_%s)
+''' % (encodingname, name, suffix, suffix)]
+    l.append('''\
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
-        return codecs.charmap_encode(input,self.errors,encoding_map)[0]
+        return codecs.charmap_encode(input,self.errors,encoding_%s)[0]
 
 class IncrementalDecoder(codecs.IncrementalDecoder):
-    def decode(self, input, final=False):''')
-    if decoding_table_code:
-        l.append('''\
-        return codecs.charmap_decode(input,self.errors,decoding_table)[0]''')
-    else:
-        l.append('''\
-        return codecs.charmap_decode(input,self.errors,decoding_map)[0]''')
+    def decode(self, input, final=False):
+        return codecs.charmap_decode(input,self.errors,decoding_%s)[0]''' %
+        (suffix, suffix))
 
     l.append('''
 class StreamWriter(Codec,codecs.StreamWriter):
@@ -319,13 +314,13 @@
 
 def getregentry():
     return codecs.CodecInfo(
-        Codec().encode,
-        Codec().decode,
         name=%r,
-        streamwriter=StreamWriter,
-        streamreader=StreamReader,
+        encode=Codec().encode,
+        decode=Codec().decode,
         incrementalencoder=IncrementalEncoder,
         incrementaldecoder=IncrementalDecoder,
+        streamreader=StreamReader,
+        streamwriter=StreamWriter,
     )
 ''' % encodingname.replace('_', '-'))
 
@@ -342,10 +337,16 @@
         l.extend(decoding_table_code)
 
     # Add encoding map
-    l.append('''
+    if decoding_table_code:
+        l.append('''
+### Encoding table
+encoding_table=codecs.charmap_build(decoding_table)
+''')
+    else:
+        l.append('''
 ### Encoding Map
 ''')
-    l.extend(encoding_map_code)
+        l.extend(encoding_map_code)
 
     # Final new-line
     l.append('')
