
    i              
          S SK r S SKJr  S SKrSSKJrJrJrJrJ	r	J
r
Jr  SSKJrJrJrJrJrJrJrJrJrJr  S SKrS SKrS SKJrJrJrJr  SqSqSqS r S r!S	 r"S r#Sr$S
r%Sr&Sr'S r(Sr)Sr*Sr+Sr,Sr-Sr.Sr/\+\\,\\-\\.\\/\0r0\0Rc                  5        V Vs0 s H  u  pX_M	     snn r2Sq3S r4\4r5S r6\4S jr7\4S jr8S r9SS jr:\;S:X  a
  \"" SS5        ggs  snn f )    N)check_output   )EV_KEYEV_RELEV_MSCEV_SYNEV_ABSaggregate_devicesensure_root)
ButtonEvent
WheelEvent	MoveEventLEFTRIGHTMIDDLEXX2UPDOWN)c_uint32c_uintc_intbyrefc                  D   [         (       a  [        (       a  [        (       a  g [        R                  R                  [        R                  R                  S5      5      q[        R                  5         [        R                  S 5      q [        R                  [         5      qg )NX11)displaywindowx11ctypescdllLoadLibraryutilfind_libraryXInitThreadsXOpenDisplayXDefaultRootWindow     V/home/kali/github-search/github-env/lib/python3.13/site-packages/keyboard/_nixmouse.pybuild_displayr*      sd    w66cc6
++
!
!&++":":5"A
BC t$G ##G,Fr(   c                     [        5         [        5       [        5       p[        5       [        5       [        5       [        5       4u  p#pE[        5       n[        R                  [        [        [        5      [        U 5      [        U5      [        U5      [        U5      [        U5      [        U5      [        U5      5	      nUR                  UR                  4$ )N)
r*   r   r   r   r   XQueryPointerr   r   r   value)root_idchild_idroot_xroot_ywin_xwin_ymaskrets           r)   get_positionr6      s    O 
HJX#(7EGUWeg#E FE8D


GXf%5uW~uX!&M5=!%L%,dEC <<%%r(   c                     [        5         [        R                  [        S [        SSSSX5	        [        R                  [        5        g Nr   )r*   r   XWarpPointerr   r   XFlushxys     r)   move_tor>   %   s/    OWdFAq!Q=JJwr(            i  i  i  i  i  c                  F    [         (       a  g [        5         [        S5      q g )Nmouse)devicer   r
   r'   r(   r)   build_devicerE   D   s    vvMw'Fr(   c                    [        5          [        R                  5       u  pp4nU[        :X  d
  U[        :X  a  M/  S nS nU[
        :X  a3  [        U(       a  [        O[        [        R                  US5      U5      nOvU[        :X  al  [        R                  " S[        R                  " SU5      5      u  nU[        :X  a  [!        XA5      nO(U["        [$        4;   a  ['        5       u  p[)        XU5      nUc  M  U R+                  U5        M  )N?iI)rE   rD   
read_eventr   r   r   r   r   r   button_by_codegetr   structunpackpack	REL_WHEELr   REL_XREL_Yr6   r   put)
queuetimetypecoder-   	device_ideventargr<   r=   s
             r)   listenr[   K   s    N
-3->->-@*D6>TV^6>2~7I7I$PS7TVZ[EV^]]3C(?@FEy "5/%'#~!!-=		%/ r(   c                 \    [        5         [        R                  [        [        U    S5        g )Nr   rE   rD   write_eventr   code_by_buttonbuttons    r)   pressrb   g       N
v~f5t<r(   c                 \    [        5         [        R                  [        [        U    S5        g r8   r]   r`   s    r)   releasere   k   rc   r(   c                     [        5         U S:  a  U S-  n US:  a  US-  n[        R                  [        [        U 5        [        R                  [        [
        U5        g Nr   l        )rE   rD   r^   r   rQ   rR   r;   s     r)   move_relativerh   o   sK    N1u	U
1u	U

vua(
vua(r(   c                 l    [        5         U S:  a  U S-  n [        R                  [        [        U 5        g rg   )rE   rD   r^   r   rP   )deltas    r)   wheelrk   y   s)    Nqy
vy%0r(   __main__d      )r   )<rM   
subprocessr   re
_nixcommonr   r   r   r   r	   r
   r   _mouse_eventr   r   r   r   r   r   r   r   r   r   r   ctypes.utilr   r   r   r   r   r   r   r*   r6   r>   rQ   rR   REL_Z
REL_HWHEELrP   ABS_XABS_Y	BTN_MOUSEBTN_LEFT	BTN_RIGHT
BTN_MIDDLEBTN_SIDE	BTN_EXTRArK   itemsr_   rD   rE   initr[   rb   re   rh   rk   __name__)rW   ra   s   00r)   <module>r      s)    # 	 ^ ^ ^ b b b   1 1
	

-&
 	
			
	 duar 4B3G3G3IJ3I<4&,3IJ	(
 8  =  =)1 zC  Ks   C