GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 104.21.83.152  /  Your IP : 216.73.216.165
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python37/lib64/python3.7/asyncio/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python37/lib64/python3.7/asyncio/__pycache__/unix_events.cpython-37.opt-1.pyc
B

� f؟�@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZdZe	jdkr�ed��dd�ZGdd�dej�ZGdd�dej�ZGdd�dej ej!�Z"Gdd�dej#�Z$Gdd�d�Z%Gdd�de%�Z&Gdd �d e&�Z'Gd!d"�d"e&�Z(Gd#d$�d$ej)�Z*eZ+e*Z,dS)%z2Selector event loop for Unix with signal handling.�N�)�base_events)�base_subprocess)�	constants)�
coroutines)�events)�futures)�selector_events)�tasks)�
transports)�logger)�SelectorEventLoop�AbstractChildWatcher�SafeChildWatcher�FastChildWatcher�DefaultEventLoopPolicyZwin32z+Signals are not really supported on WindowscCsdS)zDummy signal handler.N�)�signum�framerr�8/opt/alt/python37/lib64/python3.7/asyncio/unix_events.py�_sighandler_noop'srcs�eZdZdZd)�fdd�	Z�fdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
d*dd�Zd+dd�Zd,dd�Z
dd�Zd-ddddd�dd�Zd.dddddd�dd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Z�ZS)/�_UnixSelectorEventLoopzdUnix event loop.

    Adds signal handling and UNIX Domain Socket support to SelectorEventLoop.
    Ncst��|�i|_dS)N)�super�__init__�_signal_handlers)�self�selector)�	__class__rrr2sz_UnixSelectorEventLoop.__init__cs^t���t��s2xFt|j�D]}|�|�qWn(|jrZtjd|�d�t	|d�|j�
�dS)NzClosing the loop z@ on interpreter shutdown stage, skipping signal handlers removal)�source)r�close�sys�
is_finalizing�listr�remove_signal_handler�warnings�warn�ResourceWarning�clear)r�sig)rrrr6s
z_UnixSelectorEventLoop.closecCs"x|D]}|sq|�|�qWdS)N)�_handle_signal)r�datarrrr�_process_self_dataDs
z)_UnixSelectorEventLoop._process_self_datac
GsLt�|�st�|�rtd��|�|�|��yt�|j�	��Wn2t
tfk
rt}ztt
|���Wdd}~XYnXt�|||d�}||j|<yt�|t�t�|d�Wn�tk
�rF}zz|j|=|j�syt�d�Wn4t
tfk
�r}zt�d|�Wdd}~XYnX|jtjk�r4td|�d���n�Wdd}~XYnXdS)z�Add a handler for a signal.  UNIX only.

        Raise ValueError if the signal number is invalid or uncatchable.
        Raise RuntimeError if there is a problem setting up the handler.
        z3coroutines cannot be used with add_signal_handler()NF���zset_wakeup_fd(-1) failed: %szsig z cannot be caught)rZiscoroutineZiscoroutinefunction�	TypeError�
_check_signalZ
_check_closed�signal�
set_wakeup_fdZ_csock�fileno�
ValueError�OSError�RuntimeError�strrZHandlerr�siginterruptr�info�errno�EINVAL)rr(�callback�args�exc�handleZnexcrrr�add_signal_handlerKs0



z)_UnixSelectorEventLoop.add_signal_handlercCs8|j�|�}|dkrdS|jr*|�|�n
|�|�dS)z2Internal helper that is the actual signal handler.N)r�getZ
_cancelledr#Z_add_callback_signalsafe)rr(r=rrrr)xsz%_UnixSelectorEventLoop._handle_signalc
Cs�|�|�y|j|=Wntk
r*dSX|tjkr>tj}ntj}yt�||�WnBtk
r�}z$|jtj	kr�t
d|�d���n�Wdd}~XYnX|js�yt�d�Wn2ttfk
r�}zt
�d|�Wdd}~XYnXdS)zwRemove a handler for a signal.  UNIX only.

        Return True if a signal handler was removed, False if not.
        Fzsig z cannot be caughtNr,zset_wakeup_fd(-1) failed: %sT)r.r�KeyErrorr/�SIGINT�default_int_handler�SIG_DFLr3r8r9r4r0r2rr7)rr(Zhandlerr<rrrr#�s(

z,_UnixSelectorEventLoop.remove_signal_handlercCsLt|t�std|����d|kr.tjksHntd|�dtj�d���dS)z�Internal helper to validate a signal.

        Raise ValueError if the signal number is invalid or uncatchable.
        Raise RuntimeError if there is a problem setting up the handler.
        zsig must be an int, not rzsig z out of range(1, �)N)�
isinstance�intr-r/�NSIGr2)rr(rrrr.�s
z$_UnixSelectorEventLoop._check_signalcCst|||||�S)N)�_UnixReadPipeTransport)r�pipe�protocol�waiter�extrarrr�_make_read_pipe_transport�sz0_UnixSelectorEventLoop._make_read_pipe_transportcCst|||||�S)N)�_UnixWritePipeTransport)rrIrJrKrLrrr�_make_write_pipe_transport�sz1_UnixSelectorEventLoop._make_write_pipe_transportc	

�s�t����}
|��}t||||||||f||d�|	��}|
�|��|j|�y|IdHWn,tk
r�|��|�	�IdH�YnXWdQRX|S)N)rKrL)
r�get_child_watcher�
create_future�_UnixSubprocessTransport�add_child_handlerZget_pid�_child_watcher_callback�	ExceptionrZ_wait)
rrJr;�shell�stdin�stdout�stderr�bufsizerL�kwargs�watcherrK�transprrr�_make_subprocess_transport�s




z1_UnixSelectorEventLoop._make_subprocess_transportcCs|�|j|�dS)N)Zcall_soon_threadsafeZ_process_exited)r�pid�
returncoder]rrrrT�sz._UnixSelectorEventLoop._child_watcher_callback)�ssl�sock�server_hostname�ssl_handshake_timeoutc	�s
|r|dkr6td��n |dk	r&td��|dk	r6td��|dk	r�|dk	rNtd��t�|�}t�tjtjd�}y |�d�|�||�IdHWq�|���Yq�Xn@|dkr�td��|j	tjks�|j
tjkr�td|����|�d�|j|||||d	�IdH\}}||fS)
Nz/you have to pass server_hostname when using sslz+server_hostname is only meaningful with sslz1ssl_handshake_timeout is only meaningful with sslz3path and sock can not be specified at the same timerFzno path and sock were specifiedz.A UNIX Domain Stream Socket was expected, got )rd)r2�os�fspath�socket�AF_UNIX�SOCK_STREAM�setblockingZsock_connectr�family�typeZ_create_connection_transport)	r�protocol_factory�pathrarbrcrd�	transportrJrrr�create_unix_connection�s@



z-_UnixSelectorEventLoop.create_unix_connection�dT)rb�backlogrard�
start_servingc
�s�t|t�rtd��|dk	r&|s&td��|dk	�rH|dk	r@td��t�|�}t�tjtj�}|ddkr�y t	�
t�	|�j�r�t�|�WnBt
k
r�Yn0tk
r�}zt�d||�Wdd}~XYnXy|�|�Wnltk
�r0}	z8|��|	jtjk�rd|�d�}
ttj|
�d�n�Wdd}	~	XYn|���YnXn<|dk�rZtd	��|jtjk�sv|jtjk�r�td
|����|�d�t�||g||||�}|�r�|��tjd|d�IdH|S)
Nz*ssl argument must be an SSLContext or Nonez1ssl_handshake_timeout is only meaningful with sslz3path and sock can not be specified at the same timer)r�z2Unable to check or remove stale UNIX socket %r: %rzAddress z is already in usez-path was not specified, and no sock specifiedz.A UNIX Domain Stream Socket was expected, got F)�loop)rE�boolr-r2rerfrgrhri�stat�S_ISSOCK�st_mode�remove�FileNotFoundErrorr3r�errorZbindrr8Z
EADDRINUSErkrlrjrZServerZ_start_servingr
Zsleep)rrmrnrbrrrardrs�errr<�msgZserverrrr�create_unix_server�sZ






