§
    °Êc¡  ã                   ó
  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZ	 e	Z
n# e$ r Y nw xY wddlmZmZmZmZ d„ Zd„ Zdd„Zd	„ Zd
„ Zdd„Zedk    r-	  e¦   «         Zn# eef$ r dZY nw xY w ej        e¦  «         dS dS )aö  
Usage: evtest [options] [<device>, ...]

Input device enumerator and event monitor.

Running evtest without any arguments will let you select
from a list of all readable input devices.

Options:
  -h, --help          Show this help message and exit.
  -c, --capabilities  List device capabilities and exit.
  -g, --grab          Other applications will not receive events from
                      the selected devices while evtest is running.

Examples:
  evtest /dev/input/event0 /dev/input/event1
é    )Úprint_functionN)ÚecodesÚlist_devicesÚAbsInfoÚInputDevicec                  óä   — t          j        d¬¦  «        } |                      ddd¬¦  «         |                      ddd¬¦  «         |                      d	d
d¬¦  «         |                      ¦   «         S )NF)Úadd_help_optionz-hz--helpÚ
store_true)Úactionz-gz--grabz-cz--capabilities)ÚoptparseÚOptionParserÚ
add_optionÚ
parse_args)Úparsers    ú./usr/lib/python3/dist-packages/evdev/evtest.pyÚparseoptr   '   sy   € ÝÔ"°5Ð9Ñ9Ô9€FØ
×Ò�d˜H¨\ÐÑ:Ô:Ð:Ø
×Ò�d˜H¨\ÐÑ:Ô:Ð:Ø
×Ò�dÐ,°\ÐÑBÔBÐBØ×ÒÑÔÐó    c                  óÄ  — t          ¦   «         \  } }| j        r(t          t                               ¦   «         ¦  «         dS |st          ¦   «         }nd„ |D ¦   «         }| j        r|D ]}t          |¦  «         ŒdS | j        r|D ]}|                     ¦   «          Œt          j
                             ¦   «         rAt          t          j
        d¬¦  «         t          j        t          t          j
        d¬¦  «         t          d¦  «         d„ |D ¦   «         }	 t          j        |g g ¦  «        \  }}}|D ].}||                              ¦   «         D ]}t#          |¦  «         ŒŒ/ŒL)Nr   c                 ó,   — g | ]}t          |¦  «        ‘ŒS © ©r   ©Ú.0Úpaths     r   ú
