§
    ð­½j‹~  ã                   ó  — g d ¢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ddlZddlZddl	Z	ddl
Z
ddlmZ ddlmZmZ ddlmZ ej        Z	 ddlZddlmZmZmZmZ n# e$ r ej        dk    r‚ dZY nw xY wd	Zd
Z e	j        ¦   «         ZdZdgZ e ed¦  «        rdZedgz  Zej        dk    rdZedgz  Zefd„Z!d„ Z"d„ Z#d„ Z$d„ Z% G d„ d¦  «        Z&er G d„ de&¦  «        Z' G d„ de&¦  «        Z( G d„ de)¦  «        Z*d<d„Z+ej        dk    rd=d„Z,nd=d„Z, G d„ d e)¦  «        Z-d!„ Z.ej        dk    r G d"„ d#e)¦  «        Z/d$„ Z0d%Z1d&Z2d'Z3d(Z4d)„ Z5d*„ Z6 G d+„ d,e)¦  «        Z7d-„ Z8d.„ Z9 G d/„ d0e*¦  «        Z:d1„ Z;ej        dk    rd2„ Z<ej=        ej>        hZ?d>d3„Z@n#ddlAZA e eAd4¦  «        reAjB        ZCneAjD        ZCd>d5„Z@ej        dk    r0d6„ ZEd7„ ZF ejG        e(eE¦  «         d8„ ZHd9„ ZI ejG        e'eH¦  «         dS d:„ ZEd;„ ZF ejG        e(eE¦  «         dS )?)ÚClientÚListenerÚPipeÚwaité    Né   )Úutil)ÚAuthenticationErrorÚBufferTooShort)Ú	reduction)ÚWAIT_OBJECT_0ÚWAIT_ABANDONED_0ÚWAIT_TIMEOUTÚINFINITEÚwin32i    g      4@ÚAF_INETÚAF_UNIXÚAF_PIPEc                 ó.   — t          j        ¦   «         | z   S ©N©ÚtimeÚ	monotonic)Útimeouts    úE/Users/bpa/Downloads/Python-3.11.17/Lib/multiprocessing/connection.pyÚ_init_timeoutr   <   s   € ÝŒ>ÑÔ˜gÑ%Ð%ó    c                 ó0   — t          j        ¦   «         | k    S r   r   )Úts    r   Ú_check_timeoutr   ?   s   € ÝŒ>ÑÔ˜aÒÐr   c                 ó  — 	 | dk    rdS | dk    r't          j        dt          j        ¦   «         ¬¦  «        S | dk    r>t          j        dt	          j        ¦   «         t          t          ¦  «        fz  d¬¦  «        S t          d	¦  «        ‚)
Nr   )Ú	localhostr   r   z	listener-)ÚprefixÚdirr   z\\.\pipe\pyc-%d-%d-Ú zunrecognized family)	ÚtempfileÚmktempr   Úget_temp_dirÚosÚgetpidÚnextÚ_mmap_counterÚ
ValueError©Úfamilys    r   Úarbitrary_addressr/   F   sž   € ðð �ÒÐØÐØ	�9Ò	Ð	ÝŒ kµtÔ7HÑ7JÔ7JÐKÑKÔKÐKØ	�9Ò	Ð	ÝŒÐ&<Ý "¤	¡¤­Tµ-Ñ-@Ô-@ÐAñ'BØGIðKñ Kô Kð 	Kõ Ð.Ñ/Ô/Ð/r   c                 óÚ   — 	 t           j        dk    r| dk    rt          d| z  ¦  «        ‚t           j        dk    r-| dk    r)t          t          | ¦  «        st          d| z  ¦  «        ‚d S d S d S )Nr   r   zFamily %s is not recognized.r   )ÚsysÚplatformr,   ÚhasattrÚsocketr-   s    r   Ú_validate_familyr5   T   sŒ   € ðõ „|�wÒÐ 6¨YÒ#6Ð#6ÝÐ7¸&Ñ@ÑAÔAÐAå
„|�wÒÐ 6¨YÒ#6Ð#6å•v˜vÑ&Ô&ð 	FÝÐ;¸fÑDÑEÔEÐEð ÐÐ#6Ð#6ð	Fð 	Fr   c                 ó  — 	 t          | ¦  «        t          k    rdS t          | ¦  «        t          u r|                      d¦  «        rdS t          | ¦  «        t          u st	          j        | ¦  «        rdS t          d| z  ¦  «        ‚)Nr   z\\r   r   zaddress type of %r unrecognized)ÚtypeÚtupleÚstrÚ
startswithr   Úis_abstract_socket_namespacer,   )Úaddresss    r   Úaddress_typer=   `   s‚   € ðõ
 ˆG�}„}�ÒÐØˆyÝ	ˆg‰Œ�#Ð	Ð	 '×"4Ò"4°VÑ"<Ô"<Ð	ØˆyÝ	ˆg‰Œ�#Ð	Ð	¥Ô!BÀ7Ñ!KÔ!KÐ	ØˆyåÐ:¸WÑDÑEÔEÐEr   c                   ó¾   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d	„ ¦   «         Ze
d
„ ¦   «         Ze
d„ ¦   «         Zd„ Zd„ Zdd„Zd„ Zdd„Zdd„Zd„ Zdd„Zd„ Zd„ ZdS )Ú_ConnectionBaseNTc                 ó¨   — |                      ¦   «         }|dk     rt          d¦  «        ‚|s|st          d¦  «        ‚|| _        || _        || _        d S )Nr   zinvalid handlez6at least one of `readable` and `writable` must be True)Ú	__index__r,   Ú_handleÚ	_readableÚ	_writable)ÚselfÚhandleÚreadableÚwritables       r   Ú__init__z_ConnectionBase.__init__v   sm   € Ø×!Ò!Ñ#Ô#ˆØ�AŠ:ˆ:ÝÐ-Ñ.Ô.Ð.Øð 	J ð 	JÝØHñJô Jð JàˆŒØ!ˆŒØ!ˆŒˆˆr   c                 ó@   — | j         �|                      ¦   «          d S d S r   ©rB   Ú_close©rE   s    r   Ú__del__z_ConnectionBase.__del__ƒ   s#   € ØŒ<Ð#Ø�KŠK‰MŒMˆMˆMˆMð $Ð#r   c                 ó2   — | j         €t          d¦  «        ‚d S )Núhandle is closed)rB   ÚOSErrorrM   s    r   Ú_check_closedz_ConnectionBase._check_closed‡   s!   € ØŒ<ÐÝÐ,Ñ-Ô-Ð-ð  Ðr   c                 ó2   — | j         st          d¦  «        ‚d S )Nzconnection is write-only)rC   rQ   rM   s    r   Ú_check_readablez_ConnectionBase._check_readable‹   s%   € ØŒ~ð 	6ÝÐ4Ñ5Ô5Ð5ð	6ð 	6r   c                 ó2   — | j         st          d¦  «        ‚d S )Nzconnection is read-only)rD   rQ   rM   s    r   Ú_check_writablez_ConnectionBase._check_writable�   s%   € ØŒ~ð 	5ÝÐ3Ñ4Ô4Ð4ð	5ð 	5r   c                 óf   — | j         rd| _        n|                      ¦   «          t          d¦  «        ‚)NFzbad message length)rD   rC   ÚcloserQ   rM   s    r   Ú_bad_message_lengthz#_ConnectionBase._bad_message_length“   s1   € ØŒ>ð 	Ø"ˆDŒNˆNà�JŠJ‰LŒLˆLÝÐ*Ñ+Ô+Ð+r   c                 ó   — 	 | j         d u S r   ©rB   rM   s    r   Úclosedz_ConnectionBase.closedš   s   € à.ØŒ|˜tÐ#Ð#r   c                 ó   — 	 | j         S r   )rC   rM   s    r   rG   z_ConnectionBase.readableŸ   ó   € à0ØŒ~Ðr   c                 ó   — 	 | j         S r   )rD   rM   s    r   rH   z_ConnectionBase.writable¤   r^   r   c                 ó:   — 	 |                       ¦   «          | j        S r   )rR   rB   rM   s    r   Úfilenoz_ConnectionBase.fileno©   s   € Ø9Ø×ÒÑÔÐØŒ|Ðr   c                 ój   — 	 | j         �*	 |                      ¦   «          d | _         d S # d | _         w xY wd S r   rK   rM   s    r   rX   z_ConnectionBase.close®   sE   € Ø"ØŒ<Ð#ð$Ø—’‘”�à#�”��ø˜t�”Ð#Ð#Ð#Ð#ð	 $Ð#s   Š' §	0r   c                 óÂ  — 	 |                       ¦   «          |                      ¦   «          t          |¦  «        }|j        dk    r|                     d¦  «        }|j        }|dk     rt          d¦  «        ‚||k     rt          d¦  «        ‚|€||z
  }n-|dk     rt          d¦  «        ‚||z   |k    rt          d¦  «        ‚|                      ||||z   …         ¦  «         d S )Nr   ÚBr   zoffset is negativezbuffer length < offsetzsize is negativezbuffer length < offset + size)rR   rV   Ú
memoryviewÚitemsizeÚcastÚnbytesr,   Ú_send_bytes)rE   ÚbufÚoffsetÚsizeÚmÚns         r   Ú
send_bytesz_ConnectionBase.send_bytes¶   só   € Ø:Ø×ÒÑÔÐØ×ÒÑÔÐÝ�s‰OŒOˆØŒ:˜Š>ˆ>Ø—’�s‘”ˆAØŒHˆØ�AŠ:ˆ:ÝÐ1Ñ2Ô2Ð2ØˆvŠ:ˆ:ÝÐ5Ñ6Ô6Ð6Øˆ<Ø�v‘:ˆDˆDØ�AŠXˆXÝÐ/Ñ0Ô0Ð0Ø�d‰]˜QÒÐÝÐ<Ñ=Ô=Ð=Ø×Ò˜˜6 &¨4¡-Ð/Ô0Ñ1Ô1Ð1Ð1Ð1r   c                 ó²   — 	 |                       ¦   «          |                      ¦   «          |                      t                               |¦  «        ¦  «         d S r   )rR   rV   ri   Ú_ForkingPicklerÚdumps©rE   Úobjs     r   Úsendz_ConnectionBase.sendÊ   sQ   € Ø'Ø×ÒÑÔÐØ×ÒÑÔÐØ×Ò�×.Ò.¨sÑ3Ô3Ñ4Ô4Ð4Ð4Ð4r   c                 ó   — 	 |                       ¦   «          |                      ¦   «          |�|dk     rt          d¦  «        ‚|                      |¦  «        }|€|                      ¦   «          |                     ¦   «         S )Nr   znegative maxlength)rR   rT   r,   Ú_recv_bytesrY   Úgetvalue)rE   Ú	maxlengthrj   s      r   Ú
recv_bytesz_ConnectionBase.recv_bytesÐ   s‚   € ð	ð 	×ÒÑÔÐØ×ÒÑÔÐØÐ  Y°¢] ]ÝÐ1Ñ2Ô2Ð2Ø×Ò˜yÑ)Ô)ˆØˆ;Ø×$Ò$Ñ&Ô&Ð&Ø�|Š|‰~Œ~Ðr   c                 óJ  — 	 |                       ¦   «          |                      ¦   «          t          |¦  «        5 }|j        }|t	          |¦  «        z  }|dk     rt          d¦  «        ‚||k    rt          d¦  «        ‚|                      ¦   «         }|                     ¦   «         }|||z   k     r!t          | 	                    ¦   «         ¦  «        ‚| 
                    d¦  «         |                     |||z  ||z   |z  …         ¦  «         |cd d d ¦  «         S # 1 swxY w Y   d S )Nr   znegative offsetzoffset too large)rR   rT   re   rf   Úlenr,   rw   Útellr
   rx   ÚseekÚreadinto)rE   rj   rk   rm   rf   ÚbytesizeÚresultrl   s           r   Úrecv_bytes_intoz_ConnectionBase.recv_bytes_intoÝ   so  € ð	ð 	×ÒÑÔÐØ×ÒÑÔÐÝ˜‰_Œ_ð 	 à”zˆHØ¥# a¡&¤&Ñ(ˆHØ˜ŠzˆzÝ Ð!2Ñ3Ô3Ð3Ø˜(Ò"Ð"Ý Ð!3Ñ4Ô4Ð4Ø×%Ò%Ñ'Ô'ˆFØ—;’;‘=”=ˆDØ˜& 4™-Ò'Ð'Ý$ V§_¢_Ñ%6Ô%6Ñ7Ô7Ð7à�KŠK˜‰NŒNˆNØ�OŠO˜A˜f¨Ñ0Ø%¨™}°Ñ9ð:ô ;ñ <ô <ð <àð!	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¹CDÄDÄDc                 óÔ   — 	 |                       ¦   «          |                      ¦   «          |                      ¦   «         }t                               |                     ¦   «         ¦  «        S r   )rR   rT   rw   rq   ÚloadsÚ	getbuffer)rE   rj   s     r   Úrecvz_ConnectionBase.recvö   sV   € Ø*Ø×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑ Ô ˆÝ×$Ò$ S§]¢]¡_¤_Ñ5Ô5Ð5r   ç        c                 ó~   — 	 |                       ¦   «          |                      ¦   «          |                      |¦  «        S r   )rR   rT   Ú_poll©rE   r   s     r   Úpollz_ConnectionBase.pollý   s;   € Ø=Ø×ÒÑÔÐØ×ÒÑÔÐØ�zŠz˜'Ñ"Ô"Ð"r   c                 ó   — | S r   © rM   s    r   Ú	__enter__z_ConnectionBase.__enter__  ó   € Øˆr   c                 ó.   — |                       ¦   «          d S r   ©rX   ©rE   Úexc_typeÚ	exc_valueÚexc_tbs       r   Ú__exit__z_ConnectionBase.__exit__  ó   € Ø�
Š
‰Œˆˆˆr   )TT)r   Nr   )r   )r‡   )Ú__name__Ú
__module__Ú__qualname__rB   rI   rN   rR   rT   rV   rY   Úpropertyr\   rG   rH   ra   rX   ro   ru   rz   r‚   r†   r‹   rŽ   r–   r�   r   r   r?   r?   s   ss  € € € € € Ø€Gð	"ð 	"ð 	"ð 	"ðð ð ð.ð .ð .ð6ð 6ð 6ð5ð 5ð 5ð,ð ,ð ,ð ð$ð $ñ „Xð$ð ðð ñ „Xðð ðð ñ „Xððð ð ð
$ð $ð $ð2ð 2ð 2ð 2ð(5ð 5ð 5ðð ð ð ðð ð ð ð26ð 6ð 6ð#ð #ð #ð #ðð ð ðð ð ð ð r   r?   c                   óF   — e Zd Z	 dZdZej        fd„Zd„ Zdd„Z	d„ Z
d„ ZdS )	ÚPipeConnectionFNc                 ó`   — | j         }|�|                     ¦   «           || j        ¦  «         d S r   )Ú_send_ovÚcancelrB   )rE   Ú_CloseHandleÚovs      r   rL   zPipeConnection._close  s3   € Ø”ˆBØˆ~à—	’	‘”�ØˆL˜œÑ&Ô&Ð&Ð&Ð&r   c                 óô  — | j         �t          d¦  «        ‚t          j        | j        |d¬¦  «        \  }}|| _         	 |t          j        k    r!t          j        |j        gdt          ¦  «        }n#  | 	                    ¦   «          ‚ xY wd | _         | 
                    d¦  «        \  }}n$# d | _         | 
                    d¦  «        \  }}w xY w|t          j        k    rt          t          j        d¦  «        ‚d S )Nz/concurrent send_bytes() calls are not supportedT©Ú