z)_UnixSelectorEventLoop.create_unix_serverc
�s�y
tjWn,tk
r6}zt�d��Wdd}~XYnXy|��}Wn2ttjfk
rv}zt�d��Wdd}~XYnXyt�|�j	}Wn,t
k
r�}zt�d��Wdd}~XYnX|r�|n|}	|	s�dS|��}
|�|
d|||||	d�|
IdHS)Nzos.sendfile() is not availableznot a regular filer)
re�sendfile�AttributeErrorr�SendfileNotAvailableErrorr1�io�UnsupportedOperation�fstat�st_sizer3rQ�_sock_sendfile_native_impl)rrb�file�offset�countr<r1r}Zfsize�	blocksize�futrrr�_sock_sendfile_native>s(
z,_UnixSelectorEventLoop._sock_sendfile_nativec	Cs|��}	|dk	r|�|�|��r4|�|||�dS|rd||}|dkrd|�|||�|�|�dSyt�|	|||�}
W�n*ttfk
r�|dkr�|�	||�|�
|	|j||	||||||�
Y�nHtk
�rj}z�|dk	�r|j
t
jk�rt|�tk	�rtdt
j�}||_|}|dk�rBt�d�}
|�|||�|�|
�n|�|||�|�|�Wdd}~XYn�tk
�r�}z|�|||�|�|�Wdd}~XYnjX|
dk�r�|�|||�|�|�nD||
7}||
7}|dk�r�|�	||�|�
|	|j||	||||||�
dS)Nrzsocket is not connectedzos.sendfile call failed)r1�
remove_writer�	cancelled�_sock_sendfile_update_fileposZ
set_resultrer��BlockingIOError�InterruptedError�_sock_add_cancellation_callbackZ
add_writerr�r3r8ZENOTCONNrl�ConnectionError�	__cause__rr�Z
set_exceptionrU)rr�Z
registered_fdrbr1r�r�r��
total_sent�fdZsentr<�new_excr}rrrr�Us`






z1_UnixSelectorEventLoop._sock_sendfile_native_implcCs|dkrt�||tj�dS)Nr)re�lseek�SEEK_SET)rr1r�r�rrrr��sz4_UnixSelectorEventLoop._sock_sendfile_update_fileposcs��fdd�}|�|�dS)Ncs&|��r"���}|dkr"��|�dS)Nr,)r�r1r�)r�r�)rrbrr�cb�szB_UnixSelectorEventLoop._sock_add_cancellation_callback.<locals>.cb)Zadd_done_callback)rr�rbr�r)rrbrr��sz6_UnixSelectorEventLoop._sock_add_cancellation_callback)N)NN)NN)N)N)N)�__name__�
__module__�__qualname__�__doc__rrr+r>r)r#r.rMrOr^rTrprr�r�r�r��
__classcell__rr)rrr,s4-
 


*?Drcs�eZdZdZd�fdd�	Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
ddd�Zdd�Zdd�Z�ZS) rHiNcs�t��|�||jd<||_||_|��|_||_d|_d|_	t
�|j�j}t
�|�s�t
�|�s�t
�|�s�d|_d|_d|_td��t
�|jd�|j�|jj|�|j�|jj|j|j�|dk	r�|j�tj|d�dS)NrIFz)Pipe transport is for pipes/sockets only.)rr�_extra�_loop�_piper1�_fileno�	_protocol�_closing�_pausedrer�ryrw�S_ISFIFOrx�S_ISCHRr2�set_blocking�	call_soon�connection_made�_add_reader�_read_readyr�_set_result_unless_cancelled)rrurIrJrKrL�mode)rrrr�s.





z_UnixReadPipeTransport.__init__cCs�|jjg}|jdkr |�d�n|jr0|�d�|�d|j���t|jdd�}|jdk	r�|dk	r�t�	||jt
j�}|r�|�d�q�|�d�n |jdk	r�|�d�n
|�d�d�d	�
|��S)
N�closed�closingzfd=�	_selector�polling�idle�openz<{}>� )rr�r��appendr�r��getattrr�r	�_test_selector_event�	selectorsZ
EVENT_READ�format�join)rr7rr�rrr�__repr__�s"




z_UnixReadPipeTransport.__repr__c
Cs�yt�|j|j�}WnDttfk
r,Yn�tk
rX}z|�|d�Wdd}~XYn^X|rl|j�	|�nJ|j
��r�t�
d|�d|_|j
�|j�|j
�|jj�|j
�|jd�dS)Nz"Fatal read error on pipe transportz%r was closed by peerT)re�readr��max_sizer�r�r3�_fatal_errorr�Z
data_receivedr��	get_debugrr7r��_remove_readerr�Zeof_received�_call_connection_lost)rr*r<rrrr��s
z"_UnixReadPipeTransport._read_readycCs>|js|jrdSd|_|j�|j�|j��r:t�d|�dS)NTz%r pauses reading)r�r�r�r�r�r�r�debug)rrrr�
pause_reading�s
z$_UnixReadPipeTransport.pause_readingcCsB|js|jsdSd|_|j�|j|j�|j��r>t�d|�dS)NFz%r resumes reading)	r�r�r�r�r�r�r�rr�)rrrr�resume_reading�s
z%_UnixReadPipeTransport.resume_readingcCs
||_dS)N)r�)rrJrrr�set_protocol�sz#_UnixReadPipeTransport.set_protocolcCs|jS)N)r�)rrrr�get_protocolsz#_UnixReadPipeTransport.get_protocolcCs|jS)N)r�)rrrr�
is_closingsz!_UnixReadPipeTransport.is_closingcCs|js|�d�dS)N)r��_close)rrrrrsz_UnixReadPipeTransport.closecCs.|jdk	r*tjd|��t|d�|j��dS)Nzunclosed transport )r)r�r$r%r&r)rrrr�__del__s
z_UnixReadPipeTransport.__del__�Fatal error on pipe transportcCsZt|t�r4|jtjkr4|j��rLtjd||dd�n|j�||||j	d��|�
|�dS)Nz%r: %sT)�exc_info)�message�	exceptionrorJ)rEr3r8ZEIOr�r�rr��call_exception_handlerr�r�)rr<r�rrrr�s
z#_UnixReadPipeTransport._fatal_errorcCs(d|_|j�|j�|j�|j|�dS)NT)r�r�r�r�r�r�)rr<rrrr� sz_UnixReadPipeTransport._closecCs4z|j�|�Wd|j��d|_d|_d|_XdS)N)r��connection_lostr�rr�)rr<rrrr�%s
z,_UnixReadPipeTransport._call_connection_lost)NN)r�)r�r�r�r�rr�r�r�r�r�r�r�rr�r�r�r�r�rr)rrrH�s
rHcs�eZdZd%�fdd�	Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zd&dd �Zd'd!d"�Zd#d$�Z�ZS)(rNNc
s�t��||�||jd<||_|��|_||_t�|_d|_	d|_
t�|j�j
}t�|�}t�|�}t�|�}	|s�|s�|	s�d|_d|_d|_td��t�|jd�|j�|jj|�|	s�|r�tj�d�s�|j�|jj|j|j�|dk	r�|j�tj|d�dS)NrIrFz?Pipe transport is only for pipes, sockets and character devicesZaix)rrr�r�r1r�r��	bytearray�_buffer�
_conn_lostr�rer�ryrwr�r�rxr2r�r�r�r�r �platform�
startswithr�r�rr�)
rrurIrJrKrLr�Zis_charZis_fifoZ	is_socket)rrrr2s2





z _UnixWritePipeTransport.__init__cCs�|jjg}|jdkr |�d�n|jr0|�d�|�d|j���t|jdd�}|jdk	r�|dk	r�t�	||jt
j�}|r�|�d�n
|�d�|��}|�d|���n |jdk	r�|�d�n
|�d�d	�
d
�|��S)Nr�r�zfd=r�r�r�zbufsize=r�z<{}>r�)rr�r�r�r�r�r�r�r	r�r�ZEVENT_WRITE�get_write_buffer_sizer�r�)rr7rr�rZrrrr�Ws&





z _UnixWritePipeTransport.__repr__cCs
t|j�S)N)�lenr�)rrrrr�osz-_UnixWritePipeTransport.get_write_buffer_sizecCs6|j��rt�d|�|jr*|�t��n|��dS)Nz%r was closed by peer)r�r�rr7r�r��BrokenPipeError)rrrrr�rs

z#_UnixWritePipeTransport._read_readyc
Cst|t�rt|�}|sdS|js&|jrN|jtjkr<t�d�|jd7_dS|j	s�yt
�|j|�}WnVt
tfk
r�d}Yn<tk
r�}z|jd7_|�|d�dSd}~XYnX|t|�kr�dS|dkr�t|�|d�}|j�|j|j�|j	|7_	|��dS)Nz=pipe closed by peer or os.write(pipe, data) raised exception.rrz#Fatal write error on pipe transport)rEr��
memoryviewr�r�rZ!LOG_THRESHOLD_FOR_CONNLOST_WRITESr�warningr�re�writer�r�r�rUr�r�r�Z_add_writer�_write_readyZ_maybe_pause_protocol)rr*�nr<rrrr�{s2

z_UnixWritePipeTransport.writec
Cs�yt�|j|j�}Wnjttfk
r,Yn�tk
r~}z6|j��|jd7_|j	�
|j�|�|d�Wdd}~XYnfX|t|j�kr�|j��|j	�
|j�|�
�|jr�|j	�|j�|�d�dS|dkr�|jd|�=dS)Nrz#Fatal write error on pipe transportr)rer�r�r�r�r�rUr'r�r��_remove_writerr�r�Z_maybe_resume_protocolr�r�r�)rr�r<rrrr��s&


z$_UnixWritePipeTransport._write_readycCsdS)NTr)rrrr�
can_write_eof�sz%_UnixWritePipeTransport.can_write_eofcCs8|jr
dSd|_|js4|j�|j�|j�|jd�dS)NT)r�r�r�r�r�r�r�)rrrr�	write_eof�sz!_UnixWritePipeTransport.write_eofcCs
||_dS)N)r�)rrJrrrr��sz$_UnixWritePipeTransport.set_protocolcCs|jS)N)r�)rrrrr��sz$_UnixWritePipeTransport.get_protocolcCs|jS)N)r�)rrrrr��sz"_UnixWritePipeTransport.is_closingcCs|jdk	r|js|��dS)N)r�r�r�)rrrrr�sz_UnixWritePipeTransport.closecCs.|jdk	r*tjd|��t|d�|j��dS)Nzunclosed transport )r)r�r$r%r&r)rrrrr��s
z_UnixWritePipeTransport.__del__cCs|�d�dS)N)r�)rrrr�abort�sz_UnixWritePipeTransport.abort�Fatal error on pipe transportcCsNt|t�r(|j��r@tjd||dd�n|j�||||jd��|�|�dS)Nz%r: %sT)r�)r�r�rorJ)	rEr3r�r�rr�r�r�r�)rr<r�rrrr��s

z$_UnixWritePipeTransport._fatal_errorcCsFd|_|jr|j�|j�|j��|j�|j�|j�|j|�dS)NT)	r�r�r�r�r�r'r�r�r�)rr<rrrr��s
z_UnixWritePipeTransport._closecCs4z|j�|�Wd|j��d|_d|_d|_XdS)N)r�r�r�rr�)rr<rrrr��s
z-_UnixWritePipeTransport._call_connection_lost)NN)r�)N)r�r�r�rr�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�rr)rrrN/s"%	!	

rNc@seZdZdd�ZdS)rRc		Ks�d}|tjkrt��\}}zPtj|f||||d|d�|��|_|dk	rh|��t|��d|d�|j_	d}Wd|dk	r�|��|��XdS)NF)rVrWrXrYZuniversal_newlinesrZ�wb)�	buffering)
�
subprocess�PIPErgZ
socketpair�Popen�_procrr��detachrW)	rr;rVrWrXrYrZr[Zstdin_wrrr�_start�s
z_UnixSubprocessTransport._startN)r�r�r�r�rrrrrR�srRc@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)raHAbstract base class for monitoring child processes.

    Objects derived from this class monitor a collection of subprocesses and
    report their termination or interruption by a signal.

    New callbacks are registered with .add_child_handler(). Starting a new
    process must be done within a 'with' block to allow the watcher to suspend
    its activity until the new process if fully registered (this is needed to
    prevent a race condition in some implementations).

    Example:
        with watcher:
            proc = subprocess.Popen("sleep 1")
            watcher.add_child_handler(proc.pid, callback)

    Notes:
        Implementations of this class must be thread-safe.

        Since child watcher objects may catch the SIGCHLD signal and call
        waitpid(-1), there should be only one active object per process.
    cGs
t��dS)aRegister a new child handler.

        Arrange for callback(pid, returncode, *args) to be called when
        process 'pid' terminates. Specifying another callback for the same
        process replaces the previous handler.

        Note: callback() must be thread-safe.
        N)�NotImplementedError)rr_r:r;rrrrS)s	z&AbstractChildWatcher.add_child_handlercCs
t��dS)z�Removes the handler for process 'pid'.

        The function returns True if the handler was successfully removed,
        False if there was nothing to remove.N)r�)rr_rrr�remove_child_handler4sz)AbstractChildWatcher.remove_child_handlercCs
t��dS)z�Attach the watcher to an event loop.

        If the watcher was previously attached to an event loop, then it is
        first detached before attaching to the new loop.

        Note: loop may be None.
        N)r�)rrurrr�attach_loop<sz AbstractChildWatcher.attach_loopcCs
t��dS)zlClose the watcher.

        This must be called to make sure that any underlying resource is freed.
        N)r�)rrrrrFszAbstractChildWatcher.closecCs
t��dS)zdEnter the watcher's context and allow starting new processes

        This function must return selfN)r�)rrrr�	__enter__MszAbstractChildWatcher.__enter__cCs
t��dS)zExit the watcher's contextN)r�)r�a�b�crrr�__exit__SszAbstractChildWatcher.__exit__N)
r�r�r�r�rSr�r�rr�r�rrrrrs
rc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�BaseChildWatchercCsd|_i|_dS)N)r��
_callbacks)rrrrrZszBaseChildWatcher.__init__cCs|�d�dS)N)r�)rrrrr^szBaseChildWatcher.closecCs
t��dS)N)r�)r�expected_pidrrr�_do_waitpidaszBaseChildWatcher._do_waitpidcCs
t��dS)N)r�)rrrr�_do_waitpid_alldsz BaseChildWatcher._do_waitpid_allcCsf|jdk	r$|dkr$|jr$t�dt�|jdk	r<|j�tj�||_|dk	rb|�tj|j	�|�
�dS)NzCA loop is being detached from a child watcher with pending handlers)r�r�r$r%�RuntimeWarningr#r/�SIGCHLDr>�	_sig_chldr�)rrurrrr�gs
zBaseChildWatcher.attach_loopc
CsFy|��Wn4tk
r@}z|j�d|d��Wdd}~XYnXdS)Nz$Unknown exception in SIGCHLD handler)r�r�)r�rUr�r�)rr<rrrr�{szBaseChildWatcher._sig_chldcCs2t�|�rt�|�St�|�r*t�|�S|SdS)N)re�WIFSIGNALED�WTERMSIG�	WIFEXITED�WEXITSTATUS)r�statusrrr�_compute_returncode�s



z$BaseChildWatcher._compute_returncodeN)
r�r�r�rrr�r�r�r�rrrrrr�Xsr�csPeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
�ZS)rad'Safe' child watcher implementation.

    This implementation avoids disrupting other code spawning processes by
    polling explicitly each process in the SIGCHLD handler instead of calling
    os.waitpid(-1).

    This is a safe solution but it has a significant overhead when handling a
    big number of children (O(n) each time SIGCHLD is raised)
    cs|j��t���dS)N)r�r'rr)r)rrrr�s
zSafeChildWatcher.closecCs|S)Nr)rrrrr��szSafeChildWatcher.__enter__cCsdS)Nr)rr�r�r�rrrr��szSafeChildWatcher.__exit__cGs.|jdkrtd��||f|j|<|�|�dS)NzICannot add child handler, the child watcher does not have a loop attached)r�r4r�r�)rr_r:r;rrrrS�s

z"SafeChildWatcher.add_child_handlercCs&y|j|=dStk
r dSXdS)NTF)r�r@)rr_rrrr��s
z%SafeChildWatcher.remove_child_handlercCs"xt|j�D]}|�|�qWdS)N)r"r�r�)rr_rrrr��sz SafeChildWatcher._do_waitpid_allcCs�yt�|tj�\}}Wn(tk
r>|}d}t�d|�Yn0X|dkrLdS|�|�}|j��rnt�	d||�y|j
�|�\}}Wn.tk
r�|j��r�tjd|dd�YnX|||f|��dS)N�z8Unknown child process pid %d, will report returncode 255rz$process %s exited with returncode %sz'Child watcher got an unexpected pid: %rT)r�)
re�waitpid�WNOHANG�ChildProcessErrorrr�rr�r�r�r��popr@)rr�r_rr`r:r;rrrr��s*