<listcomp>zmain.<locals>.<listcomp>8   s    € Ð9Ð9Ð9¨•;˜tÑ$Ô$Ð9Ð9Ð9r   F)ÚenableTz/Listening for events (press ctrl-c to exit) ...c                 ó   — i | ]
}|j         |“ŒS r   )Úfd)r   Údevs     r   ú
<dictcomp>zmain.<locals>.<dictcomp>I   s   € Ð3Ð3Ð3 C�C”F˜CÐ3Ð3Ð3r   )r   ÚhelpÚprintÚ__doc__ÚstripÚselect_devicesÚcapabilitiesÚprint_capabilitiesÚgrabÚsysÚstdinÚisattyÚtoggle_tty_echoÚatexitÚregisterÚselectÚreadÚprint_event)	ÚoptsÚdevicesÚdeviceÚfd_to_deviceÚrÚwÚer   Úevents	            r   Úmainr:   /   s…  € Ý‘J”J�M€Dˆ'Ø„yð Ý�g�mŠm‰oŒoÑÔÐØˆqàð :Ý Ñ"Ô"ˆˆà9Ð9°Ð9Ñ9Ô9ˆàÔð Øð 	'ð 	'ˆFÝ˜vÑ&Ô&Ð&Ð&Øˆqà„yð Øð 	ð 	ˆFØ�KŠK‰MŒMˆMˆMõ „y×ÒÑÔð AÝ�œ	¨%Ð0Ñ0Ô0Ð0ÝŒ�­¬¸4Ð@Ñ@Ô@Ð@å	Ð
;Ñ<Ô<Ð<Ø3Ð3¨7Ð3Ñ3Ô3€Lð#Ý”- ¨b°"Ñ5Ô5‰ˆˆ1ˆaàð 	#ð 	#ˆBØ% bÔ)×.Ò.Ñ0Ô0ð #ð #�Ý˜EÑ"Ô"Ð"Ð"ð#ð	#r   ú
/dev/inputc           	      ó0  ‡‡— d„ }t          t          | ¦  «        |¬¦  «        Šd„ ‰D ¦   «         Š‰s4d}t          || z  t          j        ¬¦  «         t          j        d¦  «         dŠˆfd„t          ‰¦  «        D ¦   «         }t          d	                     d
ddd¦  «        ¦  «         t          dt          t          |t          ¬¦  «        ¦  «        z  ¦  «         t          d 
                    |¦  «        ¦  «         t          ¦   «          t          dt          |¦  «        dz
  z  ¦  «        }	 |                     ¦   «         }ˆfd„|D ¦   «         }n# t          $ r d}Y nw xY w|s1d}t          |t          j        ¬¦  «         t          j        d¦  «         |S )zM
    Select one or more devices from a list of accessible input devices.
    c                 óD   — t          j        d| ¦  «        }d„ |D ¦   «         S )Nz\d+$c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   ©Úint©r   Úis     r   r   z5select_devices.<locals>.devicenum.<locals>.<listcomp>Y   s   € Ð'Ð'Ð'˜1•�A‘”Ð'Ð'Ð'r   )ÚreÚfindall)Údevice_pathÚdigitss     r   Ú	devicenumz!select_devices.<locals>.devicenumW   s'   € Ý”˜G [Ñ1Ô1ˆØ'Ð' Ð'Ñ'Ô'Ð'r   )Úkeyc                 ó,   — g | ]}t          |¦  «        ‘ŒS r   r   r   s     r   r   z"select_devices.<locals>.<listcomp>\   s    € Ð5Ð5Ð5 T�{˜4Ñ Ô Ð5Ð5Ð5r   zBerror: no input devices found (do you have rw permission on %s/*?))Úfileé   z9{0:<3} {1.path:<20} {1.name:<35} {1.phys:<35} {1.uniq:<4}c                 óB   •— g | ]\  }}‰                      ||¦  «        ‘ŒS r   )Úformat)r   Únumr   Ú
