diff --git a/libc/kernel/common/linux/hil.h b/libc/kernel/common/linux/hil.h
index f6017a3..a0b3b97 100644
--- a/libc/kernel/common/linux/hil.h
+++ b/libc/kernel/common/linux/hil.h
@@ -7,270 +7,250 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _HIL_H_
 #define _HIL_H_
+
 #include <asm/types.h>
+
 #define HIL_CLOCK 8MHZ
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_EK1_CLOCK 30HZ
 #define HIL_EK2_CLOCK 60HZ
+
 #define HIL_TIMEOUT_DEV 5  
 #define HIL_TIMEOUT_DEVS 10  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_TIMEOUT_NORESP 10  
 #define HIL_TIMEOUT_DEVS_DATA 16  
 #define HIL_TIMEOUT_SELFTEST 200  
+
 #define HIL_WIRE_PACKET_LEN 15
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum hil_wire_bitpos {
  HIL_WIRE_START = 0,
  HIL_WIRE_ADDR2,
  HIL_WIRE_ADDR1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_WIRE_ADDR0,
  HIL_WIRE_COMMAND,
  HIL_WIRE_DATA7,
  HIL_WIRE_DATA6,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_WIRE_DATA5,
  HIL_WIRE_DATA4,
  HIL_WIRE_DATA3,
  HIL_WIRE_DATA2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_WIRE_DATA1,
  HIL_WIRE_DATA0,
  HIL_WIRE_PARITY,
  HIL_WIRE_STOP
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 enum hil_pkt_bitpos {
  HIL_PKT_CMD = 0x00000800,
  HIL_PKT_ADDR2 = 0x00000400,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_PKT_ADDR1 = 0x00000200,
  HIL_PKT_ADDR0 = 0x00000100,
  HIL_PKT_ADDR_MASK = 0x00000700,
  HIL_PKT_ADDR_SHIFT = 8,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_PKT_DATA7 = 0x00000080,
  HIL_PKT_DATA6 = 0x00000040,
  HIL_PKT_DATA5 = 0x00000020,
  HIL_PKT_DATA4 = 0x00000010,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_PKT_DATA3 = 0x00000008,
  HIL_PKT_DATA2 = 0x00000004,
  HIL_PKT_DATA1 = 0x00000002,
  HIL_PKT_DATA0 = 0x00000001,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_PKT_DATA_MASK = 0x000000FF,
  HIL_PKT_DATA_SHIFT = 0
 };
+
 enum hil_error_bitpos {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_ERR_OB = 0x00000800,
  HIL_ERR_INT = 0x00010000,
  HIL_ERR_NMI = 0x00020000,
  HIL_ERR_LERR = 0x00040000,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_ERR_PERR = 0x01000000,
  HIL_ERR_FERR = 0x02000000,
  HIL_ERR_FOF = 0x04000000
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 enum hil_control_bitpos {
  HIL_CTRL_TEST = 0x00010000,
  HIL_CTRL_IPF = 0x00040000,
  HIL_CTRL_APE = 0x02000000
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 #define HIL_DO_ALTER_CTRL 0x40000000  
 #define HIL_CTRL_ONLY 0xc0000000  
+
 typedef u32 hil_packet;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 enum hil_command {
  HIL_CMD_IFC = 0x00,
  HIL_CMD_EPT = 0x01,
  HIL_CMD_ELB = 0x02,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_CMD_IDD = 0x03,
  HIL_CMD_DSR = 0x04,
  HIL_CMD_PST = 0x05,
  HIL_CMD_RRG = 0x06,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_CMD_WRG = 0x07,
  HIL_CMD_ACF = 0x08,
  HIL_CMDID_ACF = 0x07,
  HIL_CMD_POL = 0x10,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_CMDCT_POL = 0x0f,
  HIL_CMD_RPL = 0x20,
  HIL_CMDCT_RPL = 0x0f,
  HIL_CMD_RNM = 0x30,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_CMD_RST = 0x31,
  HIL_CMD_EXD = 0x32,
  HIL_CMD_RSC = 0x33,
+
  HIL_CMD_DKA = 0x3d,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_CMD_EK1 = 0x3e,
  HIL_CMD_EK2 = 0x3f,
  HIL_CMD_PR1 = 0x40,
  HIL_CMD_PR2 = 0x41,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_CMD_PR3 = 0x42,
  HIL_CMD_PR4 = 0x43,
  HIL_CMD_PR5 = 0x44,
  HIL_CMD_PR6 = 0x45,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_CMD_PR7 = 0x46,
  HIL_CMD_PRM = 0x47,
  HIL_CMD_AK1 = 0x48,
  HIL_CMD_AK2 = 0x49,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_CMD_AK3 = 0x4a,
  HIL_CMD_AK4 = 0x4b,
  HIL_CMD_AK5 = 0x4c,
  HIL_CMD_AK6 = 0x4d,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_CMD_AK7 = 0x4e,
  HIL_CMD_ACK = 0x4f,
+
  HIL_CMD_RIO = 0xfa,
  HIL_CMD_SHR = 0xfb,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  HIL_CMD_TER = 0xfc,
  HIL_CMD_CAE = 0xfd,
  HIL_CMD_DHR = 0xfe,
+
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define HIL_IDD_DID_TYPE_MASK 0xe0  
 #define HIL_IDD_DID_TYPE_KB_INTEGRAL 0xa0  
 #define HIL_IDD_DID_TYPE_KB_ITF 0xc0  
 #define HIL_IDD_DID_TYPE_KB_RSVD 0xe0  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_DID_TYPE_KB_LANG_MASK 0x1f  
 #define HIL_IDD_DID_KBLANG_USE_ESD 0x00  
 #define HIL_IDD_DID_TYPE_ABS 0x80  
 #define HIL_IDD_DID_ABS_RSVD1_MASK 0xf8  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_DID_ABS_RSVD1 0x98
 #define HIL_IDD_DID_ABS_TABLET_MASK 0xf8  
 #define HIL_IDD_DID_ABS_TABLET 0x90
 #define HIL_IDD_DID_ABS_TSCREEN_MASK 0xfc  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_DID_ABS_TSCREEN 0x8c
 #define HIL_IDD_DID_ABS_RSVD2_MASK 0xfc  
 #define HIL_IDD_DID_ABS_RSVD2 0x88
 #define HIL_IDD_DID_ABS_RSVD3_MASK 0xfc  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_DID_ABS_RSVD3 0x80
 #define HIL_IDD_DID_TYPE_REL 0x60  
 #define HIL_IDD_DID_REL_RSVD1_MASK 0xf0  
 #define HIL_IDD_DID_REL_RSVD1 0x70
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_DID_REL_RSVD2_MASK 0xfc  
 #define HIL_IDD_DID_REL_RSVD2 0x6c
 #define HIL_IDD_DID_REL_MOUSE_MASK 0xfc  
 #define HIL_IDD_DID_REL_MOUSE 0x68
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_DID_REL_QUAD_MASK 0xf8  
 #define HIL_IDD_DID_REL_QUAD 0x60
 #define HIL_IDD_DID_TYPE_CHAR 0x40  
 #define HIL_IDD_DID_CHAR_BARCODE_MASK 0xfc  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_DID_CHAR_BARCODE 0x5c
 #define HIL_IDD_DID_CHAR_RSVD1_MASK 0xfc  
 #define HIL_IDD_DID_CHAR_RSVD1 0x58
 #define HIL_IDD_DID_CHAR_RSVD2_MASK 0xf8  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_DID_CHAR_RSVD2 0x50
 #define HIL_IDD_DID_CHAR_RSVD3_MASK 0xf0  
 #define HIL_IDD_DID_CHAR_RSVD3 0x40
 #define HIL_IDD_DID_TYPE_OTHER 0x20  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_DID_OTHER_RSVD1_MASK 0xf0  
 #define HIL_IDD_DID_OTHER_RSVD1 0x30
 #define HIL_IDD_DID_OTHER_BARCODE_MASK 0xfc  
 #define HIL_IDD_DID_OTHER_BARCODE 0x2c
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_DID_OTHER_RSVD2_MASK 0xfc  
 #define HIL_IDD_DID_OTHER_RSVD2 0x28
 #define HIL_IDD_DID_OTHER_RSVD3_MASK 0xf8  
 #define HIL_IDD_DID_OTHER_RSVD3 0x20
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_DID_TYPE_KEYPAD 0x00  
+
 #define HIL_IDD_HEADER_AXSET_MASK 0x03  
 #define HIL_IDD_HEADER_RSC 0x04  
 #define HIL_IDD_HEADER_EXD 0x08  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_HEADER_IOD 0x10  
 #define HIL_IDD_HEADER_16BIT 0x20  
 #define HIL_IDD_HEADER_ABS 0x40  
 #define HIL_IDD_HEADER_2X_AXIS 0x80  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define HIL_IDD_IOD_NBUTTON_MASK 0x07  
 #define HIL_IDD_IOD_PROXIMITY 0x08  
 #define HIL_IDD_IOD_PROMPT_MASK 0x70  
 #define HIL_IDD_IOD_PROMPT_SHIFT 4
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_IDD_IOD_PROMPT 0x80  
+
 #define HIL_IDD_NUM_AXES_PER_SET(header_packet)  ((header_packet) & HIL_IDD_HEADER_AXSET_MASK)
+
 #define HIL_IDD_NUM_AXSETS(header_packet)  (2 - !((header_packet) & HIL_IDD_HEADER_2X_AXIS))
+
 #define HIL_IDD_LEN(header_packet)  ((4 - !(header_packet & HIL_IDD_HEADER_IOD) -   2 * !(HIL_IDD_NUM_AXES_PER_SET(header_packet))) +   2 * HIL_IDD_NUM_AXES_PER_SET(header_packet) *   !!((header_packet) & HIL_IDD_HEADER_ABS))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define HIL_IDD_AXIS_COUNTS_PER_M(header_ptr)  (!(HIL_IDD_NUM_AXSETS(*(header_ptr))) ? -1 :  (((*(header_ptr + 1) & HIL_PKT_DATA_MASK) +   ((*(header_ptr + 2) & HIL_PKT_DATA_MASK)) << 8)  * ((*(header_ptr) & HIL_IDD_HEADER_16BIT) ? 100 : 1)))
+
 #define HIL_IDD_AXIS_MAX(header_ptr, __axnum)  ((!(*(header_ptr) & HIL_IDD_HEADER_ABS) ||   (HIL_IDD_NUM_AXES_PER_SET(*(header_ptr)) <= __axnum)) ? 0 :   ((HIL_PKT_DATA_MASK & *((header_ptr) + 3 + 2 * __axnum)) +   ((HIL_PKT_DATA_MASK & *((header_ptr) + 4 + 2 * __axnum)) << 8)))
+
 #define HIL_IDD_IOD(header_ptr)  (*(header_ptr + HIL_IDD_LEN((*header_ptr)) - 1))
+
 #define HIL_IDD_HAS_GEN_PROMPT(header_ptr)  ((*header_ptr & HIL_IDD_HEADER_IOD) &&   (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROMPT))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define HIL_IDD_HAS_GEN_PROXIMITY(header_ptr)  ((*header_ptr & HIL_IDD_HEADER_IOD) &&   (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROXIMITY))
+
 #define HIL_IDD_NUM_BUTTONS(header_ptr)  ((*header_ptr & HIL_IDD_HEADER_IOD) ?   (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NBUTTON_MASK) : 0)
+
 #define HIL_IDD_NUM_PROMPTS(header_ptr)  ((*header_ptr & HIL_IDD_HEADER_IOD) ?   ((HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NPROMPT_MASK)   >> HIL_IDD_IOD_PROMPT_SHIFT) : 0)
+
 #define HIL_EXD_HEADER_WRG 0x03  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_EXD_HEADER_WRG_TYPE1 0x01  
 #define HIL_EXD_HEADER_WRG_TYPE2 0x02  
 #define HIL_EXD_HEADER_RRG 0x04  
 #define HIL_EXD_HEADER_RNM 0x10  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_EXD_HEADER_RST 0x20  
 #define HIL_EXD_HEADER_LOCALE 0x40  
+
 #define HIL_EXD_NUM_RRG(header_ptr)  ((*header_ptr & HIL_EXD_HEADER_RRG) ?   (*(header_ptr + 1) & HIL_PKT_DATA_MASK) : 0)
+
 #define HIL_EXD_NUM_WWG(header_ptr)  ((*header_ptr & HIL_EXD_HEADER_WRG) ?   (*(header_ptr + 2 - !(*header_ptr & HIL_EXD_HEADER_RRG)) &   HIL_PKT_DATA_MASK) : 0)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define HIL_EXD_LEN(header_ptr)  (!!(*header_ptr & HIL_EXD_HEADER_RRG) +   !!(*header_ptr & HIL_EXD_HEADER_WRG) +   !!(*header_ptr & HIL_EXD_HEADER_LOCALE) +   2 * !!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) + 1)
+
 #define HIL_EXD_LOCALE(header_ptr)  (!(*header_ptr & HIL_EXD_HEADER_LOCALE) ? -1 :   (*(header_ptr + HIL_EXD_LEN(header_ptr) - 1) & HIL_PKT_DATA_MASK))
+
 #define HIL_EXD_WRG_TYPE2_LEN(header_ptr)  (!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) ? -1 :   (*(header_ptr + HIL_EXD_LEN(header_ptr) - 2 -   !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) +   ((*(header_ptr + HIL_EXD_LEN(header_ptr) - 1 -   !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) << 8))
+
 #define HIL_LOCALE_MAX 0x1f
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define HIL_LOCALE_MAP  "",    "",    "",    "swiss.french",    "portuguese",    "arabic",    "hebrew",    "english.canadian",    "turkish",    "greek",    "thai",    "italian",    "korean",    "dutch",    "swedish",    "german",    "chinese",    "chinese",    "swiss.french",    "spanish",    "swiss.german",    "flemish",    "finnish",    "english.uk",    "french.canadian",    "swiss.german",    "norwegian",    "french",    "danish",    "japanese",    "spanish",   "english.us"    
+
 #define HIL_KEYCODES_SET1_TBLSIZE 128
 #define HIL_KEYCODES_SET1   KEY_5, KEY_RESERVED, KEY_RIGHTALT, KEY_LEFTALT,   KEY_RIGHTSHIFT, KEY_LEFTSHIFT, KEY_LEFTCTRL, KEY_SYSRQ,   KEY_KP4, KEY_KP8, KEY_KP5, KEY_KP9,   KEY_KP6, KEY_KP7, KEY_KPCOMMA, KEY_KPENTER,   KEY_KP1, KEY_KPSLASH, KEY_KP2, KEY_KPPLUS,   KEY_KP3, KEY_KPASTERISK, KEY_KP0, KEY_KPMINUS,   KEY_B, KEY_V, KEY_C, KEY_X,   KEY_Z, KEY_RESERVED, KEY_RESERVED, KEY_ESC,   KEY_6, KEY_F10, KEY_3, KEY_F11,   KEY_KPDOT, KEY_F9, KEY_TAB  , KEY_F12,   KEY_H, KEY_G, KEY_F, KEY_D,   KEY_S, KEY_A, KEY_RESERVED, KEY_CAPSLOCK,   KEY_U, KEY_Y, KEY_T, KEY_R,   KEY_E, KEY_W, KEY_Q, KEY_TAB,   KEY_7, KEY_6, KEY_5, KEY_4,   KEY_3, KEY_2, KEY_1, KEY_GRAVE,   KEY_F13, KEY_F14, KEY_F15, KEY_F16,   KEY_F17, KEY_F18, KEY_F19, KEY_F20,   KEY_MENU, KEY_F4, KEY_F3, KEY_F2,   KEY_F1, KEY_VOLUMEUP, KEY_STOP, KEY_SENDFILE,   KEY_SYSRQ, KEY_F5, KEY_F6, KEY_F7,   KEY_F8, KEY_VOLUMEDOWN, KEY_DEL_EOL, KEY_DEL_EOS,   KEY_8, KEY_9, KEY_0, KEY_MINUS,   KEY_EQUAL, KEY_BACKSPACE, KEY_INS_LINE, KEY_DEL_LINE,   KEY_I, KEY_O, KEY_P, KEY_LEFTBRACE,   KEY_RIGHTBRACE, KEY_BACKSLASH, KEY_INSERT, KEY_DELETE,   KEY_J, KEY_K, KEY_L, KEY_SEMICOLON,   KEY_APOSTROPHE, KEY_ENTER, KEY_HOME, KEY_PAGEUP,   KEY_M, KEY_COMMA, KEY_DOT, KEY_SLASH,   KEY_BACKSLASH, KEY_SELECT, KEY_102ND, KEY_PAGEDOWN,   KEY_N, KEY_SPACE, KEY_NEXT, KEY_RESERVED,   KEY_LEFT, KEY_DOWN, KEY_UP, KEY_RIGHT
+
 #define HIL_KEYCODES_SET3_TBLSIZE 128
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_KEYCODES_SET3   KEY_RESERVED, KEY_ESC, KEY_1, KEY_2,   KEY_3, KEY_4, KEY_5, KEY_6,   KEY_7, KEY_8, KEY_9, KEY_0,   KEY_MINUS, KEY_EQUAL, KEY_BACKSPACE, KEY_TAB,   KEY_Q, KEY_W, KEY_E, KEY_R,   KEY_T, KEY_Y, KEY_U, KEY_I,   KEY_O, KEY_P, KEY_LEFTBRACE, KEY_RIGHTBRACE,   KEY_ENTER, KEY_LEFTCTRL, KEY_A, KEY_S,   KEY_D, KEY_F, KEY_G, KEY_H,   KEY_J, KEY_K, KEY_L, KEY_SEMICOLON,   KEY_APOSTROPHE,KEY_GRAVE, KEY_LEFTSHIFT, KEY_BACKSLASH,   KEY_Z, KEY_X, KEY_C, KEY_V,   KEY_B, KEY_N, KEY_M, KEY_COMMA,   KEY_DOT, KEY_SLASH, KEY_RIGHTSHIFT, KEY_KPASTERISK,   KEY_LEFTALT, KEY_SPACE, KEY_CAPSLOCK, KEY_F1,   KEY_F2, KEY_F3, KEY_F4, KEY_F5,   KEY_F6, KEY_F7, KEY_F8, KEY_F9,   KEY_F10, KEY_NUMLOCK, KEY_SCROLLLOCK, KEY_KP7,   KEY_KP8, KEY_KP9, KEY_KPMINUS, KEY_KP4,   KEY_KP5, KEY_KP6, KEY_KPPLUS, KEY_KP1,   KEY_KP2, KEY_KP3, KEY_KP0, KEY_KPDOT,   KEY_SYSRQ, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,   KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,   KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,   KEY_UP, KEY_LEFT, KEY_DOWN, KEY_RIGHT,   KEY_HOME, KEY_PAGEUP, KEY_END, KEY_PAGEDOWN,   KEY_INSERT, KEY_DELETE, KEY_102ND, KEY_RESERVED,   KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,   KEY_F1, KEY_F2, KEY_F3, KEY_F4,   KEY_F5, KEY_F6, KEY_F7, KEY_F8,   KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,   KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED
+
 #define HIL_POL_NUM_AXES_MASK 0x03  
 #define HIL_POL_CTS 0x04  
 #define HIL_POL_STATUS_PENDING 0x08  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_POL_CHARTYPE_MASK 0x70  
 #define HIL_POL_CHARTYPE_NONE 0x00  
 #define HIL_POL_CHARTYPE_RSVD1 0x10  
 #define HIL_POL_CHARTYPE_ASCII 0x20  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_POL_CHARTYPE_BINARY 0x30  
 #define HIL_POL_CHARTYPE_SET1 0x40  
 #define HIL_POL_CHARTYPE_RSVD2 0x50  
 #define HIL_POL_CHARTYPE_SET2 0x60  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HIL_POL_CHARTYPE_SET3 0x70  
 #define HIL_POL_AXIS_ALT 0x80  
+
 #endif
