keysym.pp 89 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009
  1. {
  2. Converted from X11/keysym.h and X11/keysymdef.h
  3. Capital letter consts renamed from XK_... to XKc_...
  4. (since Pascal isn't case-sensitive)
  5. i.e.
  6. C Pascal
  7. XK_a XK_a
  8. XK_A XKc_A
  9. }
  10. Unit keysym;
  11. Interface
  12. {* default keysyms *}
  13. {$DEFINE XK_MISCELLANY}
  14. {$DEFINE XK_XKB_KEYS}
  15. {$DEFINE XK_3270}
  16. {$DEFINE XK_LATIN1}
  17. {$DEFINE XK_LATIN2}
  18. {$DEFINE XK_LATIN3}
  19. {$DEFINE XK_LATIN4}
  20. {$DEFINE XK_LATIN8}
  21. {$DEFINE XK_LATIN9}
  22. {$DEFINE XK_KATAKANA}
  23. {$DEFINE XK_ARABIC}
  24. {$DEFINE XK_CYRILLIC}
  25. {$DEFINE XK_GREEK}
  26. {$DEFINE XK_TECHNICAL}
  27. {$DEFINE XK_SPECIAL}
  28. {$DEFINE XK_PUBLISHING}
  29. {$DEFINE XK_APL}
  30. {$DEFINE XK_HEBREW}
  31. {$DEFINE XK_THAI}
  32. {$DEFINE XK_KOREAN}
  33. {$DEFINE XK_ARMENIAN}
  34. {$DEFINE XK_GEORGIAN}
  35. {$DEFINE XK_CAUCASUS}
  36. {$DEFINE XK_VIETNAMESE}
  37. {$DEFINE XK_CURRENCY}
  38. Const
  39. XK_VoidSymbol = $FFFFFF; { void symbol }
  40. {$IFDEF XK_MISCELLANY}
  41. {*
  42. * TTY Functions, cleverly chosen to map to ascii, for convenience of
  43. * programming, but could have been arbitrary (at the cost of lookup
  44. * tables in client code.
  45. *}
  46. XK_BackSpace = $FF08; { back space, back char }
  47. XK_Tab = $FF09;
  48. XK_Linefeed = $FF0A; { Linefeed, LF }
  49. XK_Clear = $FF0B;
  50. XK_Return = $FF0D; { Return, enter }
  51. XK_Pause = $FF13; { Pause, hold }
  52. XK_Scroll_Lock = $FF14;
  53. XK_Sys_Req = $FF15;
  54. XK_Escape = $FF1B;
  55. XK_Delete = $FFFF; { Delete, rubout }
  56. { International & multi-key character composition }
  57. XK_Multi_key = $FF20; { Multi-key character compose }
  58. XK_Codeinput = $FF37;
  59. XK_SingleCandidate = $FF3C;
  60. XK_MultipleCandidate = $FF3D;
  61. XK_PreviousCandidate = $FF3E;
  62. { Japanese keyboard support }
  63. XK_Kanji = $FF21; { Kanji, Kanji convert }
  64. XK_Muhenkan = $FF22; { Cancel Conversion }
  65. XK_Henkan_Mode = $FF23; { Start/Stop Conversion }
  66. XK_Henkan = $FF23; { Alias for Henkan_Mode }
  67. XK_Romaji = $FF24; { to Romaji }
  68. XK_Hiragana = $FF25; { to Hiragana }
  69. XK_Katakana = $FF26; { to Katakana }
  70. XK_Hiragana_Katakana = $FF27; { Hiragana/Katakana toggle }
  71. XK_Zenkaku = $FF28; { to Zenkaku }
  72. XK_Hankaku = $FF29; { to Hankaku }
  73. XK_Zenkaku_Hankaku = $FF2A; { Zenkaku/Hankaku toggle }
  74. XK_Touroku = $FF2B; { Add to Dictionary }
  75. XK_Massyo = $FF2C; { Delete from Dictionary }
  76. XK_Kana_Lock = $FF2D; { Kana Lock }
  77. XK_Kana_Shift = $FF2E; { Kana Shift }
  78. XK_Eisu_Shift = $FF2F; { Alphanumeric Shift }
  79. XK_Eisu_toggle = $FF30; { Alphanumeric toggle }
  80. XK_Kanji_Bangou = $FF37; { Codeinput }
  81. XK_Zen_Koho = $FF3D; { Multiple/All Candidate(s) }
  82. XK_Mae_Koho = $FF3E; { Previous Candidate }
  83. { = $FF31 thru = $FF3F are under XK_KOREAN }
  84. { Cursor control & motion }
  85. XK_Home = $FF50;
  86. XK_Left = $FF51; { Move left, left arrow }
  87. XK_Up = $FF52; { Move up, up arrow }
  88. XK_Right = $FF53; { Move right, right arrow }
  89. XK_Down = $FF54; { Move down, down arrow }
  90. XK_Prior = $FF55; { Prior, previous }
  91. XK_Page_Up = $FF55;
  92. XK_Next = $FF56; { Next }
  93. XK_Page_Down = $FF56;
  94. XK_End = $FF57; { EOL }
  95. XK_Begin = $FF58; { BOL }
  96. { Misc Functions }
  97. XK_Select = $FF60; { Select, mark }
  98. XK_Print = $FF61;
  99. XK_Execute = $FF62; { Execute, run, do }
  100. XK_Insert = $FF63; { Insert, insert here }
  101. XK_Undo = $FF65; { Undo, oops }
  102. XK_Redo = $FF66; { redo, again }
  103. XK_Menu = $FF67;
  104. XK_Find = $FF68; { Find, search }
  105. XK_Cancel = $FF69; { Cancel, stop, abort, exit }
  106. XK_Help = $FF6A; { Help }
  107. XK_Break = $FF6B;
  108. XK_Mode_switch = $FF7E; { Character set switch }
  109. XK_script_switch = $FF7E; { Alias for mode_switch }
  110. XK_Num_Lock = $FF7F;
  111. { Keypad Functions, keypad numbers cleverly chosen to map to ascii }
  112. XK_KP_Space = $FF80; { space }
  113. XK_KP_Tab = $FF89;
  114. XK_KP_Enter = $FF8D; { enter }
  115. XK_KP_F1 = $FF91; { PF1, KP_A, ... }
  116. XK_KP_F2 = $FF92;
  117. XK_KP_F3 = $FF93;
  118. XK_KP_F4 = $FF94;
  119. XK_KP_Home = $FF95;
  120. XK_KP_Left = $FF96;
  121. XK_KP_Up = $FF97;
  122. XK_KP_Right = $FF98;
  123. XK_KP_Down = $FF99;
  124. XK_KP_Prior = $FF9A;
  125. XK_KP_Page_Up = $FF9A;
  126. XK_KP_Next = $FF9B;
  127. XK_KP_Page_Down = $FF9B;
  128. XK_KP_End = $FF9C;
  129. XK_KP_Begin = $FF9D;
  130. XK_KP_Insert = $FF9E;
  131. XK_KP_Delete = $FF9F;
  132. XK_KP_Equal = $FFBD; { equals }
  133. XK_KP_Multiply = $FFAA;
  134. XK_KP_Add = $FFAB;
  135. XK_KP_Separator = $FFAC; { separator, often comma }
  136. XK_KP_Subtract = $FFAD;
  137. XK_KP_Decimal = $FFAE;
  138. XK_KP_Divide = $FFAF;
  139. XK_KP_0 = $FFB0;
  140. XK_KP_1 = $FFB1;
  141. XK_KP_2 = $FFB2;
  142. XK_KP_3 = $FFB3;
  143. XK_KP_4 = $FFB4;
  144. XK_KP_5 = $FFB5;
  145. XK_KP_6 = $FFB6;
  146. XK_KP_7 = $FFB7;
  147. XK_KP_8 = $FFB8;
  148. XK_KP_9 = $FFB9;
  149. {*
  150. * Auxilliary Functions; note the duplicate definitions for left and right
  151. * function keys; Sun keyboards and a few other manufactures have such
  152. * function key groups on the left and/or right sides of the keyboard.
  153. * We've not found a keyboard with more than 35 function keys total.
  154. *}
  155. XK_F1 = $FFBE;
  156. XK_F2 = $FFBF;
  157. XK_F3 = $FFC0;
  158. XK_F4 = $FFC1;
  159. XK_F5 = $FFC2;
  160. XK_F6 = $FFC3;
  161. XK_F7 = $FFC4;
  162. XK_F8 = $FFC5;
  163. XK_F9 = $FFC6;
  164. XK_F10 = $FFC7;
  165. XK_F11 = $FFC8;
  166. XK_L1 = $FFC8;
  167. XK_F12 = $FFC9;
  168. XK_L2 = $FFC9;
  169. XK_F13 = $FFCA;
  170. XK_L3 = $FFCA;
  171. XK_F14 = $FFCB;
  172. XK_L4 = $FFCB;
  173. XK_F15 = $FFCC;
  174. XK_L5 = $FFCC;
  175. XK_F16 = $FFCD;
  176. XK_L6 = $FFCD;
  177. XK_F17 = $FFCE;
  178. XK_L7 = $FFCE;
  179. XK_F18 = $FFCF;
  180. XK_L8 = $FFCF;
  181. XK_F19 = $FFD0;
  182. XK_L9 = $FFD0;
  183. XK_F20 = $FFD1;
  184. XK_L10 = $FFD1;
  185. XK_F21 = $FFD2;
  186. XK_R1 = $FFD2;
  187. XK_F22 = $FFD3;
  188. XK_R2 = $FFD3;
  189. XK_F23 = $FFD4;
  190. XK_R3 = $FFD4;
  191. XK_F24 = $FFD5;
  192. XK_R4 = $FFD5;
  193. XK_F25 = $FFD6;
  194. XK_R5 = $FFD6;
  195. XK_F26 = $FFD7;
  196. XK_R6 = $FFD7;
  197. XK_F27 = $FFD8;
  198. XK_R7 = $FFD8;
  199. XK_F28 = $FFD9;
  200. XK_R8 = $FFD9;
  201. XK_F29 = $FFDA;
  202. XK_R9 = $FFDA;
  203. XK_F30 = $FFDB;
  204. XK_R10 = $FFDB;
  205. XK_F31 = $FFDC;
  206. XK_R11 = $FFDC;
  207. XK_F32 = $FFDD;
  208. XK_R12 = $FFDD;
  209. XK_F33 = $FFDE;
  210. XK_R13 = $FFDE;
  211. XK_F34 = $FFDF;
  212. XK_R14 = $FFDF;
  213. XK_F35 = $FFE0;
  214. XK_R15 = $FFE0;
  215. { Modifiers }
  216. XK_Shift_L = $FFE1; { Left shift }
  217. XK_Shift_R = $FFE2; { Right shift }
  218. XK_Control_L = $FFE3; { Left control }
  219. XK_Control_R = $FFE4; { Right control }
  220. XK_Caps_Lock = $FFE5; { Caps lock }
  221. XK_Shift_Lock = $FFE6; { Shift lock }
  222. XK_Meta_L = $FFE7; { Left meta }
  223. XK_Meta_R = $FFE8; { Right meta }
  224. XK_Alt_L = $FFE9; { Left alt }
  225. XK_Alt_R = $FFEA; { Right alt }
  226. XK_Super_L = $FFEB; { Left super }
  227. XK_Super_R = $FFEC; { Right super }
  228. XK_Hyper_L = $FFED; { Left hyper }
  229. XK_Hyper_R = $FFEE; { Right hyper }
  230. {$ENDIF} { XK_MISCELLANY }
  231. {*
  232. * ISO 9995 Function and Modifier Keys
  233. * Byte 3 = = $FE
  234. *}
  235. {$IFDEF XK_XKB_KEYS}
  236. XK_ISO_Lock = $FE01;
  237. XK_ISO_Level2_Latch = $FE02;
  238. XK_ISO_Level3_Shift = $FE03;
  239. XK_ISO_Level3_Latch = $FE04;
  240. XK_ISO_Level3_Lock = $FE05;
  241. XK_ISO_Group_Shift = $FF7E; { Alias for mode_switch }
  242. XK_ISO_Group_Latch = $FE06;
  243. XK_ISO_Group_Lock = $FE07;
  244. XK_ISO_Next_Group = $FE08;
  245. XK_ISO_Next_Group_Lock = $FE09;
  246. XK_ISO_Prev_Group = $FE0A;
  247. XK_ISO_Prev_Group_Lock = $FE0B;
  248. XK_ISO_First_Group = $FE0C;
  249. XK_ISO_First_Group_Lock = $FE0D;
  250. XK_ISO_Last_Group = $FE0E;
  251. XK_ISO_Last_Group_Lock = $FE0F;
  252. XK_ISO_Left_Tab = $FE20;
  253. XK_ISO_Move_Line_Up = $FE21;
  254. XK_ISO_Move_Line_Down = $FE22;
  255. XK_ISO_Partial_Line_Up = $FE23;
  256. XK_ISO_Partial_Line_Down = $FE24;
  257. XK_ISO_Partial_Space_Left = $FE25;
  258. XK_ISO_Partial_Space_Right = $FE26;
  259. XK_ISO_Set_Margin_Left = $FE27;
  260. XK_ISO_Set_Margin_Right = $FE28;
  261. XK_ISO_Release_Margin_Left = $FE29;
  262. XK_ISO_Release_Margin_Right = $FE2A;
  263. XK_ISO_Release_Both_Margins = $FE2B;
  264. XK_ISO_Fast_Cursor_Left = $FE2C;
  265. XK_ISO_Fast_Cursor_Right = $FE2D;
  266. XK_ISO_Fast_Cursor_Up = $FE2E;
  267. XK_ISO_Fast_Cursor_Down = $FE2F;
  268. XK_ISO_Continuous_Underline = $FE30;
  269. XK_ISO_Discontinuous_Underline = $FE31;
  270. XK_ISO_Emphasize = $FE32;
  271. XK_ISO_Center_Object = $FE33;
  272. XK_ISO_Enter = $FE34;
  273. XK_dead_grave = $FE50;
  274. XK_dead_acute = $FE51;
  275. XK_dead_circumflex = $FE52;
  276. XK_dead_tilde = $FE53;
  277. XK_dead_macron = $FE54;
  278. XK_dead_breve = $FE55;
  279. XK_dead_abovedot = $FE56;
  280. XK_dead_diaeresis = $FE57;
  281. XK_dead_abovering = $FE58;
  282. XK_dead_doubleacute = $FE59;
  283. XK_dead_caron = $FE5A;
  284. XK_dead_cedilla = $FE5B;
  285. XK_dead_ogonek = $FE5C;
  286. XK_dead_iota = $FE5D;
  287. XK_dead_voiced_sound = $FE5E;
  288. XK_dead_semivoiced_sound = $FE5F;
  289. XK_dead_belowdot = $FE60;
  290. XK_dead_hook = $FE61;
  291. XK_dead_horn = $FE62;
  292. XK_First_Virtual_Screen = $FED0;
  293. XK_Prev_Virtual_Screen = $FED1;
  294. XK_Next_Virtual_Screen = $FED2;
  295. XK_Last_Virtual_Screen = $FED4;
  296. XK_Terminate_Server = $FED5;
  297. XK_AccessX_Enable = $FE70;
  298. XK_AccessX_Feedback_Enable = $FE71;
  299. XK_RepeatKeys_Enable = $FE72;
  300. XK_SlowKeys_Enable = $FE73;
  301. XK_BounceKeys_Enable = $FE74;
  302. XK_StickyKeys_Enable = $FE75;
  303. XK_MouseKeys_Enable = $FE76;
  304. XK_MouseKeys_Accel_Enable = $FE77;
  305. XK_Overlay1_Enable = $FE78;
  306. XK_Overlay2_Enable = $FE79;
  307. XK_AudibleBell_Enable = $FE7A;
  308. XK_Pointer_Left = $FEE0;
  309. XK_Pointer_Right = $FEE1;
  310. XK_Pointer_Up = $FEE2;
  311. XK_Pointer_Down = $FEE3;
  312. XK_Pointer_UpLeft = $FEE4;
  313. XK_Pointer_UpRight = $FEE5;
  314. XK_Pointer_DownLeft = $FEE6;
  315. XK_Pointer_DownRight = $FEE7;
  316. XK_Pointer_Button_Dflt = $FEE8;
  317. XK_Pointer_Button1 = $FEE9;
  318. XK_Pointer_Button2 = $FEEA;
  319. XK_Pointer_Button3 = $FEEB;
  320. XK_Pointer_Button4 = $FEEC;
  321. XK_Pointer_Button5 = $FEED;
  322. XK_Pointer_DblClick_Dflt = $FEEE;
  323. XK_Pointer_DblClick1 = $FEEF;
  324. XK_Pointer_DblClick2 = $FEF0;
  325. XK_Pointer_DblClick3 = $FEF1;
  326. XK_Pointer_DblClick4 = $FEF2;
  327. XK_Pointer_DblClick5 = $FEF3;
  328. XK_Pointer_Drag_Dflt = $FEF4;
  329. XK_Pointer_Drag1 = $FEF5;
  330. XK_Pointer_Drag2 = $FEF6;
  331. XK_Pointer_Drag3 = $FEF7;
  332. XK_Pointer_Drag4 = $FEF8;
  333. XK_Pointer_Drag5 = $FEFD;
  334. XK_Pointer_EnableKeys = $FEF9;
  335. XK_Pointer_Accelerate = $FEFA;
  336. XK_Pointer_DfltBtnNext = $FEFB;
  337. XK_Pointer_DfltBtnPrev = $FEFC;
  338. {$ENDIF}
  339. {*
  340. * 3270 Terminal Keys
  341. * Byte 3 = = $FD
  342. *}
  343. {$IFDEF XK_3270}
  344. XK_3270_Duplicate = $FD01;
  345. XK_3270_FieldMark = $FD02;
  346. XK_3270_Right2 = $FD03;
  347. XK_3270_Left2 = $FD04;
  348. XK_3270_BackTab = $FD05;
  349. XK_3270_EraseEOF = $FD06;
  350. XK_3270_EraseInput = $FD07;
  351. XK_3270_Reset = $FD08;
  352. XK_3270_Quit = $FD09;
  353. XK_3270_PA1 = $FD0A;
  354. XK_3270_PA2 = $FD0B;
  355. XK_3270_PA3 = $FD0C;
  356. XK_3270_Test = $FD0D;
  357. XK_3270_Attn = $FD0E;
  358. XK_3270_CursorBlink = $FD0F;
  359. XK_3270_AltCursor = $FD10;
  360. XK_3270_KeyClick = $FD11;
  361. XK_3270_Jump = $FD12;
  362. XK_3270_Ident = $FD13;
  363. XK_3270_Rule = $FD14;
  364. XK_3270_Copy = $FD15;
  365. XK_3270_Play = $FD16;
  366. XK_3270_Setup = $FD17;
  367. XK_3270_Record = $FD18;
  368. XK_3270_ChangeScreen = $FD19;
  369. XK_3270_DeleteWord = $FD1A;
  370. XK_3270_ExSelect = $FD1B;
  371. XK_3270_CursorSelect = $FD1C;
  372. XK_3270_PrintScreen = $FD1D;
  373. XK_3270_Enter = $FD1E;
  374. {$ENDIF}
  375. {*
  376. * Latin 1
  377. * Byte 3 = 0
  378. *}
  379. {$IFDEF XK_LATIN1}
  380. XK_space = $020;
  381. XK_exclam = $021;
  382. XK_quotedbl = $022;
  383. XK_numbersign = $023;
  384. XK_dollar = $024;
  385. XK_percent = $025;
  386. XK_ampersand = $026;
  387. XK_apostrophe = $027;
  388. XK_quoteright = $027; { deprecated }
  389. XK_parenleft = $028;
  390. XK_parenright = $029;
  391. XK_asterisk = $02a;
  392. XK_plus = $02b;
  393. XK_comma = $02c;
  394. XK_minus = $02d;
  395. XK_period = $02e;
  396. XK_slash = $02f;
  397. XK_0 = $030;
  398. XK_1 = $031;
  399. XK_2 = $032;
  400. XK_3 = $033;
  401. XK_4 = $034;
  402. XK_5 = $035;
  403. XK_6 = $036;
  404. XK_7 = $037;
  405. XK_8 = $038;
  406. XK_9 = $039;
  407. XK_colon = $03a;
  408. XK_semicolon = $03b;
  409. XK_less = $03c;
  410. XK_equal = $03d;
  411. XK_greater = $03e;
  412. XK_question = $03f;
  413. XK_at = $040;
  414. XKc_A = $041;
  415. XKc_B = $042;
  416. XKc_C = $043;
  417. XKc_D = $044;
  418. XKc_E = $045;
  419. XKc_F = $046;
  420. XKc_G = $047;
  421. XKc_H = $048;
  422. XKc_I = $049;
  423. XKc_J = $04a;
  424. XKc_K = $04b;
  425. XKc_L = $04c;
  426. XKc_M = $04d;
  427. XKc_N = $04e;
  428. XKc_O = $04f;
  429. XKc_P = $050;
  430. XKc_Q = $051;
  431. XKc_R = $052;
  432. XKc_S = $053;
  433. XKc_T = $054;
  434. XKc_U = $055;
  435. XKc_V = $056;
  436. XKc_W = $057;
  437. XKc_X = $058;
  438. XKc_Y = $059;
  439. XKc_Z = $05a;
  440. XK_bracketleft = $05b;
  441. XK_backslash = $05c;
  442. XK_bracketright = $05d;
  443. XK_asciicircum = $05e;
  444. XK_underscore = $05f;
  445. XK_grave = $060;
  446. XK_quoteleft = $060; { deprecated }
  447. XK_a = $061;
  448. XK_b = $062;
  449. XK_c = $063;
  450. XK_d = $064;
  451. XK_e = $065;
  452. XK_f = $066;
  453. XK_g = $067;
  454. XK_h = $068;
  455. XK_i = $069;
  456. XK_j = $06a;
  457. XK_k = $06b;
  458. XK_l = $06c;
  459. XK_m = $06d;
  460. XK_n = $06e;
  461. XK_o = $06f;
  462. XK_p = $070;
  463. XK_q = $071;
  464. XK_r = $072;
  465. XK_s = $073;
  466. XK_t = $074;
  467. XK_u = $075;
  468. XK_v = $076;
  469. XK_w = $077;
  470. XK_x = $078;
  471. XK_y = $079;
  472. XK_z = $07a;
  473. XK_braceleft = $07b;
  474. XK_bar = $07c;
  475. XK_braceright = $07d;
  476. XK_asciitilde = $07e;
  477. XK_nobreakspace = $0a0;
  478. XK_exclamdown = $0a1;
  479. XK_cent = $0a2;
  480. XK_sterling = $0a3;
  481. XK_currency = $0a4;
  482. XK_yen = $0a5;
  483. XK_brokenbar = $0a6;
  484. XK_section = $0a7;
  485. XK_diaeresis = $0a8;
  486. XK_copyright = $0a9;
  487. XK_ordfeminine = $0aa;
  488. XK_guillemotleft = $0ab; { left angle quotation mark }
  489. XK_notsign = $0ac;
  490. XK_hyphen = $0ad;
  491. XK_registered = $0ae;
  492. XK_macron = $0af;
  493. XK_degree = $0b0;
  494. XK_plusminus = $0b1;
  495. XK_twosuperior = $0b2;
  496. XK_threesuperior = $0b3;
  497. XK_acute = $0b4;
  498. XK_mu = $0b5;
  499. XK_paragraph = $0b6;
  500. XK_periodcentered = $0b7;
  501. XK_cedilla = $0b8;
  502. XK_onesuperior = $0b9;
  503. XK_masculine = $0ba;
  504. XK_guillemotright = $0bb; { right angle quotation mark }
  505. XK_onequarter = $0bc;
  506. XK_onehalf = $0bd;
  507. XK_threequarters = $0be;
  508. XK_questiondown = $0bf;
  509. XKc_Agrave = $0c0;
  510. XKc_Aacute = $0c1;
  511. XKc_Acircumflex = $0c2;
  512. XKc_Atilde = $0c3;
  513. XKc_Adiaeresis = $0c4;
  514. XKc_Aring = $0c5;
  515. XKc_AE = $0c6;
  516. XKc_Ccedilla = $0c7;
  517. XKc_Egrave = $0c8;
  518. XKc_Eacute = $0c9;
  519. XKc_Ecircumflex = $0ca;
  520. XKc_Ediaeresis = $0cb;
  521. XKc_Igrave = $0cc;
  522. XKc_Iacute = $0cd;
  523. XKc_Icircumflex = $0ce;
  524. XKc_Idiaeresis = $0cf;
  525. XKc_ETH = $0d0;
  526. XKc_Ntilde = $0d1;
  527. XKc_Ograve = $0d2;
  528. XKc_Oacute = $0d3;
  529. XKc_Ocircumflex = $0d4;
  530. XKc_Otilde = $0d5;
  531. XKc_Odiaeresis = $0d6;
  532. XK_multiply = $0d7;
  533. XKc_Ooblique = $0d8;
  534. XKc_Oslash = XKc_Ooblique;
  535. XKc_Ugrave = $0d9;
  536. XKc_Uacute = $0da;
  537. XKc_Ucircumflex = $0db;
  538. XKc_Udiaeresis = $0dc;
  539. XKc_Yacute = $0dd;
  540. XKc_THORN = $0de;
  541. XK_ssharp = $0df;
  542. XK_agrave = $0e0;
  543. XK_aacute = $0e1;
  544. XK_acircumflex = $0e2;
  545. XK_atilde = $0e3;
  546. XK_adiaeresis = $0e4;
  547. XK_aring = $0e5;
  548. XK_ae = $0e6;
  549. XK_ccedilla = $0e7;
  550. XK_egrave = $0e8;
  551. XK_eacute = $0e9;
  552. XK_ecircumflex = $0ea;
  553. XK_ediaeresis = $0eb;
  554. XK_igrave = $0ec;
  555. XK_iacute = $0ed;
  556. XK_icircumflex = $0ee;
  557. XK_idiaeresis = $0ef;
  558. XK_eth = $0f0;
  559. XK_ntilde = $0f1;
  560. XK_ograve = $0f2;
  561. XK_oacute = $0f3;
  562. XK_ocircumflex = $0f4;
  563. XK_otilde = $0f5;
  564. XK_odiaeresis = $0f6;
  565. XK_division = $0f7;
  566. XK_oslash = $0f8;
  567. XK_ooblique = XK_oslash;
  568. XK_ugrave = $0f9;
  569. XK_uacute = $0fa;
  570. XK_ucircumflex = $0fb;
  571. XK_udiaeresis = $0fc;
  572. XK_yacute = $0fd;
  573. XK_thorn = $0fe;
  574. XK_ydiaeresis = $0ff;
  575. {$ENDIF} { XK_LATIN1 }
  576. {*
  577. * Latin 2
  578. * Byte 3 = 1
  579. *}
  580. {$IFDEF XK_LATIN2}
  581. XKc_Aogonek = $1a1;
  582. XK_breve = $1a2;
  583. XKc_Lstroke = $1a3;
  584. XKc_Lcaron = $1a5;
  585. XKc_Sacute = $1a6;
  586. XKc_Scaron = $1a9;
  587. XKc_Scedilla = $1aa;
  588. XKc_Tcaron = $1ab;
  589. XKc_Zacute = $1ac;
  590. XKc_Zcaron = $1ae;
  591. XKc_Zabovedot = $1af;
  592. XK_aogonek = $1b1;
  593. XK_ogonek = $1b2;
  594. XK_lstroke = $1b3;
  595. XK_lcaron = $1b5;
  596. XK_sacute = $1b6;
  597. XK_caron = $1b7;
  598. XK_scaron = $1b9;
  599. XK_scedilla = $1ba;
  600. XK_tcaron = $1bb;
  601. XK_zacute = $1bc;
  602. XK_doubleacute = $1bd;
  603. XK_zcaron = $1be;
  604. XK_zabovedot = $1bf;
  605. XKc_Racute = $1c0;
  606. XKc_Abreve = $1c3;
  607. XKc_Lacute = $1c5;
  608. XKc_Cacute = $1c6;
  609. XKc_Ccaron = $1c8;
  610. XKc_Eogonek = $1ca;
  611. XKc_Ecaron = $1cc;
  612. XKc_Dcaron = $1cf;
  613. XKc_Dstroke = $1d0;
  614. XKc_Nacute = $1d1;
  615. XKc_Ncaron = $1d2;
  616. XKc_Odoubleacute = $1d5;
  617. XKc_Rcaron = $1d8;
  618. XKc_Uring = $1d9;
  619. XKc_Udoubleacute = $1db;
  620. XKc_Tcedilla = $1de;
  621. XK_racute = $1e0;
  622. XK_abreve = $1e3;
  623. XK_lacute = $1e5;
  624. XK_cacute = $1e6;
  625. XK_ccaron = $1e8;
  626. XK_eogonek = $1ea;
  627. XK_ecaron = $1ec;
  628. XK_dcaron = $1ef;
  629. XK_dstroke = $1f0;
  630. XK_nacute = $1f1;
  631. XK_ncaron = $1f2;
  632. XK_odoubleacute = $1f5;
  633. XK_udoubleacute = $1fb;
  634. XK_rcaron = $1f8;
  635. XK_uring = $1f9;
  636. XK_tcedilla = $1fe;
  637. XK_abovedot = $1ff;
  638. {$ENDIF} { XK_LATIN2 }
  639. {*
  640. * Latin 3
  641. * Byte 3 = 2
  642. *}
  643. {$IFDEF XK_LATIN3}
  644. XKc_Hstroke = $2a1;
  645. XKc_Hcircumflex = $2a6;
  646. XKc_Iabovedot = $2a9;
  647. XKc_Gbreve = $2ab;
  648. XKc_Jcircumflex = $2ac;
  649. XK_hstroke = $2b1;
  650. XK_hcircumflex = $2b6;
  651. XK_idotless = $2b9;
  652. XK_gbreve = $2bb;
  653. XK_jcircumflex = $2bc;
  654. XKc_Cabovedot = $2c5;
  655. XKc_Ccircumflex = $2c6;
  656. XKc_Gabovedot = $2d5;
  657. XKc_Gcircumflex = $2d8;
  658. XKc_Ubreve = $2dd;
  659. XKc_Scircumflex = $2de;
  660. XK_cabovedot = $2e5;
  661. XK_ccircumflex = $2e6;
  662. XK_gabovedot = $2f5;
  663. XK_gcircumflex = $2f8;
  664. XK_ubreve = $2fd;
  665. XK_scircumflex = $2fe;
  666. {$ENDIF} { XK_LATIN3 }
  667. {*
  668. * Latin 4
  669. * Byte 3 = 3
  670. *}
  671. {$IFDEF XK_LATIN4}
  672. XK_kra = $3a2;
  673. XK_kappa = $3a2;{ deprecated }
  674. XKc_Rcedilla = $3a3;
  675. XKc_Itilde = $3a5;
  676. XKc_Lcedilla = $3a6;
  677. XKc_Emacron = $3aa;
  678. XKc_Gcedilla = $3ab;
  679. XKc_Tslash = $3ac;
  680. XK_rcedilla = $3b3;
  681. XK_itilde = $3b5;
  682. XK_lcedilla = $3b6;
  683. XK_emacron = $3ba;
  684. XK_gcedilla = $3bb;
  685. XK_tslash = $3bc;
  686. XKc_ENG = $3bd;
  687. XK_eng = $3bf;
  688. XKc_Amacron = $3c0;
  689. XKc_Iogonek = $3c7;
  690. XKc_Eabovedot = $3cc;
  691. XKc_Imacron = $3cf;
  692. XKc_Ncedilla = $3d1;
  693. XKc_Omacron = $3d2;
  694. XKc_Kcedilla = $3d3;
  695. XKc_Uogonek = $3d9;
  696. XKc_Utilde = $3dd;
  697. XKc_Umacron = $3de;
  698. XK_amacron = $3e0;
  699. XK_iogonek = $3e7;
  700. XK_eabovedot = $3ec;
  701. XK_imacron = $3ef;
  702. XK_ncedilla = $3f1;
  703. XK_omacron = $3f2;
  704. XK_kcedilla = $3f3;
  705. XK_uogonek = $3f9;
  706. XK_utilde = $3fd;
  707. XK_umacron = $3fe;
  708. {$ENDIF} { XK_LATIN4 }
  709. {*
  710. * Latin-8
  711. * Byte 3 = 18
  712. *}
  713. {$IFDEF XK_LATIN8}
  714. XKc_Babovedot = $12a1;
  715. XK_babovedot = $12a2;
  716. XKc_Dabovedot = $12a6;
  717. XKc_Wgrave = $12a8;
  718. XKc_Wacute = $12aa;
  719. XK_dabovedot = $12ab;
  720. XKc_Ygrave = $12ac;
  721. XKc_Fabovedot = $12b0;
  722. XK_fabovedot = $12b1;
  723. XKc_Mabovedot = $12b4;
  724. XK_mabovedot = $12b5;
  725. XKc_Pabovedot = $12b7;
  726. XK_wgrave = $12b8;
  727. XK_pabovedot = $12b9;
  728. XK_wacute = $12ba;
  729. XKc_Sabovedot = $12bb;
  730. XK_ygrave = $12bc;
  731. XKc_Wdiaeresis = $12bd;
  732. XK_wdiaeresis = $12be;
  733. XK_sabovedot = $12bf;
  734. XKc_Wcircumflex = $12d0;
  735. XKc_Tabovedot = $12d7;
  736. XKc_Ycircumflex = $12de;
  737. XK_wcircumflex = $12f0;
  738. XK_tabovedot = $12f7;
  739. XK_ycircumflex = $12fe;
  740. {$ENDIF} { XK_LATIN8 }
  741. {*
  742. * Latin-9 (a.k.a. Latin-0)
  743. * Byte 3 = 19
  744. *}
  745. {$IFDEF XK_LATIN9}
  746. XKc_OE = $13bc;
  747. XK_oe = $13bd;
  748. XKc_Ydiaeresis = $13be;
  749. {$ENDIF} { XK_LATIN9 }
  750. {*
  751. * Katakana
  752. * Byte 3 = 4
  753. *}
  754. {$IFDEF XK_KATAKANA}
  755. XK_overline = $47e;
  756. XK_kana_fullstop = $4a1;
  757. XK_kana_openingbracket = $4a2;
  758. XK_kana_closingbracket = $4a3;
  759. XK_kana_comma = $4a4;
  760. XK_kana_conjunctive = $4a5;
  761. XK_kana_middledot = $4a5; { deprecated }
  762. XKc_kana_WO = $4a6;
  763. XK_kana_a = $4a7;
  764. XK_kana_i = $4a8;
  765. XK_kana_u = $4a9;
  766. XK_kana_e = $4aa;
  767. XK_kana_o = $4ab;
  768. XK_kana_ya = $4ac;
  769. XK_kana_yu = $4ad;
  770. XK_kana_yo = $4ae;
  771. XK_kana_tsu = $4af;
  772. XK_kana_tu = $4af; { deprecated }
  773. XK_prolongedsound = $4b0;
  774. XKc_kana_A = $4b1;
  775. XKc_kana_I = $4b2;
  776. XKc_kana_U = $4b3;
  777. XKc_kana_E = $4b4;
  778. XKc_kana_O = $4b5;
  779. XKc_kana_KA = $4b6;
  780. XKc_kana_KI = $4b7;
  781. XKc_kana_KU = $4b8;
  782. XKc_kana_KE = $4b9;
  783. XKc_kana_KO = $4ba;
  784. XKc_kana_SA = $4bb;
  785. XKc_kana_SHI = $4bc;
  786. XKc_kana_SU = $4bd;
  787. XKc_kana_SE = $4be;
  788. XKc_kana_SO = $4bf;
  789. XKc_kana_TA = $4c0;
  790. XKc_kana_CHI = $4c1;
  791. XKc_kana_TI = $4c1; { deprecated }
  792. XKc_kana_TSU = $4c2;
  793. XKc_kana_TU = $4c2; { deprecated }
  794. XKc_kana_TE = $4c3;
  795. XKc_kana_TO = $4c4;
  796. XKc_kana_NA = $4c5;
  797. XKc_kana_NI = $4c6;
  798. XKc_kana_NU = $4c7;
  799. XKc_kana_NE = $4c8;
  800. XKc_kana_NO = $4c9;
  801. XKc_kana_HA = $4ca;
  802. XKc_kana_HI = $4cb;
  803. XKc_kana_FU = $4cc;
  804. XKc_kana_HU = $4cc; { deprecated }
  805. XKc_kana_HE = $4cd;
  806. XKc_kana_HO = $4ce;
  807. XKc_kana_MA = $4cf;
  808. XKc_kana_MI = $4d0;
  809. XKc_kana_MU = $4d1;
  810. XKc_kana_ME = $4d2;
  811. XKc_kana_MO = $4d3;
  812. XKc_kana_YA = $4d4;
  813. XKc_kana_YU = $4d5;
  814. XKc_kana_YO = $4d6;
  815. XKc_kana_RA = $4d7;
  816. XKc_kana_RI = $4d8;
  817. XKc_kana_RU = $4d9;
  818. XKc_kana_RE = $4da;
  819. XKc_kana_RO = $4db;
  820. XKc_kana_WA = $4dc;
  821. XKc_kana_N = $4dd;
  822. XK_voicedsound = $4de;
  823. XK_semivoicedsound = $4df;
  824. XK_kana_switch = $FF7E; { Alias for mode_switch }
  825. {$ENDIF} { XK_KATAKANA }
  826. {*
  827. * Arabic
  828. * Byte 3 = 5
  829. *}
  830. {$IFDEF XK_ARABIC}
  831. XK_Farsi_0 = $590;
  832. XK_Farsi_1 = $591;
  833. XK_Farsi_2 = $592;
  834. XK_Farsi_3 = $593;
  835. XK_Farsi_4 = $594;
  836. XK_Farsi_5 = $595;
  837. XK_Farsi_6 = $596;
  838. XK_Farsi_7 = $597;
  839. XK_Farsi_8 = $598;
  840. XK_Farsi_9 = $599;
  841. XK_Arabic_percent = $5a5;
  842. XK_Arabic_superscript_alef = $5a6;
  843. XK_Arabic_tteh = $5a7;
  844. XK_Arabic_peh = $5a8;
  845. XK_Arabic_tcheh = $5a9;
  846. XK_Arabic_ddal = $5aa;
  847. XK_Arabic_rreh = $5ab;
  848. XK_Arabic_comma = $5ac;
  849. XK_Arabic_fullstop = $5ae;
  850. XK_Arabic_0 = $5b0;
  851. XK_Arabic_1 = $5b1;
  852. XK_Arabic_2 = $5b2;
  853. XK_Arabic_3 = $5b3;
  854. XK_Arabic_4 = $5b4;
  855. XK_Arabic_5 = $5b5;
  856. XK_Arabic_6 = $5b6;
  857. XK_Arabic_7 = $5b7;
  858. XK_Arabic_8 = $5b8;
  859. XK_Arabic_9 = $5b9;
  860. XK_Arabic_semicolon = $5bb;
  861. XK_Arabic_question_mark = $5bf;
  862. XK_Arabic_hamza = $5c1;
  863. XK_Arabic_maddaonalef = $5c2;
  864. XK_Arabic_hamzaonalef = $5c3;
  865. XK_Arabic_hamzaonwaw = $5c4;
  866. XK_Arabic_hamzaunderalef = $5c5;
  867. XK_Arabic_hamzaonyeh = $5c6;
  868. XK_Arabic_alef = $5c7;
  869. XK_Arabic_beh = $5c8;
  870. XK_Arabic_tehmarbuta = $5c9;
  871. XK_Arabic_teh = $5ca;
  872. XK_Arabic_theh = $5cb;
  873. XK_Arabic_jeem = $5cc;
  874. XK_Arabic_hah = $5cd;
  875. XK_Arabic_khah = $5ce;
  876. XK_Arabic_dal = $5cf;
  877. XK_Arabic_thal = $5d0;
  878. XK_Arabic_ra = $5d1;
  879. XK_Arabic_zain = $5d2;
  880. XK_Arabic_seen = $5d3;
  881. XK_Arabic_sheen = $5d4;
  882. XK_Arabic_sad = $5d5;
  883. XK_Arabic_dad = $5d6;
  884. XK_Arabic_tah = $5d7;
  885. XK_Arabic_zah = $5d8;
  886. XK_Arabic_ain = $5d9;
  887. XK_Arabic_ghain = $5da;
  888. XK_Arabic_tatweel = $5e0;
  889. XK_Arabic_feh = $5e1;
  890. XK_Arabic_qaf = $5e2;
  891. XK_Arabic_kaf = $5e3;
  892. XK_Arabic_lam = $5e4;
  893. XK_Arabic_meem = $5e5;
  894. XK_Arabic_noon = $5e6;
  895. XK_Arabic_ha = $5e7;
  896. XK_Arabic_heh = $5e7; { deprecated }
  897. XK_Arabic_waw = $5e8;
  898. XK_Arabic_alefmaksura = $5e9;
  899. XK_Arabic_yeh = $5ea;
  900. XK_Arabic_fathatan = $5eb;
  901. XK_Arabic_dammatan = $5ec;
  902. XK_Arabic_kasratan = $5ed;
  903. XK_Arabic_fatha = $5ee;
  904. XK_Arabic_damma = $5ef;
  905. XK_Arabic_kasra = $5f0;
  906. XK_Arabic_shadda = $5f1;
  907. XK_Arabic_sukun = $5f2;
  908. XK_Arabic_madda_above = $5f3;
  909. XK_Arabic_hamza_above = $5f4;
  910. XK_Arabic_hamza_below = $5f5;
  911. XK_Arabic_jeh = $5f6;
  912. XK_Arabic_veh = $5f7;
  913. XK_Arabic_keheh = $5f8;
  914. XK_Arabic_gaf = $5f9;
  915. XK_Arabic_noon_ghunna = $5fa;
  916. XK_Arabic_heh_doachashmee = $5fb;
  917. XK_Farsi_yeh = $5fc;
  918. XK_Arabic_farsi_yeh = XK_Farsi_yeh;
  919. XK_Arabic_yeh_baree = $5fd;
  920. XK_Arabic_heh_goal = $5fe;
  921. XK_Arabic_switch = $FF7E; { Alias for mode_switch }
  922. {$ENDIF} { XK_ARABIC }
  923. {*
  924. * Cyrillic
  925. * Byte 3 = 6
  926. *}
  927. {$IFDEF XK_CYRILLIC}
  928. XKc_Cyrillic_GHE_bar = $680;
  929. XK_Cyrillic_ghe_bar = $690;
  930. XKc_Cyrillic_ZHE_descender = $681;
  931. XK_Cyrillic_zhe_descender = $691;
  932. XKc_Cyrillic_KA_descender = $682;
  933. XK_Cyrillic_ka_descender = $692;
  934. XKc_Cyrillic_KA_vertstroke = $683;
  935. XK_Cyrillic_ka_vertstroke = $693;
  936. XKc_Cyrillic_EN_descender = $684;
  937. XK_Cyrillic_en_descender = $694;
  938. XKc_Cyrillic_U_straight = $685;
  939. XK_Cyrillic_u_straight = $695;
  940. XKc_Cyrillic_U_straight_bar = $686;
  941. XK_Cyrillic_u_straight_bar = $696;
  942. XKc_Cyrillic_HA_descender = $687;
  943. XK_Cyrillic_ha_descender = $697;
  944. XKc_Cyrillic_CHE_descender = $688;
  945. XK_Cyrillic_che_descender = $698;
  946. XKc_Cyrillic_CHE_vertstroke = $689;
  947. XK_Cyrillic_che_vertstroke = $699;
  948. XKc_Cyrillic_SHHA = $68a;
  949. XK_Cyrillic_shha = $69a;
  950. XKc_Cyrillic_SCHWA = $68c;
  951. XK_Cyrillic_schwa = $69c;
  952. XKc_Cyrillic_I_macron = $68d;
  953. XK_Cyrillic_i_macron = $69d;
  954. XKc_Cyrillic_O_bar = $68e;
  955. XK_Cyrillic_o_bar = $69e;
  956. XKc_Cyrillic_U_macron = $68f;
  957. XK_Cyrillic_u_macron = $69f;
  958. XK_Serbian_dje = $6a1;
  959. XK_Macedonia_gje = $6a2;
  960. XK_Cyrillic_io = $6a3;
  961. XK_Ukrainian_ie = $6a4;
  962. XK_Ukranian_je = $6a4; { deprecated }
  963. XK_Macedonia_dse = $6a5;
  964. XK_Ukrainian_i = $6a6;
  965. XK_Ukranian_i = $6a6; { deprecated }
  966. XK_Ukrainian_yi = $6a7;
  967. XK_Ukranian_yi = $6a7; { deprecated }
  968. XK_Cyrillic_je = $6a8;
  969. XK_Serbian_je = $6a8; { deprecated }
  970. XK_Cyrillic_lje = $6a9;
  971. XK_Serbian_lje = $6a9; { deprecated }
  972. XK_Cyrillic_nje = $6aa;
  973. XK_Serbian_nje = $6aa; { deprecated }
  974. XK_Serbian_tshe = $6ab;
  975. XK_Macedonia_kje = $6ac;
  976. XK_Ukrainian_ghe_with_upturn = $6ad;
  977. XK_Byelorussian_shortu = $6ae;
  978. XK_Cyrillic_dzhe = $6af;
  979. XK_Serbian_dze = $6af; { deprecated }
  980. XK_numerosign = $6b0;
  981. XKc_Serbian_DJE = $6b1;
  982. XKc_Macedonia_GJE = $6b2;
  983. XKc_Cyrillic_IO = $6b3;
  984. XKc_Ukrainian_IE = $6b4;
  985. XKc_Ukranian_JE = $6b4; { deprecated }
  986. XKc_Macedonia_DSE = $6b5;
  987. XKc_Ukrainian_I = $6b6;
  988. XKc_Ukranian_I = $6b6; { deprecated }
  989. XKc_Ukrainian_YI = $6b7;
  990. XKc_Ukranian_YI = $6b7; { deprecated }
  991. XKc_Cyrillic_JE = $6b8;
  992. XKc_Serbian_JE = $6b8; { deprecated }
  993. XKc_Cyrillic_LJE = $6b9;
  994. XKc_Serbian_LJE = $6b9; { deprecated }
  995. XKc_Cyrillic_NJE = $6ba;
  996. XKc_Serbian_NJE = $6ba; { deprecated }
  997. XKc_Serbian_TSHE = $6bb;
  998. XKc_Macedonia_KJE = $6bc;
  999. XKc_Ukrainian_GHE_WITH_UPTURN = $6bd;
  1000. XKc_Byelorussian_SHORTU = $6be;
  1001. XKc_Cyrillic_DZHE = $6bf;
  1002. XKc_Serbian_DZE = $6bf; { deprecated }
  1003. XK_Cyrillic_yu = $6c0;
  1004. XK_Cyrillic_a = $6c1;
  1005. XK_Cyrillic_be = $6c2;
  1006. XK_Cyrillic_tse = $6c3;
  1007. XK_Cyrillic_de = $6c4;
  1008. XK_Cyrillic_ie = $6c5;
  1009. XK_Cyrillic_ef = $6c6;
  1010. XK_Cyrillic_ghe = $6c7;
  1011. XK_Cyrillic_ha = $6c8;
  1012. XK_Cyrillic_i = $6c9;
  1013. XK_Cyrillic_shorti = $6ca;
  1014. XK_Cyrillic_ka = $6cb;
  1015. XK_Cyrillic_el = $6cc;
  1016. XK_Cyrillic_em = $6cd;
  1017. XK_Cyrillic_en = $6ce;
  1018. XK_Cyrillic_o = $6cf;
  1019. XK_Cyrillic_pe = $6d0;
  1020. XK_Cyrillic_ya = $6d1;
  1021. XK_Cyrillic_er = $6d2;
  1022. XK_Cyrillic_es = $6d3;
  1023. XK_Cyrillic_te = $6d4;
  1024. XK_Cyrillic_u = $6d5;
  1025. XK_Cyrillic_zhe = $6d6;
  1026. XK_Cyrillic_ve = $6d7;
  1027. XK_Cyrillic_softsign = $6d8;
  1028. XK_Cyrillic_yeru = $6d9;
  1029. XK_Cyrillic_ze = $6da;
  1030. XK_Cyrillic_sha = $6db;
  1031. XK_Cyrillic_e = $6dc;
  1032. XK_Cyrillic_shcha = $6dd;
  1033. XK_Cyrillic_che = $6de;
  1034. XK_Cyrillic_hardsign = $6df;
  1035. XKc_Cyrillic_YU = $6e0;
  1036. XKc_Cyrillic_A = $6e1;
  1037. XKc_Cyrillic_BE = $6e2;
  1038. XKc_Cyrillic_TSE = $6e3;
  1039. XKc_Cyrillic_DE = $6e4;
  1040. XKc_Cyrillic_IE = $6e5;
  1041. XKc_Cyrillic_EF = $6e6;
  1042. XKc_Cyrillic_GHE = $6e7;
  1043. XKc_Cyrillic_HA = $6e8;
  1044. XKc_Cyrillic_I = $6e9;
  1045. XKc_Cyrillic_SHORTI = $6ea;
  1046. XKc_Cyrillic_KA = $6eb;
  1047. XKc_Cyrillic_EL = $6ec;
  1048. XKc_Cyrillic_EM = $6ed;
  1049. XKc_Cyrillic_EN = $6ee;
  1050. XKc_Cyrillic_O = $6ef;
  1051. XKc_Cyrillic_PE = $6f0;
  1052. XKc_Cyrillic_YA = $6f1;
  1053. XKc_Cyrillic_ER = $6f2;
  1054. XKc_Cyrillic_ES = $6f3;
  1055. XKc_Cyrillic_TE = $6f4;
  1056. XKc_Cyrillic_U = $6f5;
  1057. XKc_Cyrillic_ZHE = $6f6;
  1058. XKc_Cyrillic_VE = $6f7;
  1059. XKc_Cyrillic_SOFTSIGN = $6f8;
  1060. XKc_Cyrillic_YERU = $6f9;
  1061. XKc_Cyrillic_ZE = $6fa;
  1062. XKc_Cyrillic_SHA = $6fb;
  1063. XKc_Cyrillic_E = $6fc;
  1064. XKc_Cyrillic_SHCHA = $6fd;
  1065. XKc_Cyrillic_CHE = $6fe;
  1066. XKc_Cyrillic_HARDSIGN = $6ff;
  1067. {$ENDIF} { XK_CYRILLIC }
  1068. {*
  1069. * Greek
  1070. * Byte 3 = 7
  1071. *}
  1072. {$IFDEF XK_GREEK}
  1073. XKc_Greek_ALPHAaccent = $7a1;
  1074. XKc_Greek_EPSILONaccent = $7a2;
  1075. XKc_Greek_ETAaccent = $7a3;
  1076. XKc_Greek_IOTAaccent = $7a4;
  1077. XKc_Greek_IOTAdieresis = $7a5;
  1078. XKc_Greek_IOTAdiaeresis = XKc_Greek_IOTAdieresis; { old typo }
  1079. XKc_Greek_OMICRONaccent = $7a7;
  1080. XKc_Greek_UPSILONaccent = $7a8;
  1081. XKc_Greek_UPSILONdieresis = $7a9;
  1082. XKc_Greek_OMEGAaccent = $7ab;
  1083. XK_Greek_accentdieresis = $7ae;
  1084. XK_Greek_horizbar = $7af;
  1085. XK_Greek_alphaaccent = $7b1;
  1086. XK_Greek_epsilonaccent = $7b2;
  1087. XK_Greek_etaaccent = $7b3;
  1088. XK_Greek_iotaaccent = $7b4;
  1089. XK_Greek_iotadieresis = $7b5;
  1090. XK_Greek_iotaaccentdieresis = $7b6;
  1091. XK_Greek_omicronaccent = $7b7;
  1092. XK_Greek_upsilonaccent = $7b8;
  1093. XK_Greek_upsilondieresis = $7b9;
  1094. XK_Greek_upsilonaccentdieresis = $7ba;
  1095. XK_Greek_omegaaccent = $7bb;
  1096. XKc_Greek_ALPHA = $7c1;
  1097. XKc_Greek_BETA = $7c2;
  1098. XKc_Greek_GAMMA = $7c3;
  1099. XKc_Greek_DELTA = $7c4;
  1100. XKc_Greek_EPSILON = $7c5;
  1101. XKc_Greek_ZETA = $7c6;
  1102. XKc_Greek_ETA = $7c7;
  1103. XKc_Greek_THETA = $7c8;
  1104. XKc_Greek_IOTA = $7c9;
  1105. XKc_Greek_KAPPA = $7ca;
  1106. XKc_Greek_LAMDA = $7cb;
  1107. XKc_Greek_LAMBDA = $7cb;
  1108. XKc_Greek_MU = $7cc;
  1109. XKc_Greek_NU = $7cd;
  1110. XKc_Greek_XI = $7ce;
  1111. XKc_Greek_OMICRON = $7cf;
  1112. XKc_Greek_PI = $7d0;
  1113. XKc_Greek_RHO = $7d1;
  1114. XKc_Greek_SIGMA = $7d2;
  1115. XKc_Greek_TAU = $7d4;
  1116. XKc_Greek_UPSILON = $7d5;
  1117. XKc_Greek_PHI = $7d6;
  1118. XKc_Greek_CHI = $7d7;
  1119. XKc_Greek_PSI = $7d8;
  1120. XKc_Greek_OMEGA = $7d9;
  1121. XK_Greek_alpha = $7e1;
  1122. XK_Greek_beta = $7e2;
  1123. XK_Greek_gamma = $7e3;
  1124. XK_Greek_delta = $7e4;
  1125. XK_Greek_epsilon = $7e5;
  1126. XK_Greek_zeta = $7e6;
  1127. XK_Greek_eta = $7e7;
  1128. XK_Greek_theta = $7e8;
  1129. XK_Greek_iota = $7e9;
  1130. XK_Greek_kappa = $7ea;
  1131. XK_Greek_lamda = $7eb;
  1132. XK_Greek_lambda = $7eb;
  1133. XK_Greek_mu = $7ec;
  1134. XK_Greek_nu = $7ed;
  1135. XK_Greek_xi = $7ee;
  1136. XK_Greek_omicron = $7ef;
  1137. XK_Greek_pi = $7f0;
  1138. XK_Greek_rho = $7f1;
  1139. XK_Greek_sigma = $7f2;
  1140. XK_Greek_finalsmallsigma = $7f3;
  1141. XK_Greek_tau = $7f4;
  1142. XK_Greek_upsilon = $7f5;
  1143. XK_Greek_phi = $7f6;
  1144. XK_Greek_chi = $7f7;
  1145. XK_Greek_psi = $7f8;
  1146. XK_Greek_omega = $7f9;
  1147. XK_Greek_switch = $FF7E; { Alias for mode_switch }
  1148. {$ENDIF} { XK_GREEK }
  1149. {*
  1150. * Technical
  1151. * Byte 3 = 8
  1152. *}
  1153. {$IFDEF XK_TECHNICAL}
  1154. XK_leftradical = $8a1;
  1155. XK_topleftradical = $8a2;
  1156. XK_horizconnector = $8a3;
  1157. XK_topintegral = $8a4;
  1158. XK_botintegral = $8a5;
  1159. XK_vertconnector = $8a6;
  1160. XK_topleftsqbracket = $8a7;
  1161. XK_botleftsqbracket = $8a8;
  1162. XK_toprightsqbracket = $8a9;
  1163. XK_botrightsqbracket = $8aa;
  1164. XK_topleftparens = $8ab;
  1165. XK_botleftparens = $8ac;
  1166. XK_toprightparens = $8ad;
  1167. XK_botrightparens = $8ae;
  1168. XK_leftmiddlecurlybrace = $8af;
  1169. XK_rightmiddlecurlybrace = $8b0;
  1170. XK_topleftsummation = $8b1;
  1171. XK_botleftsummation = $8b2;
  1172. XK_topvertsummationconnector = $8b3;
  1173. XK_botvertsummationconnector = $8b4;
  1174. XK_toprightsummation = $8b5;
  1175. XK_botrightsummation = $8b6;
  1176. XK_rightmiddlesummation = $8b7;
  1177. XK_lessthanequal = $8bc;
  1178. XK_notequal = $8bd;
  1179. XK_greaterthanequal = $8be;
  1180. XK_integral = $8bf;
  1181. XK_therefore = $8c0;
  1182. XK_variation = $8c1;
  1183. XK_infinity = $8c2;
  1184. XK_nabla = $8c5;
  1185. XK_approximate = $8c8;
  1186. XK_similarequal = $8c9;
  1187. XK_ifonlyif = $8cd;
  1188. XK_implies = $8ce;
  1189. XK_identical = $8cf;
  1190. XK_radical = $8d6;
  1191. XK_includedin = $8da;
  1192. XK_includes = $8db;
  1193. XK_intersection = $8dc;
  1194. XK_union = $8dd;
  1195. XK_logicaland = $8de;
  1196. XK_logicalor = $8df;
  1197. XK_partialderivative = $8ef;
  1198. XK_function = $8f6;
  1199. XK_leftarrow = $8fb;
  1200. XK_uparrow = $8fc;
  1201. XK_rightarrow = $8fd;
  1202. XK_downarrow = $8fe;
  1203. {$ENDIF} { XK_TECHNICAL }
  1204. {*
  1205. * Special
  1206. * Byte 3 = 9
  1207. *}
  1208. {$IFDEF XK_SPECIAL}
  1209. XK_blank = $9df;
  1210. XK_soliddiamond = $9e0;
  1211. XK_checkerboard = $9e1;
  1212. XK_ht = $9e2;
  1213. XK_ff = $9e3;
  1214. XK_cr = $9e4;
  1215. XK_lf = $9e5;
  1216. XK_nl = $9e8;
  1217. XK_vt = $9e9;
  1218. XK_lowrightcorner = $9ea;
  1219. XK_uprightcorner = $9eb;
  1220. XK_upleftcorner = $9ec;
  1221. XK_lowleftcorner = $9ed;
  1222. XK_crossinglines = $9ee;
  1223. XK_horizlinescan1 = $9ef;
  1224. XK_horizlinescan3 = $9f0;
  1225. XK_horizlinescan5 = $9f1;
  1226. XK_horizlinescan7 = $9f2;
  1227. XK_horizlinescan9 = $9f3;
  1228. XK_leftt = $9f4;
  1229. XK_rightt = $9f5;
  1230. XK_bott = $9f6;
  1231. XK_topt = $9f7;
  1232. XK_vertbar = $9f8;
  1233. {$ENDIF} { XK_SPECIAL }
  1234. {*
  1235. * Publishing
  1236. * Byte 3 = a
  1237. *}
  1238. {$IFDEF XK_PUBLISHING}
  1239. XK_emspace = $aa1;
  1240. XK_enspace = $aa2;
  1241. XK_em3space = $aa3;
  1242. XK_em4space = $aa4;
  1243. XK_digitspace = $aa5;
  1244. XK_punctspace = $aa6;
  1245. XK_thinspace = $aa7;
  1246. XK_hairspace = $aa8;
  1247. XK_emdash = $aa9;
  1248. XK_endash = $aaa;
  1249. XK_signifblank = $aac;
  1250. XK_ellipsis = $aae;
  1251. XK_doubbaselinedot = $aaf;
  1252. XK_onethird = $ab0;
  1253. XK_twothirds = $ab1;
  1254. XK_onefifth = $ab2;
  1255. XK_twofifths = $ab3;
  1256. XK_threefifths = $ab4;
  1257. XK_fourfifths = $ab5;
  1258. XK_onesixth = $ab6;
  1259. XK_fivesixths = $ab7;
  1260. XK_careof = $ab8;
  1261. XK_figdash = $abb;
  1262. XK_leftanglebracket = $abc;
  1263. XK_decimalpoint = $abd;
  1264. XK_rightanglebracket = $abe;
  1265. XK_marker = $abf;
  1266. XK_oneeighth = $ac3;
  1267. XK_threeeighths = $ac4;
  1268. XK_fiveeighths = $ac5;
  1269. XK_seveneighths = $ac6;
  1270. XK_trademark = $ac9;
  1271. XK_signaturemark = $aca;
  1272. XK_trademarkincircle = $acb;
  1273. XK_leftopentriangle = $acc;
  1274. XK_rightopentriangle = $acd;
  1275. XK_emopencircle = $ace;
  1276. XK_emopenrectangle = $acf;
  1277. XK_leftsinglequotemark = $ad0;
  1278. XK_rightsinglequotemark = $ad1;
  1279. XK_leftdoublequotemark = $ad2;
  1280. XK_rightdoublequotemark = $ad3;
  1281. XK_prescription = $ad4;
  1282. XK_minutes = $ad6;
  1283. XK_seconds = $ad7;
  1284. XK_latincross = $ad9;
  1285. XK_hexagram = $ada;
  1286. XK_filledrectbullet = $adb;
  1287. XK_filledlefttribullet = $adc;
  1288. XK_filledrighttribullet = $add;
  1289. XK_emfilledcircle = $ade;
  1290. XK_emfilledrect = $adf;
  1291. XK_enopencircbullet = $ae0;
  1292. XK_enopensquarebullet = $ae1;
  1293. XK_openrectbullet = $ae2;
  1294. XK_opentribulletup = $ae3;
  1295. XK_opentribulletdown = $ae4;
  1296. XK_openstar = $ae5;
  1297. XK_enfilledcircbullet = $ae6;
  1298. XK_enfilledsqbullet = $ae7;
  1299. XK_filledtribulletup = $ae8;
  1300. XK_filledtribulletdown = $ae9;
  1301. XK_leftpointer = $aea;
  1302. XK_rightpointer = $aeb;
  1303. XK_club = $aec;
  1304. XK_diamond = $aed;
  1305. XK_heart = $aee;
  1306. XK_maltesecross = $af0;
  1307. XK_dagger = $af1;
  1308. XK_doubledagger = $af2;
  1309. XK_checkmark = $af3;
  1310. XK_ballotcross = $af4;
  1311. XK_musicalsharp = $af5;
  1312. XK_musicalflat = $af6;
  1313. XK_malesymbol = $af7;
  1314. XK_femalesymbol = $af8;
  1315. XK_telephone = $af9;
  1316. XK_telephonerecorder = $afa;
  1317. XK_phonographcopyright = $afb;
  1318. XK_caret = $afc;
  1319. XK_singlelowquotemark = $afd;
  1320. XK_doublelowquotemark = $afe;
  1321. XK_cursor = $aff;
  1322. {$ENDIF} { XK_PUBLISHING }
  1323. {*
  1324. * APL
  1325. * Byte 3 = b
  1326. *}
  1327. {$IFDEF XK_APL}
  1328. XK_leftcaret = $ba3;
  1329. XK_rightcaret = $ba6;
  1330. XK_downcaret = $ba8;
  1331. XK_upcaret = $ba9;
  1332. XK_overbar = $bc0;
  1333. XK_downtack = $bc2;
  1334. XK_upshoe = $bc3;
  1335. XK_downstile = $bc4;
  1336. XK_underbar = $bc6;
  1337. XK_jot = $bca;
  1338. XK_quad = $bcc;
  1339. XK_uptack = $bce;
  1340. XK_circle = $bcf;
  1341. XK_upstile = $bd3;
  1342. XK_downshoe = $bd6;
  1343. XK_rightshoe = $bd8;
  1344. XK_leftshoe = $bda;
  1345. XK_lefttack = $bdc;
  1346. XK_righttack = $bfc;
  1347. {$ENDIF} { XK_APL }
  1348. {*
  1349. * Hebrew
  1350. * Byte 3 = c
  1351. *}
  1352. {$IFDEF XK_HEBREW}
  1353. XK_hebrew_doublelowline = $cdf;
  1354. XK_hebrew_aleph = $ce0;
  1355. XK_hebrew_bet = $ce1;
  1356. XK_hebrew_beth = $ce1; { deprecated }
  1357. XK_hebrew_gimel = $ce2;
  1358. XK_hebrew_gimmel = $ce2; { deprecated }
  1359. XK_hebrew_dalet = $ce3;
  1360. XK_hebrew_daleth = $ce3; { deprecated }
  1361. XK_hebrew_he = $ce4;
  1362. XK_hebrew_waw = $ce5;
  1363. XK_hebrew_zain = $ce6;
  1364. XK_hebrew_zayin = $ce6; { deprecated }
  1365. XK_hebrew_chet = $ce7;
  1366. XK_hebrew_het = $ce7; { deprecated }
  1367. XK_hebrew_tet = $ce8;
  1368. XK_hebrew_teth = $ce8; { deprecated }
  1369. XK_hebrew_yod = $ce9;
  1370. XK_hebrew_finalkaph = $cea;
  1371. XK_hebrew_kaph = $ceb;
  1372. XK_hebrew_lamed = $cec;
  1373. XK_hebrew_finalmem = $ced;
  1374. XK_hebrew_mem = $cee;
  1375. XK_hebrew_finalnun = $cef;
  1376. XK_hebrew_nun = $cf0;
  1377. XK_hebrew_samech = $cf1;
  1378. XK_hebrew_samekh = $cf1; { deprecated }
  1379. XK_hebrew_ayin = $cf2;
  1380. XK_hebrew_finalpe = $cf3;
  1381. XK_hebrew_pe = $cf4;
  1382. XK_hebrew_finalzade = $cf5;
  1383. XK_hebrew_finalzadi = $cf5; { deprecated }
  1384. XK_hebrew_zade = $cf6;
  1385. XK_hebrew_zadi = $cf6; { deprecated }
  1386. XK_hebrew_qoph = $cf7;
  1387. XK_hebrew_kuf = $cf7; { deprecated }
  1388. XK_hebrew_resh = $cf8;
  1389. XK_hebrew_shin = $cf9;
  1390. XK_hebrew_taw = $cfa;
  1391. XK_hebrew_taf = $cfa; { deprecated }
  1392. XK_Hebrew_switch = $FF7E; { Alias for mode_switch }
  1393. {$ENDIF} { XK_HEBREW }
  1394. {*
  1395. * Thai
  1396. * Byte 3 = d
  1397. *}
  1398. {$IFDEF XK_THAI}
  1399. XK_Thai_kokai = $da1;
  1400. XK_Thai_khokhai = $da2;
  1401. XK_Thai_khokhuat = $da3;
  1402. XK_Thai_khokhwai = $da4;
  1403. XK_Thai_khokhon = $da5;
  1404. XK_Thai_khorakhang = $da6;
  1405. XK_Thai_ngongu = $da7;
  1406. XK_Thai_chochan = $da8;
  1407. XK_Thai_choching = $da9;
  1408. XK_Thai_chochang = $daa;
  1409. XK_Thai_soso = $dab;
  1410. XK_Thai_chochoe = $dac;
  1411. XK_Thai_yoying = $dad;
  1412. XK_Thai_dochada = $dae;
  1413. XK_Thai_topatak = $daf;
  1414. XK_Thai_thothan = $db0;
  1415. XK_Thai_thonangmontho = $db1;
  1416. XK_Thai_thophuthao = $db2;
  1417. XK_Thai_nonen = $db3;
  1418. XK_Thai_dodek = $db4;
  1419. XK_Thai_totao = $db5;
  1420. XK_Thai_thothung = $db6;
  1421. XK_Thai_thothahan = $db7;
  1422. XK_Thai_thothong = $db8;
  1423. XK_Thai_nonu = $db9;
  1424. XK_Thai_bobaimai = $dba;
  1425. XK_Thai_popla = $dbb;
  1426. XK_Thai_phophung = $dbc;
  1427. XK_Thai_fofa = $dbd;
  1428. XK_Thai_phophan = $dbe;
  1429. XK_Thai_fofan = $dbf;
  1430. XK_Thai_phosamphao = $dc0;
  1431. XK_Thai_moma = $dc1;
  1432. XK_Thai_yoyak = $dc2;
  1433. XK_Thai_rorua = $dc3;
  1434. XK_Thai_ru = $dc4;
  1435. XK_Thai_loling = $dc5;
  1436. XK_Thai_lu = $dc6;
  1437. XK_Thai_wowaen = $dc7;
  1438. XK_Thai_sosala = $dc8;
  1439. XK_Thai_sorusi = $dc9;
  1440. XK_Thai_sosua = $dca;
  1441. XK_Thai_hohip = $dcb;
  1442. XK_Thai_lochula = $dcc;
  1443. XK_Thai_oang = $dcd;
  1444. XK_Thai_honokhuk = $dce;
  1445. XK_Thai_paiyannoi = $dcf;
  1446. XK_Thai_saraa = $dd0;
  1447. XK_Thai_maihanakat = $dd1;
  1448. XK_Thai_saraaa = $dd2;
  1449. XK_Thai_saraam = $dd3;
  1450. XK_Thai_sarai = $dd4;
  1451. XK_Thai_saraii = $dd5;
  1452. XK_Thai_saraue = $dd6;
  1453. XK_Thai_sarauee = $dd7;
  1454. XK_Thai_sarau = $dd8;
  1455. XK_Thai_sarauu = $dd9;
  1456. XK_Thai_phinthu = $dda;
  1457. XK_Thai_maihanakat_maitho = $dde;
  1458. XK_Thai_baht = $ddf;
  1459. XK_Thai_sarae = $de0;
  1460. XK_Thai_saraae = $de1;
  1461. XK_Thai_sarao = $de2;
  1462. XK_Thai_saraaimaimuan = $de3;
  1463. XK_Thai_saraaimaimalai = $de4;
  1464. XK_Thai_lakkhangyao = $de5;
  1465. XK_Thai_maiyamok = $de6;
  1466. XK_Thai_maitaikhu = $de7;
  1467. XK_Thai_maiek = $de8;
  1468. XK_Thai_maitho = $de9;
  1469. XK_Thai_maitri = $dea;
  1470. XK_Thai_maichattawa = $deb;
  1471. XK_Thai_thanthakhat = $dec;
  1472. XK_Thai_nikhahit = $ded;
  1473. XK_Thai_leksun = $df0;
  1474. XK_Thai_leknung = $df1;
  1475. XK_Thai_leksong = $df2;
  1476. XK_Thai_leksam = $df3;
  1477. XK_Thai_leksi = $df4;
  1478. XK_Thai_lekha = $df5;
  1479. XK_Thai_lekhok = $df6;
  1480. XK_Thai_lekchet = $df7;
  1481. XK_Thai_lekpaet = $df8;
  1482. XK_Thai_lekkao = $df9;
  1483. {$ENDIF} { XK_THAI }
  1484. {*
  1485. * Korean
  1486. * Byte 3 = e
  1487. *}
  1488. {$IFDEF XK_KOREAN}
  1489. XK_Hangul = $ff31; { Hangul start/stop(toggle) }
  1490. XK_Hangul_Start = $ff32; { Hangul start }
  1491. XK_Hangul_End = $ff33; { Hangul end, English start }
  1492. XK_Hangul_Hanja = $ff34; { Start Hangul->Hanja Conversion }
  1493. XK_Hangul_Jamo = $ff35; { Hangul Jamo mode }
  1494. XK_Hangul_Romaja = $ff36; { Hangul Romaja mode }
  1495. XK_Hangul_Codeinput = $ff37; { Hangul code input mode }
  1496. XK_Hangul_Jeonja = $ff38; { Jeonja mode }
  1497. XK_Hangul_Banja = $ff39; { Banja mode }
  1498. XK_Hangul_PreHanja = $ff3a; { Pre Hanja conversion }
  1499. XK_Hangul_PostHanja = $ff3b; { Post Hanja conversion }
  1500. XK_Hangul_SingleCandidate = $ff3c; { Single candidate }
  1501. XK_Hangul_MultipleCandidate = $ff3d; { Multiple candidate }
  1502. XK_Hangul_PreviousCandidate = $ff3e; { Previous candidate }
  1503. XK_Hangul_Special = $ff3f; { Special symbols }
  1504. XK_Hangul_switch = $FF7E; { Alias for mode_switch }
  1505. { Hangul Consonant Characters }
  1506. XK_Hangul_Kiyeog = $ea1;
  1507. XK_Hangul_SsangKiyeog = $ea2;
  1508. XK_Hangul_KiyeogSios = $ea3;
  1509. XK_Hangul_Nieun = $ea4;
  1510. XK_Hangul_NieunJieuj = $ea5;
  1511. XK_Hangul_NieunHieuh = $ea6;
  1512. XK_Hangul_Dikeud = $ea7;
  1513. XK_Hangul_SsangDikeud = $ea8;
  1514. XK_Hangul_Rieul = $ea9;
  1515. XK_Hangul_RieulKiyeog = $eaa;
  1516. XK_Hangul_RieulMieum = $eab;
  1517. XK_Hangul_RieulPieub = $eac;
  1518. XK_Hangul_RieulSios = $ead;
  1519. XK_Hangul_RieulTieut = $eae;
  1520. XK_Hangul_RieulPhieuf = $eaf;
  1521. XK_Hangul_RieulHieuh = $eb0;
  1522. XK_Hangul_Mieum = $eb1;
  1523. XK_Hangul_Pieub = $eb2;
  1524. XK_Hangul_SsangPieub = $eb3;
  1525. XK_Hangul_PieubSios = $eb4;
  1526. XK_Hangul_Sios = $eb5;
  1527. XK_Hangul_SsangSios = $eb6;
  1528. XK_Hangul_Ieung = $eb7;
  1529. XK_Hangul_Jieuj = $eb8;
  1530. XK_Hangul_SsangJieuj = $eb9;
  1531. XK_Hangul_Cieuc = $eba;
  1532. XK_Hangul_Khieuq = $ebb;
  1533. XK_Hangul_Tieut = $ebc;
  1534. XK_Hangul_Phieuf = $ebd;
  1535. XK_Hangul_Hieuh = $ebe;
  1536. { Hangul Vowel Characters }
  1537. XK_Hangul_A = $ebf;
  1538. XK_Hangul_AE = $ec0;
  1539. XK_Hangul_YA = $ec1;
  1540. XK_Hangul_YAE = $ec2;
  1541. XK_Hangul_EO = $ec3;
  1542. XK_Hangul_E = $ec4;
  1543. XK_Hangul_YEO = $ec5;
  1544. XK_Hangul_YE = $ec6;
  1545. XK_Hangul_O = $ec7;
  1546. XK_Hangul_WA = $ec8;
  1547. XK_Hangul_WAE = $ec9;
  1548. XK_Hangul_OE = $eca;
  1549. XK_Hangul_YO = $ecb;
  1550. XK_Hangul_U = $ecc;
  1551. XK_Hangul_WEO = $ecd;
  1552. XK_Hangul_WE = $ece;
  1553. XK_Hangul_WI = $ecf;
  1554. XK_Hangul_YU = $ed0;
  1555. XK_Hangul_EU = $ed1;
  1556. XK_Hangul_YI = $ed2;
  1557. XK_Hangul_I = $ed3;
  1558. { Hangul syllable-final (JongSeong) Characters }
  1559. XK_Hangul_J_Kiyeog = $ed4;
  1560. XK_Hangul_J_SsangKiyeog = $ed5;
  1561. XK_Hangul_J_KiyeogSios = $ed6;
  1562. XK_Hangul_J_Nieun = $ed7;
  1563. XK_Hangul_J_NieunJieuj = $ed8;
  1564. XK_Hangul_J_NieunHieuh = $ed9;
  1565. XK_Hangul_J_Dikeud = $eda;
  1566. XK_Hangul_J_Rieul = $edb;
  1567. XK_Hangul_J_RieulKiyeog = $edc;
  1568. XK_Hangul_J_RieulMieum = $edd;
  1569. XK_Hangul_J_RieulPieub = $ede;
  1570. XK_Hangul_J_RieulSios = $edf;
  1571. XK_Hangul_J_RieulTieut = $ee0;
  1572. XK_Hangul_J_RieulPhieuf = $ee1;
  1573. XK_Hangul_J_RieulHieuh = $ee2;
  1574. XK_Hangul_J_Mieum = $ee3;
  1575. XK_Hangul_J_Pieub = $ee4;
  1576. XK_Hangul_J_PieubSios = $ee5;
  1577. XK_Hangul_J_Sios = $ee6;
  1578. XK_Hangul_J_SsangSios = $ee7;
  1579. XK_Hangul_J_Ieung = $ee8;
  1580. XK_Hangul_J_Jieuj = $ee9;
  1581. XK_Hangul_J_Cieuc = $eea;
  1582. XK_Hangul_J_Khieuq = $eeb;
  1583. XK_Hangul_J_Tieut = $eec;
  1584. XK_Hangul_J_Phieuf = $eed;
  1585. XK_Hangul_J_Hieuh = $eee;
  1586. { Ancient Hangul Consonant Characters }
  1587. XK_Hangul_RieulYeorinHieuh = $eef;
  1588. XK_Hangul_SunkyeongeumMieum = $ef0;
  1589. XK_Hangul_SunkyeongeumPieub = $ef1;
  1590. XK_Hangul_PanSios = $ef2;
  1591. XK_Hangul_KkogjiDalrinIeung = $ef3;
  1592. XK_Hangul_SunkyeongeumPhieuf = $ef4;
  1593. XK_Hangul_YeorinHieuh = $ef5;
  1594. { Ancient Hangul Vowel Characters }
  1595. XK_Hangul_AraeA = $ef6;
  1596. XK_Hangul_AraeAE = $ef7;
  1597. { Ancient Hangul syllable-final (JongSeong) Characters }
  1598. XK_Hangul_J_PanSios = $ef8;
  1599. XK_Hangul_J_KkogjiDalrinIeung = $ef9;
  1600. XK_Hangul_J_YeorinHieuh = $efa;
  1601. { Korean currency symbol }
  1602. XK_Korean_Won = $eff;
  1603. {$ENDIF} { XK_KOREAN }
  1604. {*
  1605. * Armenian
  1606. * Byte 3 = = $14
  1607. *}
  1608. {$IFDEF XK_ARMENIAN}
  1609. XK_Armenian_eternity = $14a1;
  1610. XK_Armenian_ligature_ew = $14a2;
  1611. XK_Armenian_full_stop = $14a3;
  1612. XK_Armenian_verjaket = $14a3;
  1613. XK_Armenian_parenright = $14a4;
  1614. XK_Armenian_parenleft = $14a5;
  1615. XK_Armenian_guillemotright = $14a6;
  1616. XK_Armenian_guillemotleft = $14a7;
  1617. XK_Armenian_em_dash = $14a8;
  1618. XK_Armenian_dot = $14a9;
  1619. XK_Armenian_mijaket = $14a9;
  1620. XK_Armenian_separation_mark = $14aa;
  1621. XK_Armenian_but = $14aa;
  1622. XK_Armenian_comma = $14ab;
  1623. XK_Armenian_en_dash = $14ac;
  1624. XK_Armenian_hyphen = $14ad;
  1625. XK_Armenian_yentamna = $14ad;
  1626. XK_Armenian_ellipsis = $14ae;
  1627. XK_Armenian_exclam = $14af;
  1628. XK_Armenian_amanak = $14af;
  1629. XK_Armenian_accent = $14b0;
  1630. XK_Armenian_shesht = $14b0;
  1631. XK_Armenian_question = $14b1;
  1632. XK_Armenian_paruyk = $14b1;
  1633. XKc_Armenian_AYB = $14b2;
  1634. XK_Armenian_ayb = $14b3;
  1635. XKc_Armenian_BEN = $14b4;
  1636. XK_Armenian_ben = $14b5;
  1637. XKc_Armenian_GIM = $14b6;
  1638. XK_Armenian_gim = $14b7;
  1639. XKc_Armenian_DA = $14b8;
  1640. XK_Armenian_da = $14b9;
  1641. XKc_Armenian_YECH = $14ba;
  1642. XK_Armenian_yech = $14bb;
  1643. XKc_Armenian_ZA = $14bc;
  1644. XK_Armenian_za = $14bd;
  1645. XKc_Armenian_E = $14be;
  1646. XK_Armenian_e = $14bf;
  1647. XKc_Armenian_AT = $14c0;
  1648. XK_Armenian_at = $14c1;
  1649. XKc_Armenian_TO = $14c2;
  1650. XK_Armenian_to = $14c3;
  1651. XKc_Armenian_ZHE = $14c4;
  1652. XK_Armenian_zhe = $14c5;
  1653. XKc_Armenian_INI = $14c6;
  1654. XK_Armenian_ini = $14c7;
  1655. XKc_Armenian_LYUN = $14c8;
  1656. XK_Armenian_lyun = $14c9;
  1657. XKc_Armenian_KHE = $14ca;
  1658. XK_Armenian_khe = $14cb;
  1659. XKc_Armenian_TSA = $14cc;
  1660. XK_Armenian_tsa = $14cd;
  1661. XKc_Armenian_KEN = $14ce;
  1662. XK_Armenian_ken = $14cf;
  1663. XKc_Armenian_HO = $14d0;
  1664. XK_Armenian_ho = $14d1;
  1665. XKc_Armenian_DZA = $14d2;
  1666. XK_Armenian_dza = $14d3;
  1667. XKc_Armenian_GHAT = $14d4;
  1668. XK_Armenian_ghat = $14d5;
  1669. XKc_Armenian_TCHE = $14d6;
  1670. XK_Armenian_tche = $14d7;
  1671. XKc_Armenian_MEN = $14d8;
  1672. XK_Armenian_men = $14d9;
  1673. XKc_Armenian_HI = $14da;
  1674. XK_Armenian_hi = $14db;
  1675. XKc_Armenian_NU = $14dc;
  1676. XK_Armenian_nu = $14dd;
  1677. XKc_Armenian_SHA = $14de;
  1678. XK_Armenian_sha = $14df;
  1679. XKc_Armenian_VO = $14e0;
  1680. XK_Armenian_vo = $14e1;
  1681. XKc_Armenian_CHA = $14e2;
  1682. XK_Armenian_cha = $14e3;
  1683. XKc_Armenian_PE = $14e4;
  1684. XK_Armenian_pe = $14e5;
  1685. XKc_Armenian_JE = $14e6;
  1686. XK_Armenian_je = $14e7;
  1687. XKc_Armenian_RA = $14e8;
  1688. XK_Armenian_ra = $14e9;
  1689. XKc_Armenian_SE = $14ea;
  1690. XK_Armenian_se = $14eb;
  1691. XKc_Armenian_VEV = $14ec;
  1692. XK_Armenian_vev = $14ed;
  1693. XKc_Armenian_TYUN = $14ee;
  1694. XK_Armenian_tyun = $14ef;
  1695. XKc_Armenian_RE = $14f0;
  1696. XK_Armenian_re = $14f1;
  1697. XKc_Armenian_TSO = $14f2;
  1698. XK_Armenian_tso = $14f3;
  1699. XKc_Armenian_VYUN = $14f4;
  1700. XK_Armenian_vyun = $14f5;
  1701. XKc_Armenian_PYUR = $14f6;
  1702. XK_Armenian_pyur = $14f7;
  1703. XKc_Armenian_KE = $14f8;
  1704. XK_Armenian_ke = $14f9;
  1705. XKc_Armenian_O = $14fa;
  1706. XK_Armenian_o = $14fb;
  1707. XKc_Armenian_FE = $14fc;
  1708. XK_Armenian_fe = $14fd;
  1709. XK_Armenian_apostrophe = $14fe;
  1710. XK_Armenian_section_sign = $14ff;
  1711. {$ENDIF} { XK_ARMENIAN }
  1712. {*
  1713. * Georgian
  1714. * Byte 3 = = $15
  1715. *}
  1716. {$IFDEF XK_GEORGIAN}
  1717. XK_Georgian_an = $15d0;
  1718. XK_Georgian_ban = $15d1;
  1719. XK_Georgian_gan = $15d2;
  1720. XK_Georgian_don = $15d3;
  1721. XK_Georgian_en = $15d4;
  1722. XK_Georgian_vin = $15d5;
  1723. XK_Georgian_zen = $15d6;
  1724. XK_Georgian_tan = $15d7;
  1725. XK_Georgian_in = $15d8;
  1726. XK_Georgian_kan = $15d9;
  1727. XK_Georgian_las = $15da;
  1728. XK_Georgian_man = $15db;
  1729. XK_Georgian_nar = $15dc;
  1730. XK_Georgian_on = $15dd;
  1731. XK_Georgian_par = $15de;
  1732. XK_Georgian_zhar = $15df;
  1733. XK_Georgian_rae = $15e0;
  1734. XK_Georgian_san = $15e1;
  1735. XK_Georgian_tar = $15e2;
  1736. XK_Georgian_un = $15e3;
  1737. XK_Georgian_phar = $15e4;
  1738. XK_Georgian_khar = $15e5;
  1739. XK_Georgian_ghan = $15e6;
  1740. XK_Georgian_qar = $15e7;
  1741. XK_Georgian_shin = $15e8;
  1742. XK_Georgian_chin = $15e9;
  1743. XK_Georgian_can = $15ea;
  1744. XK_Georgian_jil = $15eb;
  1745. XK_Georgian_cil = $15ec;
  1746. XK_Georgian_char = $15ed;
  1747. XK_Georgian_xan = $15ee;
  1748. XK_Georgian_jhan = $15ef;
  1749. XK_Georgian_hae = $15f0;
  1750. XK_Georgian_he = $15f1;
  1751. XK_Georgian_hie = $15f2;
  1752. XK_Georgian_we = $15f3;
  1753. XK_Georgian_har = $15f4;
  1754. XK_Georgian_hoe = $15f5;
  1755. XK_Georgian_fi = $15f6;
  1756. {$ENDIF} { XK_GEORGIAN }
  1757. {*
  1758. * Azeri (and other Turkic or Caucasian languages of ex-USSR)
  1759. * Byte 3 = = $16
  1760. *}
  1761. {$IFDEF XK_CAUCASUS}
  1762. { latin }
  1763. XKc_Ccedillaabovedot = $16a2;
  1764. XKc_Xabovedot = $16a3;
  1765. XKc_Qabovedot = $16a5;
  1766. XKc_Ibreve = $16a6;
  1767. XKc_IE = $16a7;
  1768. XKc_UO = $16a8;
  1769. XKc_Zstroke = $16a9;
  1770. XKc_Gcaron = $16aa;
  1771. XKc_Obarred = $16af;
  1772. XK_ccedillaabovedot = $16b2;
  1773. XK_xabovedot = $16b3;
  1774. XKc_Ocaron = $16b4;
  1775. XK_qabovedot = $16b5;
  1776. XK_ibreve = $16b6;
  1777. XK_ie = $16b7;
  1778. XK_uo = $16b8;
  1779. XK_zstroke = $16b9;
  1780. XK_gcaron = $16ba;
  1781. XK_ocaron = $16bd;
  1782. XK_obarred = $16bf;
  1783. XKc_SCHWA = $16c6;
  1784. XK_schwa = $16f6;
  1785. { those are not really Caucasus, but I put them here for now }
  1786. { For Inupiak }
  1787. XKc_Lbelowdot = $16d1;
  1788. XKc_Lstrokebelowdot = $16d2;
  1789. XK_lbelowdot = $16e1;
  1790. XK_lstrokebelowdot = $16e2;
  1791. { For Guarani }
  1792. XKc_Gtilde = $16d3;
  1793. XK_gtilde = $16e3;
  1794. {$ENDIF} { XK_CAUCASUS }
  1795. {*
  1796. * Vietnamese
  1797. * Byte 3 = = $1e
  1798. *}
  1799. {$IFDEF XK_VIETNAMESE}
  1800. XKc_Abelowdot = $1ea0;
  1801. XK_abelowdot = $1ea1;
  1802. XKc_Ahook = $1ea2;
  1803. XK_ahook = $1ea3;
  1804. XKc_Acircumflexacute = $1ea4;
  1805. XK_acircumflexacute = $1ea5;
  1806. XKc_Acircumflexgrave = $1ea6;
  1807. XK_acircumflexgrave = $1ea7;
  1808. XKc_Acircumflexhook = $1ea8;
  1809. XK_acircumflexhook = $1ea9;
  1810. XKc_Acircumflextilde = $1eaa;
  1811. XK_acircumflextilde = $1eab;
  1812. XKc_Acircumflexbelowdot = $1eac;
  1813. XK_acircumflexbelowdot = $1ead;
  1814. XKc_Abreveacute = $1eae;
  1815. XK_abreveacute = $1eaf;
  1816. XKc_Abrevegrave = $1eb0;
  1817. XK_abrevegrave = $1eb1;
  1818. XKc_Abrevehook = $1eb2;
  1819. XK_abrevehook = $1eb3;
  1820. XKc_Abrevetilde = $1eb4;
  1821. XK_abrevetilde = $1eb5;
  1822. XKc_Abrevebelowdot = $1eb6;
  1823. XK_abrevebelowdot = $1eb7;
  1824. XKc_Ebelowdot = $1eb8;
  1825. XK_ebelowdot = $1eb9;
  1826. XKc_Ehook = $1eba;
  1827. XK_ehook = $1ebb;
  1828. XKc_Etilde = $1ebc;
  1829. XK_etilde = $1ebd;
  1830. XKc_Ecircumflexacute = $1ebe;
  1831. XK_ecircumflexacute = $1ebf;
  1832. XKc_Ecircumflexgrave = $1ec0;
  1833. XK_ecircumflexgrave = $1ec1;
  1834. XKc_Ecircumflexhook = $1ec2;
  1835. XK_ecircumflexhook = $1ec3;
  1836. XKc_Ecircumflextilde = $1ec4;
  1837. XK_ecircumflextilde = $1ec5;
  1838. XKc_Ecircumflexbelowdot = $1ec6;
  1839. XK_ecircumflexbelowdot = $1ec7;
  1840. XKc_Ihook = $1ec8;
  1841. XK_ihook = $1ec9;
  1842. XKc_Ibelowdot = $1eca;
  1843. XK_ibelowdot = $1ecb;
  1844. XKc_Obelowdot = $1ecc;
  1845. XK_obelowdot = $1ecd;
  1846. XKc_Ohook = $1ece;
  1847. XK_ohook = $1ecf;
  1848. XKc_Ocircumflexacute = $1ed0;
  1849. XK_ocircumflexacute = $1ed1;
  1850. XKc_Ocircumflexgrave = $1ed2;
  1851. XK_ocircumflexgrave = $1ed3;
  1852. XKc_Ocircumflexhook = $1ed4;
  1853. XK_ocircumflexhook = $1ed5;
  1854. XKc_Ocircumflextilde = $1ed6;
  1855. XK_ocircumflextilde = $1ed7;
  1856. XKc_Ocircumflexbelowdot = $1ed8;
  1857. XK_ocircumflexbelowdot = $1ed9;
  1858. XKc_Ohornacute = $1eda;
  1859. XK_ohornacute = $1edb;
  1860. XKc_Ohorngrave = $1edc;
  1861. XK_ohorngrave = $1edd;
  1862. XKc_Ohornhook = $1ede;
  1863. XK_ohornhook = $1edf;
  1864. XKc_Ohorntilde = $1ee0;
  1865. XK_ohorntilde = $1ee1;
  1866. XKc_Ohornbelowdot = $1ee2;
  1867. XK_ohornbelowdot = $1ee3;
  1868. XKc_Ubelowdot = $1ee4;
  1869. XK_ubelowdot = $1ee5;
  1870. XKc_Uhook = $1ee6;
  1871. XK_uhook = $1ee7;
  1872. XKc_Uhornacute = $1ee8;
  1873. XK_uhornacute = $1ee9;
  1874. XKc_Uhorngrave = $1eea;
  1875. XK_uhorngrave = $1eeb;
  1876. XKc_Uhornhook = $1eec;
  1877. XK_uhornhook = $1eed;
  1878. XKc_Uhorntilde = $1eee;
  1879. XK_uhorntilde = $1eef;
  1880. XKc_Uhornbelowdot = $1ef0;
  1881. XK_uhornbelowdot = $1ef1;
  1882. XKc_Ybelowdot = $1ef4;
  1883. XK_ybelowdot = $1ef5;
  1884. XKc_Yhook = $1ef6;
  1885. XK_yhook = $1ef7;
  1886. XKc_Ytilde = $1ef8;
  1887. XK_ytilde = $1ef9;
  1888. XKc_Ohorn = $1efa; { U+01a0 }
  1889. XK_ohorn = $1efb; { U+01a1 }
  1890. XKc_Uhorn = $1efc; { U+01af }
  1891. XK_uhorn = $1efd; { U+01b0 }
  1892. XK_combining_tilde = $1e9f; { U+0303 }
  1893. XK_combining_grave = $1ef2; { U+0300 }
  1894. XK_combining_acute = $1ef3; { U+0301 }
  1895. XK_combining_hook = $1efe; { U+0309 }
  1896. XK_combining_belowdot = $1eff; { U+0323 }
  1897. {$ENDIF} { XK_VIETNAMESE }
  1898. {$IFDEF XK_CURRENCY}
  1899. XK_EcuSign = $20a0;
  1900. XK_ColonSign = $20a1;
  1901. XK_CruzeiroSign = $20a2;
  1902. XK_FFrancSign = $20a3;
  1903. XK_LiraSign = $20a4;
  1904. XK_MillSign = $20a5;
  1905. XK_NairaSign = $20a6;
  1906. XK_PesetaSign = $20a7;
  1907. XK_RupeeSign = $20a8;
  1908. XK_WonSign = $20a9;
  1909. XK_NewSheqelSign = $20aa;
  1910. XK_DongSign = $20ab;
  1911. XK_EuroSign = $20ac;
  1912. {$ENDIF}
  1913. Implementation
  1914. End.