overlappedFrP   )rŸ   r,   Ú_winapiÚ	WriteFilerB   ÚERROR_IO_PENDINGÚWaitForMultipleObjectsÚeventr   r    ÚGetOverlappedResultÚERROR_OPERATION_ABORTEDrQ   ÚerrnoÚEPIPE)rE   rj   r¢   ÚerrÚwaitresÚnwrittens         r   ri   zPipeConnection._send_bytes  s  € ØŒ}Ð(å ð "5ñ 6ô 6ð 6åÔ'¨¬°cÀdÐKÑKÔK‰GˆB�ØˆDŒMð
=Ø�'Ô2Ò2Ð2Ý%Ô<Øœ˜
 E­8ñ5ô 5�GøøðØ—	’	‘”�Øøøøà $�”Ø "× 6Ò 6°tÑ <Ô <‘�˜#˜#øð !%�”Ø "× 6Ò 6°tÑ <Ô <‘�˜#Ð<Ð<Ð<Ð<Ø•gÔ5Ò5Ð5õ �eœkÐ+=Ñ>Ô>Ð>ð	 6Ð5s   ¾1A0 Á/B* Á0BÂB* Â*!Cc                 óà  — | j         rd| _         t          j        ¦   «         S |€dnt          |d¦  «        }	 t	          j        | j        |d¬¦  «        \  }}	 |t          j        k    r!t	          j        |j	        gdt          ¦  «        }n#  |                     ¦   «          ‚ xY w|                     d¦  «        \  }}|dk    r<t          j        ¦   «         }|                     |                     ¦   «         ¦  «         |S |t          j        k    r|                      ||¦  «        S n�# |                     d¦  «        \  }}|dk    r@t          j        ¦   «         }|                     |                     ¦   «         ¦  «         |c cY S |t          j        k    r|                      ||¦  «        c cY S w xY wn/# t"          $ r"}|j        t          j        k    rt(          ‚‚ d }~ww xY wt+          d¦  «        ‚)NFé€   Tr¤   r   z.shouldn't get here; expected KeyboardInterrupt)Ú_got_empty_messageÚioÚBytesIOÚminr¦   ÚReadFilerB   r¨   r©   rª   r   r    r«   Úwriter…   ÚERROR_MORE_DATAÚ_get_more_datarQ   ÚwinerrorÚERROR_BROKEN_PIPEÚEOFErrorÚRuntimeError)	rE   ÚmaxsizeÚbsizer¢   r¯   r°   ÚnreadÚfÚes	            r   rw   zPipeConnection._recv_bytes6  s   € ØÔ&ð Ø*/�Ô'Ý”z‘|”|Ð#à&˜˜˜µC¸ÀÑ4EÔ4E�ðÝ%Ô.¨t¬|¸UØ;?ðAñ Aô A‘G�B˜ðDØ¥'Ô":Ò:Ð:Ý&-Ô&DØ!#¤ 
¨Eµ8ñ'=ô '=˜GøøðØŸ	š	™œ˜Øøøøà%'×%;Ò%;¸DÑ%AÔ%A™
˜˜sØ !š8˜8Ý "¤
¡¤˜AØŸGšG B§L¢L¡N¤NÑ3Ô3Ð3Ø#$˜HØ ¥GÔ$;Ò;Ð;Ø#'×#6Ò#6°r¸7Ñ#CÔ#CÐCð <øð &(×%;Ò%;¸DÑ%AÔ%A™
˜˜sØ !š8˜8Ý "¤
¡¤˜AØŸGšG B§L¢L¡N¤NÑ3Ô3Ð3Ø#$˜H˜H˜H˜H˜HØ ¥GÔ$;Ò;Ð;Ø#'×#6Ò#6°r¸7Ñ#CÔ#CÐCÐCÐCÐCÐCÐCÐCÐCÐCð <øåð ð ð Ø”z¥WÔ%>Ò>Ð>Ý&˜àøøøøð	øøøõ
 ÐOÑPÔPÐPsg   ·F2 Á1B	 ÂD$ Â	B Â D$ Â#AF2 Ã=%F2 Ä#F2 Ä$AF.ÆF2 Æ(F.Æ+F2 Æ-F.Æ.F2 Æ2
GÆ<GÇGc                 ó–   — | j         s#t          j        | j        ¦  «        d         dk    rdS t	          t          | g|¦  «        ¦  «        S )Nr   T)r´   r¦   ÚPeekNamedPiperB   Úboolr   rŠ   s     r   r‰   zPipeConnection._pollV  sI   € ØÔ'ð ÝÔ-¨d¬lÑ;Ô;¸AÔ>À!ÒCÐCØ�tÝ�˜d˜V WÑ-Ô-Ñ.Ô.Ð.r   c                 óÐ  — |                      ¦   «         }t          j        ¦   «         }|                     |¦  «         t	          j        | j        ¦  «        d         }|�*t          |¦  «        |z   |k    r|                      ¦   «          t	          j	        | j        |d¬¦  «        \  }}| 
                    d¦  «        \  }}|                     |                      ¦   «         ¦  «         |S )Nr   Tr¤   )r…   rµ   r¶   r¹   r¦   rÆ   rB   r|   rY   r¸   r«   )rE   r¢   rÀ   rj   rÃ   Úleftr¯   Úrbytess           r   r»   zPipeConnection._get_more_data\  sÁ   € Ø—,’,‘.”.ˆCÝ”