zSafeChildWatcher._do_waitpid)r�r�r�r�rr�r�rSr�r�r�r�rr)rrr�s	rcsTeZdZdZ�fdd�Z�fdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
�ZS)raW'Fast' child watcher implementation.

    This implementation reaps every terminated processes by calling
    os.waitpid(-1) directly, possibly breaking other code spawning processes
    and waiting for their termination.

    There is no noticeable overhead when handling a big number of children
    (O(1) each time a child terminates).
    cs$t���t��|_i|_d|_dS)Nr)rr�	threadingZLock�_lock�_zombies�_forks)r)rrrr�s

zFastChildWatcher.__init__cs"|j��|j��t���dS)N)r�r'r
rr)r)rrrr�s

zFastChildWatcher.closec	Cs$|j�|jd7_|SQRXdS)Nr)r	r)rrrrr��szFastChildWatcher.__enter__c	CsT|j�8|jd8_|js"|js&dSt|j�}|j��WdQRXt�d|�dS)Nrz5Caught subprocesses termination from unknown pids: %s)r	rr
r5r'rr�)rr�r�r�Zcollateral_victimsrrrr��s
zFastChildWatcher.__exit__c	Gsl|jdkrtd��|j�:y|j�|�}Wn"tk
rL||f|j|<dSXWdQRX|||f|��dS)NzICannot add child handler, the child watcher does not have a loop attached)r�r4r	r
rr@r�)rr_r:r;r`rrrrS
s
z"FastChildWatcher.add_child_handlercCs&y|j|=dStk
r dSXdS)NTF)r�r@)rr_rrrr� s
z%FastChildWatcher.remove_child_handlerc	Cs�x�yt�dtj�\}}Wntk
r,dSX|dkr:dS|�|�}|j�vy|j�|�\}}WnBtk
r�|j	r�||j
|<|j��r�t
�d||�wd}YnX|j��r�t
�d||�WdQRX|dkr�t
�d||�q|||f|��qWdS)Nr,rz,unknown process %s exited with returncode %sz$process %s exited with returncode %sz8Caught subprocess termination from unknown pid: %d -> %d)rerrrrr	r�rr@rr
r�r�rr�r�)rr_rr`r:r;rrrr�'s6