dev_formats      €r   r   z"select_devices.<locals>.<listcomp>c   s-   ø€ ÐPÐPÐP±°°c�×"Ò" 3¨Ñ,Ô,ÐPÐPÐPr   zID  {:<20} {:<35} {:<35} {}ÚDeviceÚNameÚPhysÚUniqú-ú
zSelect devices [0-%s]: c                 ó:   •— g | ]}‰t          |¦  «                 ‘ŒS r   r?   )r   rN   r3   s     €r   r   z"select_devices.<locals>.<listcomp>n   s$   ø€ Ð8Ð8Ð8¨�7�3˜s™8œ8Ô$Ð8Ð8Ð8r   NzKerror: invalid input - please enter one or more numbers separated by spaces)Úsortedr   r"   r)   ÚstderrÚexitÚ	enumeraterM   ÚlenÚmaxÚjoinÚinputÚsplitÚ
ValueError)Ú
device_dirrG   ÚmsgÚ	dev_linesÚchoicesrO   r3   s        @@r   r%   r%   R   s¯  øø€ ð
(ð (ð (õ •\ *Ñ-Ô-°9Ð=Ñ=Ô=€GØ5Ð5¨WÐ5Ñ5Ô5€GØð ØRˆÝˆc�JÑ¥S¤ZÐ0Ñ0Ô0Ð0ÝŒ�‰ŒˆàL€JØPÐPÐPÐP½YÀwÑ=OÔ=OÐPÑPÔP€Iå	Ð
'×
.Ò
.¨x¸ÀÈÑ
PÔ
PÑQÔQÐQÝ	ˆ#••C˜	¥sÐ+Ñ+Ô+Ñ,Ô,Ñ
,Ñ-Ô-Ð-Ý	ˆ$�)Š)�IÑ
Ô
ÑÔÐÝ	�G„G€GåÐ-µ°Y±´À!Ñ1CÑDÑEÔE€GðØ—-’-‘/”/ˆØ8Ð8Ð8Ð8°Ð8Ñ8Ô8ˆˆøÝð ð ð Øˆˆˆðøøøð ð Ø[ˆÝˆc�œ
Ð#Ñ#Ô#Ð#ÝŒ�‰Œˆà€Ns   Ä."E ÅE ÅE c           	      ó  — |                       d¬¦  «        }|                      d¬¦  «        }t          d                     | ¦  «        ¦  «         t          d                     | ¦  «        ¦  «         t          d                     | j        ¦  «        ¦  «         dt
          j        f|v rDd                     d„ |                      d¦  «        D ¦   «         ¦  «        }t          d	|z  ¦  «         d                     d
„ |  	                    d¦  «        D ¦   «         ¦  «        }t          d|z  ¦  «         |r:t          d¦  «         |D ]\  }}t          d|›d|›�¦  «         Œt          ¦   «          t          d¦  «         | 
                    ¦   «         D ]ø\  }}t           dj        |Ž ¦  «         |D ]Ê}t          |d         t          ¦  «        rFt           dj        |d         Ž ¦  «         t          d                     |d         ¦  «        ¦  «         Œct          |d         t          ¦  «        rd                     |d         ¦  «        n|d         }t          d                     ||d         ¦  «        ¦  «         ŒËt          d¦  «         Œùd S )NT)ÚverbosezDevice name: {.name}zDevice info: {.info}zRepeat settings: {}
ÚEV_LEDú,c              3   ó&   K  — | ]}|d          V — ŒdS ©r   Nr   rA   s     r   ú	<genexpr>z%print_capabilities.<locals>.<genexpr>ƒ   s&   è è € Ð8Ð8 ˜˜!œÐ8Ð8Ð8Ð8Ð8Ð8r   zActive LEDs: %sc              3   ó&   K  — | ]}|d          V — ŒdS rj   r   )r   Úks     r   rk   z%print_capabilities.<locals>.<genexpr>†   s&   è è € ÐBÐB A˜1˜Qœ4ÐBÐBÐBÐBÐBÐBr   zActive keys: %s
zInput properties:z  ú zDevice capabilities:z  Type {} {}:rK   z    Code {:<4} {}:r   z      {}z, z    Code {:<4} {}Ú )r&   Úinput_propsr"   rM   Úrepeatr   rg   r]   ÚledsÚactive_keysÚitemsÚ
isinstancer   Úlist)	r4   r&   rp   rr   rs   ÚtypeÚcodeÚcodesÚss	            r   r'   r'   z   s‰  € Ø×&Ò&¨tÐ&Ñ4Ô4€LØ×$Ò$¨TÐ$Ñ2Ô2€Kå	Ð
 ×
'Ò
'¨Ñ
/Ô
/Ñ0Ô0Ð0Ý	Ð
 ×