‘”ˆAØ�GŠG�C‰LŒLˆLÝÔ(¨¬Ñ6Ô6°qÔ9ˆDàÐ"¥s¨3¡x¤x°$¡¸Ò'@Ð'@Ø×(Ò(Ñ*Ô*Ð*ÝÔ& t¤|°TÀdÐKÑKÔK‰GˆB�Ø×0Ò0°Ñ6Ô6‰KˆF�Cð �GŠG�B—L’L‘N”NÑ#Ô#Ð#ØˆHr   r   )r˜   r™   rš   r´   rŸ   r¦   ÚCloseHandlerL   ri   rw   r‰   r»   r�   r   r   r�   r�     s†   € € € € € ð	ð
 #ÐØˆà&-Ô&9ð 	'ð 	'ð 	'ð 	'ð	(ð 	(ð 	(ð4	Qð 	Qð 	Qð 	Qð@	/ð 	/ð 	/ð	ð 	ð 	ð 	ð 	r   r�   c                   óž   — e Zd Z	 erej        fd„Zej        Zej	        Z
nej        fd„Zej        Zej        Z
efd„Ze
fd„Zd„ Zd	d„Zd„ ZdS )
Ú
Connectionc                 ó&   —  || j         ¦  «         d S r   r[   ©rE   rL   s     r   rL   zConnection._closes  ó   € ØˆF�4”<Ñ Ô Ð Ð Ð r   c                 ó&   —  || j         ¦  «         d S r   r[   rÏ   s     r   rL   zConnection._closex  rÐ   r   c                 ót   — t          |¦  «        }	  || j        |¦  «        }||z  }|dk    rd S ||d …         }Œ))NTr   )r|   rB   )rE   rj   r¹   Ú	remainingrn   s        r   Ú_sendzConnection._send}  sN   € Ý˜‘H”Hˆ	ð	Ø��d”l CÑ(Ô(ˆAØ˜‰NˆIØ˜AŠ~ˆ~Ø�Ø�a�b�b”'ˆCð	r   c                 ó  — t          j        ¦   «         }| j        }|}|dk    r] |||¦  «        }t          |¦  «        }|dk    r||k    rt          ‚t          d¦  «        ‚|                     |¦  «         ||z  }|dk    °]|S )Nr   zgot end of file during message)rµ   r¶   rB   r|   r¾   rQ   r¹   )rE   rl   Úreadrj   rF   rÓ   Úchunkrn   s           r   Ú_recvzConnection._recv†  s“   € ÝŒj‰lŒlˆØ”ˆØˆ	Ø˜!ŠmˆmØ�D˜ Ñ+Ô+ˆEÝ�E‘
”
ˆAØ�AŠvˆvØ Ò$Ð$Ý"�Nå!Ð"BÑCÔCÐCØ�IŠI�eÑÔÐØ˜‰NˆIð ˜!Šmˆmð ˆ
r   c                 óÄ  — t          |¦  «        }|dk    rkt          j        dd¦  «        }t          j        d|¦  «        }|                      |¦  «         |                      |¦  «         |                      |¦  «         d S t          j        d|¦  «        }|dk    r,|                      |¦  «         |                      |¦  «         d S |                      ||z   ¦  «         d S )Niÿÿÿú!iéÿÿÿÿú!Qi @  )r|   ÚstructÚpackrÔ   )rE   rj   rn   Ú
pre_headerÚheaders        r   ri   zConnection._send_bytes–  sÐ   € Ý�‰HŒHˆØˆzŠ>ˆ>Ýœ T¨2Ñ.Ô.ˆJÝ”[  qÑ)Ô)ˆFØ�JŠJ�zÑ"Ô"Ð"Ø�JŠJ�vÑÔÐØ�JŠJ�s‰OŒOˆOˆOˆOõ ”[  qÑ)Ô)ˆFØ�5Šyˆyð —
’
˜6Ñ"Ô"Ð"Ø—
’
˜3‘”���ð —
’
˜6 C™<Ñ(Ô(Ð(Ð(Ð(r   Nc                 óD  — |                       d¦  «        }t          j        d|                     ¦   «         ¦  «        \  }|dk    r>|                       d¦  «        }t          j        d|                     ¦   «         ¦  «        \  }|�||k    rd S |                       |¦  «        S )Né   rÚ   rÛ   é   rÜ   )rØ   rÝ   Úunpackrx   )rE   rÀ   rj   rl   s       r   rw   zConnection._recv_bytes­  s„   € Ø�jŠj˜‰mŒmˆÝ”˜d C§L¢L¡N¤NÑ3Ô3‰ˆØ�2Š:ˆ:Ø—*’*˜Q‘-”-ˆCÝ”M $¨¯ª©¬Ñ7Ô7‰EˆDØÐ 4¨'¢> >Ø�4Ø�zŠz˜$ÑÔÐr   c                 óB   — t          | g|¦  «        }t          |¦  «        S r   )r   rÇ   )rE   r   Úrs      r   r‰   zConnection._poll·  s   € Ý�$�˜Ñ!Ô!ˆÝ�A‰wŒwˆr   r   )r˜   r™   rš   r¦   Ú_multiprocessingÚclosesocketrL   ru   Ú_writer†   Ú_readr(   rX   r¹   rÖ   rÔ   rØ   ri   rw   r‰   r�   r   r   rÍ   rÍ   l  sØ   € € € € € ðð
 ð 	Ø 0Ô <ð 	!ð 	!ð 	!ð 	!à!Ô&ˆØ Ô%ˆˆà "¤ð 	!ð 	!ð 	!ð 	!à”ˆØ”ˆà%ð ð ð ð ð  %ð ð ð ð ð )ð )ð )ð. ð  ð  ð  ðð ð ð ð r   rÍ   c                   ó\   — e Zd Z	 d
