Vc6csdZdZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl m Z ddl m Z dd l mZdd l mZdd l mZdd l mZdd lmZdZGddejejZGddeejZGddeejZGddeZGddeejZGddeeejZ GddeeejZ!Gdde j"Z#dS)zEvent loop using a proactor and related classes. A proactor is a "notify-on-completion" multiplexer. Currently a proactor is only implemented on Windows with IOCP. )BaseProactorEventLoopN) base_events) constants)futures) exceptions) protocols)sslproto) transports)trsock)loggercstj||jd< ||jd<nE#tj$r3|jrtj d|dYnwxYwd|jvr? | |jd<dS#tj$rd|jd<YdSwxYwdS)NsocketZsocknamezgetsockname() failed on %rTZexc_infopeername) r TransportSocket_extraZ getsocknamer Zerror_loop get_debugr warningZ getpeername) transportsock 0/usr/lib64/python3.11/asyncio/proactor_events.py_set_socket_extrars !'!7!=!=IXC'+'7'7'9'9 $$ <CCC ? $ $ & & C N,dT C C C CC ))0 0+/+;+;+=+=I Z ( ( (| 0 0 0+/I Z ( ( ( ( 000s!;?A=<A= B((CCcszeZdZdZ dfd ZdZdZdZdZdZ d Z e j fd Z dd Zd ZdZdZxZS)_ProactorBasePipeTransportz*Base class for pipe and socket transports.Ncst||||||_||||_d|_d|_d|_d|_ d|_ d|_ d|_ |j|j |j|jj||(|jt$j|ddSdS)NrF)super__init__ _set_extra_sock set_protocol_server_buffer _read_fut _write_fut_pending_write _conn_lost_closing _eof_writtenZ_attachr call_soon _protocolZconnection_maderZ_set_result_unless_cancelledselflooprprotocolwaiterextraserver __class__ rrz#_ProactorBasePipeTransport.__init__2s %%%   (###   ! < # L " " " T^;TBBB  / J !E!' / / / / / / /cst|jjg}|j|dn|jr|d|j/|d|j|j|d|j|j|d|j|jr*|dt|j|j r|dd d |S) NZclosedZclosingzfd=zread=zwrite=zwrite_bufsize=z EOF writtenz<{}>z ) r0__name__rappendr%filenor!r"r lenr&ZformatZjoin)r*Zinforr__repr__z#_ProactorBasePipeTransport.__repr__Hs3'( : # KK ! ! ! ! ] # KK " " " : 5 KK3dj//1133 4 4 4 > 4 KK222 3 3 3 ? 6 KK444 5 5 5 < > KK<T\):):<< = = =   ' KK & & &}}SXXd^^,,,r2cs||jd<dS)NZpipe)rr*rrrrz%_ProactorBasePipeTransport._set_extraZs" Fr2cs||_dSNr()r*r,rrrz'_ProactorBasePipeTransport.set_protocol]s !r2c|jSr9r:r* r get_protocolz'_ProactorBasePipeTransport.get_protocol`s ~r2cr;r9)r%r<r=r is_closingz%_ProactorBasePipeTransport.is_closingcs }r2cs|jrdSd|_|xjdz c_|js'|j |j|jd|j"|jd|_dSdS)NTr) r%r$r r"rr'_call_connection_lostr!cancelr<r=rclosez _ProactorBasePipeTransport.closefs =  F  1| C C J !;T B B B > " N ! ! # # #!DNNN " "r2csv|j1|d|t||jdSdS)Nzunclosed transport )Zsource)rZResourceWarningrB)r*Z_warnrr__del__z"_ProactorBasePipeTransport.__del__qsP :  E000/$ O O O O J         r2Fatal error on pipe transportcs< t|tr2|jrt jd||dn$|j||||jd||dS#||wxYw)Nz%r: %sTr )message exceptionrr,) isinstanceOSErrorrrr debugcall_exception_handlerr( _force_close)r*excrE r _fatal_errorz'_ProactorBasePipeTransport._fatal_errorvs ##w'' :''))IL44HHHH 11&!$!% $ 33   c " " " " "D  c " " " "s A+BBcs|jP|js7||jdn|j||jrdSd|_|xjdz c_|jr |jd|_|jr |jd|_d|_ d|_ |j |j |dS)NTrr) _empty_waiterdone set_resultZ set_exceptionr%r$r"rAr!r#r rr'r@)r*rLrrrKz'_ProactorBasePipeTransport._force_closes   6$2D2I2I2K2K 6 6"--d3333"00555 =  F  1 ? # O " " $ $ $"DO > " N ! ! # # #!DN  T7=====r2cs |j|t|jdrA|jdkr$|jt j|jd|_|j }|| d|_ dSdS#t|jdrA|jdkr$|jt j|jd|_|j }|| d|_ wxYw)Nshutdown) r(Zconnection_lostZhasattrrr5rRr Z SHUT_RDWRrBrZ_detach)r*rLr/rMrr@z0_ProactorBasePipeTransport._call_connection_lostsL $ N * *3 / / / tz:.. 64:3D3D3F3F"3L 6 ##F$4555 J     DJ\F $   #  $ $ tz:.. 64:3D3D3F3F"3L 6 ##F$4555 J     DJ\F $   # ####s B::BEcsP|j}|j|t|jz }|Sr9)r#r r6)r*Zsizerrget_write_buffer_sizez0_ProactorBasePipeTransport.get_write_buffer_sizes-" < & C %% %D r2NNN)rD)r3 __module__ __qualname____doc__rr7rrr>r?rBwarningsZwarnrCrNrKr@rT __classcell__r0@rrr.s4448$(//////,---$###""" " " "%M # # # #>>>($$$"r2rcsNeZdZdZ d fd ZdZdZdZdZd Z d d Z xZ S) _ProactorReadPipeTransportzTransport for read pipes.Ncsd|_d|_t||||||t ||_|j|jd|_dS)NrSTF) _pending_data_length_pausedrr bytearray_datarr' _loop_reading) r*r+rr,r-r.r/Z buffer_sizer0s rrz#_ProactorReadPipeTransport.__init__sg$&!  tXvufEEE{++  T/000 r2cs"|j o|j Sr9)r`r%r<r=r is_readingz%_ProactorReadPipeTransport.is_readings<5 $55r2cs|js|jrdSd|_|jrt jd|dSdS)NTz%r pauses reading)r%r`rrr rIr<r=r pause_readingz(_ProactorReadPipeTransport.pause_readings\ = DL  F  :   ! ! 4 L,d 3 3 3 3 3 4 4r2csf|js|jsdSd|_|j |j|jd|j}d|_|dkr.|j|j|jd|||j rtj d|dSdS)NFrSz%r resumes reading) r%r`r!rr'rcr__data_receivedrbrr rI)r*lengthrrresume_readingz)_ProactorReadPipeTransport.resume_readings =    F > ; J !3T : : :*$&! B; S J !4dj&6I6 R R R :   ! ! 5 L-t 4 4 4 4 4 5 5r2csF|jrtjd| |j}n?#t tf$rt$r!}| |dYd}~dSd}~wwxYw|s| dSdS)Nz%r received EOFz1Fatal error: protocol.eof_received() call failed.) rrr rIr(Z eof_received SystemExitKeyboardInterrupt BaseExceptionrNrB)r*Z keep_openrLrMr _eof_receivedz(_ProactorReadPipeTransport._eof_receiveds :   ! ! 2 L*D 1 1 1 3355II-.          H J J J FFFFF    JJLLLLL  sA B%BBcs|jr|jdksJ||_dS|dkr|dSt|jt jr\ t j|j|dS#ttf$rt$r!}| |dYd}~dSd}~wwxYw|j |dS)NrSrz3Fatal error: protocol.buffer_updated() call failed.) r`r_rlrGr(rZBufferedProtocolZ_feed_data_to_buffered_protorirjrkrNZ data_received)r*datargrL rrfz)_ProactorReadPipeTransport._data_receiveds < ,2 2 2 2(.D % F Q;     F dni&@ A A / 6t~tLLLLL 12       !!##1222   N ( ( . . . . .sA66B2B--B2csZd}d} ||j|us|j|jsJd|_|rK|}|dkr! |dkr|||dSdS|jd|}n||jr! |dkr|||dSdS|js/|jj |j |j|_|js|j |j n#t$rW}|js||dn/|jrt#jddYd}~nod}~wt&$r}||Yd}~nHd}~wt*$r }||dYd}~n d}~wt,j$r |jsYnwxYw|dkr|||dSdS#|dkr|||wwxYw)NrSrz"Fatal read error on pipe transportz*Read error on pipe transport while closingTr )r!r%rPresultrfrbrAr`r _proactor recv_intoradd_done_callbackrcZConnectionAbortedErrorrNrr rIConnectionResetErrorrKrHrCancelledError)r*futrgrmrL rrcz(_ProactorReadPipeTransport._loop_readings- 2 !~,@@15@@@!%88:: ! ZZ\\F{D{ 2##D&11111 2 2A :gvg.DDJJLLL} 2{ 2##D&11111 2 2)< X!%!5!?!? DJ!W!W< E001CDDD& , , ,= ,!!#'KLLLL%%'' , I&*,,,,# # # #   c " " " " " " " " I I I   c#G H H H H H H H H(   =    { 2##D&11111 2 2v{ 2##D&1111 2smAD 7+D 6D 9'H G(*A E<7H < G( F#H # G(0G H G(%H 'G((H H*)NNNr^r9) r3rVrWrXrrdrerhrlrfrcrZr[r\rr]r]s##486;666444&555$ ///20202020202020202r2r]csReZdZdZdZfdZdZd dZdZdZ d Z d Z d Z xZ S) _ProactorBaseWritePipeTransportzTransport for write pipes.TcsHtj|i|d|_dSr9)rrrOr*ZargsZkwr0 rrz(_ProactorBaseWritePipeTransport.__init__Is-$%"%%%!r2cst|tttfs$t dt |j|jrtd|j td|sdS|j r;|j tj krtjd|xj dz c_ dS|j.|jJ|t|dS|js*t||_|dS|j||dS)Nz/data argument must be a bytes-like object, not zwrite_eof() already calledz(unable to write; sendfile is in progresszsocket.send() raised exception.r)rm)rGbytesra memoryview TypeErrortyper3r& RuntimeErrorrOr$r!LOG_THRESHOLD_FOR_CONNLOST_WRITESr rr"r _loop_writing_maybe_pause_protocolZextend)r*rmrrwritez%_ProactorBaseWritePipeTransport.writeMsk$ : >?? .-Dzz*--.. .   =;<< <   KIJJ J  F ? )"MM B@AAA OOq OO F ? )< ' ' '   E$KK  0 0 0 0 0 )$T??DL  & & ( ( ( ( ( L   % % %  & & ( ( ( ( (r2Ncs ||j |jrdS||jusJd|_d|_|r|||j}d|_|sg|jr |j|jd|jr$|j tj | n|jj|j ||_|jsU|jdksJt#||_|j|j|n|j|j|j#|j|jddSdSdS#t.$r }||Yd}~dSd}~wt2$r!}||dYd}~dSd}~wwxYw)Nrz#Fatal write error on pipe transport)r"r%r#ror rr'r@r&rrRr SHUT_WR_maybe_resume_protocolrpsendrPr6rrrrrOrQrsrKrHrN)r*frmrLrnrrz-_ProactorBaseWritePipeTransport._loop_writingssJ& J  T] ' ' ' '"DO"#D    $|#  J=KJ(()CTJJJ$8J''777 ++----"&*"6";";DJ"M"M++--J.!3333*-d))D'O55d6HIII..0000O55d6HIII! 4$/ 4"--d33333 4 4 4 4# # # #   c " " " " " " " " " J J J   c#H I I I I I I I I I Js)F!FF!! G4+G G4G//G4cdSNTr<r=r can_write_eofz-_ProactorBaseWritePipeTransport.can_write_eoftr2cs.|dSr9)rBr<r=r write_eofz)_ProactorBaseWritePipeTransport.write_eofs r2c0|ddSr9rKr<r=rabortz%_ProactorBaseWritePipeTransport.abort $r2cs|jtd|j|_|j|jd|jS)NzEmpty waiter is already set)rOr~rZ create_futurer"rQr<r=r_make_empty_waiterz2_ProactorBaseWritePipeTransport._make_empty_waiters\   ><== =!Z5577 ? 0   ) )$ / / /!!r2csd|_dSr9)rOr<r=r_reset_empty_waiterz3_ProactorBaseWritePipeTransport._reset_empty_waiters!r2NN)r3rVrWrXZ_start_tls_compatiblerrrrrrrrrZr[r\rrwrwCs$$ """""$)$)$)L'J'J'J'JR   """"""""""r2rwcs$eZdZfdZdZxZS)_ProactorWritePipeTransportcstj|i||jj|jd|_|j|jdS)Ni) rrrrprecvrr!rr _pipe_closedrxryrrz$_ProactorWritePipeTransport.__init__s\$%"%%%-224:rBB (():;;;;;r2csH|rdS|dksJ|jr |jJdS||jusJ||jfd|_|j#|t dS|dS)Nr2)Z cancelledror%r!r"rKZBrokenPipeErrorrB)r*rurrrz(_ProactorWritePipeTransport._pipe_closeds ==??  Fzz||s"""" = > ) ) ) Fdn$;;sDN&;;;; ?    o// 0 0 0 0 0 JJLLLLLr2)r3rVrWrrrZr[r\rrrsG<<<<<       r2rcsReZdZdZ d fd ZdZdZdZd dZd dZ d d Z xZ S) _ProactorDatagramTransportiNcs||_d|_d|_t|||||t j|_|j |j dS)Nr)r-r.) _addressrO _buffer_sizerr collectionsZdequer rr'rc)r*r+rr,addressr-r.r0r1rrz#_ProactorDatagramTransport.__init__sp ! tXfEJJJ#(**  T/00000r2c&t||dSr9rr8rrrz%_ProactorDatagramTransport._set_extra$%%%%%r2cr;r9)rr<r=rrTz0_ProactorDatagramTransport.get_write_buffer_sizes   r2crr9rr<r=rrz _ProactorDatagramTransport.abortrr2csZt|tttfst dt ||sdS|j"|d|jfvrtd|j|jrB|jr;|jtj krtj d|xjdz c_dS|j t||f|xjt!|z c_|j||dS)Nz,data argument must be bytes-like object (%r)z!Invalid address: must be None or z!socket.sendto() raised exception.r)rGrzrar{r|r}rZ ValueErrorr$rrr rr r4rr6r"rr)r*rmaddrrMrsendtoz!_ProactorDatagramTransport.sendtosJ$ : >?? (J JJ(( (  F = EdDM5J)J ECDMCCEE E ? t} )"MM DBCCC OOq OO F U4[[$/000 SYY& ? !     ""$$$$$r2cs0 |jrdS||jusJd|_|r||jr|jr0|jr)|jr |j|jddS|j \}}|xj t|zc_ |j+|jj |j||_n,|jj |j|||_|j|j|dS#t&$r%}|j|Yd}~dSd}~wt,$r!}||dYd}~dSd}~wwxYw)N)rz'Fatal write error on datagram transport)r$r"ror rr%rr'r@Zpopleftrr6rprrrrrrrrHr(error_receivedZ ExceptionrN)r*rurmrrLrvrrz(_ProactorDatagramTransport._loop_writings * $/) ) ) )"DO  < DO   =KJ(()CTJJJ--//JD$   T *  } I"&*"6";";DJ<@#B#B#'*"6"="=dj>BCG#>#I#I O - -d.@ A A A  ' ' ) ) ) ) )  / / / N ) )# . . . . . . . . . N N N   c#L M M M M M M M M M Ns0D=A$D=1BD== FE'' F4FFcsd} |jr" |r|j||dSdS|j|us|j|jsJd|_|U|}|jr$d} |r|j||dSdS|j ||j}}n|\}}|jr" |r|j||dSdS|j0|jj |j |j |_n/|jj |j |j |_|j|j |jnI#t$r$}|j|Yd}~n d}~wt"j$r |jsYnwxYw|r|j||dSdS#|r|j||wwxYwr9)r$r(Zdatagram_receivedr!r%rorrrprrmax_sizerecvfromrrrcrHrrrt)r*rurmrZresrL rrcz(_ProactorDatagramTransport._loop_readings' = H =00t<<<<< = =E>S( !>tz?C}"N"N~ E001CDDD / / / N ) )# . . . . . . . .(   =     =00t<<<<< = =t =00t<<<< =sME?EE A&E3'G F $F>GF GF  G G$rUr9) r3rVrWrrrrTrrrrcrZr[r\rrrsH59$( 1 1 1 1 1 1&&&!!!   %%%%: * * * *D)=)=)=)=)=)=)=)=r2rcseZdZdZdZdZdS)_ProactorDuplexPipeTransportzTransport for duplex pipes.cr)NFrr<r=rrz*_ProactorDuplexPipeTransport.can_write_eofPsur2cstr9)ZNotImplementedErrorr<r=rrz&_ProactorDuplexPipeTransport.write_eofSs!!r2N)r3rVrWrXrrrr2rrrKs:&%"""""r2rcsReZdZdZejjZ dfd ZdZ dZ dZ xZ S)_ProactorSocketTransportz Transport for connected sockets.Ncs|t||||||tj|dSr9)rrrZ _set_nodelayr)r1rrz!_ProactorSocketTransport.__init__^s< tXvufEEE &&&&&r2crr9rr8rrrz#_ProactorSocketTransport._set_extracrr2crrrr<r=rrz&_ProactorSocketTransport.can_write_eoffrr2cs|js|jrdSd|_|j&|jt jdSdSr)r%r&r"rrRr rr<r=rrz"_ProactorSocketTransport.write_eofisU = D-  F  ? 0 J   / / / / / 0 0r2rU) r3rVrWrXrZ _SendfileModeZ TRY_NATIVEZ_sendfile_compatiblerrrrrZr[r\rrrWs+*$2=48$('''''' &&&0000000r2rcseZdZfdZ d dZ d!ddddddddZ d dZ d"dZ d"d Z d"d Z fd Z d Z d Z dZ d#dZdZdZdZdZdZdZdZdZd!dZdZ d$dZdZdZdZxZS)%rcsttjd|jj||_||_d|_i|_ | || tj tjur-tj|jdSdS)NzUsing proactor: %s)rrr rIr0r3rp _selector_self_reading_future_accept_futuresZset_loop_make_self_pipe threadingcurrent_thread main_threadsignal set_wakeup_fd_csockr5)r*Zproactorr0s rrzBaseProactorEventLoop.__init__ss  )8+=+FGGG!!$(!!$   # % %)>)@)@ @ 7  !3!3!5!5 6 6 6 6 6 7 7r2Nc*t||||||Sr9)r)r*rr,r-r.r/rr_make_socket_transportz,BaseProactorEventLoop._make_socket_transports!'dHf(-v77 7r2F) server_sideserver_hostnamer.r/ssl_handshake_timeoutssl_shutdown_timeoutc sptj||||||| | } t||| ||| jS)N)rrr.r/)rZ SSLProtocolrZ_app_transport) r*Zrawsockr, sslcontextr-rrr.r/rrZ ssl_protocols r_make_ssl_transportz)BaseProactorEventLoop._make_ssl_transports\  +h F_&;%9 ;;; !w ',V = = = =**r2crr9)r)r*rr,rr-r.rr_make_datagram_transportz.BaseProactorEventLoop._make_datagram_transports!)$h*0%99 9r2c(t|||||Sr9)rr*rr,r-r.rvr_make_duplex_pipe_transportz1BaseProactorEventLoop._make_duplex_pipe_transports"+D,0(FEKK Kr2crr9)r]rrvr_make_read_pipe_transportz/BaseProactorEventLoop._make_read_pipe_transports)$hNNNr2crr9)rrrvr_make_write_pipe_transportz0BaseProactorEventLoop._make_write_pipe_transports$+4+/65JJ Jr2cs|rtd|rdStjtjurt jd|| |j d|_ d|_ t dS)Nz!Cannot close a running event looprS)Z is_runningr~ is_closedrrrrr_stop_accept_futures_close_self_piperprBrr)r*r0s rrBzBaseProactorEventLoop.closes ??   DBCC C >>    F  # % %)>)@)@ @ %   $ $ $ !!###    r2cHK|j||d{VSr9)rpr)r*rZnrMr sock_recvzBaseProactorEventLoop.sock_recvs0^((q111111111r2crr9)rprq)r*rbufrMrsock_recv_intoz$BaseProactorEventLoop.sock_recv_intos0^--dC888888888r2crr9)rpr)r*rZbufsizerMr sock_recvfromz#BaseProactorEventLoop.sock_recvfroms0^,,T7;;;;;;;;;r2rcslK|st|}|j|||d{VSr9)r6rpZ recvfrom_into)r*rrZnbytesrnrsock_recvfrom_intoz(BaseProactorEventLoop.sock_recvfrom_intosE XXF^11$VDDDDDDDDDr2crr9)rpr)r*rrmrMr sock_sendallz"BaseProactorEventLoop.sock_sendalls0^((t444444444r2csLK|j||d|d{VS)Nr)rpr)r*rrmrrnr sock_sendtoz!BaseProactorEventLoop.sock_sendtos4^**4q'BBBBBBBBBr2crr9)rpZconnect)r*rrrMr sock_connectz"BaseProactorEventLoop.sock_connects0^++D':::::::::r2csFK|j|d{VSr9)rpacceptr8rr sock_acceptz!BaseProactorEventLoop.sock_accepts.^**4000000000r2csK |}n2#ttjf$r}t jdd}~wwxYw t j|j}n"#t$rt jdwxYw|r|n|}|sdSt|d}|rt||z|n|} t||}d} t| |z |}|dkr| | dkr| |SS|j ||||d{V||z }| |z } e#| dkr| |wwxYw)Nznot a regular filerl)r5ZAttributeErrorioZUnsupportedOperationrZSendfileNotAvailableErrorosZfstatZst_sizerHZminZseekrpZsendfile) r*rfileoffsetcountr5ZerrZfsizeZ blocksizeZend_posZ total_sents r_sock_sendfile_nativez+BaseProactorEventLoop._sock_sendfile_natives M[[]]FF 78 M M M67KLL L M MHV$$,EE M M M67KLL L M"-EE  1 ;// 05@#fune,,,5VU##  " (& 0)<< >&% A~ " &!!!! " n--dD&)LLLLLLLLL)#i'  (A~ " &!!!! "s2AAA A&&B D2.D22EcsK|}||d{V ||j|||dd{V ||r|SS#||r|wwxYw)NF)Zfallback)rdrerZ sock_sendfilerrrh)r*Ztransprrrrhrr_sendfile_nativez&BaseProactorEventLoop._sendfile_natives **,,''))))))))) (++FL$5:,<<<<<<<< <  & & ( ( ( (%%'''' (  & & ( ( ( (%%'''' (s $B-Ccs|j |jd|_|jd|_|jd|_|xjdzc_dS)Nr)rrA_ssockrBr _internal_fdsr<r=rrz&BaseProactorEventLoop._close_self_pipesz  $ -  % , , . . .(,D %     ar2cstj\|_|_|jd|jd|xjdz c_dS)NFr)r Z socketpairrrZ setblockingrr<r=rrz%BaseProactorEventLoop._make_self_pipe s_#)#4#6#6  T[ &&& &&& ar2csr |||j|urdS|j|jd}||_||jdS#tj$rYdSttf$rt$r$}| d||dYd}~dSd}~wwxYw)Niz.Error on reading from the event loop self pipe)rErFr+) rorrprrrr_loop_self_readingrrtrirjrkrJ)r*rrLrMrrz(BaseProactorEventLoop._loop_self_readings 9  (1 ##DK66A)*D %   7 8 8 8 8 8(    FF-.         ' 'K ))          s"A& A&&B68B6B11B6cs|j}|dS |ddS#t$r$|jrt jddYdSYdSwxYw)Nsz3Fail to write a null byte into the self-pipe socketTr )rrrH_debugr rI)r*Zcsockrr_write_to_selfz$BaseProactorEventLoop._write_to_self-s     F , JJu      , , ,{ , 0&*,,,,,,, , , , ,s$'AAdc sZdfd dS)Nc sF |||\}}jrtjd||} || dd|i n||d|irdSj }|j <| dS#t$r} dkr@ d|tj d n*jrtjd d Yd}~dSYd}~dSYd}~dSd}~wt"j$r YdSwxYw) Nz#%r got a new connection from %r: %rTr)rr.r/rrrrSzAccept failed on a socket)rErFr zAccept failed on socket %rr )rorr rIrrrrprrr5rrrHrJr rrBrrt) rZconnrr,rLr+protocol_factoryr*r/rrrrs rr+z2BaseProactorEventLoop._start_serving..loopDsM# *E!"JD${9 %J%+T4999//11H! E00 (JD#-t"4V2G1E 1GGGG 33 (#-t"4V4EEE>>##FN))$//78$T[[]]3##D))))) 6 6 6;;==B& 6//#>%("("8">">11 JJLLLL[6L!=!%6666666666666666!LLLLL,     s%BC$C$$ F .A6E66&F F r9)r') r*rrrr/Zbacklogrrr+s ````` ``@r_start_servingz$BaseProactorEventLoop._start_serving?sf $ *$ *$ *$ *$ *$ *$ *$ *$ *$ *$ *$ *$ *L tr2csdSr9r)r*Z event_listrr_process_eventsz%BaseProactorEventLoop._process_eventsls r2cs|jD]}||jdSr9)rZvaluesrAZclear)r*futurerrrz*BaseProactorEventLoop._stop_accept_futurespsJ*1133  F MMOOOO ""$$$$$r2cs|j|d}|r||j||dSr9)rZpopr5rArp _stop_servingrB)r*rrrMrrz#BaseProactorEventLoop._stop_servingus^%))$++-->>   MMOOO $$T*** r2rUr9r)r)NNrNN)r3rVrWrrrrrrrrBrrrrrrrrrrrrrrrrrrrZr[r\rrrqsS 7 7 7 7 7=A267777 9= + $t"&!% + + + + + CG9999 BF*.KKKK @D(,OOOOAE)-JJJJ (222999<<<EEEE 555CCC;;;111""": ( ( (      99998,,,&>A-1,0++++Z   %%% r2r)$rXZ__all__rrr rYrrrZrrrrrrr r Zlogr rZ_FlowControlMixinZ BaseTransportrZ ReadTransportr]ZWriteTransportrwrZDatagramTransportrZ TransportrrZ BaseEventLooprrr2rrs #  000$@@@@@!=!+!9@@@FO2O2O2O2O2!;!+!9O2O2O2dk"k"k"k"k"&@&0&?k"k"k"\"A,A=A=A=A=A=!;!+!=A=A=A=H " " " " "#=#B#-#7 " " "000009>)30004IIIIIK5IIIIIr2