§
    K" hÞI  ã                   ó–  — d Z ddlmZmZmZmZmZmZmZm	Z	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ddlZddlmZ  eeee	eeeh¦  «        Z	 e n# e$ r i ZY nw xY wd„ Z G d„ de¦  «        ZeeefZd	„ Zd
„ Zd„ Z d„ Z!dd„Z"dd„Z#e#Z$dd„Z%d„ Z& G d„ d¦  «        Z'dd„Z(ej)        dk    r G d„ d¦  «        Z* G d„ de'¦  «        Z+dS dS )aË  Basic infrastructure for asynchronous socket service clients and servers.

There are only two ways to have a program on a single processor do "more
than one thing at a time".  Multi-threaded programming is the simplest and
most popular way to do it, but there is another very different technique,
that lets you have nearly all the advantages of multi-threading, without
actually using multiple threads. it's really only practical if your program
is largely I/O bound. If your program is CPU bound, then pre-emptive
scheduled threads are probably what you really need. Network servers are
rarely CPU-bound, however.

If your operating system supports the select() system call in its I/O
library (and nearly all do), then you can use it to juggle multiple
communication channels at once; doing other work while your I/O is taking
place in the "background."  Although this strategy can seem strange and
complex, especially at first, it is in many ways easier to understand and
control than multi-threaded programming. The module documented here solves
many of the difficult problems for you, making the task of building
sophisticated high-performance network servers and clients a snap.

NB: this is a fork of asyncore from the stdlib that we've (the waitress
developers) named 'wasyncore' to ensure forward compatibility, as asyncore
in the stdlib will be dropped soon.  It is neither a copy of the 2.7 asyncore
nor the 3.X asyncore; it is a version compatible with either 2.7 or 3.X.
é    )	ÚEAGAINÚEBADFÚECONNABORTEDÚ
ECONNRESETÚEINTRÚENOTCONNÚEPIPEÚ	ESHUTDOWNÚEWOULDBLOCKNé   )Ú	utilitiesc                 ó|   — 	 t          j        | ¦  «        S # t          t          t          t
          f$ r d| z  cY S w xY w)NzUnknown error %s)ÚosÚstrerrorÚ	TypeErrorÚ