d„Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	d	„ Z
dS )r   Nr   c                 ó8  — |p|rt          |¦  «        pt          }|pt          |¦  «        }t          |¦  «         |dk    rt	          ||¦  «        | _        nt          |||¦  «        | _        |�$t          |t          ¦  «        st          d¦  «        ‚|| _
        d S ©Nr   zauthkey should be a byte string)r=   Údefault_familyr/   r5   ÚPipeListenerÚ	_listenerÚSocketListenerÚ
isinstanceÚbytesÚ	TypeErrorÚ_authkey)rE   r<   r.   ÚbacklogÚauthkeys        r   rI   zListener.__init__Ç  s§   € Øð #˜GÐ=­°WÑ(=Ô(=ð #Ý"ð 	àÐ6Õ.¨vÑ6Ô6ˆå˜Ñ Ô Ð Ø�YÒÐÝ)¨'°7Ñ;Ô;ˆDŒNˆNå+¨G°V¸WÑEÔEˆDŒNàÐ¥z°'½5Ñ'AÔ'AÐÝÐ=Ñ>Ô>Ð>àˆŒˆˆr   c                 óÈ   — 	 | j         €t          d¦  «        ‚| j                              ¦   «         }| j        �*t	          || j        ¦  «         t          || j        ¦  «         |S )Nzlistener is closed)rð   rQ   Úacceptrõ   Údeliver_challengeÚanswer_challenge)rE   Úcs     r   rù   zListener.accept×  sd   € ð	ð
 Œ>Ð!ÝÐ.Ñ/Ô/Ð/àŒN×!Ò!Ñ#Ô#ˆØŒ=Ð$Ý˜a ¤Ñ/Ô/Ð/Ý˜Q ¤Ñ.Ô.Ð.Øˆr   c                 óT   — 	 | j         }|�d | _         |                     ¦   «          d S d S r   )rð   rX   )rE   Úlisteners     r   rX   zListener.closeæ  s;   € ð	ð ”>ˆØÐØ!ˆDŒNØ�NŠNÑÔÐÐÐð  Ðr   c                 ó   — | j         j        S r   )rð   Ú_addressrM   s    r   r<   zListener.addressï  s   € àŒ~Ô&Ð&r   c                 ó   — | j         j        S r   )rð   Ú_last_acceptedrM   s    r   Úlast_acceptedzListener.last_acceptedó  s   € àŒ~Ô,Ð,r   c                 ó   — | S r   r�   rM   s    r   rŽ   zListener.__enter__÷  r�   r   c                 ó.   — |                       ¦   «          d S r   r‘   r’   s       r   r–   zListener.__exit__ú  r—   r   )NNr   N)r˜   r™   rš   rI   rù   rX   r›   r<   r  rŽ   r–   r�   r   r   r   r   À  sŸ   € € € € € ðð ð  ð  ð  ð ð ð ðð ð ð ð'ð 'ñ „Xð'ð ð-ð -ñ „Xð-ðð ð ðð ð ð ð r   r   c                 ó"  — 	 |pt          | ¦  «        }t          |¦  «         |dk    rt          | ¦  «        }nt          | ¦  «        }|�$t	          |t
          ¦  «        st          d¦  «        ‚|� t          ||¦  «         t          ||¦  «         |S rí   )	r=   r5   Ú
PipeClientÚSocketClientrò   ró   rô   rû   rú   )r<   r.   r÷   rü   s       r   r   r   þ  sŸ   € ðð Ð,•| GÑ,Ô,€FÝ�VÑÔÐØ�ÒÐÝ�wÑÔˆˆå˜Ñ!Ô!ˆàÐ¥:¨gµuÑ#=Ô#=ÐÝÐ9Ñ:Ô:Ð:àÐÝ˜˜GÑ$Ô$Ð$Ý˜!˜WÑ%Ô%Ð%à€Hr   Tc                 ó†  — 	 | rƒt          j        ¦   «         \  }}|                     d¦  «         |                     d¦  «         t          |                     ¦   «         ¦  «        }t          |                     ¦   «         ¦  «        }n8t          j        ¦   «         \  }}t          |d¬¦  «        }t          |d¬¦  «        }||fS )NTF©rH   ©rG   )r4   Ú
socketpairÚsetblockingrÍ   Údetachr(   Úpipe)ÚduplexÚs1Ús2Úc1Úc2Úfd1Úfd2s          r   r   r     s¯   € ð	ð ð 		1ÝÔ&Ñ(Ô(‰FˆB�Ø�NŠN˜4Ñ Ô Ð Ø�NŠN˜4Ñ Ô Ð Ý˜BŸIšI™KœKÑ(Ô(ˆBÝ˜BŸIšI™KœKÑ(Ô(ˆBˆBå”w‘y”y‰HˆC�Ý˜C¨%Ð0Ñ0Ô0ˆBÝ˜C¨%Ð0Ñ0Ô0ˆBà�2ˆvˆr   c           
      ó  — 	 t          d¦  «        }| r4t          j        }t          j        t          j        z  }t
          t
          }}n!t          j        }t          j        }dt
          }}t          j        ||t          j        z  t          j	        z  t          j
        t          j        z  t          j        z  d||t          j        t          j        ¦  «        }t          j        ||dt          j        t          j        t          j        t          j        ¦  «        }t          j        |t          j        d d ¦  «         t          j        |d¬¦  «        }|                     d¦  «        \  }	}
