a oe @s&ddlZddlZddlZdZiZiZdddddZdd Zed d Zej ej Bej ej ej ej Bej ej Bej ej Bej ej ej ej ej dd Zd dZdej fgdej ej Bfdej fdej fgdej ej Bfdej fdej fggZddZddZddZddZddZed kr"edS)!NZescZenterZpgupZpgdn)escapereturnZbacknextcCs`ddtjD}|D]F}tt|}|dd}|t|<|tvrRt|}|t|<|t|<qdS)NcSsg|]}|dr|qS)ZVK_) startswith).0entryr CC:\Program Files\Certbot\pkgs\pythonwin\pywin\scintilla\keycodes.py z_fillvkmap..)win32con__dict__getattrlowerkey_name_to_vk _better_nameskey_code_to_name)namesnamecodenr r r _fillvkmaps rcCst|dkrt|}|dkr"dSt|}t|}d}|d@rL|tjO}|d@rd|tjtjBO}|d@r||tj tj BO}||fSt | dfS)N)rrrr)lenwin32apiZ VkKeyScanZLOBYTEZHIBYTEr SHIFT_PRESSEDLEFT_CTRL_PRESSEDRIGHT_CTRL_PRESSEDLEFT_ALT_PRESSEDRIGHT_ALT_PRESSEDrgetr)Zchardescinfovkstate modifiersr r r get_vk"s     r)) ZaltZlaltZraltZctrlZctlZcontrolZlctrlZlctlZrctrlZrctlshiftkeyc Cs|d}d}}t|}g}||kr`||dvrV|||}|||d7}|}|d7}qd}|ddD]"}t|}|durp||O}qpt|d\}} ||| BfS)N-rz+-rr)rappendrr(r$r)) rstartposmaxZtokstokflagsmodr&Z this_flagsr r r parse_key_nameHs$    r4ZShiftZCtrlZLCtrlZRCtrlZAltZLAltZRAltc Csd}g}tD]0}|D]&\}}||@r||||@}q qq ||@rZ|t||@|durn|dn@z|t|Wn,tyt|t}|t|Yn0d}||vrd}| dd|DS)Nrz+r,cSsg|] }|qSr ) capitalize)rpr r r r r z!make_key_name..) _checksr-hexrKeyErrorrZ MapVirtualKeyMAPVK_VK_TO_CHARchrjoin) r&r2Z flags_donepartsZmoddatarZ checkflagZscancodesepr r r make_key_namets*     r@cCs,t|\}}tdt||t|fdS)NzChar %s -> %d -> %s)r)printreprrr$)charZscZmodsr r r _pscs rDcCs(dD] }t|qdD] }t|qdS)NzaA0/?[{}];:'"`~_-+=\|,<.>/?)ZHomeZEndZLeftZRightZUpZDownZMenuZNext)rD)Zchrr r r test1s rEcCs*t|\}}td|||t||fdS)Nz%s -> %s,%s -> %s)r4rAr@)rr&r2r r r _pkns rFcCstdtdtdtdtdtdtdtdtd td td td td tdtdtdtdtdtdtdtdtdtdtddS)Nzctrl+alt-shift+xz ctrl-homezShift-+zShift--zShift+-zShift++zLShift-+zctl+homez ctl+enterz alt+returnzAlt+/zAlt+BadKeyNameAazShift-AzShift-a(zCtrl+(z Ctrl+Shift-8zCtrl+*{!.)rFr r r r test2s0rM__main__)rrZwin32uir;rrrrr)r"r#r r!rr(r4r8r@rDrErFrM__name__r r r r sZ