ValueErrorÚOverflowErrorÚ	NameError)Úerrs    úLc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\waitress/wasyncore.pyÚ	_strerrorr   S   sL   € ð(ÝŒ{˜3ÑÔÐøÝ•z¥=µ)Ð<ð (ð (ð (Ø! CÑ'Ð'Ð'Ð'ð(øøøs   ‚ –";º;c                   ó   — e Zd ZdS )ÚExitNowN)Ú__name__Ú
__module__Ú__qualname__© ó    r   r   r   Z   s   € € € € € Ø€Dr   r   c                 ó|   — 	 |                       ¦   «          d S # t          $ r ‚  |                      ¦   «          Y d S xY w©N)Úhandle_read_eventÚ_reraised_exceptionsÚhandle_error©Úobjs    r   Úreadr&   a   óX   € ðØ×ÒÑÔÐÐÐøÝð ð ð ØðØ×ÒÑÔÐÐÐÐøøøó   ‚ ˜ ;c                 ó|   — 	 |                       ¦   «          d S # t          $ r ‚  |                      ¦   «          Y d S xY wr    )Úhandle_write_eventr"   r#   r$   s    r   Úwriter+   j   sX   € ðØ×ÒÑ Ô Ð Ð Ð øÝð ð ð ØðØ×ÒÑÔÐÐÐÐøøør(   c                 ó|   — 	 |                       ¦   «          d S # t          $ r ‚  |                      ¦   «          Y d S xY wr    )Úhandle_expt_eventr"   r#   r$   s    r   Ú
_exceptionr.   s   r'   r(   c                 óP  — 	 |t           j        z  r|                      ¦   «          |t           j        z  r|                      ¦   «          |t           j        z  r|                      ¦   «          |t           j        t           j        z  t           j	        z  z  r|  
                    ¦   «          d S d S # t          $ rN}|j        d         t          vr|                      ¦   «          n|  
                    ¦   «          Y d }~d S Y d }~d S d }~wt          $ r ‚  |                      ¦   «          Y d S xY w©Nr   )ÚselectÚPOLLINr!   ÚPOLLOUTr*   ÚPOLLPRIr-   ÚPOLLHUPÚPOLLERRÚPOLLNVALÚhandle_closeÚOSErrorÚargsÚ_DISCONNECTEDr#   r"   )r%   ÚflagsÚes      r   Ú	readwriter>   |   sX  € ðØ•6”=Ñ ð 	$Ø×!Ò!Ñ#Ô#Ð#Ø•6”>Ñ!ð 	%Ø×"Ò"Ñ$Ô$Ð$Ø•6”>Ñ!ð 	$Ø×!Ò!Ñ#Ô#Ð#Ø•F”N¥V¤^Ñ3µf´oÑEÑFð 	Ø×ÒÑÔÐÐÐð	ð 	øåð ð ð ØŒ6�!Œ9�MÐ)Ð)Ø×ÒÑÔÐÐà×ÒÑÔÐÐÐÐÐÐÐð ÐÐÐÐÐøøøøõ  ð ð ð ØðØ×ÒÑÔÐÐÐÐøøøs   ‚B&B, Â,
D%Â6=C?Ã?#D%ç        c                 ób  — |€t           }|�r g }g }g }t          |                     ¦   «         ¦  «        D ]{\  }}|                     ¦   «         }|                     ¦   «         }|r|                     |¦  «         |r|j        s|                     |¦  «         |s|r|                     |¦  «         Œ|g |cxk    r|cxk    r|k    rn nt          j        | ¦  «         d S 	 t          j	        |||| ¦  «        \  }}}n/# t          $ r"}	|	j        d         t          k    r‚ Y d }	~	d S d }	~	ww xY w|D ])}|                     |¦  «        }|€Œt          |¦  «         Œ*|D ])}|                     |¦  «        }|€Œt          |¦  «         Œ*|D ]+}|                     |¦  «        }|€Œt!          |¦  «         Œ*d S d S r0   )Ú
socket_mapÚlistÚitemsÚreadableÚwritableÚappendÚ	acceptingÚtimeÚsleepr1   r9   r:   r   Úgetr&   r+   r.   )
ÚtimeoutÚmapÚrÚwr=   Úfdr%   Úis_rÚis_wr   s
             r   ÚpollrR   ‘   s  € Ø
€{ÝˆØ
ñ *ØˆØˆØˆÝ˜CŸIšI™KœKÑ(Ô(ð 		ð 		‰GˆB�Ø—<’<‘>”>ˆDØ—<’<‘>”>ˆDØð Ø—’˜‘”�àð ˜CœMð Ø—’˜‘”�Øð �tð Ø—’˜‘”�øØ�ÐÐÒÐ�aÐÐÒÐ˜1ÒÐÐÐÐÝŒJ�wÑÔÐØˆFð	Ý”m A q¨!¨WÑ5Ô5‰GˆAˆq�!�!øÝð 	ð 	ð 	ØŒx˜Œ{�eÒ#Ð#Øà�����øøøøð		øøøð ð 	ð 	ˆBØ—'’'˜"‘+”+ˆCØˆ{ØÝ�‰IŒIˆIˆIàð 	ð 	ˆBØ—'’'˜"‘+”+ˆCØˆ{ØÝ�#‰JŒJˆJˆJàð 	ð 	ˆBØ—'’'˜"‘+”+ˆCØˆ{ØÝ�s‰OŒOˆOˆOðU*ð *ðL	ð 	s   ÃC: Ã:
D&ÄD!Ä!D&c                 ó”  — |€t           }| �t          | dz  ¦  «        } t          j        ¦   «         }|�rt	          |                     ¦   «         ¦  «        D ]y\  }}d}|                     ¦   «         r|t          j        t          j        z  z  }| 	                    ¦   «         r|j
        s|t          j        z  }|r|                     ||¦  «         Œz	 |                     | ¦  «        }n0# t          $ r#}|j        d         t          k    r‚ g }Y d }~nd }~ww xY w|D ]/\  }}|                     |¦  «        }|€Œt#          ||¦  «         Œ.d S d S )Niè  r   )rA   Úintr1   rR   rB   rC   rD   r2   r4   rE   rG   r3   Úregisterr9   r:   r   rJ   r>   )rK   rL   ÚpollsterrO   r%   r<   rM   r   s           r   Úpoll2rW   Á   sr  € à