t)          || ¬¦  «        }t)          || ¬¦  «        }||fS )Nr   r   r   Tr¤   r
  r  )r/   r¦   ÚPIPE_ACCESS_DUPLEXÚGENERIC_READÚGENERIC_WRITEÚBUFSIZEÚPIPE_ACCESS_INBOUNDÚCreateNamedPipeÚFILE_FLAG_OVERLAPPEDÚFILE_FLAG_FIRST_PIPE_INSTANCEÚPIPE_TYPE_MESSAGEÚPIPE_READMODE_MESSAGEÚ	PIPE_WAITÚNMPWAIT_WAIT_FOREVERÚNULLÚ
CreateFileÚOPEN_EXISTINGÚSetNamedPipeHandleStateÚConnectNamedPiper«   r�   )r  r<   ÚopenmodeÚaccessÚobsizeÚibsizeÚh1Úh2r¥   Ú_r¯   r  r  s                r   r   r   (  s\  € ð	õ $ IÑ.Ô.ˆØð 	(ÝÔ1ˆHÝÔ)­GÔ,AÑAˆFÝ$¥g�FˆFˆFåÔ2ˆHÝÔ*ˆFØ¥�FˆFåÔ$Ø�X¥Ô <Ñ<ÝÔ1ñ2åÔ%­Ô(EÑEÝÔñàˆv�v�wÔ;åŒLñô ˆõ ÔØ�V˜Q¥¤­gÔ.CÝÔ(­'¬,ñô ˆõ 	Ô'Ø•Ô-¨t°Tñ	ô 	ð 	õ Ô-¨b¸TÐBÑBÔBˆ
Ø×/Ò/°Ñ5Ô5‰ˆˆ3õ ˜B¨Ð0Ñ0Ô0ˆÝ˜B¨Ð0Ñ0Ô0ˆà�2ˆvˆr   c                   ó$   — e Zd Z	 dd„Zd„ Zd„ ZdS )rñ   r   c                 ó¼  — t          j         t          t           |¦  «        ¦  «        | _        	 t          j        dk    r0| j                             t           j        t           j        d¦  «         | j                             d¦  «         | j         	                    |¦  «         | j         
                    |¦  «         | j                             ¦   «         | _        n(# t          $ r | j                             ¦   «          ‚ w xY w|| _        d | _        |dk    r>t#          j        |¦  «        s*t#          j        | t          j        |fd¬¦  «        | _        d S d | _        d S )NÚposixr   Tr   r   ©ÚargsÚexitpriority)r4   ÚgetattrÚ_socketr(   ÚnameÚ
setsockoptÚ
SOL_SOCKETÚSO_REUSEADDRr  ÚbindÚlistenÚgetsocknamer   rQ   rX   Ú_familyr  r   r;   ÚFinalizeÚunlinkÚ_unlink)rE   r<   r.   rö   s       r   rI   zSocketListener.__init__X  sF  € Ý”}¥W­V°VÑ%<Ô%<Ñ=Ô=ˆŒð	åŒw˜'Ò!Ð!Ø”×'Ò'­Ô(9Ý(.Ô(;¸Qñ@ô @ð @àŒL×$Ò$ TÑ*Ô*Ð*ØŒL×Ò˜gÑ&Ô&Ð&ØŒL×Ò Ñ(Ô(Ð(Ø œL×4Ò4Ñ6Ô6ˆDŒMˆMøÝð 	ð 	ð 	ØŒL×ÒÑ Ô Ð Øð	øøøð ˆŒØ"ˆÔà�YÒÐ¥tÔ'HÈÑ'QÔ'QÐåœ=Ø•b”i w j¸qðñ ô ˆDŒLˆLˆLð  ˆDŒLˆLˆLs   ®B,C Ã%D c                 ó°   — | j                              ¦   «         \  }| _        |                     d¦  «         t	          |                     ¦   «         ¦  «        S ©NT)r7  rù   r  r  rÍ   r  ©rE   Úss     r   rù   zSocketListener.acceptq  sE   € Ø!%¤×!4Ò!4Ñ!6Ô!6Ñˆˆ4ÔØ	�Š�dÑÔÐÝ˜!Ÿ(š(™*œ*Ñ%Ô%Ð%r   c                 ó²   — 	 | j                              ¦   «          | j        }|�d | _         |¦   «          d S d S # | j        }|�d | _         |¦   «          w w xY wr   )r7  rX   rB  )rE   rA  s     r   rX   zSocketListener.closev  sr   € ð	ØŒL×ÒÑ Ô Ð à”\ˆFØÐ!Ø#�”Ø�‘”���ð "Ð!øð ”\ˆFØÐ!Ø#�”Ø�‘”��ð "øøøs	   ‚9 ¹AN)r   )r˜   r™   rš   rI   rù   rX   r�   r   r   rñ   rñ   T  sK   € € € € € ðð ð  ð  ð  ð2&ð &ð &ð
ð ð ð ð r   rñ   c                 ó:  — 	 t          | ¦  «        }t          j        t          t          |¦  «        ¦  «        5 }|                     d¦  «         |                     | ¦  «         t          |                     ¦   «         ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S rD  )r=   r4   r6  r  ÚconnectrÍ   r  )r<   r.   rF  s      r   r  r  €  sÈ   € ðõ ˜'Ñ"Ô"€FÝ	Œ�¥¨Ñ/Ô/Ñ	1Ô	1ð &°QØ	�Š�dÑÔÐØ	�	Š	�'ÑÔÐÝ˜!Ÿ(š(™*œ*Ñ%Ô%ð&ð &ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   ¸ABÂBÂBc                   ó<   — e Zd Z	 dd„Zdd„Zd„ Zed„ ¦   «         ZdS )	rï   Nc                 óô   — || _         |                      d¬¦  «        g| _        d | _        t	          j        d| j         ¦  «         t	          j        | t          j        | j        | j         fd¬¦  «        | _	        d S )NT)Úfirstz listener created with address=%rr   r3  )
r   Ú_new_handleÚ_handle_queuer  r   Ú	sub_debugr@  rï   Ú_finalize_pipe_listenerrX   )rE   r<   rö   s      r   rI   zPipeListener.__init__”  su   € Ø#ˆDŒMØ"&×"2Ò"2¸Ð"2Ñ">Ô">Ð!?ˆDÔà"&ˆDÔÝŒNÐ=¸t¼}ÑMÔMÐMÝœØ•lÔ:ØÔ(¨$¬-Ð8Àqðñ ô ˆDŒJˆJˆJr   Fc           
      ó.  — t           j        t           j        z  }|r|t           j        z  }t          j        | j        |t           j        t           j        z  t           j        z  t           j	        t          t          t           j        t           j        ¦  «        S r   )r¦   r  r  r  r  r   r   r!  r"  ÚPIPE_UNLIMITED_INSTANCESr  r#  r$  )rE   rL  Úflagss      r   rM  zPipeListener._new_handleŸ  sp   € ÝÔ.µÔ1MÑMˆEØð ?Ø�Ô>Ñ>�ÝÔ*Ø”˜uÝÔ)­GÔ,IÑIÝÔ!ñ"åÔ0µ'½7ÝÔ,­g¬lñô ð r   c                 óD  — | j                              |                      ¦   «         ¦  «         | j                              d¦  «        }	 t	          j        |d¬¦  «        }	 t	          j        |j        gdt          ¦  «        }n.#  | 	                    ¦   «          t	          j
        |¦  «         ‚ xY w	 |                     d¦  «        \  }}nJ# |                     d¦  «        \  }}w xY w# t          $ r }|j        t          j        k    r‚ Y d }~nd }~ww xY wt          |¦  «        S )Nr   Tr¤   F)rN  ÚappendrM  Úpopr¦   r(  r©   rª   r   r    rË   r«   rQ   r¼   ÚERROR_NO_DATAr�   )rE   rF   r¢   Úresr/  r¯   rÄ   s          r   rù   zPipeListener.accept«  s8  € ØÔ×%Ò% d×&6Ò&6Ñ&8Ô&8Ñ9Ô9Ð9ØÔ'×+Ò+¨AÑ.Ô.ˆFð$ÝÔ-¨fÀÐFÑFÔF�ð	$Ý!Ô8Øœ˜
 E­8ñ5ô 5�C�CøðØ—I’I‘K”K�KÝÔ'¨Ñ/Ô/Ð/Øøøøð ð  ×3Ò3°DÑ9Ô9‘F�A�s�sø˜R×3Ò3°DÑ9Ô9‘F�A�sØ#�O�O�Oøõ ð ð ð Ø”:¥Ô!6Ò6Ð6Øð 7Ð6Ð6Ð6Ð6øøøøðøøøõ  " &Ñ)Ô)Ð)s6   ÁC& Á!B Â C	 Â+B,Â,C	 Ã	C#Ã&
