+
    üÐj²  ã                   ó  € R t ^ RIt^ RIt^ RIHtHt ^ RIHt  ! R R]4      t	R R lt
R R	 ltR
 R ltR R lt]P                  P                  R4      t]'       g	   ]! R4      h]P$                  P'                  ]4      t]! ]4       R# )zŒ
Very low-level ctypes-based interface to Linux inotify(7).

ctypes and a version of libc which supports inotify system calls are
required.
N)ÚAnyÚcast)ÚFilePathc                   ó   € ] tR t^tRtRtR# )ÚINotifyErrorzJ
Unify all the possible exceptions that can be raised by the INotify API.
© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Ú9/usr/lib/python3/dist-packages/twisted/python/_inotify.pyr   r      s   † õr   r   c                ó$   € V ^8„  d   QhR\         /# )é   Úreturn©Úint)Úformats   "r   Ú__annotate__r      s   € ÷ ñ Œcñ r   c                 ón   € \        \        \        P                  4       4      p V ^ 8  d   \	        R4      hV # )zG
Create an inotify instance and return the associated file descriptor.
zINotify initialization error.)r   r   ÚlibcÚinotify_initr   )Úfds    r   Úinitr      s1   € ô 
Œc”4×$Ñ$Ó&Ó	'€BØ	ˆA„vÜÐ:Ó;Ð;Ø€Ir   c                ó^   € V ^8„  d   QhR\         R\        \        ,          R\         R\         /# )r   r   ÚpathÚmaskr   )r   r   r   )r   s   "r   r   r   #   s,   € ÷ ñ ŒCð ”x¤•}ð ¬Cð ´Cñ r   c                ó´   € \        \        \        P                  WP	                  4       P
                  V4      4      pV^ 8  d   \        RV: RV: R24      hV# )a  
Add a watch for the given path to the inotify file descriptor, and return
the watch descriptor.

@param fd: The file descriptor returned by C{libc.inotify_init}.
@param path: The path to watch via inotify.
@param mask: Bitmask specifying the events that inotify should monitor.
zFailed to add watch on 'z' - (Ú))r   r   r   Úinotify_add_watchÚasBytesModer   r   )r   r   r   Úwds   &&& r   Úaddr$   #   sS   € ô 
Œc”4×)Ñ)¨"×.>Ñ.>Ó.@×.EÑ.EÀtÓLÓ	M€BØ	ˆA„vÜÐ5°d±X¸UÀ2Á&ÈÐJÓKÐKØ€Ir   c                ó4   € V ^8„  d   QhR\         R\         RR/# )r   r   r#   r   Nr   )r   s   "r   r   r   2   s!   € ÷ "ñ "Œsð "œð " ñ "r   c                ó0   € \         P                  W4       R# )zE
Remove the given watch descriptor from the inotify file descriptor.
N)r   Úinotify_rm_watch)r   r#   s   &&r   Úremover(   2   s   € ô0 	×Ñ˜"Ö!r   c                ó<   € V ^8„  d   QhR\         P                  RR/# )r   r   r   N)ÚctypesÚCDLL)r   s   "r   r   r   M   s   € ÷ 2ñ 2œ6Ÿ;™;ð 2¨4ñ 2r   c                ó   € R F  p\        WR4      e   K  \        R4      h	  . V P                  n        \        P
                  V P                  n        \        P
                  \        P
                  .V P                  n        \        P
                  V P                  n        \        P
                  \        P                  \        P                  .V P                  n        \        P
                  V P                  n        R# )z¥
Initialize the module, checking if the expected APIs exist and setting the
argtypes and restype for C{inotify_init}, C{inotify_add_watch}, and
C{inotify_rm_watch}.
Nzlibc6 2.4 or higher needed)r!   r   r'   )ÚgetattrÚImportErrorr   Úargtypesr*   Úc_intÚrestyper'   Úc_char_pÚc_uint32r!   )r   Úfunctions   & r   ÚinitializeModuler5   M   s«   € ó NˆÜ�4 4Ó(Ô0ÜÐ:Ó;Ð;ñ Nð "$€D×ÑÔÜ &§¡€D×ÑÔä&,§l¡l´F·L±LÐ%A€D×ÑÔ"Ü$*§L¡L€D×ÑÔ!ä'-§|¡|´V·_±_ÄfÇoÁoÐ&V€D×ÑÔ#Ü%+§\¡\€D×ÑÖ"r   ÚczCan't find C library.)r   r*   Úctypes.utilÚtypingr   r   Útwisted.python.filepathr   Ú	Exceptionr   r   r$   r(   r5   ÚutilÚfind_libraryÚnamer.   ÚcdllÚLoadLibraryr   r   r   r   Ú<module>r@      sy   ðñ
ó Û ß å ,ô�9ô õõõ"õ62ð& ‡{�{×Ñ Ó$€ßÙ
Ð-Ó
.Ð.Ø‡{�{×Ñ˜tÓ$€Ù �Ö r   