€{ÝˆØÐå�g ‘nÑ%Ô%ˆÝŒ{‰}Œ}€HØ
ñ "Ý˜CŸIšI™KœKÑ(Ô(ð 	-ð 	-‰GˆB�ØˆEØ�|Š|‰~Œ~ð 8Ø�œ­¬Ñ7Ñ7�à�|Š|‰~Œ~ð ( c¤mð (Ø�œÑ'�Øð -Ø×!Ò! " eÑ,Ô,Ð,øð	Ø—’˜gÑ&Ô&ˆAˆAøÝð 	ð 	ð 	ØŒx˜Œ{�eÒ#Ð#ØØˆAˆAˆAˆAˆAˆAøøøøð	øøøð
 ð 	"ð 	"‰IˆB�Ø—'’'˜"‘+”+ˆCØˆ{ØÝ�c˜5Ñ!Ô!Ð!Ð!ð-"ð "ð$	"ð 	"s   ÃC& Ã&
DÃ0DÄDç      >@Fc                 óÞ   — |€t           }|rt          t          d¦  «        rt          }nt          }|€|r || |¦  «         |°d S d S |r!|dk    r || |¦  «         |dz
  }|r
|dk    °d S d S d S d S )NrR   r   r   )rA   Úhasattrr1   rW   rR   )rK   Úuse_pollrL   ÚcountÚpoll_funs        r   Úloopr^   å   sÉ   € Ø
€{Ýˆàð •G�F FÑ+Ô+ð Ýˆˆåˆà€}Øð 	#ØˆH�W˜cÑ"Ô"Ð"ð ð 	#ð 	#ð 	#ð 	#ð 	#ð ð 	�e˜a’i�iØˆH�W˜cÑ"Ô"Ð"Ø˜A‘IˆEð ð 	�e˜a’i�i�i�ið 	ð 	ð 	ð 	�i�ir   c                  óf  — t          j        ¦   «         \  } }}g }|st          d¦  «        ‚|rQ|                     |j        j        j        |j        j        j        t          |j	        ¦  «        f¦  «         |j
        }|°Q~|d         \  }}}d                     d„ |D ¦   «         ¦  «        }|||f| ||fS )Nztraceback does not existéÿÿÿÿú c                 ó   — g | ]}d |z  ‘ŒS )z