DÃ0DÄDc                 ób   — t          j        d|¦  «         | D ]}t          j        |¦  «         Œd S )Nz closing listener with address=%r)r   rO  r¦   rË   )Úqueuer<   rF   s      r   rP  z$PipeListener._finalize_pipe_listenerÂ  sB   € åŒNÐ=¸wÑGÔGÐGØð ,ð ,�ÝÔ# FÑ+Ô+Ð+Ð+ð,ð ,r   r   )F)r˜   r™   rš   rI   rM  rù   ÚstaticmethodrP  r�   r   r   rï   rï   �  sk   € € € € € ð	ð		ð 		ð 		ð 		ð
	ð 
	ð 
	ð 
	ð	*ð 	*ð 	*ð. 
ð	,ð 	,ñ 
Œð	,ð 	,ð 	,r   rï   c           	      óð  — 	 t          ¦   «         }	 	 t          j        | d¦  «         t          j        | t          j        t          j        z  dt          j        t          j        t          j        t          j        ¦  «        }nG# t          $ r9}|j
        t          j        t          j        fvst          |¦  «        r‚ Y d }~nd }~ww xY wŒ·t          j        |t          j        d d ¦  «         t!          |¦  «        S )Nr   éè  r   )r   r¦   ÚWaitNamedPiper%  r  r  r$  r&  r  rQ   r¼   ÚERROR_SEM_TIMEOUTÚERROR_PIPE_BUSYr   r'  r!  r�   )r<   r   ÚhrÄ   s       r   r  r  È  s  € ð	õ ‰OŒOˆð	ðÝÔ% g¨tÑ4Ô4Ð4ÝÔ&Ø�WÔ1µGÔ4IÑIØ•w”|¥WÔ%:ÝÔ0µ'´,ñô �ð øõ ð ð ð Ø”:¥gÔ&?Ý&-Ô&=ð&?ð ?ð ?ÝBPÐQRÑBSÔBSð?àð?ð ?ð ?ð ?ð ?øøøøðøøøð	õ" 	Ô'Ø�wÔ,¨d°Dñ	ô 	ð 	õ ˜aÑ Ô Ð s   ’A.B Â
CÂ/B?Â?Cé   s   #CHALLENGE#s	   #WELCOME#s	   #FAILURE#c                 ó  — dd l }t          |t          ¦  «        s/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t          j        t          ¦  «        }|  	                    t          |z   ¦  «         |                     ||d¦  «                             ¦   «         }|                      d¦  «        }||k    r|  	                    t          ¦  «         d S |  	                    t          ¦  «         t!          d¦  «        ‚)Nr   ú Authkey must be bytes, not {0!s}Úmd5é   zdigest received was wrong)Úhmacrò   ró   r,   Úformatr7   r(   ÚurandomÚMESSAGE_LENGTHro   Ú	CHALLENGEÚnewÚdigestrz   ÚWELCOMEÚFAILUREr	   ©Ú
connectionr÷   rg  Úmessagerm  Úresponses         r   rú   rú   í  sî   € Ø€K€K€KÝ�g�uÑ%Ô%ð FÝØ.×5Ò5µd¸7±m´mÑDÔDñFô Fð 	FåŒj�Ñ(Ô(€GØ×Ò�) gÑ-Ñ.Ô.Ð.Ø�XŠX�g˜w¨Ñ.Ô.×5Ò5Ñ7Ô7€FØ×$Ò$ SÑ)Ô)€HØ�6ÒÐØ×Ò�gÑ&Ô&Ð&Ð&Ð&à×Ò�gÑ&Ô&Ð&Ý!Ð"=Ñ>Ô>Ð>r   c                 óÒ  — dd l }t          |t          ¦  «        s/t          d                     t          |¦  «        ¦  «        ¦  «        ‚|                      d¦  «        }|t          t          ¦  «        d …         }| 	                    ||d¦  «         
                    ¦   «         }|                      |¦  «         |                      d¦  «        }|t          k    rt          d¦  «        ‚d S )Nr   rd  rf  re  zdigest sent was rejected)rg  rò   ró   r,   rh  r7   rz   r|   rk  rl  rm  ro   rn  r	   rp  s         r   rû   rû   ü  sÛ   € Ø€K€K€KÝ�g�uÑ%Ô%ð FÝØ.×5Ò5µd¸7±m´mÑDÔDñFô Fð 	Fà×#Ò# CÑ(Ô(€Gà•c�)‘n”n�o�oÔ&€GØ�XŠX�g˜w¨Ñ.Ô.×5Ò5Ñ7Ô7€FØ×Ò˜&Ñ!Ô!Ð!Ø×$Ò$ SÑ)Ô)€HØ•7ÒÐÝ!Ð"<Ñ=Ô=Ð=ð Ðr   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚConnectionWrapperc                 ó|   — || _         || _        || _        dD ]#}t          ||¦  «        }t	          | ||¦  «         Œ$d S )N)ra   rX   r‹   rz   ro   )Ú_connÚ_dumpsÚ_loadsr6  Úsetattr)rE   Úconnrr   r„   Úattrrt   s         r   rI   zConnectionWrapper.__init__  sT   € ØˆŒ
ØˆŒØˆŒØKð 	%ð 	%ˆDÝ˜$ Ñ%Ô%ˆCÝ�D˜$ Ñ$Ô$Ð$Ð$ð	%ð 	%r   c                 ód   — |                       |¦  «        }| j                             |¦  «         d S r   )ry  rx  ro   )rE   rt   rF  s      r   ru   zConnectionWrapper.send  s/   € Ø�KŠK˜ÑÔˆØŒ
×Ò˜aÑ Ô Ð Ð Ð r   c                 ó^   — | j                              ¦   «         }|                      |¦  «        S r   )rx  rz   rz  rE  s     r   r†   zConnectionWrapper.recv  s%   € ØŒJ×!Ò!Ñ#Ô#ˆØ�{Š{˜1‰~Œ~Ðr   N)r˜   r™   rš   rI   ru   r†   r�   r   r   rv  rv    sA   € € € € € ð%ð %ð %ð!ð !ð !ðð ð ð ð r   rv  c                 óf   — t                                | fd d d d¦  «                             d¦  «        S )Nr   úutf-8)Ú	xmlrpclibrr   Úencode)rt   s    r   Ú
_xml_dumpsr„    s,   € Ý�?Š?˜C˜6 4¨¨t°QÑ7Ô7×>Ò>¸wÑGÔGÐGr   c                 ój   — t                                |                      d¦  «        ¦  «        \  \  }}|S )Nr�  )r‚  r„   Údecode)rF  rt   Úmethods      r   Ú
_xml_loadsrˆ     s*   € Ý—_’_ Q§X¢X¨gÑ%6Ô%6Ñ7Ô7�N�F€SˆFØ€Jr   c                   ó   — e Zd Zd„ ZdS )ÚXmlListenerc                 óx   — dd l ma t                               | ¦  «        }t          |t          t          ¦  «        S ©Nr   )Úxmlrpc.clientÚclientr‚  r   rù   rv  r„  rˆ  rs   s     r   rù   zXmlListener.accept%  s7   € à)Ð)Ð)Ð)Ð)Ð)Ý�oŠo˜dÑ#Ô#ˆÝ  ¥jµ*Ñ=Ô=Ð=r   N)r˜   r™   rš   rù   r�   r   r   rŠ  rŠ  $  s#   € € € € € ð>ð >ð >ð >ð >r   rŠ  c                  óX   — dd l ma t          t	          | i |¤Žt
          t          ¦  «        S rŒ  )r�  rŽ  r‚  rv  r   r„  rˆ  )r4  Úkwdss     r   Ú	XmlClientr‘  +  s3   € à%Ð%Ð%Ð%Ð%Ð%Ý�V TÐ2¨TÐ2Ð2µJÅ