'Ò
'¨Ñ
/Ô
/Ñ0Ô0Ð0Ý	Ð
!×
(Ò
(¨¬Ñ
7Ô
7Ñ8Ô8Ð8à•&”-Ð  LÐ0Ð0Ø�xŠxÐ8Ð8 f§k¢k°$Ñ&7Ô&7Ð8Ñ8Ô8Ñ8Ô8ˆÝÐ $Ñ&Ñ'Ô'Ð'à—(’(ÐBÐB¨×);Ò);¸DÑ)AÔ)AÐBÑBÔBÑBÔB€KÝ	Ð
 Ñ
+Ñ,Ô,Ð,àð ÝÐ!Ñ"Ô"Ð"Ø%ð 	,ð 	,‰JˆD�$ÝˆE˜t˜t˜t T TÐ*Ñ+Ô+Ð+Ð+Ý‰Œˆå	Ð
 Ñ!Ô!Ð!Ø#×)Ò)Ñ+Ô+ð ð ‰ˆˆeÝÐ$ˆoÔ$ dÐ+Ñ,Ô,Ð,Øð 	>ð 	>ˆDå˜$˜qœ'¥7Ñ+Ô+ð >ÝÐ1Ð*Ô1°4¸´7Ð;Ñ<Ô<Ð<Ý�j×'Ò'¨¨Q¬Ñ0Ô0Ñ1Ô1Ð1Ð1õ +5°T¸!´W½dÑ*CÔ*CÐP�D—I’I˜d 1œgÑ&Ô&Ð&ÈÈaÌ�ÝÐ)×0Ò0°°D¸´GÑ<Ô<Ñ=Ô=Ð=Ð=Ýˆb‰	Œ	ˆ	ˆ	ðð r   c           
      ó*  — | j         t          j        k    rf| j        t          j        k    rd}nd}t          |                     |                      ¦   «         t          j        | j                 ¦  «        ¦  «         d S | j         t          j	        v r#t          j	        | j                  | j                 }nd}d}t          |                     |                      ¦   «         | j         t          j
        | j                  | j        || j        ¦  «        ¦  «         d S )Nz!time {:<16} +++++++++ {} ++++++++z!time {:<16} --------- {} --------ú?z3time {:<16} type {} ({}), code {:<4} ({}), value {})rw   r   ÚEV_SYNrx   ÚSYN_MT_REPORTr"   rM   Ú	timestampÚSYNÚbytypeÚEVÚvalue)r8   rb   ÚcodenameÚevfmts       r   r1   r1   ž   sÓ   € Ø„v•”ÒÐØŒ6•VÔ)Ò)Ð)Ø5ˆCˆCà5ˆCÝˆc�jŠj˜Ÿš™œ­¬
°1´6Ô(:Ñ;Ô;Ñ<Ô<Ð<Ð<Ð<àŒ6•V”]Ð"Ð"Ý”} Q¤VÔ,¨Q¬VÔ4ˆHˆHàˆHàEˆÝˆe�lŠl˜1Ÿ;š;™=œ=¨!¬&µ&´)¸A¼FÔ2CÀQÄVÈXÐWXÔW^Ñ_Ô_Ñ`Ô`Ð`Ð`Ð`r   Tc                 ó&  — t          j        |                      ¦   «         ¦  «        }|r|dxx         t           j        z  cc<   n|dxx         t           j         z  cc<   t          j        |                      ¦   «         t           j        |¦  «         d S )Né   )ÚtermiosÚ	tcgetattrÚfilenoÚECHOÚ	tcsetattrÚTCSANOW)Úfhr   Úflagss      r   r,   r,   ¯   s{   € ÝÔ˜bŸiši™kœkÑ*Ô*€EØð "ØˆaˆˆŒ•G”LÑ ˆˆ‰ˆàˆaˆˆŒ•W”\�MÑ!ˆˆ‰ÝÔ�b—i’i‘k”k¥7¤?°EÑ:Ô:Ð:Ð:Ð:r   Ú__main__)r;   )T)r#   Ú
__future__r   rC   r)   r/   r-   rˆ   r   Ú	raw_inputr^   Ú	NameErrorÚevdevr   r   r   r   r   r:   r%   r'   r1   r,   Ú__name__ÚretÚKeyboardInterruptÚEOFErrorrY   r   r   r   ú<module>r™      sx  ððð ð& &Ð %Ð %Ð %Ð %Ð %à 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø €€€Ø €€€ð	Ø€E€EøØð 	ð 	ð 	Ø€Dð	øøøð =Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ðð ð ð #ð  #ð  #ðF%ð %ð %ð %ðP!ð !ð !ðHað að að";ð ;ð ;ð ;ð ˆzÒÐðØˆd‰fŒfˆˆøØ˜xÐ(ð ð ð Øˆˆˆðøøøà€C„HˆS�M„M€M€M€Mð Ðs   ¢% ¥-¬-Á
A" Á"	A.Á-A.