[%s|%s|%s]r   )Ú.0Úxs     r   ú
<listcomp>z%compact_traceback.<locals>.<listcomp>  s   € Ð6Ð6Ð6¨!�\ AÑ%Ð6Ð6Ð6r   )ÚsysÚexc_infoÚAssertionErrorrF   Útb_frameÚf_codeÚco_filenameÚco_nameÚstrÚ	tb_linenoÚtb_nextÚjoin)ÚtÚvÚtbÚtbinfoÚfileÚfunctionÚlineÚinfos           r   Úcompact_tracebackry   ø   sÓ   € ÝŒ|‰~Œ~�H€A€qˆ"Ø€FØð 9ÝÐ7Ñ8Ô8Ð8Ø
ð Ø�Šà”Ô"Ô.Ø”Ô"Ô*Ý�B”LÑ!Ô!ðñ	
ô 	
ð 	
ð ŒZˆð ð ð 	à! "œ:Ñ€Dˆ(�DØ�8Š8Ð6Ð6¨vÐ6Ñ6Ô6Ñ7Ô7€DØ�(˜DÐ! 1 a¨Ð-Ð-r   c                   ó:  — e Zd ZdZdZdZdZdZdZ e	dh¦  «        Z
ej        Z ee¦  «        Zd#d„Zd„ ZeZd$d„Zd$d„Zej        ej        fd„Zd$d	„Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd%d„Zd„ Z d„ Z!d„ Z"d&d„Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d „ Z-d!„ Z.d"„ Z/dS )'Ú
dispatcherFNÚwarningc                 ó¬   — |€t           | _        n|| _        d | _        |r-|                     d¦  «         |                      ||¦  «         d S d | _        d S r0   )rA   Ú_mapÚ_filenoÚsetblockingÚ
set_socketÚsocket©ÚselfÚsockrL   s      r   Ú__init__zdispatcher.__init__  sa   € Øˆ;Ý"ˆDŒIˆIàˆDŒIàˆŒàð 	ð ×Ò˜QÑÔÐØ�OŠO˜D #Ñ&Ô&Ð&Ð&Ð&àˆDŒKˆKˆKr   c                 óâ  — | j         j        dz   | j         j        z   g}| j        r| j        r|                     d¦  «         n| j        r|                     d¦  «         | j        �V	 |                     d| j        z  ¦  «         n7# t          $ r* |                     t          | j        ¦  «        ¦  «         Y nw xY wd 	                    d 
                    |¦  «        t          | ¦  «        ¦  «        S )Nú.Ú	listeningÚ	connectedz%s:%dz<{} at {:#x}>ra   )Ú	__class__r   r   rG   ÚaddrrF   rŠ   r   ÚreprÚformatrp   Úid)r„   Ústatuss     r   Ú__repr__zdispatcher.__repr__*  sî   € Ø”.Ô+¨cÑ1°D´NÔ4OÑOÐPˆØŒ>ð 	'˜dœið 	'Ø�MŠM˜+Ñ&Ô&Ð&Ð&ØŒ^ð 	'Ø�MŠM˜+Ñ&Ô&Ð&ØŒ9Ð ð/Ø—’˜g¨¬	Ñ1Ñ2Ô2Ð2Ð2øÝð /ð /ð /Ø—’�d 4¤9™oœoÑ.Ô.Ð.Ð.Ð.ð/øøøà×%Ò% c§h¢h¨vÑ&6Ô&6½¸4¹¼ÑAÔAÐAs   Á&B Â1B8Â7B8c                 ó,   — |€| j         }| || j        <   d S r    )r~   r   )r„   rL   s     r   Úadd_channelzdispatcher.add_channel9  s    € àˆ;Ø”)ˆCØ ˆˆDŒLÑÐÐr   c                 óB   — | j         }|€| j        }||v r||= d | _         d S r    )r   r~   )r„   rL   rO   s      r   Údel_channelzdispatcher.del_channel?  s0   € ØŒ\ˆØˆ;Ø”)ˆCØ�ˆ9ˆ9à�B�ØˆŒˆˆr   c                 ó–   — ||f| _         t          j        ||¦  «        }|                     d¦  «         |                      |¦  «         d S r0   )Úfamily_and_typer‚   r€   r�   )r„   ÚfamilyÚtyper…   s       r   Úcreate_socketzdispatcher.create_socketH  sK   € Ø% t˜|ˆÔÝŒ}˜V TÑ*Ô*ˆØ×Ò˜ÑÔÐØ�Š˜ÑÔÐÐÐr   c                 óp   — || _         |                     ¦   «         | _        |                      |¦  «         d S r    )r‚   Úfilenor   r“   rƒ   s      r   r�   zdispatcher.set_socketN  s2   € ØˆŒØ—{’{‘}”}ˆŒØ×Ò˜ÑÔÐÐÐr   c                 óê   — 	 | j                              t           j        t           j        | j                              t           j        t           j        ¦  «        dz  ¦  «         d S # t
          $ r Y d S w xY w)Nr   )r‚   Ú
setsockoptÚ
SOL_SOCKETÚSO_REUSEADDRÚ
getsockoptr9   ©r„   s    r   Úset_reuse_addrzdispatcher.set_reuse_addrS  s|   € ð	ØŒK×"Ò"ÝÔ!ÝÔ#Ø”×&Ò&¥vÔ'8½&Ô:MÑNÔNÐQRÑRñô ð ð ð øõ
 ð 	ð 	ð 	ØˆDˆDð	øøøs   ‚A A$ Á$