ÑKÔKÐKr   c                 óº  — t          | ¦  «        }g }|rÇt          j        |d|¦  «        }|t          k    rn¥t          |cxk    rt          t          |¦  «        z   k     rn n|t          z  }nDt          |cxk    rt          t          |¦  «        z   k     rn n|t          z  }nt          d¦  «        ‚|                     ||         ¦  «         ||dz   d …         }d}|°Ç|S )NFzShould not get herer   r   )	Úlistr¦   r©   r   r   r|   r   r¿   rU  )Úhandlesr   ÚLÚreadyrX  s        r   Ú_exhaustive_waitr—  6  sþ   € õ �‰MŒMˆØˆØð 	ÝÔ0°°E¸7ÑCÔCˆCØ•lÒ"Ð"ØÝ #Ð>Ð>Ò>Ð>­½¸A¹¼Ñ(>Ò>Ð>Ð>Ð>Ð>Ø•}Ñ$��Ý! SÐDÐDÒDÐDÕ+;½cÀ!¹f¼fÑ+DÒDÐDÐDÐDÐDØÕ'Ñ'��å"Ð#8Ñ9Ô9Ð9Ø�LŠL˜˜3œÑ Ô Ð Ø�#�a‘%�&�&”	ˆAØˆGð ð 	ð ˆr   c                 ó®  ‡
‡— 	 |€t           }n|dk     rd}nt          |dz  dz   ¦  «        }t          | ¦  «        } i Šg }t          ¦   «         Š
t          ¦   «         }	 | D �]B}	 t	          |d¦  «        }	 t          j         |¦   «         dd¦  «        \  }}n*# t          $ r}d |j        }}|t          vr‚ Y d }~nd }~ww xY w|t
          j
        k    r |                     |¦  «         |‰|j        <   Œ‘|rpt          j        ¦   «         d d…         dk    rQ	 |                     d¦  «        \  }	}n# t          $ r}|j        }Y d }~nd }~ww xY w|st!          |d	¦  «        rd|_        ‰
                     |¦  «         d}�Œ# t&          $ r |‰|                     ¦   «         <   Y �Œ@w xY wt+          ‰                     ¦   «         |¦  «        }|D ]}|                     ¦   «          Œ|D ]“}	 |                     d¦  «        \  }	}n(# t          $ r}|j        }|t          vr‚ Y d }~nd }~ww xY w|t
          j        k    r?‰|j                 }‰
                     |¦  «         |dk    rt!          |d	¦  «        rd|_        Œ”n´# |D ]}|                     ¦   «          Œ|D ]“}	 |                     d¦  «        \  }	}n(# t          $ r}|j        }|t          vr‚ Y d }~nd }~ww xY w|t
          j        k    r?‰|j                 }‰
                     |¦  «         |dk    rt!          |d	¦  «        rd|_        Œ”w xY w‰
                     ˆfd
„|D ¦   «         ¦  «         ˆ
fd„| D ¦   «         S )Nr   r]  g      à?ra   Té   )é   r™  Fr´   c              3   ó(   •K  — | ]}‰|         V — Œd S r   r�   )Ú.0ra  Úwaithandle_to_objs     €r   ú	<genexpr>zwait.<locals>.<genexpr>—  s)   øè è € ÐIÐI°aÐ.¨qÔ1ÐIÐIÐIÐIÐIÐIr   c                 ó   •— g | ]}|‰v ¯|‘Œ	S r�   r�   )rœ  ÚoÚready_objectss     €r   ú
<listcomp>zwait.<locals>.<listcomp>˜  s#   ø€ Ð=Ð=Ð=�a¨!¨}Ð*<Ð*<�Ð*<Ð*<Ð*<r   )r   Úintr“  Úsetr6  r¦   r¸   rQ   r¼   Ú_ready_errorsr¨   rU  rª   r1   Úgetwindowsversionr«   r3   r´   ÚaddÚAttributeErrorrA   r—  Úkeysr    r¬   Úupdate)Úobject_listr   Úov_listÚready_handlesr   ra   r¢   r¯   rÄ   r/  r¡  r�  s             @@r   r   r   L  s]  øø€ ð	ð
 ˆ?ÝˆGˆGØ�qŠ[ˆ[ØˆGˆGå˜' D™.¨3Ñ.Ñ/Ô/ˆGå˜;Ñ'Ô'ˆØÐØˆÝ™œˆÝ™œˆð6	8Ø ð $ñ $�ð$Ý$ Q¨Ñ1Ô1�Fð
"Ý")Ô"2°6°6±8´8¸QÀÑ"EÔ"E™˜˜C˜CøÝ"ð "ð "ð "Ø"&¨¬
˜C˜Ø¥mÐ3Ð3Ø!ð 4Ð3Ð3Ð3Ð3øøøøð"øøøð �gÔ6Ò6Ð6ØŸš rÑ*Ô*Ð*Ø67Ð)¨"¬(Ñ3Ð3ð
 ð <¥#Ô"7Ñ"9Ô"9¸"¸1¸"Ô"=ÀÒ"GÐ"Gð1Ø)+×)?Ò)?ÀÑ)FÔ)F¡  3 3øÝ#*ð 1ð 1ð 1Ø&'¤j      øøøøð1øøøà#&ð <­7°1Ð6JÑ+KÔ+Kð <Ø7; Ô 4Ø%×)Ò)¨!Ñ,Ô,Ð,Ø"#˜™øõ7 &ð 9ð 9ð 9Ø78Ð% a§k¢k¡m¤mÑ4Ð4Ñ4ð9øøøõ: -Ð->×-CÒ-CÑ-EÔ-EÀwÑOÔOˆMð ð ð �Ø—	’	‘”��ð ð 8ð 8�ðØ×3Ò3°DÑ9Ô9‘F�A�s�søÝð ð ð Øœ*�CØ¥-Ð/Ð/Øð 0Ð/Ð/Ð/Ð/øøøøðøøøð �'Ô9Ò9Ð9Ø)¨"¬(Ô3�AØ!×%Ò% aÑ(Ô(Ð(Ø˜a’x�xõ # 1Ð&:Ñ;Ô;ð 8Ø37˜AÔ0øð8øð	 ð ð �Ø—	’	‘”��ð ð 8ð 8�ðØ×3Ò3°DÑ9Ô9‘F�A�s�søÝð ð ð Øœ*�CØ¥-Ð/Ð/Øð 0Ð/Ð/Ð/Ð/øøøøðøøøð �'Ô9Ò9Ð9Ø)¨"¬(Ô3�AØ!×%Ò% aÑ(Ô(Ð(Ø˜a’x�xõ # 1Ð&:Ñ;Ô;ð 8Ø37˜AÔ0øð8øøøð  	×ÒÐIÐIÐIÐI¸=ÐIÑIÔIÑIÔIÐIØ=Ð=Ð=Ð=˜;Ð=Ñ=Ô=Ð=sÂ   ÁI4 Á"E:Á3!BÂI4 Â
B<ÂB7Â2I4 Â7B<Â<AI4 ÄD*Ä)I4 Ä*
EÄ4E Ä;I4 Å EÅ5I4 Å:!FÆI4 ÆFÆ%I4 Ç"G;Ç;
H ÈHÈH É4L%ÊJ,Ê+L%Ê,
K	Ê6K	ËL%ËK	ËAL%ÚPollSelectorc                 óp  — 	 t          ¦   «         5 }| D ]"}|                     |t          j        ¦  «         Œ#|�t	          j        ¦   «         |z   }	 |                     |¦  «        }|rd„ |D ¦   «         cd d d ¦  «         S |�*|t	          j        ¦   «         z
  }|dk     r|cd d d ¦  «         S Œ\# 1 swxY w Y   d S )NTc                 ó"   — g | ]\  }}|j         ‘ŒS r�   )Úfileobj)rœ  ÚkeyÚeventss      r   r¢  zwait.<locals>.<listcomp>¶  s   € ÐCÐCÐC©M¨S°&˜CœKÐCÐCÐCr   r   )Ú_WaitSelectorÚregisterÚ	selectorsÚ
