neo-layout/windows/kbdneo2/legacy_source/kbdneo2.c

3505 lines
170 KiB
C

/****************************************************************************\
* Module Name: KBDNEO2.C
* Deutsches ergonomische Layout Neo 2.0
\****************************************************************************/
#include <windows.h>
#include "kbd.h"
#include "kbd_mod.h"
#include "keysym4utf16.h"
#include "kbdneo2.h"
#if defined(_M_IA64)
#pragma section(".data")
#define ALLOC_SECTION_LDATA __declspec(allocate(".data"))
#else
#pragma data_seg(".data")
#define ALLOC_SECTION_LDATA
#endif
/* **************************************************************************************************************\
* ausVK[] - Virtual Scan Code to Virtual Key
*
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* |T01| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* +---------------------------------------------------------+ +--------------+ +---------------+
* |T29¦T02¦T03¦T04¦T05¦T06¦T07¦T08¦T09¦T0A¦T0B¦T0C¦T0D¦ T0E | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
* |T0F¦T10¦T11¦T12¦T13¦T14¦T15¦T16¦T17¦T18¦T19¦T1A¦T1B¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
* | T3A ¦T1E¦T1F¦T20¦T21¦T22¦T23¦T24¦T25¦T26¦T27¦T28¦T2B¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
* |---------------------------------------------------------| +----+ +---+---+---+---¦
* |T2A ¦T56¦T2C¦T2D¦T2E¦T2F¦T30¦T31¦T32¦T33¦T34¦T35¦ T36 | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦X38 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*
*
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* |Esc| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
* +---------------------------------------------------------+ +--------------+ +---------------+
* |T1 ¦1 ¦2 ¦3 ¦4 ¦5 ¦6 ¦7 ¦8 ¦9 ¦0 ¦- ¦T2 ¦Back | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
* |Tab¦x ¦v ¦l ¦c ¦w ¦k ¦h ¦g ¦f ¦q ¦ß ¦T3 ¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
* | M3 ¦u ¦i ¦a ¦e ¦o ¦s ¦n ¦r ¦t ¦d ¦y ¦M3 ¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
* |---------------------------------------------------------| +----+ +---+---+---+---¦
* |Ums ¦M4 ¦ü ¦ö ¦ä ¦p ¦z ¦b ¦m ¦, ¦. ¦j ¦ Umsch | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦ M4 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
* +---------------------------------------------------------+ +--------------+ +---------------+
*
\************************************************************************************************************** */
static ALLOC_SECTION_LDATA USHORT ausVK[] = {
T00, T01, T02, T03, T04, T05, T06, T07,
T08, T09, T0A, T0B, T0C, T0D, T0E, T0F,
T10, T11, T12, T13, T14, T15, T16, T17,
T18, T19, T1A, T1B, T1C, T1D, T1E, T1F,
T20, T21, T22, T23, T24, T25, T26, T27,
T28, T29, T2A, T2B, T2C, T2D, T2E, T2F,
T30, T31, T32, T33, T34, T35,
// Rechtes Shift muss KBDEXT bit haben
T36 | KBDEXT,
T37 | KBDMULTIVK, // numpad_* + Shift/Alt -> SnapShot
T38, T39, T3A, T3B, T3C, T3D, T3E,
T3F, T40, T41, T42, T43, T44,
/* NumLock Key:
* KBDEXT - VK_NUMLOCK ist Extended key
* KBDMULTIVK - VK_NUMLOCK oder VK_PAUSE (mit oder ohne STRG) */
T45 | KBDEXT | KBDMULTIVK,
T46 | KBDMULTIVK,
/*
* Number Pad keys:
* KBDNUMPAD - digits 0-9 and decimal point.
* KBDSPECIAL - require special processing by Windows
*/
T47 | KBDNUMPAD | KBDSPECIAL, // Numpad 7 (Home)
T48 | KBDNUMPAD | KBDSPECIAL, // Numpad 8 (Up),
T49 | KBDNUMPAD | KBDSPECIAL, // Numpad 9 (PgUp),
T4A,
T4B | KBDNUMPAD | KBDSPECIAL, // Numpad 4 (Left),
T4C | KBDNUMPAD | KBDSPECIAL, // Numpad 5 (Clear),
T4D | KBDNUMPAD | KBDSPECIAL, // Numpad 6 (Right),
T4E,
T4F | KBDNUMPAD | KBDSPECIAL, // Numpad 1 (End),
T50 | KBDNUMPAD | KBDSPECIAL, // Numpad 2 (Down),
T51 | KBDNUMPAD | KBDSPECIAL, // Numpad 3 (PgDn),
T52 | KBDNUMPAD | KBDSPECIAL, // Numpad 0 (Ins),
T53 | KBDNUMPAD | KBDSPECIAL, // Numpad . (Del),
T54, T55, T56, T57, T58, T59, T5A, T5B,
T5C, T5D, T5E, T5F, T60, T61, T62, T63,
T64, T65, T66, T67, T68, T69, T6A, T6B,
T6C, T6D, T6E, T6F, T70, T71, T72, T73,
T74, T75, T76, T77, T78, T79, T7A, T7B,
T7C, T7D, T7E
};
static ALLOC_SECTION_LDATA VSC_VK aE0VscToVk[] = {
{ 0x10, X10 | KBDEXT }, // Speedracer: Previous Track
{ 0x19, X19 | KBDEXT }, // Speedracer: Next Track
{ 0x1D, X1D | KBDEXT }, // RControl
{ 0x20, X20 | KBDEXT }, // Speedracer: Volume Mute
{ 0x21, X21 | KBDEXT }, // Speedracer: Launch App 2
{ 0x22, X22 | KBDEXT }, // Speedracer: Media Play/Pause
{ 0x24, X24 | KBDEXT }, // Speedracer: Media Stop
{ 0x2E, X2E | KBDEXT }, // Speedracer: Volume Down
{ 0x30, X30 | KBDEXT }, // Speedracer: Volume Up
{ 0x32, X32 | KBDEXT }, // Speedracer: Browser Home
{ 0x35, X35 | KBDEXT }, // Numpad Divide
{ 0x37, X37 | KBDEXT }, // Snapshot
{ 0x38, X38 | KBDEXT }, // RMenu
{ 0x47, X47 | KBDEXT }, // Home
{ 0x48, X48 | KBDEXT }, // Up
{ 0x49, X49 | KBDEXT }, // Prior
{ 0x4B, X4B | KBDEXT }, // Left
{ 0x4D, X4D | KBDEXT }, // Right
{ 0x4F, X4F | KBDEXT }, // End
{ 0x50, X50 | KBDEXT }, // Down
{ 0x51, X51 | KBDEXT }, // Next
{ 0x52, X52 | KBDEXT }, // Insert
{ 0x53, X53 | KBDEXT }, // Delete
{ 0x5B, X5B | KBDEXT }, // Left Win
{ 0x5C, X5C | KBDEXT }, // Right Win
{ 0x5D, X5D | KBDEXT }, // Application
{ 0x5F, X5F | KBDEXT }, // Speedracer: Sleep
{ 0x65, X65 | KBDEXT }, // Speedracer: Browser Search
{ 0x66, X66 | KBDEXT }, // Speedracer: Browser Favorites
{ 0x67, X67 | KBDEXT }, // Speedracer: Browser Refresh
{ 0x68, X68 | KBDEXT }, // Speedracer: Browser Stop
{ 0x69, X69 | KBDEXT }, // Speedracer: Browser Forward
{ 0x6A, X6A | KBDEXT }, // Speedracer: Browser Back
{ 0x6B, X6B | KBDEXT }, // Speedracer: Launch App 1
{ 0x6C, X6C | KBDEXT }, // Speedracer: Launch Mail
{ 0x6D, X6D | KBDEXT }, // Speedracer: Launch Media Selector
{ 0x1C, X1C | KBDEXT }, // Numpad Enter
{ 0x46, X46 | KBDEXT }, // Break (Ctrl + Pause)
{ 0, 0 }
};
static ALLOC_SECTION_LDATA VSC_VK aE1VscToVk[] = {
{ 0x1D, Y1D }, // Pause
{ 0 , 0 }
};
/* **************************************************************************\
* aVkToBits[] - map Virtual Keys to Modifier Bits
*
* Siehe kbd.h für mehr Infos
\************************************************************************** */
// Es wird nicht zwischen linken und/oder rechtem Modifier unterschieden
static ALLOC_SECTION_LDATA VK_TO_BIT aVkToBits[] = {
{ VK_SHIFT , KBDSHIFT },
{ VK_CONTROL , KBDCTRL },
{ VK_MENU , KBDALT },
{ VK_OEM_8 , KBDKANA }, //Mod 4
{ VK_OEM_102 , 16 }, //Mod 3
{ 0 , 0 }
};
/* **************************************************************************\
* aModification[] - map character modifier bits to modification number
*
* Siehe kbd.h für mehr Infos
\************************************************************************** */
static ALLOC_SECTION_LDATA MODIFIERS CharModifiers = {
&aVkToBits[0],
24, // Maximaler Wert, den die Modifier-Bitmaske annehmen kann
{
// Modifier NEO
// Ebene 0 - nix
// Ebene 1 - Shift
// Ebene 2 - Neu = Mod 3
// Ebene 3 - Kana = Mod 4
// Ebene 4 - Neu+Shift
// Ebene 5 - Kasa+Neu
//
// Modification# // Keys Pressed
// =============== //=======================================
// Neu Kana Alt Strg Shift
0, // 0 0 0 0 0
1, // 0 0 0 0 1
6, // 0 0 0 1 0
7, // 0 0 0 1 1
SHFT_INVALID, // 0 0 1 0 0
SHFT_INVALID, // 0 0 1 0 1
SHFT_INVALID, // 0 0 1 1 0
SHFT_INVALID, // 0 0 1 1 1
3, // 0 1 0 0 0
8, // 0 1 0 0 1
SHFT_INVALID, // 0 1 0 1 0
SHFT_INVALID, // 0 1 0 1 1
SHFT_INVALID, // 0 1 1 0 0
SHFT_INVALID, // 0 1 1 0 1
SHFT_INVALID, // 0 1 1 1 0
SHFT_INVALID, // 0 1 1 1 1
2, // 1 0 0 0 0
4, // 1 0 0 0 1
SHFT_INVALID, // 1 0 0 1 0
SHFT_INVALID, // 1 0 0 1 1
SHFT_INVALID, // 1 0 1 0 0
SHFT_INVALID, // 1 0 1 0 1
SHFT_INVALID, // 1 0 1 1 0
SHFT_INVALID, // 1 0 1 1 1
5, // 1 1 0 0 0
}
};
/* **************************************************************************\
* Spezielle Werte für den VK (Spalte 1)
* 0xff - Tote Zeichen für obige Zeile
* 0 - Beendet die gesamte Liste
*
* Spezielle Werte für Attributes (Spalte 2)
* CAPLOK - CAPS-LOCK wirkt auf diese Taste wie SHIFT
* KANALOK - Mod4-LOCK wirkt auf diese Taste wie Mod4
*
* Spezielle Werte für wch[*]
* WCH_NONE - Keine Belegung
* WCH_DEAD - Totes Zeichen
* WCH_LGTR - Ligatur
\************************************************************************** */
static ALLOC_SECTION_LDATA VK_TO_WCHARS6 aVkToWch6[] = {
// Reihenfolge der Ebene wie oben ( ALLOC_SECTION_LDATA MODIFIERS CharModifiers = { &aVkToBits[0],)… festgelegt
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU |
// |===================|===========|=======================|=======================|===============|===================|===================|
// Zeile 1
{VK_OEM_1 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD }, //Tote Taste 1
{0xff ,0 ,'^' ,caron ,totdreh ,abovedot ,rhotichook ,'.' },
{'1' ,KANALOK ,'1' ,degree ,onesuperior ,ordfeminine ,onesubscript ,notsign },
{'3' ,KANALOK ,'3' ,litersign ,threesuperior ,numerosign ,threesubscript ,logicaland },
{'4' ,KANALOK ,'4' ,guillemotright ,guillemotright2 ,WCH_NONE ,femalesymbol ,uptack },
{'5' ,KANALOK ,'5' ,guillemotleft ,guillemotleft2 ,periodcentered ,malesymbol ,measuredangle },
{'7' ,KANALOK ,'7' ,EuroSign ,yen ,currency ,scriptkappa ,rightarrow },
{'8' ,KANALOK ,'8' ,doublelowquotemark ,singlelowquotemark ,WCH_NONE ,leftanglebracket ,infinity }, //Kana: '\t' vom AHK übernommen
{'9' ,KANALOK ,'9' ,leftdoublequotemark ,leftsinglequotemark ,'/' ,rightanglebracket ,variation },
{'0' ,KANALOK ,'0' ,rightdoublequotemark ,rightsinglequotemark ,'*' ,zerosubscript ,emptyset },
{VK_OEM_MINUS ,KANALOK ,'-' ,emdash ,WCH_NONE ,'-' ,nobreakhyphen ,hyphen },
{VK_OEM_2 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD }, //Tote Taste 2
{0xff ,0 ,grave ,cedilla ,ringabove ,diaeresis ,greek_dasia ,macron },
{VK_TAB ,0 ,'\t' ,'\t' ,WCH_DEAD ,'\t' ,'\t' ,'\t' },
{0xff ,0 ,WCH_NONE ,WCH_NONE ,Multi_key ,WCH_NONE ,WCH_NONE ,WCH_NONE },
{'X' ,CAPLOK | KANALOK ,'x' ,'X' ,ellipsis ,WCH_NONE ,Greek_xi ,Greek_XI }, //WCH_NONE sollte »Seite hoch« sein (AHK?)
{'V' ,CAPLOK | KANALOK ,'v' ,'V' ,'_' ,WCH_NONE ,WCH_NONE ,radical }, //Kana: '\b' vom AHK übernommen
{'L' ,CAPLOK | KANALOK ,'l' ,'L' ,'[' ,WCH_NONE ,Greek_lamda ,Greek_LAMDA }, //WCH_NONE sollte »Pfeil hoch« sein (AHK?)
{'C' ,CAPLOK | KANALOK ,'c' ,'C' ,']' ,WCH_NONE ,Greek_chi ,doublestruck_c }, //WCH_NONE sollte »Entfernen« sein (AHK?)
{'W' ,CAPLOK | KANALOK ,'w' ,'W' ,asciicircum ,WCH_NONE ,Greek_omega ,Greek_OMEGA }, //WCH_NONE sollte »Seite runter« sein (AHK?)
{'K' ,CAPLOK | KANALOK ,'k' ,'K' ,'!' ,exclamdown ,Greek_kappa ,multiply },
{'H' ,CAPLOK | KANALOK ,'h' ,'H' ,'<' ,'7' ,Greek_psi ,Greek_PSI },
{'G' ,CAPLOK | KANALOK ,'g' ,'G' ,'>' ,'8' ,Greek_gamma ,Greek_GAMMA },
{'F' ,CAPLOK | KANALOK ,'f' ,'F' ,'=' ,'9' ,Greek_phi ,Greek_PHI },
{'Q' ,CAPLOK | KANALOK ,'q' ,'Q' ,'&' ,'+' ,scriptphi ,doublestruck_q },
{'U' ,CAPLOK | KANALOK ,'u' ,'U' ,backslash ,WCH_NONE ,WCH_NONE ,includedin }, //WCH_NONE sollte »Pos 1« sein (AHK?)
{'I' ,CAPLOK | KANALOK ,'i' ,'I' ,'/' ,WCH_NONE ,Greek_iota ,integral }, //WCH_NONE sollte »Pfeil links« sein (AHK?)
{'A' ,CAPLOK | KANALOK ,'a' ,'A' ,'{' ,WCH_NONE ,Greek_alpha ,forall }, //WCH_NONE sollte »Pfeil runter« sein (AHK?)
{'E' ,CAPLOK | KANALOK ,'e' ,'E' ,'}' ,WCH_NONE ,Greek_epsilon ,thereexists }, //WCH_NONE sollte »Pfeil rechts« sein (AHK?)
{'O' ,CAPLOK | KANALOK ,'o' ,'O' ,'*' ,WCH_NONE ,Greek_omicron ,elementof }, //WCH_NONE sollte »Ende« sein (AHK?)
{'S' ,CAPLOK | KANALOK ,'s' ,'S' ,'?' ,questiondown ,Greek_sigma ,Greek_SIGMA },
{'N' ,CAPLOK | KANALOK ,'n' ,'N' ,'(' ,'4' ,Greek_nu ,doublestruck_n },
{'R' ,CAPLOK | KANALOK ,'r' ,'R' ,')' ,'5' ,Greek_rho ,doublestruck_r },
{'T' ,CAPLOK | KANALOK ,'t' ,'T' ,'-' ,'6' ,Greek_tau ,partialderivative },
{'D' ,CAPLOK | KANALOK ,'d' ,'D' ,':' ,',' ,Greek_delta ,Greek_DELTA },
{VK_OEM_5 ,CAPLOK | KANALOK ,udiaeresis ,Udiaeresis ,'#' ,WCH_NONE ,WCH_NONE ,union }, //WCH_NONE sollte »Esc« sein (AHK?)
{VK_OEM_6 ,CAPLOK | KANALOK ,odiaeresis ,Odiaeresis ,'$' ,WCH_NONE ,straightepsilon ,intersection }, //Kana: '\t' vom AHK übernommen
{VK_OEM_7 ,CAPLOK | KANALOK ,adiaeresis ,Adiaeresis ,'|' ,WCH_NONE ,Greek_eta ,alefsymbol }, //WCH_NONE sollte »Einfügen« sein (AHK?)
{'P' ,CAPLOK | KANALOK ,'p' ,'P' ,'~' ,WCH_NONE ,Greek_pi ,Greek_PI }, //Kana: '\r' vom AHK übernommen
{'Z' ,CAPLOK | KANALOK ,'z' ,'Z' ,'`' ,WCH_NONE ,Greek_zeta ,doublestruck_z }, //WCH_NONE sollte »Undo« sein (AHK?)
{'B' ,CAPLOK | KANALOK ,'b' ,'B' ,'+' ,':' ,Greek_beta ,doublearrowleft },
{'M' ,CAPLOK | KANALOK ,'m' ,'M' ,'%' ,'1' ,mu ,ifonlyif },
{VK_OEM_COMMA ,KANALOK ,',' ,endash ,quotedbl ,'2' ,scriptrho ,implies },
{VK_OEM_PERIOD ,KANALOK ,'.' ,enfilledcircbullet ,apostrophe ,'3' ,scripttheta ,arrowfrombarright },
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }
};
static ALLOC_SECTION_LDATA VK_TO_WCHARS7 aVkToWch7[] = {
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU | Control |
// |===================|===========|===========|===========|===========|=======================|===============|===============|
{VK_OEM_3 ,CAPLOK | KANALOK ,ssharp ,Ssharp ,slong ,minussign ,Greek_finalsmallsigma ,jot ,escape },
{VK_OEM_4 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,infoseparator3 }, //Tote Taste 3
{0xff ,0 ,acute ,'~' ,'-' ,doubleacute,greek_psili ,breve ,WCH_NONE },
{'Y' ,CAPLOK | KANALOK ,'y' ,'Y' ,'@' ,'.' ,Greek_upsilon ,nabla ,infoseparator4 },
{VK_SPACE ,KANALOK ,space ,space ,space ,'0' ,nobreakspace ,nnobreakspace ,space },
{VK_BACK ,0 ,'\b' ,'\b' ,'\b' ,'\b' ,'\b' ,'\b' ,delete },
{VK_ESCAPE ,0 ,escape ,escape ,escape ,escape ,escape ,escape ,escape },
{VK_RETURN ,0 ,'\r' ,'\r' ,'\r' ,'\r' ,'\r' ,'\r' ,'\n' },
{VK_CANCEL ,0 ,endoftext ,endoftext ,WCH_NONE ,WCH_NONE ,WCH_NONE ,WCH_NONE ,endoftext },
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }
};
static ALLOC_SECTION_LDATA VK_TO_WCHARS8 aVkToWch8[] = {
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU | Control | Control+Shift |
// |===================|===========|===========|===========|===========|===================|===========|===========|===============|
{'2' ,KANALOK ,'2' ,section ,twosuperior,masculine ,twosubscript ,logicalor ,WCH_NONE ,0x0000 },
{'6' ,KANALOK ,'6' ,dollar ,cent ,sterling ,maleandfemalesign ,parallelto ,WCH_NONE ,infoseparator2 },
{'J' ,CAPLOK | KANALOK ,'j' ,'J' ,';' ,';' ,Greek_theta ,Greek_THETA,WCH_NONE ,infoseparator1 },
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }
};
// Numpad-Belegung muss zum Schluss kommen
// Entgegen der neo20.txt vorgesehene Belegung 1,2,3,4,5,6 ist hier 1,4,3,2 umgesetzt, Num ist nicht belegt:
static ALLOC_SECTION_LDATA VK_TO_WCHARS4 aVkToWch4[] = {
// | CapsLock | | SHIFT | KANA | NEU |
// |===========|===========|===============|=======================|===================|
{VK_ADD ,0 ,'+' ,minusorplus ,plusminus ,'+' },
{VK_DIVIDE ,0 ,'/' ,fractionslash ,division ,'/' },
{VK_MULTIPLY ,0 ,'*' ,multiply ,dotoperator ,'*' },
{VK_SUBTRACT ,0 ,'-' ,setminus ,minussign ,'-' },
{VK_DECIMAL ,0 ,',' ,',' ,',' ,'.' },
{VK_NUMPAD0 ,0 ,'0' ,'0' ,percent ,signifblank },
{VK_NUMPAD1 ,0 ,'1' ,'1' ,leftrightarrow ,diamond },
{VK_NUMPAD2 ,0 ,'2' ,'2' ,downarrow ,heart },
{VK_NUMPAD3 ,0 ,'3' ,'3' ,rightoverleftharpoon ,wordjoiner },
{VK_NUMPAD4 ,0 ,'4' ,'4' ,leftarrow ,club },
{VK_NUMPAD5 ,0 ,'5' ,'5' ,':' ,EuroSign },
{VK_NUMPAD6 ,0 ,'6' ,'6' ,rightarrow ,triangularbullets },
{VK_NUMPAD7 ,0 ,'7' ,'7' ,updownarrow ,heavycheckmark },
{VK_NUMPAD8 ,0 ,'8' ,'8' ,uparrow ,heavyballotx },
{VK_NUMPAD9 ,0 ,'9' ,'9' ,circledtimes ,dagger },
{0 ,0 ,0 ,0 ,0 ,0 }
};
// Hier müssen die verwendeten WChar_Tables vorkommen; Numpad MUSS letzte Zeile sein.
static ALLOC_SECTION_LDATA VK_TO_WCHAR_TABLE aVkToWcharTable[] = {
{ (PVK_TO_WCHARS1)aVkToWch6, 6, sizeof(aVkToWch6[0]) },
{ (PVK_TO_WCHARS1)aVkToWch7, 7, sizeof(aVkToWch7[0]) },
{ (PVK_TO_WCHARS1)aVkToWch8, 8, sizeof(aVkToWch8[0]) },
{ (PVK_TO_WCHARS1)aVkToWch4, 4, sizeof(aVkToWch4[0]) },
{ NULL, 0, 0 },
};
/* **************************************************************************\
* aKeyNames[], aKeyNamesExt[] - Virtual Scancode to Key Name tables
*
* Table attributes: Ordered Scan (by scancode), null-terminated
*
* Nur für Tasten, die keine Zeichen erzeugen, Tasten die Zeichen erzeugen
* werden danach benannt
\************************************************************************** */
static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNames[] = {
0x01, L"ESC",
0x0e, L"R\x00DC" L"CKTASTE",
0x0f, L"TABULATOR",
0x1c, L"EINGABE",
0x1d, L"STRG",
0x2a, L"UMSCHALT",
0x2b, L"MOD 3 RECHTS",
0x36, L"UMSCHALT RECHTS",
0x37, L"* (ZEHNERTASTATUR)",
0x38, L"ALT",
0x39, L"LEER",
0x3a, L"MOD 3 LINKS",
0x3b, L"F1",
0x3c, L"F2",
0x3d, L"F3",
0x3e, L"F4",
0x3f, L"F5",
0x40, L"F6",
0x41, L"F7",
0x42, L"F8",
0x43, L"F9",
0x44, L"F10",
0x45, L"PAUSE",
0x46, L"ROLLEN-FESTSTELL",
0x47, L"7 (ZEHNERTASTATUR)",
0x48, L"8 (ZEHNERTASTATUR)",
0x49, L"9 (ZEHNERTASTATUR)",
0x4a, L"- (ZEHNERTASTATUR)",
0x4b, L"4 (ZEHNERTASTATUR)",
0x4c, L"5 (ZEHNERTASTATUR)",
0x4d, L"6 (ZEHNERTASTATUR)",
0x4e, L"+ (ZEHNERTASTATUR)",
0x4f, L"1 (ZEHNERTASTATUR)",
0x50, L"2 (ZEHNERTASTATUR)",
0x51, L"3 (ZEHNERTASTATUR)",
0x52, L"0 (ZEHNERTASTATUR)",
0x53, L"KOMMA (ZEHNERTASTATUR)",
0x56, L"MOD 4 LINKS",
0x57, L"F11",
0x58, L"F12",
0 , NULL
};
static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNamesExt[] = {
0x1c, L"EINGABE (ZEHNERTASTATUR)",
0x1d, L"STRG-RECHTS",
0x35, L"/ (ZEHNERTASTATUR)",
0x37, L"DRUCK",
0x38, L"MOD 4 RECHTS",
0x45, L"NUM-FESTSTELL",
0x46, L"UNTBR",
0x47, L"POS1",
0x48, L"NACH-OBEN",
0x49, L"BILD-NACH-OBEN",
0x4b, L"NACH-LINKS",
0x4d, L"NACH-RECHTS",
0x4f, L"ENDE",
0x50, L"NACH-UNTEN",
0x51, L"BILD-NACH-UNTEN",
0x52, L"EINFG",
0x53, L"ENTF",
0x54, L"<00>",
0x56, L"HILFE",
0x5b, L"LINKE WINDOWS",
0x5c, L"RECHTE WINDOWS",
0x5d, L"ANWENDUNG",
0 , NULL
};
static ALLOC_SECTION_LDATA DEADKEY_LPWSTR aKeyNamesDead[] = {
//Tottaste 1 (links neben 1)
L"^" L"ZIRKUMFLEX",
L"\x02C7" L"HATSCHEK",
L"\x21bb" L"DREHEN",
L"\x02d9" L"PUNKT_DARUEBER",
L"\x02de" L"RHOTIC_HOOK",
L"\x002E" L"PUNKT_DARUNTER",
//Tottaste 2 (links neben Rücktaste)
L"\x0060" L"GRAVIS",
L"\x00B8" L"CEDILLE",
L"\x02DA" L"RING",
L"\x00A8" L"TREMA",
L"\x1ffe" L"SPIRITUS_ASPER",
L"\x00AF" L"MAKRON",
//Tottaste 3 (rechts neben „ß“)
L"\x00B4" L"AKUT",
L"\x007E" L"TILDE",
L"\x002D" L"QUERSTRICH",
L"\x02DD" L"DOPPEL_AKUT",
L"\x1fbf" L"SPIRITUS_LENIS",
L"\x02D8" L"BREVE",
NULL
};
static ALLOC_SECTION_LDATA DEADKEY aDeadKey[] = {
// Schema:
// Deadtrans( Name oder Unicode der normalen Taste, Name oder Unicode der toten Taste, Name oder Unicode der zu bildenden Taste, 0x0000 für sichtbar, 0x0001 für tot)
// 0, 0 terminiert komplette Liste
//
// Bei Doppelbelegungen wird erster Treffer genommen
//
//
//Deadkeys
// Nachfolgend Tafeln für die diakritschen Zeichen
// Kombinationen mit einem Diakritika und Compose mit 2 Zeichen. Der Rest ist im Deuschen selten
// und lässt sich über das Combiningzeichen (nachgestellt) bilden
// Mehrfachfunktionen siehe: http://wiki.neo-layout.org/wiki/Diakritika#DoppelfunktionToterTasten
//
// =========================================================================
// TASTE 1: ZIRKUMFLEX, HATSCHEK, DREHEN, PUNKT DRÜBER, HAKEN, PUNKT DRUNTER
// Zirkumflex und Superscript (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( L'^' , space , L'^' , 0x0000), //Zirkumflex
DEADTRANS( L'^' , L'^' , 0x0302 , 0x0000), //2x für Combining
DEADTRANS( L'^' , L'A' , 0x00c2 , 0x0000),
DEADTRANS( L'^' , L'a' , 0x00e2 , 0x0000),
DEADTRANS( L'^' , L'C' , 0x0108 , 0x0000),
DEADTRANS( L'^' , L'c' , 0x0109 , 0x0000),
DEADTRANS( L'^' , L'E' , 0x00ca , 0x0000),
DEADTRANS( L'^' , L'e' , 0x00ea , 0x0000),
DEADTRANS( L'^' , L'G' , 0x011c , 0x0000),
DEADTRANS( L'^' , L'g' , 0x011d , 0x0000),
DEADTRANS( L'^' , L'H' , 0x0124 , 0x0000),
DEADTRANS( L'^' , L'h' , 0x0125 , 0x0000),
DEADTRANS( L'^' , L'I' , 0x00ce , 0x0000),
DEADTRANS( L'^' , L'i' , 0x00ee , 0x0000),
DEADTRANS( L'^' , L'J' , 0x0134 , 0x0000),
DEADTRANS( L'^' , L'j' , 0x0135 , 0x0000),
DEADTRANS( L'^' , L'O' , 0x00d4 , 0x0000),
DEADTRANS( L'^' , L'o' , 0x00f4 , 0x0000),
DEADTRANS( L'^' , L'S' , 0x015c , 0x0000),
DEADTRANS( L'^' , L's' , 0x015d , 0x0000),
DEADTRANS( L'^' , L'U' , 0x00db , 0x0000),
DEADTRANS( L'^' , L'u' , 0x00fb , 0x0000),
DEADTRANS( L'^' , L'W' , 0x0174 , 0x0000),
DEADTRANS( L'^' , L'w' , 0x0175 , 0x0000),
DEADTRANS( L'^' , L'Y' , 0x0176 , 0x0000),
DEADTRANS( L'^' , L'y' , 0x0177 , 0x0000),
DEADTRANS( L'^' , L'Z' , 0x1e90 , 0x0000),
DEADTRANS( L'^' , L'z' , 0x1e91 , 0x0000),
DEADTRANS( L'^' , L'?' , 0x02c0 , 0x0000), // ab hier lang.module
DEADTRANS( L'^' , multiply , 0x02c0 , 0x0000),
DEADTRANS( L'^' , Greek_alpha , 0x1d45 , 0x0000), //Greek_alpha
DEADTRANS( L'^' , Greek_epsilon , 0x1d4b , 0x0000), //Greek_epsilon
DEADTRANS( L'^' , Greek_upsilon , 0x1db7 , 0x0000), //Greek_upsilon
DEADTRANS( L'^' , scriptphi , 0x1db2 , 0x0000), // Ende lang.module
DEADTRANS( L'^' , L'1' , onesuperior , 0x0000), //ab hier hochgestelltes
DEADTRANS( L'^' , L'2' , twosuperior , 0x0000),
DEADTRANS( L'^' , L'3' , threesuperior , 0x0000),
DEADTRANS( L'^' , L'4' , 0x2074 , 0x0000),
DEADTRANS( L'^' , L'5' , 0x2075 , 0x0000),
DEADTRANS( L'^' , L'6' , 0x2076 , 0x0000),
DEADTRANS( L'^' , L'7' , 0x2077 , 0x0000),
DEADTRANS( L'^' , L'8' , 0x2078 , 0x0000),
DEADTRANS( L'^' , L'9' , 0x2079 , 0x0000),
DEADTRANS( L'^' , L'0' , 0x2070 , 0x0000),
DEADTRANS( L'^' , L'+' , 0x207a , 0x0000),
DEADTRANS( L'^' , L'-' , 0x207b , 0x0000),
DEADTRANS( L'^' , L'=' , 0x207c , 0x0000),
DEADTRANS( L'^' , L'(' , 0x207d , 0x0000),
DEADTRANS( L'^' , L')' , 0x207e , 0x0000),
DEADTRANS( L'^' , L'n' , 0x207f , 0x0000),
//Caron (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( caron , space , caron , 0x0000), //Caron
DEADTRANS( caron , caron , 0x030C , 0x0000), //2x für Combining
DEADTRANS( caron , L'A' , 0x01CD , 0x0000),
DEADTRANS( caron , L'a' , 0x01CE , 0x0000),
DEADTRANS( caron , L'C' , 0x010c , 0x0000),
DEADTRANS( caron , L'c' , 0x010d , 0x0000),
DEADTRANS( caron , L'D' , 0x010e , 0x0000),
DEADTRANS( caron , L'd' , 0x010f , 0x0000),
DEADTRANS( caron , L'E' , 0x011a , 0x0000),
DEADTRANS( caron , L'e' , 0x011b , 0x0000),
DEADTRANS( caron , L'G' , 0x01e6 , 0x0000),
DEADTRANS( caron , L'g' , 0x01e7 , 0x0000),
DEADTRANS( caron , L'H' , 0x021e , 0x0000),
DEADTRANS( caron , L'h' , 0x021f , 0x0000),
DEADTRANS( caron , L'I' , 0x01cf , 0x0000),
DEADTRANS( caron , L'i' , 0x01d0 , 0x0000),
DEADTRANS( caron , L'j' , 0x01f0 , 0x0000),
DEADTRANS( caron , L'K' , 0x01e8 , 0x0000),
DEADTRANS( caron , L'k' , 0x01e9 , 0x0000),
DEADTRANS( caron , L'L' , 0x013d , 0x0000),
DEADTRANS( caron , L'l' , 0x013e , 0x0000),
DEADTRANS( caron , L'N' , 0x0147 , 0x0000),
DEADTRANS( caron , L'n' , 0x0148 , 0x0000),
DEADTRANS( caron , L'O' , 0x01d1 , 0x0000),
DEADTRANS( caron , L'o' , 0x01d2 , 0x0000),
DEADTRANS( caron , L'R' , 0x0158 , 0x0000),
DEADTRANS( caron , L'r' , 0x0159 , 0x0000),
DEADTRANS( caron , L'S' , 0x0160 , 0x0000),
DEADTRANS( caron , L's' , 0x0161 , 0x0000),
DEADTRANS( caron , L'T' , 0x0164 , 0x0000),
DEADTRANS( caron , L't' , 0x0165 , 0x0000),
DEADTRANS( caron , L'U' , 0x01d3 , 0x0000),
DEADTRANS( caron , L'u' , 0x01d4 , 0x0000),
DEADTRANS( caron , udiaeresis , 0x01da , 0x0000), // Ü
DEADTRANS( caron , Udiaeresis , 0x01d9 , 0x0000), // ü
DEADTRANS( caron , L'Z' , 0x017d , 0x0000),
DEADTRANS( caron , L'z' , 0x017e , 0x0000),
DEADTRANS( caron , L'1' , onesubscript , 0x0000), // tiefgestellt
DEADTRANS( caron , L'2' , twosubscript , 0x0000),
DEADTRANS( caron , L'3' , threesubscript , 0x0000),
DEADTRANS( caron , L'4' , 0x2084 , 0x0000),
DEADTRANS( caron , L'5' , 0x2085 , 0x0000),
DEADTRANS( caron , L'6' , 0x2086 , 0x0000),
DEADTRANS( caron , L'7' , 0x2087 , 0x0000),
DEADTRANS( caron , L'8' , 0x2088 , 0x0000),
DEADTRANS( caron , L'9' , 0x2089 , 0x0000),
DEADTRANS( caron , L'0' , zerosubscript , 0x0000),
DEADTRANS( caron , L'+' , 0x208a , 0x0000),
DEADTRANS( caron , L'-' , 0x208b , 0x0000),
DEADTRANS( caron , L'=' , 0x208c , 0x0000),
DEADTRANS( caron , L'(' , 0x208d , 0x0000),
DEADTRANS( caron , L')' , 0x208e , 0x0000),
DEADTRANS( caron , L'x' , 0x2093 , 0x0000), // Ende tiefgestellt
//Drehen (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( totdreh , space , totdreh , 0x0000), //Drehen-Symbol
DEADTRANS( totdreh , L'3' , 0x0190 , 0x0000), //ab hier lang.module
DEADTRANS( totdreh , L'a' , 0x0250 , 0x0000),
DEADTRANS( totdreh , L'C' , 0x0186 , 0x0000),
DEADTRANS( totdreh , L'c' , 0x0254 , 0x0000),
DEADTRANS( totdreh , L'e' , 0x0258 , 0x0000),
DEADTRANS( totdreh , L'g' , 0x1d77 , 0x0000),
DEADTRANS( totdreh , L'h' , 0x0265 , 0x0000),
DEADTRANS( totdreh , L'm' , 0x026F , 0x0000),
DEADTRANS( totdreh , L'R' , 0x0281 , 0x0000),
DEADTRANS( totdreh , L'r' , 0x0279 , 0x0000),
DEADTRANS( totdreh , L'S' , 0x01A7 , 0x0000),
DEADTRANS( totdreh , L'V' , 0x0245 , 0x0000),
DEADTRANS( totdreh , L'v' , 0x028C , 0x0000),
DEADTRANS( totdreh , L'w' , 0x028D , 0x0000),
DEADTRANS( totdreh , L'y' , 0x028E , 0x0000),
DEADTRANS( totdreh , Greek_alpha , 0x0252 , 0x0000),
DEADTRANS( totdreh , Greek_lamda , 0x028E , 0x0000),
DEADTRANS( totdreh , Greek_OMEGA , 0x01b1 , 0x0000),
DEADTRANS( totdreh , Greek_tau , 0x027e , 0x0000),
DEADTRANS( totdreh , Greek_delta , 0x018d , 0x0000),
DEADTRANS( totdreh , L')' , 0x203f , 0x0000),
DEADTRANS( totdreh , L'(' , 0x0361 , 0x0000),
DEADTRANS( totdreh , variation , 0x0223 , 0x0000), //Ende lang.module
//Punkt Drüber & Mittenpunkt (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( abovedot , space , abovedot , 0x0000), //Punkt Drüber
DEADTRANS( abovedot , abovedot , 0x0307 , 0x0000), //2x für Combining
DEADTRANS( abovedot , L'L' , 0x013F , 0x0000), //Mittenpunkt
DEADTRANS( abovedot , L'l' , 0x0140 , 0x0000), //Mittenpunkt
DEADTRANS( abovedot , slong , 0x1E9B , 0x0000), // Lang-s mit Punkt drüber
DEADTRANS( abovedot , L'A' , 0x0226 , 0x0000),
DEADTRANS( abovedot , L'a' , 0x0227 , 0x0000),
DEADTRANS( abovedot , L'B' , 0x1e02 , 0x0000),
DEADTRANS( abovedot , L'b' , 0x1e03 , 0x0000),
DEADTRANS( abovedot , L'C' , 0x010a , 0x0000),
DEADTRANS( abovedot , L'c' , 0x010b , 0x0000),
DEADTRANS( abovedot , L'D' , 0x1e0a , 0x0000),
DEADTRANS( abovedot , L'd' , 0x1e0b , 0x0000),
DEADTRANS( abovedot , L'E' , 0x0116 , 0x0000),
DEADTRANS( abovedot , L'e' , 0x0117 , 0x0000),
DEADTRANS( abovedot , L'f' , 0x1e1e , 0x0000),
DEADTRANS( abovedot , L'F' , 0x1e1f , 0x0000),
DEADTRANS( abovedot , L'G' , 0x0120 , 0x0000),
DEADTRANS( abovedot , L'g' , 0x0121 , 0x0000),
DEADTRANS( abovedot , L'H' , 0x1e22 , 0x0000),
DEADTRANS( abovedot , L'h' , 0x1e23 , 0x0000),
DEADTRANS( abovedot , L'I' , 0x0130 , 0x0000),
DEADTRANS( abovedot , L'i' , 0x0131 , 0x0000), // i ohne Punkt
DEADTRANS( abovedot , L'M' , 0x1e40 , 0x0000),
DEADTRANS( abovedot , L'm' , 0x1e41 , 0x0000),
DEADTRANS( abovedot , L'N' , 0x1e44 , 0x0000),
DEADTRANS( abovedot , L'n' , 0x1e45 , 0x0000),
DEADTRANS( abovedot , L'O' , 0x022e , 0x0000),
DEADTRANS( abovedot , L'o' , 0x022f , 0x0000),
DEADTRANS( abovedot , L'P' , 0x1e56 , 0x0000),
DEADTRANS( abovedot , L'p' , 0x1e57 , 0x0000),
DEADTRANS( abovedot , L'R' , 0x1e58 , 0x0000),
DEADTRANS( abovedot , L'r' , 0x1e59 , 0x0000),
DEADTRANS( abovedot , L'S' , 0x1e60 , 0x0000),
DEADTRANS( abovedot , L's' , 0x1e61 , 0x0000),
DEADTRANS( abovedot , L'T' , 0x1e6a , 0x0000),
DEADTRANS( abovedot , L't' , 0x1e6b , 0x0000),
DEADTRANS( abovedot , L'W' , 0x1e86 , 0x0000),
DEADTRANS( abovedot , L'w' , 0x1e87 , 0x0000),
DEADTRANS( abovedot , L'X' , 0x1e8a , 0x0000),
DEADTRANS( abovedot , L'x' , 0x1e8b , 0x0000),
DEADTRANS( abovedot , L'Y' , 0x1e8e , 0x0000),
DEADTRANS( abovedot , L'y' , 0x1e8f , 0x0000),
DEADTRANS( abovedot , L'Z' , 0x017b , 0x0000),
DEADTRANS( abovedot , L'z' , 0x017c , 0x0000),
DEADTRANS( abovedot , L'0' , 0x0298 , 0x0000), //lang.module
//Rhotic hook (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( rhotichook , space , rhotichook , 0x0000), // Rhotic Hook
DEADTRANS( rhotichook , L'B' , 0x0181 , 0x0000), // ab hier lang.module
DEADTRANS( rhotichook , L'b' , 0x0253 , 0x0000),
DEADTRANS( rhotichook , L'C' , 0x0187 , 0x0000),
DEADTRANS( rhotichook , L'c' , 0x0188 , 0x0000),
DEADTRANS( rhotichook , L'D' , 0x018A , 0x0000),
DEADTRANS( rhotichook , L'd' , 0x0257 , 0x0000),
DEADTRANS( rhotichook , L'F' , 0x0191 , 0x0000),
DEADTRANS( rhotichook , L'f' , 0x0192 , 0x0000),
DEADTRANS( rhotichook , L'G' , 0x0193 , 0x0000),
DEADTRANS( rhotichook , L'g' , 0x0260 , 0x0000),
DEADTRANS( rhotichook , L'h' , 0x0266 , 0x0000),
DEADTRANS( rhotichook , L'I' , 0x0196 , 0x0000),
DEADTRANS( rhotichook , L'i' , 0x0269 , 0x0000),
DEADTRANS( rhotichook , L'j' , 0x029D , 0x0000),
DEADTRANS( rhotichook , L'K' , 0x0198 , 0x0000),
DEADTRANS( rhotichook , L'k' , 0x0199 , 0x0000),
DEADTRANS( rhotichook , L'l' , 0x026C , 0x0000),
DEADTRANS( rhotichook , L'M' , 0x2C6E , 0x0000),
DEADTRANS( rhotichook , L'm' , 0x0271 , 0x0000),
DEADTRANS( rhotichook , L'N' , 0x014A , 0x0000),
DEADTRANS( rhotichook , L'n' , 0x014B , 0x0000),
DEADTRANS( rhotichook , L'O' , 0x01A0 , 0x0000),
DEADTRANS( rhotichook , L'o' , 0x01A1 , 0x0000),
DEADTRANS( rhotichook , L'P' , 0x01A4 , 0x0000),
DEADTRANS( rhotichook , L'p' , 0x01A5 , 0x0000),
DEADTRANS( rhotichook , L'R' , 0x2C64 , 0x0000),
DEADTRANS( rhotichook , L'r' , 0x027D , 0x0000),
DEADTRANS( rhotichook , L's' , 0x0282 , 0x0000),
DEADTRANS( rhotichook , L'T' , 0x01AC , 0x0000),
DEADTRANS( rhotichook , L't' , 0x01AD , 0x0000),
DEADTRANS( rhotichook , L'U' , 0x01Af , 0x0000),
DEADTRANS( rhotichook , L'u' , 0x01b0 , 0x0000),
DEADTRANS( rhotichook , L'v' , 0x2C71 , 0x0000),
DEADTRANS( rhotichook , L'W' , 0x2C72 , 0x0000),
DEADTRANS( rhotichook , L'w' , 0x2C73 , 0x0000),
DEADTRANS( rhotichook , L'X' , 0x0194 , 0x0000),
DEADTRANS( rhotichook , L'x' , 0x0263 , 0x0000),
DEADTRANS( rhotichook , L'Y' , 0x01b3 , 0x0000),
DEADTRANS( rhotichook , L'y' , 0x01b4 , 0x0000),
DEADTRANS( rhotichook , L'z' , 0x0290 , 0x0000),
DEADTRANS( rhotichook , L'3' , 0x025d , 0x0000), // bis hier lang.module
//Punkt Darunter (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( L'.' , space , L'.' , 0x0000), //Punkt darunter
DEADTRANS( L'.' , L'.' , 0x0323 , 0x0000), //2x für Combining
DEADTRANS( L'.' , L'A' , 0x1ea0 , 0x0000),
DEADTRANS( L'.' , L'a' , 0x1ea1 , 0x0000),
DEADTRANS( L'.' , L'B' , 0x1e04 , 0x0000),
DEADTRANS( L'.' , L'b' , 0x1e05 , 0x0000),
DEADTRANS( L'.' , L'D' , 0x1e0c , 0x0000),
DEADTRANS( L'.' , L'd' , 0x1e0d , 0x0000),
DEADTRANS( L'.' , L'E' , 0x1eb8 , 0x0000),
DEADTRANS( L'.' , L'e' , 0x1eb9 , 0x0000),
DEADTRANS( L'.' , L'H' , 0x1e24 , 0x0000),
DEADTRANS( L'.' , L'h' , 0x1e25 , 0x0000),
DEADTRANS( L'.' , L'I' , 0x1eca , 0x0000),
DEADTRANS( L'.' , L'i' , 0x1ecb , 0x0000),
DEADTRANS( L'.' , L'K' , 0x1e32 , 0x0000),
DEADTRANS( L'.' , L'k' , 0x1e33 , 0x0000),
DEADTRANS( L'.' , L'L' , 0x1e36 , 0x0000),
DEADTRANS( L'.' , L'l' , 0x1e37 , 0x0000),
DEADTRANS( L'.' , L'M' , 0x1e42 , 0x0000),
DEADTRANS( L'.' , L'm' , 0x1e43 , 0x0000),
DEADTRANS( L'.' , L'N' , 0x1e46 , 0x0000),
DEADTRANS( L'.' , L'n' , 0x1e47 , 0x0000),
DEADTRANS( L'.' , L'O' , 0x1ecc , 0x0000),
DEADTRANS( L'.' , L'o' , 0x1ecd , 0x0000),
DEADTRANS( L'.' , L'R' , 0x1e5a , 0x0000),
DEADTRANS( L'.' , L'r' , 0x1e5b , 0x0000),
DEADTRANS( L'.' , L'S' , 0x1e62 , 0x0000),
DEADTRANS( L'.' , L's' , 0x1e63 , 0x0000),
DEADTRANS( L'.' , L'T' , 0x1e6c , 0x0000),
DEADTRANS( L'.' , L't' , 0x1e6d , 0x0000),
DEADTRANS( L'.' , L'U' , 0x1ee4 , 0x0000),
DEADTRANS( L'.' , L'u' , 0x1ee5 , 0x0000),
DEADTRANS( L'.' , L'V' , 0x1e7e , 0x0000),
DEADTRANS( L'.' , L'v' , 0x1e7f , 0x0000),
DEADTRANS( L'.' , L'W' , 0x1e88 , 0x0000),
DEADTRANS( L'.' , L'w' , 0x1e89 , 0x0000),
DEADTRANS( L'.' , L'Y' , 0x1ef4 , 0x0000),
DEADTRANS( L'.' , L'y' , 0x1ef5 , 0x0000),
DEADTRANS( L'.' , L'Z' , 0x1e92 , 0x0000),
DEADTRANS( L'.' , L'z' , 0x1e93 , 0x0000),
// ENDE TASTE 1
// =====================================================================
// =====================================================================
// TASTE 2: GRAVIS, CEDILLE, RING, TREMA, OGONEK, MAKRON
// Gravis (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( grave , space , grave , 0x0000), //Gravis
DEADTRANS( grave , grave , 0x0300 , 0x0000), //2x für Combining
DEADTRANS( grave , L'a' , 0x00e0 , 0x0000),
DEADTRANS( grave , L'A' , 0x00c0 , 0x0000),
DEADTRANS( grave , L'E' , 0x00c8 , 0x0000),
DEADTRANS( grave , L'e' , 0x00e8 , 0x0000),
DEADTRANS( grave , L'I' , 0x00cc , 0x0000),
DEADTRANS( grave , L'i' , 0x00ec , 0x0000),
DEADTRANS( grave , L'N' , 0x01f8 , 0x0000),
DEADTRANS( grave , L'n' , 0x01f9 , 0x0000),
DEADTRANS( grave , L'O' , 0x00d2 , 0x0000),
DEADTRANS( grave , L'o' , 0x00f2 , 0x0000),
DEADTRANS( grave , L'U' , 0x00d9 , 0x0000),
DEADTRANS( grave , L'u' , 0x00f9 , 0x0000),
DEADTRANS( grave , L'W' , 0x1e80 , 0x0000),
DEADTRANS( grave , L'w' , 0x1e81 , 0x0000),
DEADTRANS( grave , L'Y' , 0x1ef2 , 0x0000),
DEADTRANS( grave , L'y' , 0x1ef3 , 0x0000),
DEADTRANS( grave , Udiaeresis , 0x01db , 0x0000), //Ü
DEADTRANS( grave , udiaeresis , 0x01dc , 0x0000), //ü
DEADTRANS( grave , 0x0391 , 0x1FBA , 0x0000), //Ab hier griechische Kombis
DEADTRANS( grave , Greek_alpha , 0x1F70 , 0x0000),
DEADTRANS( grave , 0x0395 , 0x1FC8 , 0x0000),
DEADTRANS( grave , Greek_epsilon , 0x1F72 , 0x0000),
DEADTRANS( grave , 0x0397 , 0x1FCA , 0x0000),
DEADTRANS( grave , Greek_eta , 0x1F74 , 0x0000),
DEADTRANS( grave , 0x0399 , 0x1FDA , 0x0000),
DEADTRANS( grave , Greek_iota , 0x1F76 , 0x0000),
DEADTRANS( grave , Greek_OMEGA , 0x1FFA , 0x0000),
DEADTRANS( grave , Greek_omega , 0x1F7C , 0x0000),
DEADTRANS( grave , 0x039f , 0x1FF8 , 0x0000),
DEADTRANS( grave , Greek_omicron , 0x1F78 , 0x0000),
DEADTRANS( grave , 0x03a5 , 0x1FEA , 0x0000),
DEADTRANS( grave , Greek_upsilon , 0x1F7A , 0x0000),
//Cedille (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( cedilla , space , cedilla , 0x0000), //Cedille
DEADTRANS( cedilla , cedilla , 0x0327 , 0x0000), //2x für Combining
DEADTRANS( cedilla , L'C' , 0x00c7 , 0x0000),
DEADTRANS( cedilla , L'c' , 0x00e7 , 0x0000),
DEADTRANS( cedilla , L'D' , 0x1e10 , 0x0000),
DEADTRANS( cedilla , L'd' , 0x1e11 , 0x0000),
DEADTRANS( cedilla , L'G' , 0x0122 , 0x0000),
DEADTRANS( cedilla , L'g' , 0x0123 , 0x0000),
DEADTRANS( cedilla , L'H' , 0x1e28 , 0x0000),
DEADTRANS( cedilla , L'h' , 0x1e29 , 0x0000),
DEADTRANS( cedilla , L'K' , 0x0136 , 0x0000),
DEADTRANS( cedilla , L'k' , 0x0137 , 0x0000),
DEADTRANS( cedilla , L'L' , 0x013b , 0x0000),
DEADTRANS( cedilla , L'l' , 0x013c , 0x0000),
DEADTRANS( cedilla , L'N' , 0x0145 , 0x0000),
DEADTRANS( cedilla , L'n' , 0x0146 , 0x0000),
DEADTRANS( cedilla , L'R' , 0x0156 , 0x0000),
DEADTRANS( cedilla , L'r' , 0x0157 , 0x0000),
DEADTRANS( cedilla , L'S' , 0x015e , 0x0000),
DEADTRANS( cedilla , L's' , 0x015f , 0x0000),
DEADTRANS( cedilla , L'T' , 0x0162 , 0x0000),
DEADTRANS( cedilla , L't' , 0x0163 , 0x0000),
DEADTRANS( cedilla , L'A' , 0x0104 , 0x0000), //Ogonek
DEADTRANS( cedilla , L'a' , 0x0105 , 0x0000),
DEADTRANS( cedilla , L'E' , 0x0118 , 0x0000),
DEADTRANS( cedilla , L'e' , 0x0119 , 0x0000),
DEADTRANS( cedilla , L'I' , 0x012e , 0x0000),
DEADTRANS( cedilla , L'i' , 0x012f , 0x0000),
DEADTRANS( cedilla , L'O' , 0x01ea , 0x0000),
DEADTRANS( cedilla , L'o' , 0x01eb , 0x0000),
DEADTRANS( cedilla , L'U' , 0x0172 , 0x0000),
DEADTRANS( cedilla , L'u' , 0x0173 , 0x0000),
//Ring (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( ringabove , space , ringabove , 0x0000), //Ring
DEADTRANS( ringabove , ringabove , 0x030A , 0x0000), //2x für Combining
DEADTRANS( ringabove , L'A' , 0x00c5 , 0x0000),
DEADTRANS( ringabove , L'a' , 0x00e5 , 0x0000),
DEADTRANS( ringabove , L'U' , 0x016e , 0x0000),
DEADTRANS( ringabove , L'u' , 0x016f , 0x0000),
DEADTRANS( ringabove , L'w' , 0x1e98 , 0x0000),
DEADTRANS( ringabove , L'y' , 0x1e99 , 0x0000),
DEADTRANS( ringabove , L'~' , 0x0120 , 0x0000),
DEADTRANS( ringabove , L'c' , 0x0255 , 0x0000), //ab hier lang.module
DEADTRANS( ringabove , L'd' , 0x0221 , 0x0000),
DEADTRANS( ringabove , L'l' , 0x0234 , 0x0000),
DEADTRANS( ringabove , L'n' , 0x0235 , 0x0000),
DEADTRANS( ringabove , L't' , 0x0236 , 0x0000),
DEADTRANS( ringabove , L'z' , 0x0291 , 0x0000),
//Trema (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( diaeresis , space , diaeresis , 0x0000), //Trema
DEADTRANS( diaeresis , diaeresis , 0x0308 , 0x0000), //2x für Combining
DEADTRANS( diaeresis , acute , 0x0344 , 0x0001), //Trema und Akut: COMBINING GREEK DIALYTIKA TONOS
DEADTRANS( diaeresis , L'A' , Adiaeresis , 0x0000),
DEADTRANS( diaeresis , L'a' , adiaeresis , 0x0000),
DEADTRANS( diaeresis , L'E' , 0x00cb , 0x0000),
DEADTRANS( diaeresis , L'e' , 0x00eb , 0x0000),
DEADTRANS( diaeresis , L'H' , 0x1e26 , 0x0000),
DEADTRANS( diaeresis , L'h' , 0x1e27 , 0x0000),
DEADTRANS( diaeresis , L'I' , 0x00cf , 0x0000),
DEADTRANS( diaeresis , L'i' , 0x00ef , 0x0000),
DEADTRANS( diaeresis , L'O' , Odiaeresis , 0x0000),
DEADTRANS( diaeresis , L'o' , 0x00f6 , 0x0000),
DEADTRANS( diaeresis , L't' , 0x1e97 , 0x0000),
DEADTRANS( diaeresis , L'U' , Udiaeresis , 0x0000),
DEADTRANS( diaeresis , L'u' , udiaeresis , 0x0000),
DEADTRANS( diaeresis , L'W' , 0x1e84 , 0x0000),
DEADTRANS( diaeresis , L'w' , 0x1e85 , 0x0000),
DEADTRANS( diaeresis , L'X' , 0x1e8c , 0x0000),
DEADTRANS( diaeresis , L'x' , 0x1e8d , 0x0000),
DEADTRANS( diaeresis , L'Y' , 0x0178 , 0x0000),
DEADTRANS( diaeresis , L'y' , 0x00ff , 0x0000),
DEADTRANS( diaeresis , 0x0399 , 0x03aa , 0x0000), //ab hier griechisch
DEADTRANS( diaeresis , Greek_iota , 0x03ca , 0x0000),
DEADTRANS( diaeresis , 0x03a5 , 0x03ab , 0x0000),
DEADTRANS( diaeresis , Greek_upsilon , 0x03cb , 0x0000),
//Spiritus asper (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( greek_dasia , space , greek_dasia , 0x0000), //Spiritus asper
DEADTRANS( greek_dasia , greek_dasia , 0x0314 , 0x0000), //2x für Combining
DEADTRANS( greek_dasia , Greek_alpha , 0x1f01 , 0x0000),//Greek_alpha
DEADTRANS( greek_dasia , 0x0391 , 0x1f09 , 0x0000),//Greek_ALPHA
DEADTRANS( greek_dasia , Greek_epsilon , 0x1f11 , 0x0000),//Greek_epsilon
DEADTRANS( greek_dasia , 0x0395 , 0x1f19 , 0x0000),//Greek_EPSILON
DEADTRANS( greek_dasia , Greek_eta , 0x1f21 , 0x0000),//Greek_eta
DEADTRANS( greek_dasia , 0x0397 , 0x1f29 , 0x0000),//Greek_ETA
DEADTRANS( greek_dasia , Greek_iota , 0x1f31 , 0x0000),//Greek_iota
DEADTRANS( greek_dasia , 0x0399 , 0x1f39 , 0x0000),//Greek_IOTA
DEADTRANS( greek_dasia , Greek_omega , 0x1f61 , 0x0000),//Greek_omega
DEADTRANS( greek_dasia , Greek_OMEGA , 0x1f69 , 0x0000),//Greek_OMEGA
DEADTRANS( greek_dasia , Greek_omicron , 0x1f41 , 0x0000),//Greek_omicron
DEADTRANS( greek_dasia , 0x039f , 0x1f49 , 0x0000),//Greek_OMICRON
DEADTRANS( greek_dasia , Greek_rho , 0x1fe5 , 0x0000),//Greek_rho
DEADTRANS( greek_dasia , 0x03a1 , 0x1fec , 0x0000),//Greek_RHO
DEADTRANS( greek_dasia , Greek_upsilon , 0x1f51 , 0x0000),//Greek_upsilon
DEADTRANS( greek_dasia , 0x03a5 , 0x1f59 , 0x0000),//Greek_UPSILON
// Makron (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( macron , space , macron , 0x0000), //Makron
DEADTRANS( macron , macron , 0x0304 , 0x0000), //2x für Combining
DEADTRANS( macron , L'A' , 0x0100 , 0x0000),
DEADTRANS( macron , L'a' , 0x0101 , 0x0000),
DEADTRANS( macron , L'E' , 0x0112 , 0x0000),
DEADTRANS( macron , L'e' , 0x0113 , 0x0000),
DEADTRANS( macron , L'G' , 0x1e20 , 0x0000),
DEADTRANS( macron , L'g' , 0x1e21 , 0x0000),
DEADTRANS( macron , L'I' , 0x012a , 0x0000),
DEADTRANS( macron , L'i' , 0x012b , 0x0000),
DEADTRANS( macron , L'O' , 0x014c , 0x0000),
DEADTRANS( macron , L'o' , 0x014d , 0x0000),
DEADTRANS( macron , L'U' , 0x016a , 0x0000),
DEADTRANS( macron , L'u' , 0x016b , 0x0000),
DEADTRANS( macron , L'Y' , 0x0232 , 0x0000),
DEADTRANS( macron , L'y' , 0x0233 , 0x0000),
DEADTRANS( macron , Adiaeresis , 0x01de , 0x0000), //Ä
DEADTRANS( macron , adiaeresis , 0x01df , 0x0000), //ä
DEADTRANS( macron , Udiaeresis , 0x01d5 , 0x0000), //Ü
DEADTRANS( macron , udiaeresis , 0x01d6 , 0x0000), //ü
DEADTRANS( macron , Odiaeresis , 0x022a , 0x0000), //Ö
DEADTRANS( macron , 0x00f6 , 0x022b , 0x0000), //ö
DEADTRANS( macron , 0x00c6 , 0x01E2 , 0x0000), //Æ
DEADTRANS( macron , 0x00e6 , 0x01E3 , 0x0000), //æ
DEADTRANS( macron , 0x0391 , 0x1FB9 , 0x0000), //ab hier griechisch
DEADTRANS( macron , 0x0399 , 0x1FD9 , 0x0000),
DEADTRANS( macron , 0x03a5 , 0x1FE9 , 0x0000),
DEADTRANS( macron , Greek_alpha , 0x1FB1 , 0x0000),
DEADTRANS( macron , Greek_iota , 0x1FD1 , 0x0000),
DEADTRANS( macron , Greek_upsilon , 0x1FE1 , 0x0000),
DEADTRANS( macron , L'b' , 0x1e07 , 0x0000), // ab hier Makron darunter
DEADTRANS( macron , L'B' , 0x1e06 , 0x0000),
DEADTRANS( macron , L'd' , 0x1e0f , 0x0000),
DEADTRANS( macron , L'D' , 0x1e0e , 0x0000),
DEADTRANS( macron , L'h' , 0x1e96 , 0x0000),
DEADTRANS( macron , L'k' , 0x1e35 , 0x0000),
DEADTRANS( macron , L'K' , 0x1e34 , 0x0000),
DEADTRANS( macron , L'l' , 0x1e3b , 0x0000),
DEADTRANS( macron , L'L' , 0x1e3a , 0x0000),
DEADTRANS( macron , L'n' , 0x1e49 , 0x0000),
DEADTRANS( macron , L'N' , 0x1e48 , 0x0000),
DEADTRANS( macron , L'r' , 0x1e5f , 0x0000),
DEADTRANS( macron , L'R' , 0x1e5e , 0x0000),
DEADTRANS( macron , L't' , 0x1e6f , 0x0000),
DEADTRANS( macron , L'T' , 0x1e6e , 0x0000),
DEADTRANS( macron , L'z' , 0x1e95 , 0x0000),
DEADTRANS( macron , L'Z' , 0x1e94 , 0x0000), // Ende Makron darunter
DEADTRANS( macron , L'1' , onesubscript , 0x0000), // tiefgestellt
DEADTRANS( macron , L'2' , twosubscript , 0x0000),
DEADTRANS( macron , L'3' , threesubscript , 0x0000),
DEADTRANS( macron , L'4' , 0x2084 , 0x0000),
DEADTRANS( macron , L'5' , 0x2085 , 0x0000),
DEADTRANS( macron , L'6' , 0x2086 , 0x0000),
DEADTRANS( macron , L'7' , 0x2087 , 0x0000),
DEADTRANS( macron , L'8' , 0x2088 , 0x0000),
DEADTRANS( macron , L'9' , 0x2089 , 0x0000),
DEADTRANS( macron , L'0' , zerosubscript , 0x0000),
DEADTRANS( macron , L'+' , 0x208a , 0x0000),
DEADTRANS( macron , L'-' , 0x208b , 0x0000),
DEADTRANS( macron , L'=' , 0x208c , 0x0000),
DEADTRANS( macron , L'(' , 0x208d , 0x0000),
DEADTRANS( macron , L')' , 0x208e , 0x0000),
DEADTRANS( macron , L'x' , 0x2093 , 0x0000), // Ende tiefgestellt
// ENDE TASTE 2
// =====================================================================
// =====================================================================
// TASTE 3: AKUT, TILDE, QUERSTRICH, DOPPELAKUT, OGONEK, BREVE
// Akut (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( acute , space , acute , 0x0000), //Akut
DEADTRANS( acute , acute , 0x0301 , 0x0000), //2x für Combining
DEADTRANS( acute , diaeresis , 0x0344 , 0x0001), //Trema und Akut: COMBINING GREEK DIALYTIKA TONOS
DEADTRANS( acute , L'A' , 0x00c1 , 0x0000),
DEADTRANS( acute , L'a' , 0x00e1 , 0x0000),
DEADTRANS( acute , L'C' , 0x0106 , 0x0000),
DEADTRANS( acute , L'c' , 0x0107 , 0x0000),
DEADTRANS( acute , L'E' , 0x00c9 , 0x0000),
DEADTRANS( acute , L'e' , 0x00e9 , 0x0000),
DEADTRANS( acute , L'G' , 0x01f4 , 0x0000),
DEADTRANS( acute , L'g' , 0x01f5 , 0x0000),
DEADTRANS( acute , L'I' , 0x00cd , 0x0000),
DEADTRANS( acute , L'i' , 0x00ed , 0x0000),
DEADTRANS( acute , L'K' , 0x1e30 , 0x0000),
DEADTRANS( acute , L'k' , 0x1e31 , 0x0000),
DEADTRANS( acute , L'L' , 0x0139 , 0x0000),
DEADTRANS( acute , L'l' , 0x013a , 0x0000),
DEADTRANS( acute , L'M' , 0x1e3e , 0x0000),
DEADTRANS( acute , L'm' , 0x1e3f , 0x0000),
DEADTRANS( acute , L'N' , 0x0143 , 0x0000),
DEADTRANS( acute , L'n' , 0x0144 , 0x0000),
DEADTRANS( acute , L'O' , 0x00d3 , 0x0000),
DEADTRANS( acute , L'o' , 0x00f3 , 0x0000),
DEADTRANS( acute , L'P' , 0x1e54 , 0x0000),
DEADTRANS( acute , L'p' , 0x1e55 , 0x0000),
DEADTRANS( acute , L'R' , 0x0154 , 0x0000),
DEADTRANS( acute , L'r' , 0x0155 , 0x0000),
DEADTRANS( acute , L'S' , 0x015a , 0x0000),
DEADTRANS( acute , L's' , 0x015b , 0x0000),
DEADTRANS( acute , L'U' , 0x00da , 0x0000),
DEADTRANS( acute , L'u' , 0x00fa , 0x0000),
DEADTRANS( acute , L'W' , 0x1e82 , 0x0000),
DEADTRANS( acute , L'w' , 0x1e83 , 0x0000),
DEADTRANS( acute , L'Y' , 0x00dd , 0x0000),
DEADTRANS( acute , L'y' , 0x00fd , 0x0000),
DEADTRANS( acute , L'Z' , 0x0179 , 0x0000),
DEADTRANS( acute , L'z' , 0x017a , 0x0000),
DEADTRANS( acute , Udiaeresis , 0x01d7 , 0x0000), //Ü
DEADTRANS( acute , udiaeresis , 0x01d8 , 0x0000), //ü
DEADTRANS( acute , 0x00c6 , 0x01fc , 0x0000), //Æ
DEADTRANS( acute , 0x00e6 , 0x01fd , 0x0000), //æ
DEADTRANS( acute , 0x0391 , 0x0386 , 0x0000), //ab hier griechisch
DEADTRANS( acute , 0x0395 , 0x0388 , 0x0000),
DEADTRANS( acute , 0x0397 , 0x0389 , 0x0000),
DEADTRANS( acute , 0x0399 , 0x038a , 0x0000),
DEADTRANS( acute , 0x039f , 0x038c , 0x0000),
DEADTRANS( acute , 0x03a5 , 0x038e , 0x0000),
DEADTRANS( acute , Greek_OMEGA , 0x038f , 0x0000),
DEADTRANS( acute , Greek_alpha , 0x03ac , 0x0000),
DEADTRANS( acute , Greek_epsilon , 0x03ad , 0x0000),
DEADTRANS( acute , Greek_eta , Greek_eta , 0x0000),
DEADTRANS( acute , Greek_iota , 0x03af , 0x0000),
DEADTRANS( acute , Greek_omicron , 0x03cc , 0x0000),
DEADTRANS( acute , Greek_upsilon , 0x03cd , 0x0000),
DEADTRANS( acute , Greek_omega , 0x03ce , 0x0000),
// Tilde (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( L'~' , space , L'~' , 0x0000), //Tilde
DEADTRANS( L'~' , L'~' , 0x0303 , 0x0000), //2x für Combining
DEADTRANS( L'~' , L'A' , 0x00c3 , 0x0000),
DEADTRANS( L'~' , L'a' , 0x00e3 , 0x0000),
DEADTRANS( L'~' , L'E' , 0x1ebc , 0x0000),
DEADTRANS( L'~' , L'e' , 0x1ebd , 0x0000),
DEADTRANS( L'~' , L'I' , 0x0128 , 0x0000),
DEADTRANS( L'~' , L'i' , 0x0129 , 0x0000),
DEADTRANS( L'~' , L'N' , 0x00d1 , 0x0000),
DEADTRANS( L'~' , L'n' , 0x00f1 , 0x0000),
DEADTRANS( L'~' , L'O' , 0x00d5 , 0x0000),
DEADTRANS( L'~' , L'o' , 0x00f5 , 0x0000),
DEADTRANS( L'~' , L'U' , 0x0168 , 0x0000),
DEADTRANS( L'~' , L'u' , 0x0169 , 0x0000),
DEADTRANS( L'~' , L'V' , 0x1e7c , 0x0000),
DEADTRANS( L'~' , L'v' , 0x1e7d , 0x0000),
DEADTRANS( L'~' , L'Y' , 0x1ef8 , 0x0000),
DEADTRANS( L'~' , L'y' , 0x1ef9 , 0x0000),
DEADTRANS( L'~' , Greek_alpha , 0x1FB6 , 0x0000), //ab hier griechisch
DEADTRANS( L'~' , Greek_eta , 0x1FC6 , 0x0000),
DEADTRANS( L'~' , Greek_iota , 0x1FD6 , 0x0000),
DEADTRANS( L'~' , Greek_omega , 0x1FF6 , 0x0000),
DEADTRANS( L'~' , Greek_upsilon , 0x1FE6 , 0x0000),
//Quer-/Schrägstrich (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( L'-' , space , nobreakhyphen , 0x0000), //Quer-/Schrägstrich; mit Space wird echter Hyphen erzeugt
DEADTRANS( L'-' , L'-' , 0x0335 , 0x0000), //2x für Combining (Combining Short Stroke)
DEADTRANS( L'-' , L'A' , 0x023A , 0x0000), //lang.module
DEADTRANS( L'-' , L'a' , 0x2C65 , 0x0000),
DEADTRANS( L'-' , L'B' , 0x0243 , 0x0000),
DEADTRANS( L'-' , L'C' , 0x023B , 0x0000),
DEADTRANS( L'-' , L'c' , 0x023C , 0x0000),
DEADTRANS( L'-' , L'E' , 0x0246 , 0x0000),
DEADTRANS( L'-' , L'e' , 0x0247 , 0x0000),
DEADTRANS( L'-' , L'I' , 0x0197 , 0x0000),
DEADTRANS( L'-' , L'J' , 0x025F , 0x0000),
DEADTRANS( L'-' , L'j' , 0x025F , 0x0000),
DEADTRANS( L'-' , L'P' , 0x2C63 , 0x0000),
DEADTRANS( L'-' , L'p' , 0x1D7D , 0x0000),
DEADTRANS( L'-' , L'R' , 0x024C , 0x0000),
DEADTRANS( L'-' , L'r' , 0x024D , 0x0000),
DEADTRANS( L'-' , L'u' , 0x0289 , 0x0000),
DEADTRANS( L'-' , L'U' , 0x0244 , 0x0000),
DEADTRANS( L'-' , L'Y' , 0x024E , 0x0000),
DEADTRANS( L'-' , L'y' , 0x024F , 0x0000),
DEADTRANS( L'-' , Greek_iota , 0x1d7c , 0x0000), //Greek_iota
DEADTRANS( L'-' , Greek_lamda , 0x019b , 0x0000), //Greek_lambda
DEADTRANS( L'-' , Greek_upsilon , 0x1d7f , 0x0000), //Greek_upsilon
DEADTRANS( L'-' , slong , 0x1e9c , 0x0000), //lang-s
DEADTRANS( L'-' , L'2' , 0x01bb , 0x0000), //Ende lang.module
DEADTRANS( L'-' , L'O' , 0x00d8 , 0x0000), //Schrägstrich
DEADTRANS( L'-' , L'o' , 0x00f8 , 0x0000),
DEADTRANS( L'-' , L'L' , 0x0141 , 0x0000),
DEADTRANS( L'-' , L'l' , 0x0142 , 0x0000),
//Doppelakut (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( doubleacute , space , doubleacute , 0x0000), //Doppelakut
DEADTRANS( doubleacute , doubleacute , 0x030B , 0x0000), //2x für Combining
DEADTRANS( doubleacute , L'O' , 0x0150 , 0x0000),
DEADTRANS( doubleacute , L'o' , 0x0151 , 0x0000),
DEADTRANS( doubleacute , L'U' , 0x0170 , 0x0000),
DEADTRANS( doubleacute , L'u' , 0x0171 , 0x0000),
//Spiritus Lenis (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( greek_psili , space , greek_psili , 0x0000), //Spiritus Lenis
DEADTRANS( greek_psili , greek_psili , 0x0313 , 0x0000),
DEADTRANS( greek_psili , Greek_alpha , 0x1F00 , 0x0000),//Greek_alpha
DEADTRANS( greek_psili , 0x0391 , 0x1F08 , 0x0000),//Greek_ALPHA
DEADTRANS( greek_psili , Greek_epsilon , 0x1F10 , 0x0000),//Greek_epsilon
DEADTRANS( greek_psili , 0x0395 , 0x1F18 , 0x0000),//Greek_EPSILON
DEADTRANS( greek_psili , Greek_eta , 0x1F20 , 0x0000),//Greek_eta
DEADTRANS( greek_psili , 0x0397 , 0x1F28 , 0x0000),//Greek_ETA
DEADTRANS( greek_psili , Greek_iota , 0x1F30 , 0x0000),//Greek_iota
DEADTRANS( greek_psili , 0x0399 , 0x1F38 , 0x0000),//Greek_IOTA
DEADTRANS( greek_psili , Greek_omega , 0x1F60 , 0x0000),//Greek_omega
DEADTRANS( greek_psili , Greek_OMEGA , 0x1F68 , 0x0000),//Greek_OMEGA
DEADTRANS( greek_psili , Greek_omicron , 0x1F40 , 0x0000),//Greek_omicron
DEADTRANS( greek_psili , 0x039f , 0x1F48 , 0x0000),//Greek_OMICRON
DEADTRANS( greek_psili , Greek_rho , 0x1FE4 , 0x0000),//Greek_rho
DEADTRANS( greek_psili , Greek_upsilon , 0x1F50 , 0x0000),//Greek_upsilon
DEADTRANS( greek_psili , L'A' , 0x1EA2 , 0x0000), //lang.module
DEADTRANS( greek_psili , L'a' , 0x1EA3 , 0x0000),
DEADTRANS( greek_psili , L'E' , 0x1EBA , 0x0000),
DEADTRANS( greek_psili , L'e' , 0x1EBB , 0x0000),
DEADTRANS( greek_psili , L'I' , 0x1EC8 , 0x0000),
DEADTRANS( greek_psili , L'i' , 0x1EC9 , 0x0000),
DEADTRANS( greek_psili , L'O' , 0x1ECE , 0x0000),
DEADTRANS( greek_psili , L'o' , 0x1ECF , 0x0000),
DEADTRANS( greek_psili , L'U' , 0x1EE6 , 0x0000),
DEADTRANS( greek_psili , L'u' , 0x1EE7 , 0x0000),
DEADTRANS( greek_psili , L'Y' , 0x1EF6 , 0x0000),
DEADTRANS( greek_psili , L'y' , 0x1EF7 , 0x0000),
// Breve (ferfig für en_US.UTF-8 und lang.module)
DEADTRANS( breve , space , breve , 0x0000), //Breve
DEADTRANS( breve , breve , 0x0306 , 0x0000), //2x für Combining
DEADTRANS( breve , L'A' , 0x0102 , 0x0000),
DEADTRANS( breve , L'a' , 0x0103 , 0x0000),
DEADTRANS( breve , L'E' , 0x0114 , 0x0000),
DEADTRANS( breve , L'e' , 0x0115 , 0x0000),
DEADTRANS( breve , L'G' , 0x011e , 0x0000),
DEADTRANS( breve , L'g' , 0x011f , 0x0000),
DEADTRANS( breve , L'I' , 0x012c , 0x0000),
DEADTRANS( breve , L'i' , 0x012d , 0x0000),
DEADTRANS( breve , L'O' , 0x014e , 0x0000),
DEADTRANS( breve , L'o' , 0x014f , 0x0000),
DEADTRANS( breve , L'U' , 0x016c , 0x0000),
DEADTRANS( breve , L'u' , 0x016d , 0x0000),
DEADTRANS( breve , Greek_alpha , 0x1FB0 , 0x0000),//Greek_alpha
DEADTRANS( breve , 0x0391 , 0x1FB8 , 0x0000),//Greek_ALPHA
DEADTRANS( breve , Greek_iota , 0x1FD0 , 0x0000),//Greek_iota
DEADTRANS( breve , 0x0399 , 0x1FD8 , 0x0000),//Greek_IOTA
DEADTRANS( breve , Greek_upsilon , 0x1FE0 , 0x0000),//Greek_upsilon
DEADTRANS( breve , 0x03a5 , 0x1FE8 , 0x0000),//Greek_UPSILON
DEADTRANS( breve , L'H' , 0x1e2a , 0x0000), //Breve darunter
DEADTRANS( breve , L'h' , 0x1e2b , 0x0000), //Breve darunter
// ENDE TASTE 3
// =====================================================================
// =====================================================================
//Kombinierte Diakritika, die es im Unicode gibt
//Trema und Akut: COMBINING GREEK DIALYTIKA TONOS
DEADTRANS( 0x0344 , space , 0x0344 , 0x0000),
DEADTRANS( 0x0344 , Greek_upsilon , 0x03b0 , 0x0000),
DEADTRANS( 0x0344 , Greek_iota , 0x0390 , 0x0000),
// =====================================================================
// Der Vollständigkeit halber:
// Doppelgravis
DEADTRANS( 0x030f , space , 0x02F5 , 0x0000), //Doppelgravis
DEADTRANS( 0x030f , 0x030f , 0x030f , 0x0000), //2x für Combining
DEADTRANS( 0x030f , L'A' , 0x0200 , 0x0000),
DEADTRANS( 0x030f , L'E' , 0x0204 , 0x0000),
DEADTRANS( 0x030f , L'I' , 0x0208 , 0x0000),
DEADTRANS( 0x030f , L'O' , 0x020c , 0x0000),
DEADTRANS( 0x030f , L'R' , 0x0210 , 0x0000),
DEADTRANS( 0x030f , L'U' , 0x0214 , 0x0000),
DEADTRANS( 0x030f , L'a' , 0x0201 , 0x0000),
DEADTRANS( 0x030f , L'e' , 0x0205 , 0x0000),
DEADTRANS( 0x030f , L'i' , 0x0209 , 0x0000),
DEADTRANS( 0x030f , L'o' , 0x020d , 0x0000),
DEADTRANS( 0x030f , L'r' , 0x0211 , 0x0000),
DEADTRANS( 0x030f , L'u' , 0x0215 , 0x0000),
//nicht belegt
// =====================================================================
// =====================================================================
//Compose
//Compose-Taste
DEADTRANS( Multi_key , space , Multi_key , 0x0001),
DEADTRANS( Multi_key , Multi_key , Multi_key , 0x0000),
//Vorabdefinitionen
DEADTRANS( Multi_key , 0x006F , 0x006F , 0x0001),
DEADTRANS( Multi_key , 0x0032 , 0x0032 , 0x0001),
DEADTRANS( Multi_key , 0x003F , 0x003F , 0x0001),
DEADTRANS( Multi_key , 0x003A , 0x003A , 0x0001),
DEADTRANS( Multi_key , 0x0053 , 0x0053 , 0x0001),
DEADTRANS( Multi_key , 0x0073 , 0x0073 , 0x0001),
DEADTRANS( Multi_key , 0x0054 , 0x0054 , 0x0001),
DEADTRANS( Multi_key , 0x0074 , 0x0074 , 0x0001),
DEADTRANS( Multi_key , 0x004C , 0x004C , 0x0001),
DEADTRANS( Multi_key , 0x006C , 0x006C , 0x0001),
DEADTRANS( Multi_key , 0x0031 , 0x0031 , 0x0001),
DEADTRANS( Multi_key , 0x0021 , 0x0021 , 0x0001),
DEADTRANS( Multi_key , 0x0052 , 0x0052 , 0x0001),
DEADTRANS( Multi_key , 0x0072 , 0x0072 , 0x0001),
DEADTRANS( Multi_key , 0x003C , 0x003C , 0x0001),
DEADTRANS( Multi_key , 0x0033 , 0x0033 , 0x0001),
DEADTRANS( Multi_key , 0x0034 , 0x0034 , 0x0001),
DEADTRANS( Multi_key , 0x0035 , 0x0035 , 0x0001),
DEADTRANS( Multi_key , 0x0037 , 0x0037 , 0x0001),
DEADTRANS( Multi_key , 0x0045 , 0x0045 , 0x0001),
DEADTRANS( Multi_key , 0x002D , 0x002D , 0x0001),
DEADTRANS( Multi_key , 0x0049 , 0x0049 , 0x0001),
DEADTRANS( Multi_key , 0x004E , 0x004E , 0x0001),
DEADTRANS( Multi_key , 0x0044 , 0x0044 , 0x0001),
DEADTRANS( Multi_key , 0x005B , 0x005B , 0x0001),
DEADTRANS( Multi_key , 0x005F , 0x005F , 0x0001),
DEADTRANS( Multi_key , 0x0070 , 0x0070 , 0x0001),
DEADTRANS( Multi_key , 0x0066 , 0x0066 , 0x0001),
DEADTRANS( Multi_key , 0x007A , 0x007A , 0x0001),
DEADTRANS( Multi_key , 0x0069 , 0x0069 , 0x0001),
DEADTRANS( Multi_key , 0x0046 , 0x0046 , 0x0001),
DEADTRANS( Multi_key , 0x006E , 0x006E , 0x0001),
DEADTRANS( Multi_key , slong , slong , 0x0001),
DEADTRANS( Multi_key , 0x0064 , 0x0064 , 0x0001),
DEADTRANS( Multi_key , 0x2026 , 0x2026 , 0x0001),
DEADTRANS( Multi_key , nobreakspace , nobreakspace , 0x0001),
DEADTRANS( Multi_key , rightsinglequotemark , rightsinglequotemark , 0x0001),
DEADTRANS( Multi_key , dagger , dagger , 0x0001),
DEADTRANS( Multi_key , signifblank , signifblank , 0x0001),
DEADTRANS( Multi_key , heavycheckmark , heavycheckmark , 0x0001),
DEADTRANS( Multi_key , heavyballotx , heavyballotx , 0x0001),
DEADTRANS( Multi_key , femalesymbol , femalesymbol , 0x0001),
DEADTRANS( Multi_key , malesymbol , malesymbol , 0x0001),
DEADTRANS( Multi_key , 0x25A1 , 0x25A1 , 0x0001),
DEADTRANS( Multi_key , 0x0020 , 0x0020 , 0x0001),
DEADTRANS( Multi_key , quotedbl , quotedbl , 0x0001),
DEADTRANS( Multi_key , 0x0023 , 0x0023 , 0x0001),
DEADTRANS( Multi_key , percent , percent , 0x0001),
DEADTRANS( Multi_key , apostrophe , apostrophe , 0x0001),
DEADTRANS( Multi_key , 0x0028 , 0x0028 , 0x0001),
DEADTRANS( Multi_key , 0x0029 , 0x0029 , 0x0001),
DEADTRANS( Multi_key , 0x002B , 0x002B , 0x0001),
DEADTRANS( Multi_key , 0x002C , 0x002C , 0x0001),
DEADTRANS( Multi_key , 0x002E , 0x002E , 0x0001),
DEADTRANS( Multi_key , 0x002F , 0x002F , 0x0001),
DEADTRANS( Multi_key , 0x003B , 0x003B , 0x0001),
DEADTRANS( Multi_key , 0x003D , 0x003D , 0x0001),
DEADTRANS( Multi_key , 0x003E , 0x003E , 0x0001),
DEADTRANS( Multi_key , 0x0041 , 0x0041 , 0x0001),
DEADTRANS( Multi_key , 0x0043 , 0x0043 , 0x0001),
DEADTRANS( Multi_key , 0x004F , 0x004F , 0x0001),
DEADTRANS( Multi_key , 0x0050 , 0x0050 , 0x0001),
DEADTRANS( Multi_key , 0x0055 , 0x0055 , 0x0001),
DEADTRANS( Multi_key , 0x0056 , 0x0056 , 0x0001),
DEADTRANS( Multi_key , 0x0057 , 0x0057 , 0x0001),
DEADTRANS( Multi_key , 0x0059 , 0x0059 , 0x0001),
DEADTRANS( Multi_key , asciicircum , asciicircum , 0x0001),
DEADTRANS( Multi_key , grave , grave , 0x0001),
DEADTRANS( Multi_key , 0x0061 , 0x0061 , 0x0001),
DEADTRANS( Multi_key , 0x0062 , 0x0062 , 0x0001),
DEADTRANS( Multi_key , 0x0063 , 0x0063 , 0x0001),
DEADTRANS( Multi_key , 0x0065 , 0x0065 , 0x0001),
DEADTRANS( Multi_key , 0x006B , 0x006B , 0x0001),
DEADTRANS( Multi_key , 0x006D , 0x006D , 0x0001),
DEADTRANS( Multi_key , 0x006F , 0x006F , 0x0001),
DEADTRANS( Multi_key , 0x0076 , 0x0076 , 0x0001),
DEADTRANS( Multi_key , 0x0078 , 0x0078 , 0x0001),
DEADTRANS( Multi_key , 0x007C , 0x007C , 0x0001),
DEADTRANS( Multi_key , 0x007E , 0x007E , 0x0001),
DEADTRANS( Multi_key , diaeresis , diaeresis , 0x0001),
DEADTRANS( Multi_key , macron , macron , 0x0001),
DEADTRANS( Multi_key , acute , acute , 0x0001),
DEADTRANS( Multi_key , Greek_iota , Greek_iota , 0x0001),
DEADTRANS( Multi_key , 0x05B4 , 0x05B4 , 0x0001),
DEADTRANS( Multi_key , 0x05B7 , 0x05B7 , 0x0001),
DEADTRANS( Multi_key , 0x05B8 , 0x05B8 , 0x0001),
DEADTRANS( Multi_key , 0x05B9 , 0x05B9 , 0x0001),
DEADTRANS( Multi_key , 0x05BC , 0x05BC , 0x0001),
DEADTRANS( Multi_key , 0x05BF , 0x05BF , 0x0001),
DEADTRANS( Multi_key , 0x05C1 , 0x05C1 , 0x0001),
DEADTRANS( Multi_key , 0x05C2 , 0x05C2 , 0x0001),
DEADTRANS( Multi_key , 0x0653 , 0x0653 , 0x0001),
DEADTRANS( Multi_key , 0x0654 , 0x0654 , 0x0001),
DEADTRANS( Multi_key , 0x0655 , 0x0655 , 0x0001),
DEADTRANS( Multi_key , 0x093C , 0x093C , 0x0001),
DEADTRANS( Multi_key , 0x09BC , 0x09BC , 0x0001),
DEADTRANS( Multi_key , 0x09C7 , 0x09C7 , 0x0001),
DEADTRANS( Multi_key , 0x0A3C , 0x0A3C , 0x0001),
DEADTRANS( Multi_key , 0x0B3C , 0x0B3C , 0x0001),
DEADTRANS( Multi_key , 0x0B47 , 0x0B47 , 0x0001),
DEADTRANS( Multi_key , 0x0BC6 , 0x0BC6 , 0x0001),
DEADTRANS( Multi_key , 0x0BC7 , 0x0BC7 , 0x0001),
DEADTRANS( Multi_key , 0x0BD7 , 0x0BD7 , 0x0001),
DEADTRANS( Multi_key , 0x0C46 , 0x0C46 , 0x0001),
DEADTRANS( Multi_key , 0x0CBF , 0x0CBF , 0x0001),
DEADTRANS( Multi_key , 0x0CC6 , 0x0CC6 , 0x0001),
DEADTRANS( Multi_key , 0x0CCA , 0x0CCA , 0x0001),
DEADTRANS( Multi_key , 0x0D46 , 0x0D46 , 0x0001),
DEADTRANS( Multi_key , 0x0D47 , 0x0D47 , 0x0001),
DEADTRANS( Multi_key , 0x0DD9 , 0x0DD9 , 0x0001),
DEADTRANS( Multi_key , 0x0DDC , 0x0DDC , 0x0001),
DEADTRANS( Multi_key , 0x0F71 , 0x0F71 , 0x0001),
DEADTRANS( Multi_key , 0x0F90 , 0x0F90 , 0x0001),
DEADTRANS( Multi_key , 0x0F92 , 0x0F92 , 0x0001),
DEADTRANS( Multi_key , 0x0F9C , 0x0F9C , 0x0001),
DEADTRANS( Multi_key , 0x0FA1 , 0x0FA1 , 0x0001),
DEADTRANS( Multi_key , 0x0FA6 , 0x0FA6 , 0x0001),
DEADTRANS( Multi_key , 0x0FAB , 0x0FAB , 0x0001),
DEADTRANS( Multi_key , 0x0FB2 , 0x0FB2 , 0x0001),
DEADTRANS( Multi_key , 0x0FB3 , 0x0FB3 , 0x0001),
DEADTRANS( Multi_key , 0x0FB5 , 0x0FB5 , 0x0001),
DEADTRANS( Multi_key , 0x0FB7 , 0x0FB7 , 0x0001),
DEADTRANS( Multi_key , 0x102E , 0x102E , 0x0001),
DEADTRANS( Multi_key , 0x1100 , 0x1100 , 0x0001),
DEADTRANS( Multi_key , 0x1102 , 0x1102 , 0x0001),
DEADTRANS( Multi_key , 0x1103 , 0x1103 , 0x0001),
DEADTRANS( Multi_key , 0x1105 , 0x1105 , 0x0001),
DEADTRANS( Multi_key , 0x1106 , 0x1106 , 0x0001),
DEADTRANS( Multi_key , 0x1107 , 0x1107 , 0x0001),
DEADTRANS( Multi_key , 0x1108 , 0x1108 , 0x0001),
DEADTRANS( Multi_key , 0x1109 , 0x1109 , 0x0001),
DEADTRANS( Multi_key , 0x110A , 0x110A , 0x0001),
DEADTRANS( Multi_key , 0x110B , 0x110B , 0x0001),
DEADTRANS( Multi_key , 0x110C , 0x110C , 0x0001),
DEADTRANS( Multi_key , 0x110E , 0x110E , 0x0001),
DEADTRANS( Multi_key , 0x1111 , 0x1111 , 0x0001),
DEADTRANS( Multi_key , 0x1112 , 0x1112 , 0x0001),
DEADTRANS( Multi_key , 0x1121 , 0x1121 , 0x0001),
DEADTRANS( Multi_key , 0x1132 , 0x1132 , 0x0001),
DEADTRANS( Multi_key , 0x113C , 0x113C , 0x0001),
DEADTRANS( Multi_key , 0x113E , 0x113E , 0x0001),
DEADTRANS( Multi_key , 0x114E , 0x114E , 0x0001),
DEADTRANS( Multi_key , 0x1150 , 0x1150 , 0x0001),
DEADTRANS( Multi_key , 0x1161 , 0x1161 , 0x0001),
DEADTRANS( Multi_key , 0x1163 , 0x1163 , 0x0001),
DEADTRANS( Multi_key , 0x1165 , 0x1165 , 0x0001),
DEADTRANS( Multi_key , 0x1167 , 0x1167 , 0x0001),
DEADTRANS( Multi_key , 0x1169 , 0x1169 , 0x0001),
DEADTRANS( Multi_key , 0x116A , 0x116A , 0x0001),
DEADTRANS( Multi_key , 0x116D , 0x116D , 0x0001),
DEADTRANS( Multi_key , 0x116E , 0x116E , 0x0001),
DEADTRANS( Multi_key , 0x116F , 0x116F , 0x0001),
DEADTRANS( Multi_key , 0x1172 , 0x1172 , 0x0001),
DEADTRANS( Multi_key , 0x1173 , 0x1173 , 0x0001),
DEADTRANS( Multi_key , 0x1174 , 0x1174 , 0x0001),
DEADTRANS( Multi_key , 0x1175 , 0x1175 , 0x0001),
DEADTRANS( Multi_key , 0x119E , 0x119E , 0x0001),
DEADTRANS( Multi_key , 0x11A8 , 0x11A8 , 0x0001),
DEADTRANS( Multi_key , 0x11AA , 0x11AA , 0x0001),
DEADTRANS( Multi_key , 0x11AB , 0x11AB , 0x0001),
DEADTRANS( Multi_key , 0x11AE , 0x11AE , 0x0001),
DEADTRANS( Multi_key , 0x11AF , 0x11AF , 0x0001),
DEADTRANS( Multi_key , 0x11B0 , 0x11B0 , 0x0001),
DEADTRANS( Multi_key , 0x11B1 , 0x11B1 , 0x0001),
DEADTRANS( Multi_key , 0x11B2 , 0x11B2 , 0x0001),
DEADTRANS( Multi_key , 0x11B3 , 0x11B3 , 0x0001),
DEADTRANS( Multi_key , 0x11B7 , 0x11B7 , 0x0001),
DEADTRANS( Multi_key , 0x11B8 , 0x11B8 , 0x0001),
DEADTRANS( Multi_key , 0x11BA , 0x11BA , 0x0001),
DEADTRANS( Multi_key , 0x11BC , 0x11BC , 0x0001),
DEADTRANS( Multi_key , 0x11C1 , 0x11C1 , 0x0001),
DEADTRANS( Multi_key , 0x11C2 , 0x11C2 , 0x0001),
DEADTRANS( Multi_key , 0x11CE , 0x11CE , 0x0001),
DEADTRANS( Multi_key , 0x11DD , 0x11DD , 0x0001),
DEADTRANS( Multi_key , 0x11EC , 0x11EC , 0x0001),
DEADTRANS( Multi_key , 0x11F0 , 0x11F0 , 0x0001),
DEADTRANS( Multi_key , greek_psili , greek_psili , 0x0001),
DEADTRANS( Multi_key , greek_dasia , greek_dasia , 0x0001),
DEADTRANS( Multi_key , thereexists , thereexists , 0x0001),
DEADTRANS( Multi_key , elementof , elementof , 0x0001),
DEADTRANS( Multi_key , 0x220B , 0x220B , 0x0001),
DEADTRANS( Multi_key , 0x2223 , 0x2223 , 0x0001),
DEADTRANS( Multi_key , parallelto , parallelto , 0x0001),
DEADTRANS( Multi_key , 0x223C , 0x223C , 0x0001),
DEADTRANS( Multi_key , 0x2243 , 0x2243 , 0x0001),
DEADTRANS( Multi_key , 0x2248 , 0x2248 , 0x0001),
DEADTRANS( Multi_key , 0x224D , 0x224D , 0x0001),
DEADTRANS( Multi_key , 0x2261 , 0x2261 , 0x0001),
DEADTRANS( Multi_key , 0x2264 , 0x2264 , 0x0001),
DEADTRANS( Multi_key , 0x2265 , 0x2265 , 0x0001),
DEADTRANS( Multi_key , 0x2272 , 0x2272 , 0x0001),
DEADTRANS( Multi_key , 0x2273 , 0x2273 , 0x0001),
DEADTRANS( Multi_key , 0x2276 , 0x2276 , 0x0001),
DEADTRANS( Multi_key , 0x2277 , 0x2277 , 0x0001),
DEADTRANS( Multi_key , 0x227A , 0x227A , 0x0001),
DEADTRANS( Multi_key , 0x227B , 0x227B , 0x0001),
DEADTRANS( Multi_key , 0x227C , 0x227C , 0x0001),
DEADTRANS( Multi_key , 0x227D , 0x227D , 0x0001),
DEADTRANS( Multi_key , includedin , includedin , 0x0001),
DEADTRANS( Multi_key , 0x2283 , 0x2283 , 0x0001),
DEADTRANS( Multi_key , 0x2286 , 0x2286 , 0x0001),
DEADTRANS( Multi_key , 0x2287 , 0x2287 , 0x0001),
DEADTRANS( Multi_key , 0x2291 , 0x2291 , 0x0001),
DEADTRANS( Multi_key , 0x2292 , 0x2292 , 0x0001),
DEADTRANS( Multi_key , 0x22A3 , 0x22A3 , 0x0001),
DEADTRANS( Multi_key , 0x22A8 , 0x22A8 , 0x0001),
DEADTRANS( Multi_key , 0x22A9 , 0x22A9 , 0x0001),
DEADTRANS( Multi_key , 0x22AB , 0x22AB , 0x0001),
DEADTRANS( Multi_key , 0x22B2 , 0x22B2 , 0x0001),
DEADTRANS( Multi_key , 0x22B3 , 0x22B3 , 0x0001),
DEADTRANS( Multi_key , 0x22B4 , 0x22B4 , 0x0001),
DEADTRANS( Multi_key , 0x22B5 , 0x22B5 , 0x0001),
DEADTRANS( Multi_key , 0x2ADD , 0x2ADD , 0x0001),
DEADTRANS( Multi_key , 0x007C , 0x007C , 0x0001),
DEADTRANS( Multi_key , 0x0069 , 0x0069 , 0x0001),
DEADTRANS( Multi_key , 0x0077 , 0x0077 , 0x0001),
DEADTRANS( Multi_key , apostrophe , apostrophe , 0x0001),
DEADTRANS( Multi_key , 0x005F , 0x005F , 0x0001),
DEADTRANS( Multi_key , 0x0028 , 0x0028 , 0x0001),
DEADTRANS( Multi_key , 0x0029 , 0x0029 , 0x0001),
DEADTRANS( Multi_key , 0x0056 , 0x0056 , 0x0001),
DEADTRANS( Multi_key , 0x0076 , 0x0076 , 0x0001),
DEADTRANS( Multi_key , 0x002A , 0x002A , 0x0001),
DEADTRANS( Multi_key , 0x006F , 0x006F , 0x0001),
DEADTRANS( Multi_key , 0x002D , 0x002D , 0x0001),
DEADTRANS( Multi_key , 0x003C , 0x003C , 0x0001),
DEADTRANS( Multi_key , 0x003E , 0x003E , 0x0001),
DEADTRANS( Multi_key , asciicircum , asciicircum , 0x0001),
DEADTRANS( Multi_key , guillemotleft , guillemotleft , 0x0001),
DEADTRANS( Multi_key , guillemotright , guillemotright , 0x0001),
DEADTRANS( Multi_key , leftarrow , leftarrow , 0x0001),
DEADTRANS( Multi_key , 0x0030 , 0x0030 , 0x0001),
DEADTRANS( Multi_key , 0x2026 , 0x2026 , 0x0001),
DEADTRANS( Multi_key , 0x002E , 0x002E , 0x0001),
DEADTRANS( Multi_key , 0x002F , 0x002F , 0x0001),
DEADTRANS( Multi_key , 0x0061 , 0x0061 , 0x0001),
DEADTRANS( Multi_key , 0x006D , 0x006D , 0x0001),
DEADTRANS( Multi_key , 0x0074 , 0x0074 , 0x0001),
DEADTRANS( Multi_key , integral , integral , 0x0001),
DEADTRANS( Multi_key , 0x0033 , 0x0033 , 0x0001),
DEADTRANS( Multi_key , radical , radical , 0x0001),
DEADTRANS( Multi_key , 0x003A , 0x003A , 0x0001),
DEADTRANS( Multi_key , 0x003D , 0x003D , 0x0001),
DEADTRANS( Multi_key , 0x007E , 0x007E , 0x0001),
DEADTRANS( Multi_key , degree , degree , 0x0001),
DEADTRANS( Multi_key , doublearrowleft , doublearrowleft , 0x0001),
DEADTRANS( Multi_key , 0x0042 , 0x0042 , 0x0001),
DEADTRANS( Multi_key , 0x0047 , 0x0047 , 0x0001),
DEADTRANS( Multi_key , 0x0059 , 0x0059 , 0x0001),
DEADTRANS( Multi_key , 0x0048 , 0x0048 , 0x0001),
DEADTRANS( Multi_key , 0x0053 , 0x0053 , 0x0001),
DEADTRANS( Multi_key , 0x005A , 0x005A , 0x0001),
DEADTRANS( Multi_key , 0x0049 , 0x0049 , 0x0001),
DEADTRANS( Multi_key , 0x004C , 0x004C , 0x0001),
DEADTRANS( Multi_key , 0x004E , 0x004E , 0x0001),
DEADTRANS( Multi_key , 0x006A , 0x006A , 0x0001),
DEADTRANS( Multi_key , 0x0052 , 0x0052 , 0x0001),
DEADTRANS( Multi_key , 0x004F , 0x004F , 0x0001),
DEADTRANS( Multi_key , 0x0067 , 0x0067 , 0x0001),
DEADTRANS( Multi_key , 0x005B , 0x005B , 0x0001),
DEADTRANS( Multi_key , backslash , backslash , 0x0001),
DEADTRANS( Multi_key , 0x005D , 0x005D , 0x0001),
DEADTRANS( Multi_key , 0x0072 , 0x0072 , 0x0001),
DEADTRANS( Multi_key , 0x0078 , 0x0078 , 0x0001),
DEADTRANS( Multi_key , macron , macron , 0x0001),
DEADTRANS( Multi_key , 0x0068 , 0x0068 , 0x0001),
DEADTRANS( Multi_key , 0x0079 , 0x0079 , 0x0001),
DEADTRANS( Multi_key , 0x0073 , 0x0073 , 0x0001),
DEADTRANS( Multi_key , 0x0044 , 0x0044 , 0x0001),
DEADTRANS( Multi_key , 0x0054 , 0x0054 , 0x0001),
DEADTRANS( Multi_key , 0x0064 , 0x0064 , 0x0001),
DEADTRANS( Multi_key , 0x006C , 0x006C , 0x0001),
DEADTRANS( Multi_key , 0x006E , 0x006E , 0x0001),
DEADTRANS( Multi_key , 0x0057 , 0x0057 , 0x0001),
DEADTRANS( Multi_key , 0x007B , 0x007B , 0x0001),
DEADTRANS( Multi_key , 0x0043 , 0x0043 , 0x0001),
DEADTRANS( Multi_key , multiply , multiply , 0x0001),
DEADTRANS( Multi_key , uparrow , uparrow , 0x0001),
DEADTRANS( Multi_key , rightarrow , rightarrow , 0x0001),
DEADTRANS( Multi_key , downarrow , downarrow , 0x0001),
DEADTRANS( Multi_key , updownarrow , updownarrow , 0x0001),
DEADTRANS( Multi_key , 0x007D , 0x007D , 0x0001),
DEADTRANS( Multi_key , grave , grave , 0x0001),
DEADTRANS( Multi_key , acute , acute , 0x0001),
DEADTRANS( Multi_key , periodcentered , periodcentered , 0x0001),
DEADTRANS( Multi_key , Greek_PI , Greek_PI , 0x0001),
DEADTRANS( Multi_key , Greek_SIGMA , Greek_SIGMA , 0x0001),
DEADTRANS( Multi_key , Greek_PHI , Greek_PHI , 0x0001),
DEADTRANS( Multi_key , Greek_alpha , Greek_alpha , 0x0001),
DEADTRANS( Multi_key , Greek_gamma , Greek_gamma , 0x0001),
DEADTRANS( Multi_key , Greek_epsilon , Greek_epsilon , 0x0001),
DEADTRANS( Multi_key , 0x03BC , 0x03BC , 0x0001),
DEADTRANS( Multi_key , Greek_omicron , Greek_omicron , 0x0001),
DEADTRANS( Multi_key , Greek_upsilon , Greek_upsilon , 0x0001),
DEADTRANS( Multi_key , Greek_phi , Greek_phi , 0x0001),
DEADTRANS( Multi_key , scriptphi , scriptphi , 0x0001),
DEADTRANS( Multi_key , 0x007A , 0x007A , 0x0001),
DEADTRANS( Multi_key , elementof , elementof , 0x0001),
DEADTRANS( Multi_key , 0x0034 , 0x0034 , 0x0001),
DEADTRANS( Multi_key , logicaland , logicaland , 0x0001),
DEADTRANS( Multi_key , logicalor , logicalor , 0x0001),
DEADTRANS( Multi_key , intersection , intersection , 0x0001),
DEADTRANS( Multi_key , union , union , 0x0001),
DEADTRANS( Multi_key , 0x0032 , 0x0032 , 0x0001),
DEADTRANS( Multi_key , jot , jot , 0x0001),
DEADTRANS( Multi_key , 0x2295 , 0x2295 , 0x0001),
DEADTRANS( Multi_key , circledtimes , circledtimes , 0x0001),
DEADTRANS( Multi_key , 0x2299 , 0x2299 , 0x0001),
DEADTRANS( Multi_key , uptack , uptack , 0x0001),
//base.module
DEADTRANS( 0x006F , 0x0020 , 0x25CC , 0x0000),
DEADTRANS( 0x0032 , 0x0021 , 0x203C , 0x0000),
DEADTRANS( 0x003F , 0x0021 , 0x2048 , 0x0000),
DEADTRANS( 0x003A , 0x0028 , 0x2639 , 0x0000),
DEADTRANS( 0x003A , 0x0029 , 0x263A , 0x0000),
DEADTRANS( 0x0053 , 0x002C , 0x0218 , 0x0000),
DEADTRANS( 0x0073 , 0x002C , 0x0219 , 0x0000),
DEADTRANS( 0x0054 , 0x002C , 0x021A , 0x0000),
DEADTRANS( 0x0074 , 0x002C , 0x021B , 0x0000),
DEADTRANS( 0x004C , 0x002E , 0x013F , 0x0000),
DEADTRANS( 0x006C , 0x002E , 0x0140 , 0x0000),
DEADTRANS( 0x0031 , 0x002F , 0x215F , 0x0000),
DEADTRANS( 0x0021 , 0x0032 , 0x203C , 0x0000),
DEADTRANS( 0x003F , 0x0032 , 0x2047 , 0x0000),
DEADTRANS( 0x0052 , 0x0032 , 0x2161 , 0x0000),
DEADTRANS( 0x0072 , 0x0032 , 0x2171 , 0x0000),
DEADTRANS( 0x0031 , 0x0033 , 0x2153 , 0x0000),
DEADTRANS( 0x0032 , 0x0033 , 0x2154 , 0x0000),
DEADTRANS( 0x0052 , 0x0033 , 0x2162 , 0x0000),
DEADTRANS( 0x0072 , 0x0033 , 0x2172 , 0x0000),
DEADTRANS( 0x003C , 0x0033 , heart , 0x0000),
DEADTRANS( 0x0052 , 0x0034 , 0x2163 , 0x0000),
DEADTRANS( 0x0072 , 0x0034 , 0x2173 , 0x0000),
DEADTRANS( 0x0031 , 0x0035 , 0x2155 , 0x0000),
DEADTRANS( 0x0032 , 0x0035 , 0x2156 , 0x0000),
DEADTRANS( 0x0033 , 0x0035 , 0x2157 , 0x0000),
DEADTRANS( 0x0034 , 0x0035 , 0x2158 , 0x0000),
DEADTRANS( 0x0052 , 0x0035 , 0x2164 , 0x0000),
DEADTRANS( 0x0072 , 0x0035 , 0x2174 , 0x0000),
DEADTRANS( 0x0031 , 0x0036 , 0x2159 , 0x0000),
DEADTRANS( 0x0035 , 0x0036 , 0x215A , 0x0000),
DEADTRANS( 0x0052 , 0x0036 , 0x2165 , 0x0000),
DEADTRANS( 0x0072 , 0x0036 , 0x2175 , 0x0000),
DEADTRANS( 0x0037 , 0x0037 , 0x204A , 0x0000),
DEADTRANS( 0x0052 , 0x0037 , 0x2166 , 0x0000),
DEADTRANS( 0x0072 , 0x0037 , 0x2176 , 0x0000),
DEADTRANS( 0x0031 , 0x0038 , 0x215B , 0x0000),
DEADTRANS( 0x0033 , 0x0038 , 0x215C , 0x0000),
DEADTRANS( 0x0035 , 0x0038 , 0x215D , 0x0000),
DEADTRANS( 0x0037 , 0x0038 , 0x215E , 0x0000),
DEADTRANS( 0x0052 , 0x0038 , 0x2167 , 0x0000),
DEADTRANS( 0x0072 , 0x0038 , 0x2177 , 0x0000),
DEADTRANS( 0x0052 , 0x0039 , 0x2168 , 0x0000),
DEADTRANS( 0x0072 , 0x0039 , 0x2178 , 0x0000),
DEADTRANS( 0x0032 , 0x003F , 0x2047 , 0x0000),
DEADTRANS( 0x0021 , 0x003F , 0x2049 , 0x0000),
DEADTRANS( 0x0045 , 0x0045 , 0x018F , 0x0000),
DEADTRANS( 0x002D , 0x0048 , 0x0126 , 0x0000),
DEADTRANS( 0x0049 , 0x0049 , 0x0130 , 0x0000),
DEADTRANS( 0x0049 , 0x004A , 0x0132 , 0x0000),
DEADTRANS( 0x004C , 0x004A , 0x01C7 , 0x0000),
DEADTRANS( 0x004E , 0x004A , 0x01CA , 0x0000),
DEADTRANS( 0x0044 , 0x005A , 0x01F1 , 0x0000),
DEADTRANS( 0x005B , 0x005D , 0x25A1 , 0x0000),
DEADTRANS( 0x005F , 0x005F , 0x0332 , 0x0000),
DEADTRANS( 0x0070 , 0x0066 , 0x20B0 , 0x0000),
DEADTRANS( 0x0066 , 0x0066 , 0xFB00 , 0x0000),
DEADTRANS( 0x002D , 0x0068 , 0x0127 , 0x0000),
DEADTRANS( 0x007A , 0x0068 , 0x0292 , 0x0000),
DEADTRANS( 0x0069 , 0x0069 , 0x0131 , 0x0000),
DEADTRANS( 0x0066 , 0x0069 , 0xFB01 , 0x0000),
DEADTRANS( 0x0046 , 0x0069 , 0xFB03 , 0x0000),
DEADTRANS( 0x0069 , 0x006A , 0x0133 , 0x0000),
DEADTRANS( 0x004C , 0x006A , 0x01C8 , 0x0000),
DEADTRANS( 0x006C , 0x006A , 0x01C9 , 0x0000),
DEADTRANS( 0x004E , 0x006A , 0x01CB , 0x0000),
DEADTRANS( 0x006E , 0x006A , 0x01CC , 0x0000),
DEADTRANS( 0x0066 , 0x006C , 0xFB02 , 0x0000),
DEADTRANS( 0x0046 , 0x006C , 0xFB04 , 0x0000),
DEADTRANS( 0x0074 , 0x006D , 0x2122 , 0x0000),
DEADTRANS( slong , 0x0074 , 0xFB05 , 0x0000),
DEADTRANS( 0x0073 , 0x0074 , 0xFB06 , 0x0000),
DEADTRANS( 0x0044 , 0x007A , 0x01F2 , 0x0000),
DEADTRANS( 0x0064 , 0x007A , 0x01F3 , 0x0000),
DEADTRANS( 0x007A , 0x007A , 0x0292 , 0x0000),
DEADTRANS( 0x2026 , 0x007C , 0x22EE , 0x0000),
DEADTRANS( nobreakspace , nobreakspace , 0x002D , 0x0000),
DEADTRANS( 0x002D , sterling , 0x20A4 , 0x0000),
DEADTRANS( rightsinglequotemark , rightsinglequotemark , 0x02BC , 0x0000),
DEADTRANS( dagger , dagger , 0x2021 , 0x0000),
DEADTRANS( signifblank , signifblank , 0x237D , 0x0000),
DEADTRANS( heavycheckmark , 0x25A1 , 0x2611 , 0x0000),
DEADTRANS( heavyballotx , 0x25A1 , 0x2612 , 0x0000),
DEADTRANS( femalesymbol , femalesymbol , 0x26A2 , 0x0000),
DEADTRANS( malesymbol , femalesymbol , 0x26A4 , 0x0000),
DEADTRANS( malesymbol , malesymbol , 0x26A3 , 0x0000),
DEADTRANS( femalesymbol , malesymbol , 0x26A4 , 0x0000),
DEADTRANS( 0x25A1 , heavycheckmark , 0x2611 , 0x0000),
DEADTRANS( 0x25A1 , heavyballotx , 0x2612 , 0x0000),
//math.base und lang.base
DEADTRANS( 0x007C , 0x0020 , 0x2223 , 0x0000),
DEADTRANS( 0x0069 , 0x0021 , 0x01C3 , 0x0000),
DEADTRANS( 0x0077 , quotedbl , 0x2033 , 0x0000),
DEADTRANS( apostrophe , apostrophe , 0x02C8 , 0x0000),
DEADTRANS( 0x005F , apostrophe , 0x02CC , 0x0000),
DEADTRANS( 0x0077 , apostrophe , 0x2032 , 0x0000),
DEADTRANS( 0x0028 , 0x0028 , 0x2985 , 0x0000),
DEADTRANS( 0x007C , 0x0028 , 0x2985 , 0x0000),
DEADTRANS( 0x0029 , 0x0029 , 0x2986 , 0x0000),
DEADTRANS( 0x0056 , 0x0029 , 0x01B2 , 0x0000),
DEADTRANS( 0x0076 , 0x0029 , 0x028B , 0x0000),
DEADTRANS( 0x007C , 0x0029 , 0x2986 , 0x0000),
DEADTRANS( 0x002A , 0x002A , 0x2217 , 0x0000),
DEADTRANS( 0x006F , 0x002A , 0x229B , 0x0000),
DEADTRANS( 0x002D , 0x002B , minusorplus , 0x0000),
DEADTRANS( 0x006F , 0x002B , 0x2295 , 0x0000),
DEADTRANS( 0x003C , 0x002D , leftarrow , 0x0000),
DEADTRANS( 0x003E , 0x002D , 0x291A , 0x0000),
DEADTRANS( asciicircum , 0x002D , 0x207B , 0x0000),
DEADTRANS( 0x005F , 0x002D , 0x208B , 0x0000),
DEADTRANS( 0x005F , 0x002D , 0x208B , 0x0000),
DEADTRANS( 0x006F , 0x002D , 0x2296 , 0x0000),
DEADTRANS( 0x007C , 0x002D , 0x22A2 , 0x0000),
DEADTRANS( guillemotleft , 0x002D , 0x219E , 0x0000),
DEADTRANS( guillemotright , 0x002D , 0x291C , 0x0000),
DEADTRANS( leftarrow , 0x002D , 0x27F5 , 0x0000),
DEADTRANS( 0x0030 , 0x002E , 0x0298 , 0x0000),
DEADTRANS( 0x003C , 0x002E , 0x2235 , 0x0000),
DEADTRANS( 0x003E , 0x002E , 0x2234 , 0x0000),
DEADTRANS( 0x006F , 0x002E , 0x2299 , 0x0000),
DEADTRANS( 0x006F , 0x002F , 0x2298 , 0x0000),
DEADTRANS( 0x2026 , 0x002F , 0x22F0 , 0x0000),
DEADTRANS( 0x002E , 0x0030 , 0x0298 , 0x0000),
DEADTRANS( 0x002F , 0x0030 , emptyset , 0x0000),
DEADTRANS( 0x0061 , 0x0030 , 0x0660 , 0x0000),
DEADTRANS( 0x0061 , 0x0031 , 0x0661 , 0x0000),
DEADTRANS( 0x006D , 0x0031 , 0x02E5 , 0x0000),
DEADTRANS( 0x0074 , 0x0031 , 0x02E9 , 0x0000),
DEADTRANS( 0x0061 , 0x0032 , 0x0662 , 0x0000),
DEADTRANS( 0x006D , 0x0032 , 0x02E7 , 0x0000),
DEADTRANS( 0x0074 , 0x0032 , 0x02E8 , 0x0000),
DEADTRANS( integral , 0x0032 , 0x222C , 0x0000),
DEADTRANS( 0x0033 , 0x0033 , 0x025C , 0x0000),
DEADTRANS( 0x0061 , 0x0033 , 0x0663 , 0x0000),
DEADTRANS( 0x006D , 0x0033 , 0x02E8 , 0x0000),
DEADTRANS( 0x0074 , 0x0033 , 0x02E7 , 0x0000),
DEADTRANS( 0x0077 , 0x0033 , 0x2034 , 0x0000),
DEADTRANS( radical , 0x0033 , 0x221B , 0x0000),
DEADTRANS( integral , 0x0033 , 0x222D , 0x0000),
DEADTRANS( 0x0061 , 0x0034 , 0x0664 , 0x0000),
DEADTRANS( 0x006D , 0x0034 , 0x02E5 , 0x0000),
DEADTRANS( 0x0074 , 0x0034 , 0x02E6 , 0x0000),
DEADTRANS( 0x0077 , 0x0034 , 0x2057 , 0x0000),
DEADTRANS( radical , 0x0034 , 0x221C , 0x0000),
DEADTRANS( integral , 0x0034 , 0x2A0C , 0x0000),
DEADTRANS( 0x0061 , 0x0035 , 0x0665 , 0x0000),
DEADTRANS( 0x0074 , 0x0035 , 0x02E5 , 0x0000),
DEADTRANS( 0x0061 , 0x0036 , 0x0666 , 0x0000),
DEADTRANS( 0x0061 , 0x0037 , 0x0667 , 0x0000),
DEADTRANS( 0x0061 , 0x0038 , 0x0668 , 0x0000),
DEADTRANS( 0x0061 , 0x0039 , 0x0669 , 0x0000),
DEADTRANS( 0x002D , 0x003A , 0x2239 , 0x0000),
DEADTRANS( 0x003A , 0x003A , 0x02D0 , 0x0000),
DEADTRANS( 0x003D , 0x003A , 0x2255 , 0x0000),
DEADTRANS( 0x002D , 0x003C , 0x2919 , 0x0000),
DEADTRANS( 0x002F , 0x003C , 0x226E , 0x0000),
DEADTRANS( 0x003C , 0x003C , 0x226A , 0x0000),
DEADTRANS( 0x003D , 0x003C , 0x2264 , 0x0000),
DEADTRANS( asciicircum , 0x003C , 0x20D6 , 0x0000),
DEADTRANS( 0x007C , 0x003C , 0x22B2 , 0x0000),
DEADTRANS( leftarrow , 0x003C , 0x21A2 , 0x0000),
DEADTRANS( 0x002F , 0x003D , 0x2260 , 0x0000),
DEADTRANS( 0x003A , 0x003D , 0x2254 , 0x0000),
DEADTRANS( 0x003C , 0x003D , 0x2264 , 0x0000),
DEADTRANS( 0x003D , 0x003D , 0x2261 , 0x0000),
DEADTRANS( 0x003E , 0x003D , 0x2265 , 0x0000),
DEADTRANS( asciicircum , 0x003D , 0x207C , 0x0000),
DEADTRANS( 0x006F , 0x003D , 0x229C , 0x0000),
DEADTRANS( 0x007C , 0x003D , 0x22A8 , 0x0000),
DEADTRANS( 0x007E , 0x003D , 0x2245 , 0x0000),
DEADTRANS( degree , 0x003D , 0x2257 , 0x0000),
DEADTRANS( doublearrowleft , 0x003D , 0x27F8 , 0x0000),
DEADTRANS( 0x002D , 0x003E , rightarrow , 0x0000),
DEADTRANS( 0x002F , 0x003E , 0x226F , 0x0000),
DEADTRANS( 0x003C , 0x003E , 0x2260 , 0x0000),
DEADTRANS( 0x003D , 0x003E , 0x2265 , 0x0000),
DEADTRANS( 0x003E , 0x003E , 0x226B , 0x0000),
DEADTRANS( asciicircum , 0x003E , 0x20D7 , 0x0000),
DEADTRANS( 0x007C , 0x003E , 0x22B3 , 0x0000),
DEADTRANS( leftarrow , 0x003E , leftrightarrow , 0x0000),
DEADTRANS( 0x0069 , 0x003F , 0x0294 , 0x0000),
DEADTRANS( 0x002F , 0x0041 , 0x023A , 0x0000),
DEADTRANS( asciicircum , 0x0041 , 0x1D2C , 0x0000),
DEADTRANS( 0x002D , 0x0042 , 0x0243 , 0x0000),
DEADTRANS( 0x0042 , 0x0042 , 0x0299 , 0x0000),
DEADTRANS( asciicircum , 0x0042 , 0x1D2E , 0x0000),
DEADTRANS( 0x002F , 0x0043 , 0x023B , 0x0000),
DEADTRANS( 0x007C , 0x0043 , doublestruck_c , 0x0000),
DEADTRANS( degree , 0x0043 , 0x2103 , 0x0000),
DEADTRANS( asciicircum , 0x0044 , 0x1D30 , 0x0000),
DEADTRANS( 0x002F , 0x0045 , 0x0246 , 0x0000),
DEADTRANS( asciicircum , 0x0045 , 0x1D31 , 0x0000),
DEADTRANS( degree , 0x0046 , 0x2109 , 0x0000),
DEADTRANS( 0x0047 , 0x0047 , 0x0262 , 0x0000),
DEADTRANS( 0x0059 , 0x0047 , 0x021C , 0x0000),
DEADTRANS( asciicircum , 0x0047 , 0x1D33 , 0x0000),
DEADTRANS( 0x0048 , 0x0048 , 0x029C , 0x0000),
DEADTRANS( 0x0053 , 0x0048 , 0x01A9 , 0x0000),
DEADTRANS( 0x005A , 0x0048 , 0x01B7 , 0x0000),
DEADTRANS( asciicircum , 0x0048 , 0x1D34 , 0x0000),
DEADTRANS( 0x007C , 0x0048 , 0x210D , 0x0000),
DEADTRANS( 0x002D , 0x0049 , 0x0197 , 0x0000),
DEADTRANS( 0x0049 , 0x0049 , 0x026A , 0x0000),
DEADTRANS( asciicircum , 0x0049 , 0x1D35 , 0x0000),
DEADTRANS( 0x002D , 0x004A , 0x0248 , 0x0000),
DEADTRANS( asciicircum , 0x004A , 0x1D36 , 0x0000),
DEADTRANS( asciicircum , 0x004B , 0x1D37 , 0x0000),
DEADTRANS( 0x002D , 0x004C , 0x023D , 0x0000),
DEADTRANS( 0x004C , 0x004C , 0x029F , 0x0000),
DEADTRANS( asciicircum , 0x004C , 0x1D38 , 0x0000),
DEADTRANS( asciicircum , 0x004D , 0x1D39 , 0x0000),
DEADTRANS( 0x004E , 0x004E , 0x0274 , 0x0000),
DEADTRANS( asciicircum , 0x004E , 0x1D3A , 0x0000),
DEADTRANS( 0x006A , 0x004E , 0x019D , 0x0000),
DEADTRANS( 0x007C , 0x004E , doublestruck_n , 0x0000),
DEADTRANS( 0x002D , 0x004F , 0x019F , 0x0000),
DEADTRANS( asciicircum , 0x004F , 0x1D3C , 0x0000),
DEADTRANS( 0x002D , 0x0050 , 0x2C63 , 0x0000),
DEADTRANS( asciicircum , 0x0050 , 0x1D3E , 0x0000),
DEADTRANS( 0x007C , 0x0050 , 0x2119 , 0x0000),
DEADTRANS( 0x007C , 0x0051 , doublestruck_q , 0x0000),
DEADTRANS( 0x002D , 0x0052 , 0x024C , 0x0000),
DEADTRANS( 0x0052 , 0x0052 , 0x0280 , 0x0000),
DEADTRANS( asciicircum , 0x0052 , 0x1D3F , 0x0000),
DEADTRANS( 0x007C , 0x0052 , doublestruck_r , 0x0000),
DEADTRANS( 0x002F , 0x0054 , 0x023E , 0x0000),
DEADTRANS( asciicircum , 0x0054 , 0x1D40 , 0x0000),
DEADTRANS( 0x002D , 0x0055 , 0x0244 , 0x0000),
DEADTRANS( 0x004F , 0x0055 , 0x0222 , 0x0000),
DEADTRANS( asciicircum , 0x0055 , 0x1D41 , 0x0000),
DEADTRANS( 0x0067 , 0x0055 , 0x0222 , 0x0000),
DEADTRANS( asciicircum , 0x0056 , 0x2C7D , 0x0000),
DEADTRANS( asciicircum , 0x0057 , 0x1D42 , 0x0000),
DEADTRANS( 0x002D , 0x0059 , 0x024E , 0x0000),
DEADTRANS( 0x0059 , 0x0059 , 0x028F , 0x0000),
DEADTRANS( 0x005A , 0x005A , 0x01B7 , 0x0000),
DEADTRANS( 0x007C , 0x005A , doublestruck_z , 0x0000),
DEADTRANS( 0x005B , 0x005B , 0x27E6 , 0x0000),
DEADTRANS( asciicircum , 0x005B , 0x2308 , 0x0000),
DEADTRANS( 0x005F , 0x005B , 0x230A , 0x0000),
DEADTRANS( 0x007C , 0x005B , 0x27E6 , 0x0000),
DEADTRANS( backslash , backslash , setminus , 0x0000),
DEADTRANS( 0x2026 , backslash , 0x22F1 , 0x0000),
DEADTRANS( 0x005D , 0x005D , 0x27E7 , 0x0000),
DEADTRANS( asciicircum , 0x005D , 0x2309 , 0x0000),
DEADTRANS( 0x005F , 0x005D , 0x230B , 0x0000),
DEADTRANS( 0x007C , 0x005D , 0x27E7 , 0x0000),
DEADTRANS( 0x002F , asciicircum , 0x2197 , 0x0000),
DEADTRANS( 0x003D , asciicircum , 0x2259 , 0x0000),
DEADTRANS( backslash , asciicircum , 0x2196 , 0x0000),
DEADTRANS( 0x007C , asciicircum , uparrow , 0x0000),
DEADTRANS( 0x0072 , 0x005F , 0x027E , 0x0000),
DEADTRANS( 0x0078 , 0x005F , 0x0264 , 0x0000),
DEADTRANS( macron , grave , 0x1DC6 , 0x0000),
DEADTRANS( 0x002F , 0x0061 , 0x2C65 , 0x0000),
DEADTRANS( asciicircum , 0x0061 , 0x1D43 , 0x0000),
DEADTRANS( 0x005F , 0x0061 , 0x2090 , 0x0000),
DEADTRANS( 0x005F , 0x0061 , 0x2090 , 0x0000),
DEADTRANS( 0x0061 , 0x0061 , 0x0251 , 0x0000),
DEADTRANS( 0x0068 , 0x0061 , alefsymbol , 0x0000),
DEADTRANS( asciicircum , 0x0062 , 0x1D47 , 0x0000),
DEADTRANS( 0x0068 , 0x0062 , 0x2136 , 0x0000),
DEADTRANS( 0x002F , 0x0063 , 0x023C , 0x0000),
DEADTRANS( asciicircum , 0x0063 , 0x1D9C , 0x0000),
DEADTRANS( asciicircum , 0x0064 , 0x1D48 , 0x0000),
DEADTRANS( 0x0068 , 0x0064 , 0x2138 , 0x0000),
DEADTRANS( 0x002F , 0x0065 , 0x0247 , 0x0000),
DEADTRANS( 0x0052 , 0x0065 , 0x211C , 0x0000),
DEADTRANS( asciicircum , 0x0065 , 0x1D49 , 0x0000),
DEADTRANS( 0x005F , 0x0065 , 0x2091 , 0x0000),
DEADTRANS( 0x005F , 0x0065 , 0x2091 , 0x0000),
DEADTRANS( 0x0072 , 0x0065 , 0x211C , 0x0000),
DEADTRANS( asciicircum , 0x0066 , 0x1DA0 , 0x0000),
DEADTRANS( 0x006A , 0x0066 , 0x0284 , 0x0000),
DEADTRANS( 0x0059 , 0x0067 , 0x021C , 0x0000),
DEADTRANS( asciicircum , 0x0067 , 0x1D4D , 0x0000),
DEADTRANS( 0x0067 , 0x0067 , 0x0261 , 0x0000),
DEADTRANS( 0x0068 , 0x0067 , 0x2137 , 0x0000),
DEADTRANS( 0x0079 , 0x0067 , 0x021D , 0x0000),
DEADTRANS( asciicircum , 0x0068 , 0x02B0 , 0x0000),
DEADTRANS( 0x0073 , 0x0068 , 0x0283 , 0x0000),
DEADTRANS( asciicircum , 0x0069 , 0x2071 , 0x0000),
DEADTRANS( 0x005F , 0x0069 , 0x1D62 , 0x0000),
DEADTRANS( 0x005F , 0x0069 , 0x1D62 , 0x0000),
DEADTRANS( 0x002D , 0x006A , 0x0249 , 0x0000),
DEADTRANS( asciicircum , 0x006A , 0x02B2 , 0x0000),
DEADTRANS( 0x005F , 0x006A , 0x2C7C , 0x0000),
DEADTRANS( 0x005F , 0x006A , 0x2C7C , 0x0000),
DEADTRANS( asciicircum , 0x006B , 0x1D4F , 0x0000),
DEADTRANS( 0x002D , 0x006C , 0x019A , 0x0000),
DEADTRANS( 0x0044 , 0x006C , 0x0189 , 0x0000),
DEADTRANS( 0x0054 , 0x006C , 0x01AE , 0x0000),
DEADTRANS( asciicircum , 0x006C , 0x02E1 , 0x0000),
DEADTRANS( 0x0064 , 0x006C , 0x0256 , 0x0000),
DEADTRANS( 0x006C , 0x006C , 0x026D , 0x0000),
DEADTRANS( 0x006E , 0x006C , 0x0273 , 0x0000),
DEADTRANS( 0x0074 , 0x006C , 0x0288 , 0x0000),
DEADTRANS( 0x0049 , 0x006D , 0x2111 , 0x0000),
DEADTRANS( asciicircum , 0x006D , 0x1D50 , 0x0000),
DEADTRANS( 0x0069 , 0x006D , 0x2111 , 0x0000),
DEADTRANS( asciicircum , 0x006E , 0x207F , 0x0000),
DEADTRANS( 0x006A , 0x006E , 0x0272 , 0x0000),
DEADTRANS( 0x002D , 0x006F , 0x0275 , 0x0000),
DEADTRANS( asciicircum , 0x006F , 0x1D52 , 0x0000),
DEADTRANS( 0x005F , 0x006F , 0x2092 , 0x0000),
DEADTRANS( 0x005F , 0x006F , 0x2092 , 0x0000),
DEADTRANS( 0x002D , 0x0070 , 0x1D7D , 0x0000),
DEADTRANS( asciicircum , 0x0070 , 0x1D56 , 0x0000),
DEADTRANS( 0x002D , 0x0072 , 0x024D , 0x0000),
DEADTRANS( asciicircum , 0x0072 , 0x02B3 , 0x0000),
DEADTRANS( 0x005F , 0x0072 , 0x1D63 , 0x0000),
DEADTRANS( 0x005F , 0x0072 , 0x1D63 , 0x0000),
DEADTRANS( 0x0072 , 0x0072 , 0x027C , 0x0000),
DEADTRANS( asciicircum , 0x0073 , 0x02E2 , 0x0000),
DEADTRANS( 0x002F , 0x0074 , 0x2C66 , 0x0000),
DEADTRANS( asciicircum , 0x0074 , 0x1D57 , 0x0000),
DEADTRANS( 0x002D , 0x0075 , 0x0289 , 0x0000),
DEADTRANS( asciicircum , 0x0075 , 0x1D58 , 0x0000),
DEADTRANS( 0x005F , 0x0075 , 0x1D64 , 0x0000),
DEADTRANS( 0x005F , 0x0075 , 0x1D64 , 0x0000),
DEADTRANS( 0x002F , 0x0076 , 0x2199 , 0x0000),
DEADTRANS( 0x0048 , 0x0076 , 0x01F6 , 0x0000),
DEADTRANS( backslash , 0x0076 , 0x2198 , 0x0000),
DEADTRANS( asciicircum , 0x0076 , 0x1D5B , 0x0000),
DEADTRANS( 0x005F , 0x0076 , 0x1D65 , 0x0000),
DEADTRANS( 0x005F , 0x0076 , 0x1D65 , 0x0000),
DEADTRANS( 0x0068 , 0x0076 , 0x0195 , 0x0000),
DEADTRANS( asciicircum , 0x0077 , 0x02B7 , 0x0000),
DEADTRANS( asciicircum , 0x0078 , 0x02E3 , 0x0000),
DEADTRANS( 0x005F , 0x0078 , 0x2093 , 0x0000),
DEADTRANS( 0x005F , 0x0078 , 0x2093 , 0x0000),
DEADTRANS( 0x0061 , 0x0078 , variation , 0x0000),
DEADTRANS( 0x002D , 0x0079 , 0x024F , 0x0000),
DEADTRANS( 0x0057 , 0x0079 , 0x01F7 , 0x0000),
DEADTRANS( asciicircum , 0x0079 , 0x02B8 , 0x0000),
DEADTRANS( 0x0077 , 0x0079 , 0x01BF , 0x0000),
DEADTRANS( asciicircum , 0x007A , 0x1DBB , 0x0000),
DEADTRANS( 0x006C , 0x007A , 0x026E , 0x0000),
DEADTRANS( 0x007B , 0x007B , 0x2983 , 0x0000),
DEADTRANS( 0x007C , 0x007B , 0x2983 , 0x0000),
DEADTRANS( 0x002D , 0x007C , 0x22A3 , 0x0000),
DEADTRANS( 0x002F , 0x007C , 0x2224 , 0x0000),
DEADTRANS( 0x003C , 0x007C , 0x22B2 , 0x0000),
DEADTRANS( 0x0043 , 0x007C , 0x2C6D , 0x0000),
DEADTRANS( 0x004E , 0x007C , 0x0220 , 0x0000),
DEADTRANS( 0x006E , 0x007C , 0x019E , 0x0000),
DEADTRANS( 0x0076 , 0x007C , downarrow , 0x0000),
DEADTRANS( 0x007C , 0x007C , 0x2016 , 0x0000),
DEADTRANS( guillemotleft , 0x007C , 0x219F , 0x0000),
DEADTRANS( multiply , 0x007C , 0x22CA , 0x0000),
DEADTRANS( 0x2026 , 0x007C , 0x22EE , 0x0000),
DEADTRANS( leftarrow , 0x007C , 0x21A4 , 0x0000),
DEADTRANS( uparrow , 0x007C , 0x21A5 , 0x0000),
DEADTRANS( rightarrow , 0x007C , 0x21E5 , 0x0000),
DEADTRANS( downarrow , 0x007C , 0x21A7 , 0x0000),
DEADTRANS( updownarrow , 0x007C , 0x21A8 , 0x0000),
DEADTRANS( doublearrowleft , 0x007C , 0x2906 , 0x0000),
DEADTRANS( 0x007C , 0x007D , 0x2984 , 0x0000),
DEADTRANS( 0x007D , 0x007D , 0x2984 , 0x0000),
DEADTRANS( 0x002F , 0x007E , 0x2241 , 0x0000),
DEADTRANS( 0x003D , 0x007E , 0x2245 , 0x0000),
DEADTRANS( 0x005F , 0x007E , 0x0330 , 0x0000),
DEADTRANS( 0x007E , 0x007E , 0x2248 , 0x0000),
DEADTRANS( 0x002D , guillemotleft , 0x291B , 0x0000),
DEADTRANS( 0x007C , notsign , 0x2AEC , 0x0000),
DEADTRANS( grave , macron , 0x1DC5 , 0x0000),
DEADTRANS( acute , macron , 0x1DC7 , 0x0000),
DEADTRANS( 0x003D , degree , 0x2257 , 0x0000),
DEADTRANS( 0x005F , degree , 0x0325 , 0x0000),
DEADTRANS( 0x006F , degree , 0x229A , 0x0000),
DEADTRANS( 0x0077 , degree , degree , 0x0000),
DEADTRANS( macron , acute , 0x1DC4 , 0x0000),
DEADTRANS( periodcentered , periodcentered , 0x02D1 , 0x0000),
DEADTRANS( 0x002D , guillemotright , 0x21A0 , 0x0000),
DEADTRANS( 0x007C , guillemotright , 0x21A1 , 0x0000),
DEADTRANS( 0x006F , multiply , circledtimes , 0x0000),
DEADTRANS( 0x002F , slong , 0x1E9C , 0x0000),
DEADTRANS( 0x007C , Greek_GAMMA , 0x213E , 0x0000),
DEADTRANS( 0x007C , Greek_PI , 0x213F , 0x0000),
DEADTRANS( Greek_PI , Greek_PI , 0x220F , 0x0000),
DEADTRANS( Greek_SIGMA , Greek_SIGMA , 0x2211 , 0x0000),
DEADTRANS( Greek_PHI , Greek_PHI , 0x0278 , 0x0000),
DEADTRANS( asciicircum , Greek_alpha , 0x1D45 , 0x0000),
DEADTRANS( Greek_alpha , Greek_alpha , 0x0251 , 0x0000),
DEADTRANS( asciicircum , Greek_beta , 0x1D5D , 0x0000),
DEADTRANS( 0x005F , Greek_beta , 0x1D66 , 0x0000),
DEADTRANS( 0x005F , Greek_beta , 0x1D66 , 0x0000),
DEADTRANS( asciicircum , Greek_gamma , 0x1D5E , 0x0000),
DEADTRANS( 0x005F , Greek_gamma , 0x1D67 , 0x0000),
DEADTRANS( 0x005F , Greek_gamma , 0x1D67 , 0x0000),
DEADTRANS( 0x007C , Greek_gamma , 0x213D , 0x0000),
DEADTRANS( Greek_gamma , Greek_gamma , 0x0263 , 0x0000),
DEADTRANS( asciicircum , Greek_delta , 0x1D5F , 0x0000),
DEADTRANS( asciicircum , Greek_epsilon , 0x1D4B , 0x0000),
DEADTRANS( Greek_epsilon , Greek_epsilon , 0x025B , 0x0000),
DEADTRANS( asciicircum , Greek_theta , 0x1DBF , 0x0000),
DEADTRANS( 0x002F , Greek_lamda , 0x019B , 0x0000),
DEADTRANS( 0x03BC , 0x03BC , mu , 0x0000),
DEADTRANS( 0x007C , Greek_pi , 0x213C , 0x0000),
DEADTRANS( 0x005F , Greek_rho , 0x1D68 , 0x0000),
DEADTRANS( 0x005F , Greek_rho , 0x1D68 , 0x0000),
DEADTRANS( asciicircum , Greek_upsilon , 0x1DB7 , 0x0000),
DEADTRANS( Greek_omicron , Greek_upsilon , 0x0223 , 0x0000),
DEADTRANS( Greek_upsilon , Greek_upsilon , 0x028A , 0x0000),
DEADTRANS( asciicircum , Greek_phi , 0x1D60 , 0x0000),
DEADTRANS( 0x005F , Greek_phi , 0x1D69 , 0x0000),
DEADTRANS( 0x005F , Greek_phi , 0x1D69 , 0x0000),
DEADTRANS( Greek_phi , Greek_phi , 0x0278 , 0x0000),
DEADTRANS( asciicircum , Greek_chi , 0x1D61 , 0x0000),
DEADTRANS( 0x005F , Greek_chi , 0x1D6A , 0x0000),
DEADTRANS( 0x005F , Greek_chi , 0x1D6A , 0x0000),
DEADTRANS( asciicircum , scriptphi , 0x1DB2 , 0x0000),
DEADTRANS( scriptphi , scriptphi , 0x0278 , 0x0000),
DEADTRANS( 0x2026 , endash , 0x22EF , 0x0000),
DEADTRANS( 0x2026 , emdash , 0x22EF , 0x0000),
DEADTRANS( 0x002F , leftarrow , 0x219A , 0x0000),
DEADTRANS( asciicircum , leftarrow , 0x20D6 , 0x0000),
DEADTRANS( 0x007C , leftarrow , 0x21E4 , 0x0000),
DEADTRANS( 0x2026 , leftarrow , 0x21E0 , 0x0000),
DEADTRANS( leftarrow , leftarrow , 0x21C7 , 0x0000),
DEADTRANS( rightarrow , leftarrow , 0x21C4 , 0x0000),
DEADTRANS( 0x003D , uparrow , 0x21DE , 0x0000),
DEADTRANS( 0x007C , uparrow , 0x21D1 , 0x0000),
DEADTRANS( 0x2026 , uparrow , 0x21E1 , 0x0000),
DEADTRANS( uparrow , uparrow , 0x21C8 , 0x0000),
DEADTRANS( downarrow , uparrow , 0x21F5 , 0x0000),
DEADTRANS( 0x002D , rightarrow , 0x27F6 , 0x0000),
DEADTRANS( 0x003C , rightarrow , leftrightarrow , 0x0000),
DEADTRANS( 0x003E , rightarrow , 0x21A3 , 0x0000),
DEADTRANS( asciicircum , rightarrow , 0x20D7 , 0x0000),
DEADTRANS( 0x007A , rightarrow , 0x21AF