A2Á1A2c                 ó   — dS ©NTr   r¢   s    r   rD   zdispatcher.readabled  ó   € Øˆtr   c                 ó   — dS r¥   r   r¢   s    r   rE   zdispatcher.writableg  r¦   r   c                 ót   — d| _         t          j        dk    r|dk    rd}| j                             |¦  «        S )NTÚnté   )rG   r   Únamer‚   Úlisten)r„   Únums     r   r¬   zdispatcher.listenn  s7   € ØˆŒÝŒ7�dŠ?ˆ?˜s Qšw˜wØˆCØŒ{×!Ò! #Ñ&Ô&Ð&r   c                 óD   — || _         | j                             |¦  «        S r    )rŒ   r‚   Úbind)r„   rŒ   s     r   r¯   zdispatcher.bindt  s   € ØˆŒ	ØŒ{×Ò Ñ%Ô%Ð%r   c                 óÐ   — 	 | j                              ¦   «         \  }}||fS # t          $ r Y d S t          $ r-}|j        d         t
          t          t          fv rY d }~d S ‚ d }~ww xY wr0   )r‚   Úacceptr   r9   r:   r   r   r   )r„   ÚconnrŒ   Úwhys       r   r±   zdispatcher.acceptx  sŒ   € ð
	Øœ×+Ò+Ñ-Ô-‰JˆD�$ð ˜�:Ðøõ ð 	ð 	ð 	Ø�4�4Ýð 	ð 	ð 	ØŒx˜Œ{�{­L½&ÐAÐAÐAØ�t�t�t�t�tàøøøøð		øøøs   ‚" ¢
A%¯	A%¸!A ÁA Á A%Tc                 óú   — 	 | j                              |¦  «        }|S # t          $ rR}|j        d         t          k    rY d }~dS |j        d         t
          v r|r|                      ¦   «          Y d }~dS ‚ d }~ww xY wr0   )r‚   Úsendr9   r:   r   r;   r8   )r„   ÚdataÚdo_closeÚresultr³   s        r   rµ   zdispatcher.send†  s™   € ð	Ø”[×%Ò% dÑ+Ô+ˆFØˆMøÝð 	ð 	ð 	ØŒx˜Œ{�kÒ)Ð)Ø�q�q�q�q�qØ”˜!”¥Ð-Ð-Øð (Ø×%Ò%Ñ'Ô'Ð'Ø�q�q�q�q�qàøøøøð	øøøs    ‚ ž
A:¨A5Á*A5Á4A5Á5A:c                 óî   — 	 | j                              |¦  «        }|s|                      ¦   «          dS |S # t          $ r4}|j        d         t
          v r|                      ¦   «          Y d }~dS ‚ d }~ww xY w)Nr   r   )r‚   Úrecvr8   r9   r:   r;   )r„   Úbuffer_sizer¶   r³   s       r   rº   zdispatcher.recv”  s”   € ð	Ø”;×#Ò# KÑ0Ô0ˆDØð ð ×!Ò!Ñ#Ô#Ð#Ø�sà�øÝð 	ð 	ð 	àŒx˜Œ{�mÐ+Ð+Ø×!Ò!Ñ#Ô#Ð#Ø�s�s�s�s�sàøøøøð	øøøs   ‚06 ´6 ¶