EVENT_READr   r   Úselect)r«  r   Úselectorrt   Údeadliner–  s         r   r   r   ¦  s9  € ð	õ
 ‰_Œ_ð 	) Ø"ð =ð =�Ø×!Ò! #¥yÔ';Ñ<Ô<Ð<Ð<àÐ"Ýœ>Ñ+Ô+¨gÑ5�ð)Ø Ÿš¨Ñ0Ô0�Øð )ØCÐC¸UÐCÑCÔCð	)ð 	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð Ð*Ø"*­T¬^Ñ-=Ô-=Ñ"=˜Ø" Qš;˜;Ø#(ð	)ð 	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð)ð	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   �A!B+Á>B+Â*B+Â+B/Â2B/c                 ó  — |                       ¦   «         }t          j        |t          j        t          j        ¦  «        5 }ddlm} |                     |¦  «        }t          || j	        | j
        ffcd d d ¦  «         S # 1 swxY w Y   d S )Nr   )Úresource_sharer)ra   r4   Úfromfdr   ÚSOCK_STREAMr$   r¼  Ú	DupSocketÚrebuild_connectionrG   rH   )r|  rF   rF  r¼  Údss        r   Úreduce_connectionrÂ  Â  sÔ   € Ø—’‘”ˆÝŒ]˜6¥6¤>µ6Ô3EÑFÔFð 	JÈ!Ø)Ð)Ð)Ð)Ð)Ð)Ø ×*Ò*¨1Ñ-Ô-ˆBÝ%¨¨D¬M¸4¼=Ð'IÐIð	Jð 	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jð 	Jð 	Js   ¿1A=Á=BÂBc                 óp   — |                       ¦   «         }t          |                      ¦   «         ||¦  «        S r   ©r  rÍ   )rÁ  rG   rH   Úsocks       r   rÀ  rÀ  È  s)   € Ø�yŠy‰{Œ{ˆÝ˜$Ÿ+š+™-œ-¨°8Ñ<Ô<Ð<r   c                 óÒ   — | j         rt          j        nd| j        rt          j        ndz  }t          j        |                      ¦   «         |¦  «        }t          || j         | j        ffS rŒ  )	rG   r¦   ÚFILE_GENERIC_READrH   ÚFILE_GENERIC_WRITEr   Ú	DupHandlera   Úrebuild_pipe_connection)r|  r*  Údhs      r   Úreduce_pipe_connectionrÌ  Í  s^   € Ø04´ÐD•7Ô,Ð,À1Ø15´ÐE•7Ô-Ð-ÀAñGˆåÔ  §¢¡¤°Ñ7Ô7ˆÝ&¨¨T¬]¸D¼MÐ(JÐJÐJr   c                 óL   — |                       ¦   «         }t          |||¦  «        S r   )r  r�   )rË  rG   rH   rF   s       r   rÊ  rÊ  Ò  s!   € Ø—’‘”ˆÝ˜f h°Ñ9Ô9Ð9r   c                 óz   — t          j        |                      ¦   «         ¦  «        }t          || j        | j        ffS r   )r   ÚDupFdra   rÀ  rG   rH   )r|  Údfs     r   rÂ  rÂ  Ø  s/   € ÝŒ_˜TŸ[š[™]œ]Ñ+Ô+ˆÝ! B¨¬°t´}Ð#EÐEÐEr   c                 óL   — |                       ¦   «         }t          |||¦  «        S r   rÄ  )rÐ  rG   rH   Úfds       r   rÀ  rÀ  Û  s!   € Ø�YŠY‰[Œ[ˆÝ˜"˜h¨Ñ1Ô1Ð1r   )NN)Tr   )JÚ__all__r­   rµ   r(   r1   r4   rÝ   r   r%   Ú	itertoolsrç   r$   r   r	   r
   Úcontextr   ÚForkingPicklerrq   r¦   r   r   r   r   ÚImportErrorr2   r  ÚCONNECTION_TIMEOUTÚcountr+   rî   Úfamiliesr3   r   r   r/   r5   r=   r?   r�   rÍ   Úobjectr   r   r   rñ   r  rï   r  rj  rk  rn  ro  rú   rû   rv  r„  rˆ  rŠ  r‘  r—  r½   ÚERROR_NETNAME_DELETEDr¥  r   r¶  r®  r´  ÚSelectSelectorrÂ  rÀ  rµ  rÌ  rÊ  r�   r   r   ú<module>rÞ     s   ðð 3Ð
2Ð
2€à €€€Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð à Ð Ð Ð à Ð Ð Ð Ð Ð à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð ØÔ*€ðØ€N€N€NØOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOøØð ð ð Ø
„|�wÒÐØØ€G€G€Gðøøøð €àÐ à�	”Ñ!Ô!€à€Øˆ;€à
€7ˆ6�9ÑÔð Ø€NØ��Ñ€Hà„<�7ÒÐØ€NØ��Ñ€Hð -ð &ð &ð &ð &ð ð  ð  ð0ð 0ð 0ð
Fð 
Fð 
FðFð Fð Fð&Tð Tð Tð Tð Tñ Tô Tð Tðn ð _ð]ð ]ð ]ð ]ð ]˜ñ ]ô ]ð ]ð@Mð Mð Mð Mð M�ñ Mô Mð Mðh;ð ;ð ;ð ;ð ;ˆvñ ;ô ;ð ;ð|ð ð ð ð* „<�7ÒÐðð ð ð ð ð&&ð &ð &ð &ðX)ð )ð )ð )ð )�Vñ )ô )ð )ðX&ð &ð &ð „<�7ÒÐð6,ð 6,ð 6,ð 6,ð 6,�vñ 6,ô 6,ð 6,ðp!ð !ð !ð> €à€	Ø
€Ø
€ð?ð ?ð ?ð>ð >ð >ð$ð ð ð ð ˜ñ ô ð ðHð Hð Hðð ð ð>ð >ð >ð >ð >�(ñ >ô >ð >ðLð Lð Lð „<�7ÒÐðð ð ð( Ô.°Ô0MÐN€MðL>ð L>ð L>ð L>ð L>ð` ÐÐÐð
 €wˆy˜.Ñ)Ô)ð 1Ø!Ô.ˆˆà!Ô0ˆð)ð )ð )ð )ð6 „<�7ÒÐðJð Jð Jð=ð =ð =ð €IÔ�zÐ#4Ñ5Ô5Ð5ðKð Kð Kð
:ð :ð :ð €IÔ�~Ð'=Ñ>Ô>Ð>Ð>Ð>ðFð Fð Fð2ð 2ð 2ð €IÔ�zÐ#4Ñ5Ô5Ð5Ð5Ð5s   Á	A ÁA0Á/A0