
Function X11ConvertKeySymToUnicode(sym : TKeySym) : Integer;

Begin
  If (sym >= $20) And (sym <= $7E) Then
    Exit(sym);
  Case sym Of
    XKc_Cyrillic_GHE_bar           : Exit($492);
    XK_Cyrillic_ghe_bar            : Exit($493);
    XKc_Cyrillic_ZHE_descender     : Exit($496);
    XK_Cyrillic_zhe_descender      : Exit($497);
    XKc_Cyrillic_KA_descender      : Exit($49A);
    XK_Cyrillic_ka_descender       : Exit($49B);
    XKc_Cyrillic_KA_vertstroke     : Exit($49C);
    XK_Cyrillic_ka_vertstroke      : Exit($49D);
    XKc_Cyrillic_EN_descender      : Exit($4A2);
    XK_Cyrillic_en_descender       : Exit($4A3);
    XKc_Cyrillic_U_straight        : Exit($4AE);
    XK_Cyrillic_u_straight         : Exit($4AF);
    XKc_Cyrillic_U_straight_bar    : Exit($4B0);
    XK_Cyrillic_u_straight_bar     : Exit($4B1);
    XKc_Cyrillic_HA_descender      : Exit($4B2);
    XK_Cyrillic_ha_descender       : Exit($4B3);
    XKc_Cyrillic_CHE_descender     : Exit($4B6);
    XK_Cyrillic_che_descender      : Exit($4B7);
    XKc_Cyrillic_CHE_vertstroke    : Exit($4B8);
    XK_Cyrillic_che_vertstroke     : Exit($4B9);
    XKc_Cyrillic_SHHA              : Exit($4BA);
    XK_Cyrillic_shha               : Exit($4BB);

    XKc_Cyrillic_SCHWA             : Exit($4D8);
    XK_Cyrillic_schwa              : Exit($4D9);
    XKc_Cyrillic_I_macron          : Exit($4E2);
    XK_Cyrillic_i_macron           : Exit($4E3);
    XKc_Cyrillic_O_bar             : Exit($4E8);
    XK_Cyrillic_o_bar              : Exit($4E9);
    XKc_Cyrillic_U_macron          : Exit($4EE);
    XK_Cyrillic_u_macron           : Exit($4EF);

    XK_Serbian_dje                 : Exit($452);
    XK_Macedonia_gje               : Exit($453);
    XK_Cyrillic_io                 : Exit($451);
    XK_Ukrainian_ie                : Exit($454);
    XK_Macedonia_dse               : Exit($455);
    XK_Ukrainian_i                 : Exit($456);
    XK_Ukrainian_yi                : Exit($457);
    XK_Cyrillic_je                 : Exit($458);
    XK_Cyrillic_lje                : Exit($459);
    XK_Cyrillic_nje                : Exit($45A);
    XK_Serbian_tshe                : Exit($45B);
    XK_Macedonia_kje               : Exit($45C);
    XK_Ukrainian_ghe_with_upturn   : Exit($491);
    XK_Byelorussian_shortu         : Exit($45E);
    XK_Cyrillic_dzhe               : Exit($45F);
    XK_numerosign                  : Exit($2116);
    XKc_Serbian_DJE                : Exit($402);
    XKc_Macedonia_GJE              : Exit($403);
    XKc_Cyrillic_IO                : Exit($401);
    XKc_Ukrainian_IE               : Exit($404);
    XKc_Macedonia_DSE              : Exit($405);
    XKc_Ukrainian_I                : Exit($406);
    XKc_Ukrainian_YI               : Exit($407);
    XKc_Cyrillic_JE                : Exit($408);
    XKc_Cyrillic_LJE               : Exit($409);
    XKc_Cyrillic_NJE               : Exit($40A);
    XKc_Serbian_TSHE               : Exit($40B);
    XKc_Macedonia_KJE              : Exit($40C);
    XKc_Ukrainian_GHE_WITH_UPTURN  : Exit($490);
    XKc_Byelorussian_SHORTU        : Exit($40E);
    XKc_Cyrillic_DZHE              : Exit($40F);
    XK_Cyrillic_yu                 : Exit($44E);
    XK_Cyrillic_a                  : Exit($430);
    XK_Cyrillic_be                 : Exit($431);
    XK_Cyrillic_tse                : Exit($446);
    XK_Cyrillic_de                 : Exit($434);
    XK_Cyrillic_ie                 : Exit($435);
    XK_Cyrillic_ef                 : Exit($444);
    XK_Cyrillic_ghe                : Exit($433);
    XK_Cyrillic_ha                 : Exit($445);
    XK_Cyrillic_i                  : Exit($438);
    XK_Cyrillic_shorti             : Exit($439);
    XK_Cyrillic_ka                 : Exit($43A);
    XK_Cyrillic_el                 : Exit($43B);
    XK_Cyrillic_em                 : Exit($43C);
    XK_Cyrillic_en                 : Exit($43D);
    XK_Cyrillic_o                  : Exit($43E);
    XK_Cyrillic_pe                 : Exit($43F);
    XK_Cyrillic_ya                 : Exit($44F);
    XK_Cyrillic_er                 : Exit($440);
    XK_Cyrillic_es                 : Exit($441);
    XK_Cyrillic_te                 : Exit($442);
    XK_Cyrillic_u                  : Exit($443);
    XK_Cyrillic_zhe                : Exit($436);
    XK_Cyrillic_ve                 : Exit($432);
    XK_Cyrillic_softsign           : Exit($44C);
    XK_Cyrillic_yeru               : Exit($44B);
    XK_Cyrillic_ze                 : Exit($437);
    XK_Cyrillic_sha                : Exit($448);
    XK_Cyrillic_e                  : Exit($44D);
    XK_Cyrillic_shcha              : Exit($449);
    XK_Cyrillic_che                : Exit($447);
    XK_Cyrillic_hardsign           : Exit($44A);
    XKc_Cyrillic_YU                : Exit($42E);
    XKc_Cyrillic_A                 : Exit($410);
    XKc_Cyrillic_BE                : Exit($411);
    XKc_Cyrillic_TSE               : Exit($426);
    XKc_Cyrillic_DE                : Exit($414);
    XKc_Cyrillic_IE                : Exit($415);
    XKc_Cyrillic_EF                : Exit($424);
    XKc_Cyrillic_GHE               : Exit($413);
    XKc_Cyrillic_HA                : Exit($425);
    XKc_Cyrillic_I                 : Exit($418);
    XKc_Cyrillic_SHORTI            : Exit($419);
    XKc_Cyrillic_KA                : Exit($41A);
    XKc_Cyrillic_EL                : Exit($41B);
    XKc_Cyrillic_EM                : Exit($41C);
    XKc_Cyrillic_EN                : Exit($41D);
    XKc_Cyrillic_O                 : Exit($41E);
    XKc_Cyrillic_PE                : Exit($41F);
    XKc_Cyrillic_YA                : Exit($42F);
    XKc_Cyrillic_ER                : Exit($420);
    XKc_Cyrillic_ES                : Exit($421);
    XKc_Cyrillic_TE                : Exit($422);
    XKc_Cyrillic_U                 : Exit($423);
    XKc_Cyrillic_ZHE               : Exit($416);
    XKc_Cyrillic_VE                : Exit($412);
    XKc_Cyrillic_SOFTSIGN          : Exit($42C);
    XKc_Cyrillic_YERU              : Exit($42B);
    XKc_Cyrillic_ZE                : Exit($417);
    XKc_Cyrillic_SHA               : Exit($428);
    XKc_Cyrillic_E                 : Exit($42D);
    XKc_Cyrillic_SHCHA             : Exit($429);
    XKc_Cyrillic_CHE               : Exit($427);
    XKc_Cyrillic_HARDSIGN          : Exit($42A);

    XKc_Greek_ALPHA                : Exit($391);
    XKc_Greek_BETA                 : Exit($392);
    XKc_Greek_GAMMA                : Exit($393);
    XKc_Greek_DELTA                : Exit($394);
    XKc_Greek_EPSILON              : Exit($395);
    XKc_Greek_ZETA                 : Exit($396);
    XKc_Greek_ETA                  : Exit($397);
    XKc_Greek_THETA                : Exit($398);
    XKc_Greek_IOTA                 : Exit($399);
    XKc_Greek_KAPPA                : Exit($39A);
    XKc_Greek_LAMDA                : Exit($39B);
    XKc_Greek_MU                   : Exit($39C);
    XKc_Greek_NU                   : Exit($39D);
    XKc_Greek_XI                   : Exit($39E);
    XKc_Greek_OMICRON              : Exit($39F);
    XKc_Greek_PI                   : Exit($3A0);
    XKc_Greek_RHO                  : Exit($3A1);
    XKc_Greek_SIGMA                : Exit($3A3);
    XKc_Greek_TAU                  : Exit($3A4);
    XKc_Greek_UPSILON              : Exit($3A5);
    XKc_Greek_PHI                  : Exit($3A6);
    XKc_Greek_CHI                  : Exit($3A7);
    XKc_Greek_PSI                  : Exit($3A8);
    XKc_Greek_OMEGA                : Exit($3A9);
    XK_Greek_alpha                 : Exit($3B1);
    XK_Greek_beta                  : Exit($3B2);
    XK_Greek_gamma                 : Exit($3B3);
    XK_Greek_delta                 : Exit($3B4);
    XK_Greek_epsilon               : Exit($3B5);
    XK_Greek_zeta                  : Exit($3B6);
    XK_Greek_eta                   : Exit($3B7);
    XK_Greek_theta                 : Exit($3B8);
    XK_Greek_iota                  : Exit($3B9);
    XK_Greek_kappa                 : Exit($3BA);
    XK_Greek_lamda                 : Exit($3BB);
    XK_Greek_mu                    : Exit($3BC);
    XK_Greek_nu                    : Exit($3BD);
    XK_Greek_xi                    : Exit($3BE);
    XK_Greek_omicron               : Exit($3BF);
    XK_Greek_pi                    : Exit($3C0);
    XK_Greek_rho                   : Exit($3C1);
    XK_Greek_sigma                 : Exit($3C2);
    XK_Greek_finalsmallsigma       : Exit($3C3);
    XK_Greek_tau                   : Exit($3C4);
    XK_Greek_upsilon               : Exit($3C5);
    XK_Greek_phi                   : Exit($3C6);
    XK_Greek_chi                   : Exit($3C7);
    XK_Greek_psi                   : Exit($3C8);
    XK_Greek_omega                 : Exit($3C9);

  End;
  Result := -1;
End;