A4Á (A/Á.A/Á/A4c                 ó  — d| _         d| _        d| _        |                      ¦   «          | j        �W	 | j                             ¦   «          n3# t          $ r&}|j        d         t          t          fvr‚ Y d }~nd }~ww xY wd | _        d S d S )NFr   )
rŠ   rG   Ú
connectingr•   r‚   Úcloser9   r:   r   r   )r„   r³   s     r   r¾   zdispatcher.close¦  s«   € ØˆŒØˆŒØˆŒØ×ÒÑÔÐØŒ;Ð"ðØ”×!Ò!Ñ#Ô#Ð#Ð#øÝð ð ð Ø”8˜A”;¥xµÐ&7Ð7Ð7Øð 8Ð7Ð7Ð7Ð7øøøøðøøøð ˆDŒKˆKˆKð #Ð"s   ²A Á
A<ÁA7Á7A<c                 óP   — | j                              t          j        |¦  «         d S r    )ÚloggerÚlogÚloggingÚDEBUG)r„   Úmessages     r   rÁ   zdispatcher.log¸  s    € ØŒ�Š�œ wÑ/Ô/Ð/Ð/Ð/r   rx   c                 óÀ   — t           j        t           j        t           j        dœ}| j                             |                     |t           j        ¦  «        |¦  «         d S )N)rx   r|   Úerror)rÂ   ÚINFOÚWARNÚERRORrÀ   rÁ   rJ   )r„   rÄ   r™   Úseveritys       r   Úlog_infozdispatcher.log_info»  sK   € å”LÝ”|Ý”]ð
ð 
ˆð
 	Œ�Š˜Ÿš T­7¬<Ñ8Ô8¸'ÑBÔBÐBÐBÐBr   c                 óØ   — | j         r|                      ¦   «          d S | j        s1| j        r|                      ¦   «          |                      ¦   «          d S |                      ¦   «          d S r    )rG   Úhandle_acceptrŠ   r½   Úhandle_connect_eventÚhandle_readr¢   s    r   r!   zdispatcher.handle_read_eventÃ  s|   € ØŒ>ð 		ð ×ÒÑ Ô Ð Ð Ð Ø”ð 	ØŒð ,Ø×)Ò)Ñ+Ô+Ð+Ø×ÒÑÔÐÐÐà×ÒÑÔÐÐÐr   c                 óî   — | j                              t           j        t           j        ¦  «        }|dk    rt	          |t          |¦  «        ¦  «        ‚|                      ¦   «          d| _        d| _        d S )Nr   TF)	r‚   r¡   rŸ   ÚSO_ERRORr9   r   Úhandle_connectrŠ   r½   ©r„   r   s     r   rÎ   zdispatcher.handle_connect_eventÏ  sa   € ØŒk×$Ò$¥VÔ%6½¼ÑHÔHˆØ�!Š8ˆ8Ý˜#�y¨™~œ~Ñ.Ô.Ð.Ø×ÒÑÔÐØˆŒØˆŒˆˆr   c                 ó„   — | j         rd S | j        s| j        r|                      ¦   «          |                      ¦   «          d S r    )rG   rŠ   r½   rÎ   Úhandle_writer¢   s    r   r*   zdispatcher.handle_write_event×  sQ   € ØŒ>ð 	ð ˆFàŒ~ð 	,ØŒð ,Ø×)Ò)Ñ+Ô+Ð+Ø×ÒÑÔÐÐÐr   c                 óÖ   — | j         �/| j                              t           j        t           j        ¦  «        nd}|dk    r|                      ¦   «          d S |                      ¦   «          d S )Nr   r   )r‚   r¡   rŸ   rÑ   r8   Úhandle_exptrÓ   s     r   r-   zdispatcher.handle_expt_eventâ  sp   € ð Œ{Ð&ð ŒK×"Ò"¥6Ô#4µf´oÑFÔFÐFàð 	ð
 �!Š8ˆ8ð ×ÒÑÔÐÐÐà×ÒÑÔÐÐÐr   c                 óú   — |                       ¦   «         \  }}}}	 t          | ¦  «        }n#  dt          | ¦  «        z  }Y nxY w|                      d|›d|›d|›d|›d�	d¦  «         |                      ¦   «          d S )Nz)<__repr__(self) failed for object at %0x>z-uncaptured python exception, closing channel z (ú:ra   ú)rÆ   )ry   r�   r�   rË   r8   )r„   Únilrq   rr   rt   Ú	self_reprs         r   r#   zdispatcher.handle_errorõ  s    € Ø ×2Ò2Ñ4Ô4ÑˆˆQ��6ð	OÝ˜T™
œ
ˆIˆIøð	OØCÅbÈÁhÄhÑNˆIˆIˆIøøøà�Šˆàˆyˆy˜!˜!˜!˜Q˜Q˜Q   ð(àñ	
ô 	
ð 	
ð
 	×ÒÑÔÐÐÐs	   ›+ «Ac                 ó2   — |                       dd¦  «         d S )Nz!unhandled incoming priority eventr|   ©rË   r¢   s    r   r×   zdispatcher.handle_expt  s   € Ø�ŠÐ9¸9ÑEÔEÐEÐEÐEr   c                 ó2   — |                       dd¦  «         d S )Nzunhandled read eventr|   rÞ   r¢   s    r   rÏ   zdispatcher.handle_read  s   € Ø�ŠÐ,¨iÑ8Ô8Ð8Ð8Ð8r   c                 ó2   — |                       dd¦  «         d S )Nzunhandled write eventr|   rÞ   r¢   s    r   rÕ   zdispatcher.handle_write  s   € Ø�ŠÐ-¨yÑ9Ô9Ð9Ð9Ð9r   c                 ó2   — |                       dd¦  «         d S )Nzunhandled connect eventr|   rÞ   r¢   s    r   rÒ   zdispatcher.handle_connect  s   € Ø�ŠÐ/°Ñ;Ô;Ð;Ð;Ð;r   c                 óJ   — |                       ¦   «         }|� | j        |Ž  d S d S r    )r±   Úhandle_accepted)r„   Úpairs     r   rÍ   zdispatcher.handle_accept  s3   € Ø�{Š{‰}Œ}ˆØÐØ ˆDÔ  $Ð'Ð'Ð'Ð'ð Ðr   c                 óZ   — |                      ¦   «          |                      dd¦  «         d S )Nzunhandled accepted eventr|   )r¾   rË   )r„   r…   rŒ   s      r   rã   zdispatcher.handle_accepted  s*   € Ø�
Š
‰ŒˆØ�ŠÐ0°)Ñ<Ô<Ð<Ð<Ð<r   c                 óZ   — |                       dd¦  «         |                      ¦   «          d S )Nzunhandled close eventr|   )rË   r¾   r¢   s    r   r8   zdispatcher.handle_close  s(   € Ø�ŠÐ-¨yÑ9Ô9Ð9Ø�
Š
‰Œˆˆˆr   )NNr    )T)rx   )0r   r   r   ÚdebugrŠ   rG   r½   ÚclosingrŒ   Ú	frozensetÚignore_log_typesr   rÀ   Ústaticmethodry   r†   r‘   Ú__str__r“   r•   r‚   ÚAF_INETÚSOCK_STREAMrš   r�   r£   rD   rE   r¬   r¯   r±   rµ   rº   r¾   rÁ   rË   r!   rÎ   r*   r-   r#   r×   rÏ   rÕ   rÒ   rÍ   rã   r8   r   r   r   r{   r{     sP  € € € € € Ø€EØ€IØ€IØ€JØ€GØ€DØ �y ) Ñ-Ô-ÐØÔ€FØ$˜Ð%6Ñ7Ô7Ððð ð ð ð Bð Bð Bð €Gð!ð !ð !ð !ðð ð ð ð $*¤>¸Ô8Jð ð ð ð ðð ð ð ð
	ð 	ð 	ð"ð ð ðð ð ð'ð 'ð 'ð&ð &ð &ðð ð ðð ð ð ðð ð ð$ð ð ð$0ð 0ð 0ðCð Cð Cð Cð