z FastChildWatcher._do_waitpid_all)r�r�r�r�rrr�r�rSr�r�r�rr)rrr�s	rcsHeZdZdZeZ�fdd�Zdd�Z�fdd�Zdd	�Z	d
d�Z
�ZS)�_UnixDefaultEventLoopPolicyz:UNIX event loop policy with a watcher for child processes.cst���d|_dS)N)rr�_watcher)r)rrrrVs
z$_UnixDefaultEventLoopPolicy.__init__c	CsHtj�8|jdkr:t�|_tt��tj�r:|j�|j	j
�WdQRXdS)N)rr	r
rrEr�current_thread�_MainThreadr��_localr�)rrrr�
_init_watcherZs
z)_UnixDefaultEventLoopPolicy._init_watchercs6t��|�|jdk	r2tt��tj�r2|j�|�dS)z�Set the event loop.

        As a side effect, if a child watcher was set before, then calling
        .set_event_loop() from the main thread will call .attach_loop(loop) on
        the child watcher.
        N)r�set_event_loopr
rErrrr�)rru)rrrrbs
z*_UnixDefaultEventLoopPolicy.set_event_loopcCs|jdkr|��|jS)zzGet the watcher for child processes.

        If not yet set, a SafeChildWatcher object is automatically created.
        N)r
r)rrrrrPps
z-_UnixDefaultEventLoopPolicy.get_child_watchercCs|jdk	r|j��||_dS)z$Set the watcher for child processes.N)r
r)rr\rrr�set_child_watcherzs

z-_UnixDefaultEventLoopPolicy.set_child_watcher)r�r�r�r�rZ
_loop_factoryrrrrPrr�rr)rrrRs
r)-r�r8r�rer�r/rgrwr�r rr$�rrrrrrr	r
r�logr�__all__r��ImportErrorrZBaseSelectorEventLooprZ
ReadTransportrHZ_FlowControlMixinZWriteTransportrNZBaseSubprocessTransportrRrr�rrZBaseDefaultEventLoopPolicyrr
rrrrr�<module>sR
|
JF=On3

Youez - 2016 - github.com/yon3zu
LinuXploit