<s> import ctypes as ct <EOL> class POINT ( ct . Structure ) : <EOL> _fields_ = [ ( "<STR_LIT:x>" , ct . c_ulong ) , ( "<STR_LIT:y>" , ct . c_ulong ) ] <EOL> PUL = ct . POINTER ( ct . c_ulong ) <EOL> GMEM_DDESHARE = <NUM_LIT> <EOL> class KEYBOARD_INPUT ( ct . Structure ) : <EOL> _fields_ = [ ( "<STR_LIT>" , ct . c_ushort ) , <EOL> ( "<STR_LIT>" , ct . c_ushort ) , <EOL> ( "<STR_LIT>" , ct . c_ulong ) , <EOL> ( "<STR_LIT:time>" , ct . c_ulong ) , <EOL> ( "<STR_LIT>" , PUL ) ] <EOL> class HARDWARE_INPUT ( ct . Structure ) : <EOL> _fields_ = [ ( "<STR_LIT>" , ct . c_ulong ) , <EOL> ( "<STR_LIT>" , ct . c_short ) , <EOL> ( "<STR_LIT>" , ct . c_ushort ) ] <EOL> class MOUSE_INPUT ( ct . Structure ) : <EOL> _fields_ = [ ( "<STR_LIT>" , ct . c_long ) , <EOL> ( "<STR_LIT>" , ct . c_long ) , <EOL> ( "<STR_LIT>" , ct . c_ulong ) , <EOL> ( "<STR_LIT>" , ct . c_ulong ) , <EOL> ( "<STR_LIT:time>" , ct . c_ulong ) , <EOL> ( "<STR_LIT>" , PUL ) ] <EOL> class INPUT_I ( ct . Union ) : <EOL> _fields_ = [ ( "<STR_LIT>" , KEYBOARD_INPUT ) , <EOL> ( "<STR_LIT>" , MOUSE_INPUT ) , <EOL> ( "<STR_LIT>" , HARDWARE_INPUT ) ] <EOL> class INPUT ( ct . Structure ) : <EOL> _fields_ = [ ( "<STR_LIT:type>" , ct . c_ulong ) , <EOL> ( "<STR_LIT>" , INPUT_I ) ] <EOL> WINDOWS_KEYCODES = { <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT:\n>' : <NUM_LIT> , <EOL> '<STR_LIT:\r\n>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT:U+0020>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT:end>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT:left>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT:right>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT:0>' : <NUM_LIT> , <EOL> '<STR_LIT:1>' : <NUM_LIT> , <EOL> '<STR_LIT:2>' : <NUM_LIT> , <EOL> '<STR_LIT:3>' : <NUM_LIT> , <EOL> '<STR_LIT:4>' : <NUM_LIT> , <EOL> '<STR_LIT:5>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT:a>' : <NUM_LIT> , <EOL> '<STR_LIT:b>' : <NUM_LIT> , <EOL> '<STR_LIT:c>' : <NUM_LIT> , <EOL> '<STR_LIT:d>' : <NUM_LIT> , <EOL> '<STR_LIT:e>' : <NUM_LIT> , <EOL> '<STR_LIT:f>' : <NUM_LIT> , <EOL> '<STR_LIT:g>' : <NUM_LIT> , <EOL> '<STR_LIT:h>' : <NUM_LIT> , <EOL> '<STR_LIT:i>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT:k>' : <NUM_LIT> , <EOL> '<STR_LIT:l>' : <NUM_LIT> , <EOL> '<STR_LIT:m>' : <NUM_LIT> , <EOL> '<STR_LIT:n>' : <NUM_LIT> , <EOL> '<STR_LIT:o>' : <NUM_LIT> , <EOL> '<STR_LIT:p>' : <NUM_LIT> , <EOL> '<STR_LIT:q>' : <NUM_LIT> , <EOL> '<STR_LIT:r>' : <NUM_LIT> , <EOL> '<STR_LIT:s>' : <NUM_LIT> , <EOL> '<STR_LIT:t>' : <NUM_LIT> , <EOL> '<STR_LIT:u>' : <NUM_LIT> , <EOL> '<STR_LIT:v>' : <NUM_LIT> , <EOL> '<STR_LIT:w>' : <NUM_LIT> , <EOL> '<STR_LIT:x>' : <NUM_LIT> , <EOL> '<STR_LIT:y>' : <NUM_LIT> , <EOL> '<STR_LIT:z>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT:.>' : <NUM_LIT> , <EOL> '<STR_LIT:U+002C>' : <NUM_LIT> , <EOL> '<STR_LIT:;>' : <NUM_LIT> , <EOL> "<STR_LIT:'>" : <NUM_LIT> , <EOL> '<STR_LIT:/>' : <NUM_LIT> , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT:->' : <NUM_LIT> , <EOL> '<STR_LIT:=>' : <NUM_LIT> , <EOL> '<STR_LIT:[>' : <NUM_LIT> , <EOL> '<STR_LIT:\\>' : <NUM_LIT> , <EOL> '<STR_LIT:]>' : <NUM_LIT> , <EOL> } <EOL> WINDOWS_SHIFT_MAP = { <EOL> '<STR_LIT:)>' : '<STR_LIT:0>' , <EOL> '<STR_LIT:!>' : '<STR_LIT:1>' , <EOL> '<STR_LIT:@>' : '<STR_LIT:2>' , <EOL> '<STR_LIT:#>' : '<STR_LIT:3>' , <EOL> '<STR_LIT:$>' : '<STR_LIT:4>' , <EOL> '<STR_LIT:%>' : '<STR_LIT:5>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:&>' : '<STR_LIT>' , <EOL> '<STR_LIT:*>' : '<STR_LIT>' , <EOL> '<STR_LIT:(>' : '<STR_LIT>' , <EOL> '<STR_LIT:<>' : '<STR_LIT:U+002C>' , <EOL> '<STR_LIT:>>' : '<STR_LIT:.>' , <EOL> '<STR_LIT:?>' : '<STR_LIT:/>' , <EOL> '<STR_LIT:">' : "<STR_LIT:'>" , <EOL> '<STR_LIT::>' : '<STR_LIT:;>' , <EOL> '<STR_LIT:{>' : '<STR_LIT:[>' , <EOL> '<STR_LIT:}>' : '<STR_LIT:]>' , <EOL> '<STR_LIT:|>' : '<STR_LIT:\\>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:_>' : '<STR_LIT:->' , <EOL> '<STR_LIT:+>' : '<STR_LIT:=>' , <EOL> } </s>