ð 
ð 
ð ð  ð  ð	ð 	ð 	ðð ð ð&ð ð ð Fð Fð Fð9ð 9ð 9ð:ð :ð :ð<ð <ð <ð(ð (ð (ð
=ð =ð =ðð ð ð ð r   r{   c                 ó2  — | €t           } t          |                      ¦   «         ¦  «        D ]W}	 |                     ¦   «          Œ# t          $ r$}|j        d         t          k    rn|s‚ Y d }~ŒAd }~wt          $ r ‚  |s‚ Y ŒUxY w|                      ¦   «          d S r0   )	rA   rB   Úvaluesr¾   r9   r:   r   r"   Úclear)rL   Ú
ignore_allrd   s      r   Ú	close_allró     s½   € Ø
€{ÝˆÝ�#—*’*‘,”,ÑÔð ð ˆð	Ø�GŠG‰IŒIˆIˆIøÝð 	ð 	ð 	ØŒv�aŒy�EÒ!Ð!ØØð ØøøøøøøøøøÝ#ð 	ð 	ð 	Øð	Øð Øðð øøøà‡I‚I�K„K€K€K€Ks   ®AÁ
B ÁA,Á,B Úposixc                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd	d„ZeZeZ	d„ Z
d„ ZdS )
Úfile_wrapperc                 ó8   — t          j        |¦  «        | _        d S r    )r   ÚduprO   ©r„   rO   s     r   r†   zfile_wrapper.__init__F  s   € Ý”f˜R‘j”jˆDŒGˆGˆGr   c                 ó~   — | j         dk    rt          j        d| z  t          ¦  «         |                      ¦   «          d S )Nr   zunclosed file %r)rO   ÚwarningsÚwarnÚResourceWarningr¾   r¢   s    r   Ú__del__zfile_wrapper.__del__I  s6   € ØŒw˜!Š|ˆ|Ý”Ð0°4Ñ7½ÑIÔIÐIØ�JŠJ‰LŒLˆLˆLˆLr   c                 ó0   — t          j        | j        g|¢R Ž S r    )r   r&   rO   ©r„   r:   s     r   rº   zfile_wrapper.recvN  s   € Ý”7˜4œ7Ð* TÐ*Ð*Ð*Ð*r   c                 ó0   — t          j        | j        g|¢R Ž S r    )r   r+   rO   r   s     r   rµ   zfile_wrapper.sendQ  s   € Ý”8˜DœGÐ+ dÐ+Ð+Ð+Ð+r   Nc                 óh   — |t           j        k    r|t           j        k    r|sdS t          d¦  «        ‚)Nr   z-Only asyncore specific behaviour implemented.)r‚   rŸ   rÑ   ÚNotImplementedError)r„   ÚlevelÚoptnameÚbuflens       r   r¡   zfile_wrapper.getsockoptT  s<   € Ø�Ô)Ò)Ð)¨g½¼Ò.HÐ.HÐQWÐ.HØ�qÝ%ØBñô ð r   c                 ód   — | j         dk     rd S | j         }d| _         t          j        |¦  «         d S )Nr   r`   )rO   r   r¾   rù   s     r   r¾   zfile_wrapper.close^  s1   € ØŒw˜Š{ˆ{Ø�Ø”ˆBØˆDŒGÝŒH�R‰LŒLˆLˆLˆLr   c                 ó   — | j         S r    )rO   r¢   s    r   rœ   zfile_wrapper.filenoe  s	   € Ø”7ˆNr   r    )r   r   r   r†   rþ   rº   rµ   r¡   r&   r+   r¾   rœ   r   r   r   rö   rö   A  sŽ   € € € € € ð
	!ð 	!ð 	!ð	ð 	ð 	ð
	+ð 	+ð 	+ð	,ð 	,ð 	,ð	ð 	ð 	ð 	ð ˆØˆð	ð 	ð 	ð	ð 	ð 	ð 	ð 	r   rö   c                   ó   — e Zd Zdd„Zd„ ZdS )Úfile_dispatcherNc                 óì   — t                                | d |¦  «         d| _        	 |                     ¦   «         }n# t          $ r Y nw xY w|                      |¦  «         t          j        |d¦  «         d S )NTF)r{   r†   rŠ   rœ   ÚAttributeErrorÚset_filer   Úset_blocking)r„   rO   rL   s      r   r†   zfile_dispatcher.__init__i  s   € Ý×Ò  d¨CÑ0Ô0Ð0Ø!ˆDŒNðØ—Y’Y‘[”[��øÝ!ð ð ð Ø�ðøøøà�MŠM˜"ÑÔÐåŒO˜B Ñ&Ô&Ð&Ð&Ð&s   ¥: º
AÁAc                 ó’   — t          |¦  «        | _        | j                             ¦   «         | _        |                      ¦   «          d S r    )rö   r‚   rœ   r   r“   rù   s     r   r  zfile_dispatcher.set_filet  s>   € Ý& rÑ*Ô*ˆDŒKØœ;×-Ò-Ñ/Ô/ˆDŒLØ×ÒÑÔÐÐÐr   r    )r   r   r   r†   r  r   r   r   r
  r
  h  s7   € € € € € ð		'ð 		'ð 		'ð 		'ð	ð 	ð 	ð 	ð 	r   r
  )r?   N)rX   FNN)NF),Ú__doc__Úerrnor   r   r   r   r   r   r	   r
   r   rÂ   r   r1   r‚   rf   rH   rû   Ú r   ré   r;   rA   r   r   Ú	Exceptionr   ÚKeyboardInterruptÚ
SystemExitr"   r&   r+   r.   r>   rR   rW   Úpoll3r^   ry   r{   ró   r«   rö   r
  r   r   r   ú<module>r     s±  ðð8ð ð4
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø €€€à Ð Ð Ð Ð Ð à�	˜: x°¸LÈ%ÐQVÐWÑXÔX€ðØ€J€JøØð ð ð Ø€J€J€Jðøøøð(ð (ð (ð	ð 	ð 	ð 	ð 	ˆiñ 	ô 	ð 	ð  Ð!2°JÐ?Ð ðð ð ðð ð ðð ð ðð ð ð*-ð -ð -ð -ð`"ð "ð "ð "ðB 	€ðð ð ð ð&.ð .ð .ð.Mð Mð Mð Mð Mñ Mô Mð Mð`ð ð ð ð@ „7ˆgÒÐð%ð %ð %ð %ð %ñ %ô %ð %ðNð ð ð ð ˜*ñ ô ð ð ð ðS Ðs   ÁA ÁAÁA