grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?h Óã@sddlZddlZddlZddlZddlmZddl m Z ddl m Z mZzddlmZWneyvddlmZYn0gd¢ZejZejZejZejZzejZdZe d¡WneyÆd ZYn0ej Z!z ej"Z#WneyîdZ#Yn0ej$Z$[da%da&d d „Z'd d „Z(eZ)dd„Z"Gdd„dƒZ*e*Z+Gdd„dƒZ,Gdd„dƒZ-Gdd„de-ƒZ.Gdd„dƒZ/Gdd„dƒZ0Gdd„de1ƒZ2eƒj3Z4e4ƒdJdd „Z5e"ƒa6iZ7iZ8e ƒZ9eƒa:e;ƒazdd%lm?a@mAZBWnFe�y.dd&lCmDZEdd'lmFZFeFd(d)ƒZAd*d(„ZBd+d,„a@Yn0d-d.„ZGGd/d0„d0e>ƒZHGd1d2„d2e>ƒZIGd3d4„d4e>ƒZJd5d6„ZKeKZLd7d8„ZMeMZNd9d:„ZOd;d<„ZPgZQd aRd=d>„ZSdd?lmTZTeIƒaUd@dA„ZVdBdC„ZWzddDlmXZYWn e�yòddElZmYZYYn0dFdG„Z[e\edHƒ�rej]e[dI�dS)KéN)Ú monotonic)ÚWeakSet)ÚisliceÚcount)Údeque)Ú get_identÚ active_countÚ ConditionÚcurrent_threadÚ enumerateÚ main_threadÚ TIMEOUT_MAXÚEventÚLockÚRLockÚ SemaphoreÚBoundedSemaphoreÚThreadÚBarrierÚBrokenBarrierErrorÚTimerÚ ThreadErrorÚ setprofileÚsettraceÚlocalÚ stack_sizeÚ excepthookÚExceptHookArgsTÚ get_native_idFcCs|adS©N)Ú _profile_hook©Úfunc©r#ú./opt/alt/python39/lib64/python3.9/threading.pyr:srcCs|adSr)Ú _trace_hookr!r#r#r$rDsrcOs$tdurt|i|¤ŽSt|i|¤ŽSr)Ú_CRLockÚ_PyRLock)ÚargsÚkwargsr#r#r$rRs rc@sZeZdZdd„Zdd„Zdd„Zdd d „ZeZd d „Zd d„Z dd„Z dd„Z dd„Z dS)Ú_RLockcCstƒ|_d|_d|_dS©Nr)Ú_allocate_lockÚ_blockÚ_ownerÚ_count©Úselfr#r#r$Ú__init__isz_RLock.__init__c Cs\|j}zt|j}Wnty&Yn0d|j ¡r8dnd|jj|jj||j t t |ƒƒfS)Nz)<%s %s.%s object owner=%r count=%d at %s>ÚlockedZunlocked) r.Ú_activeÚnameÚKeyErrorr-r3Ú __class__Ú __module__Ú __qualname__r/ÚhexÚid)r1Úownerr#r#r$Ú__repr__ns  úz_RLock.__repr__cCs|j ¡d|_d|_dSr+)r-Ú_at_fork_reinitr.r/r0r#r#r$r>}s z_RLock._at_fork_reinitTéÿÿÿÿcCsDtƒ}|j|kr"|jd7_dS|j ||¡}|r@||_d|_|S©Né)rr.r/r-Úacquire)r1ÚblockingÚtimeoutÚmeÚrcr#r#r$rB‚s z_RLock.acquirecCs<|jtƒkrtdƒ‚|jd|_}|s8d|_|j ¡dS)Núcannot release un-acquired lockrA)r.rÚ RuntimeErrorr/r-Úrelease)r1rr#r#r$rI¨s  z_RLock.releasecCs | ¡dSr©rI©r1ÚtÚvÚtbr#r#r$Ú__exit__¿sz_RLock.__exit__cCs|j ¡|\|_|_dSr)r-rBr/r.)r1Ústater#r#r$Ú_acquire_restoreÄs z_RLock._acquire_restorecCs<|jdkrtdƒ‚|j}d|_|j}d|_|j ¡||fS)NrrG)r/rHr.r-rI)r1rr<r#r#r$Ú _release_saveÈs  z_RLock._release_savecCs |jtƒkSr)r.rr0r#r#r$Ú _is_ownedÒsz_RLock._is_ownedN)Tr?) Ú__name__r8r9r2r=r>rBÚ __enter__rIrOrQrRrSr#r#r#r$r*_s  $ r*c@sxeZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z ddd„Z ddd„Z ddd„Z dd„ZeZdS)r NcCs�|durtƒ}||_|j|_|j|_z |j|_WntyBYn0z |j|_WntybYn0z |j|_Wnty‚Yn0tƒ|_ dSr) rÚ_lockrBrIrRÚAttributeErrorrQrSÚ_dequeÚ_waiters©r1Úlockr#r#r$r2äs$      zCondition.__init__cCs|j ¡|j ¡dSr)rVr>rYÚclearr0r#r#r$r>üs zCondition._at_fork_reinitcCs |j ¡Sr)rVrUr0r#r#r$rUszCondition.__enter__cGs |jj|ŽSr)rVrO)r1r(r#r#r$rOszCondition.__exit__cCsd|jt|jƒfS)Nz)rVÚlenrYr0r#r#r$r=szCondition.__repr__cCs|j ¡dSr)rVrIr0r#r#r$rR szCondition._release_savecCs|j ¡dSr)rVrB)r1Úxr#r#r$rQ szCondition._acquire_restorecCs"|j d¡r|j ¡dSdSdS©NFT)rVrBrIr0r#r#r$rSs  zCondition._is_ownedcCs| ¡stdƒ‚tƒ}| ¡|j |¡| ¡}d}z”|durN| ¡d}n |dkrd| d|¡}n | d¡}|W| |¡|s¤z|j |¡WSt y¢YS0Sz|j |¡Wnt yÈYn0n8| |¡|�sz|j |¡Wnt �yYn00dS)Nzcannot wait on un-acquired lockFTr) rSrHr,rBrYÚappendrRrQÚremoveÚ ValueError)r1rDÚwaiterZ saved_stateZgotitr#r#r$ÚwaitsD    ù û zCondition.waitcCsXd}|}|ƒ}|sT|durB|dur.tƒ|}n|tƒ}|dkrBqT| |¡|ƒ}q|Sr+)Ú_timerd)r1Z predicaterDÚendtimeZwaittimeÚresultr#r#r$Úwait_forHs   zCondition.wait_forrAcCsz| ¡stdƒ‚|j}|rv|dkrv|d}z | ¡WntyHYn 0|d8}z| |¡WqtyrYq0qdS)Nz!cannot notify on un-acquired lockrrA)rSrHrYrIrarb)r1ÚnÚwaitersrcr#r#r$Únotify_s     zCondition.notifycCs| t|jƒ¡dSr)rkr]rYr0r#r#r$Ú notify_all}szCondition.notify_all)N)N)N)rA)rTr8r9r2r>rUrOr=rRrQrSrdrhrkrlZ notifyAllr#r#r#r$r Øs  0   r c@s6eZdZd dd„Zd dd„ZeZddd „Zd d „ZdS)rrAcCs&|dkrtdƒ‚ttƒƒ|_||_dS)Nrz$semaphore initial value must be >= 0)rbr rÚ_condÚ_value©r1Úvaluer#r#r$r2•s zSemaphore.__init__TNcCs¦|s|durtdƒ‚d}d}|j�p|jdkrr|s4q„|durd|durPtƒ|}n|tƒ}|dkrdq„|j |¡q$|jd8_d}Wdƒn1s˜0Y|S)Nz.can't specify timeout for non-blocking acquireFrrAT)rbrmrnrerd)r1rCrDrFrfr#r#r$rB›s$    "zSemaphore.acquirecCs`|dkrtdƒ‚|j�6|j|7_t|ƒD]}|j ¡q.Wdƒn1sR0YdS)NrAún must be one or more)rbrmrnÚrangerk©r1riÚir#r#r$rIÊs  zSemaphore.releasecCs | ¡dSrrJrKr#r#r$rOØszSemaphore.__exit__)rA)TN)rA)rTr8r9r2rBrUrIrOr#r#r#r$r‰s   - rc@s eZdZddd„Zddd„ZdS) rrAcCst ||¡||_dSr)rr2Ú_initial_valueror#r#r$r2ís zBoundedSemaphore.__init__cCsx|dkrtdƒ‚|j�N|j||jkr0tdƒ‚|j|7_t|ƒD]}|j ¡qFWdƒn1sj0YdS)NrArqz!Semaphore released too many times)rbrmrnrurrrkrsr#r#r$rIñs  zBoundedSemaphore.releaseN)rA)rA)rTr8r9r2rIr#r#r#r$rÜs rc@sBeZdZdd„Zdd„Zdd„ZeZdd„Zd d „Zdd d „Z d S)rcCsttƒƒ|_d|_dS©NF)r rrmÚ_flagr0r#r#r$r2s zEvent.__init__cCs|j ¡dSr)rmr>r0r#r#r$r>szEvent._at_fork_reinitcCs|jSr)rwr0r#r#r$Úis_setsz Event.is_setcCs:|j� d|_|j ¡Wdƒn1s,0YdS©NT)rmrwrlr0r#r#r$Úsetsz Event.setcCs0|j�d|_Wdƒn1s"0YdSrv)rmrwr0r#r#r$r\)sz Event.clearNcCsD|j�*|j}|s|j |¡}|WdƒS1s60YdSr)rmrwrd)r1rDZsignaledr#r#r$rd3s  z Event.wait)N) rTr8r9r2r>rxZisSetrzr\rdr#r#r#r$rs   rc@s|eZdZddd„Zddd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z e dd„ƒZ e dd„ƒZe dd„ƒZdS)rNcCs.ttƒƒ|_||_||_||_d|_d|_dSr+)r rrmÚ_actionÚ_timeoutÚ_partiesÚ_stater/)r1ÚpartiesÚactionrDr#r#r$r2]s zBarrier.__init__c Csº|dur|j}|j�’| ¡|j}|jd7_zL|d|jkrL| ¡n | |¡|W|jd8_| ¡WdƒS|jd8_| ¡0Wdƒn1s¬0YdSr@)r|rmÚ_enterr/r}Ú_releaseÚ_waitÚ_exit)r1rDÚindexr#r#r$rdms$   üþz Barrier.waitcCs(|jdvr|j ¡q|jdkr$t‚dS)N©r?rAr)r~rmrdrr0r#r#r$r�‹s    zBarrier._entercCs>z"|jr| ¡d|_|j ¡Wn| ¡‚Yn0dSr@)r{r~rmrlÚ_breakr0r#r#r$r‚–szBarrier._releasecs4ˆj ‡fdd„|¡s"ˆ ¡t‚ˆjdkr0t‚dS)Ncs ˆjdkSr+©r~r#r0r#r$Ú¥ózBarrier._wait..r)rmrhr‡rr~©r1rDr#r0r$rƒ¤s  z Barrier._waitcCs(|jdkr$|jdvr$d|_|j ¡dS)Nrr†)r/r~rmrlr0r#r#r$r„¯s  z Barrier._exitcCsh|j�N|jdkr6|jdkr$d|_q<|jdkrrŠz,_maintain_shutdown_locks..)Ú_shutdown_locksÚdifference_update)Z to_remover#r#r$Ú_maintain_shutdown_lockss r›c@seZdZdZd7ddœdd„Zdd„Zd d „Zd d „Zd d„Zdd„Z dd„Z e rXdd„Z dd„Z dd„Zdd„Zdd„Zd8dd„Zd9d!d"„Zed#d$„ƒZejd%d$„ƒZed&d'„ƒZe rÂed(d)„ƒZd*d+„Zed,d-„ƒZejd.d-„ƒZd/d0„Zd1d2„Zd3d4„Zd5d6„ZdS):rFNr#©ÚdaemoncCs�|dur i}||_t|ptƒƒ|_||_||_|dur>||_n tƒj|_d|_ t rXd|_ d|_ t ƒ|_d|_d|_tj|_tƒ|_t |¡dSr_)Ú_targetÚstrr–Ú_nameÚ_argsÚ_kwargsÚ _daemonicr r�Ú_identÚ_HAVE_THREAD_NATIVE_IDÚ _native_idÚ _tstate_lockrÚ_startedÚ _is_stoppedÚ _initializedÚ_sysÚstderrÚ_stderrÚ_make_invoke_excepthookÚ_invoke_excepthookÚ _danglingÚadd)r1ÚgroupÚtargetr5r(r)r�r#r#r$r2"s& zThread.__init__cCs>|j ¡|r.|jdur:|j ¡|j ¡n d|_d|_dSry)r¨r>r§rBr©)r1Úis_aliver#r#r$Ú_reset_internal_locksQs    zThread._reset_internal_lockscCs^d}|j ¡rd}| ¡|jr$d}|jr2|d7}|jdurJ|d|j7}d|jj|j|fS)NÚinitialZstartedZstoppedz daemonz %sz <%s(%s, %s)>) r¨rxr´r©r£r¤r7rTr )r1Zstatusr#r#r$r=bs  zThread.__repr__c Csª|jstdƒ‚|j ¡r tdƒ‚t�|t|<Wdƒn1sB0Yzt|jdƒWn>tyšt�t|=Wdƒn1sŠ0Y‚Yn0|j  ¡dS)Nzthread.__init__() not calledz threads can only be started oncer#) rªrHr¨rxÚ_active_limbo_lockÚ_limboÚ_start_new_threadÚ _bootstrapÚ Exceptionrdr0r#r#r$Ústartps  & $z Thread.startcCs>z*|jr|j|ji|j¤ŽW|`|`|`n|`|`|`0dSr)ržr¡r¢r0r#r#r$ÚrunŠs z Thread.runcCs4z | ¡Wn"|jr(tdur(YdS‚Yn0dSr)Ú_bootstrap_innerr£r«r0r#r#r$rº›s  zThread._bootstrapcCs tƒ|_dSr)rr¤r0r#r#r$Ú _set_ident¯szThread._set_identcCs tƒ|_dSr)rr¦r0r#r#r$Ú_set_native_id³szThread._set_native_idcCsRtƒ|_|j ¡|jsNt�"tƒt |j¡Wdƒn1sD0YdSr)Ú _set_sentinelr§rBr�Ú_shutdown_locks_lockr›r™r±r0r#r#r$Ú_set_tstate_lock¶s  zThread._set_tstate_lockcCs$zÜ| ¡| ¡tr| ¡|j ¡t� |t|j<t |=Wdƒn1sR0Yt rjt   t ¡t rxt  t ¡z | ¡Wn| |¡Yn0Wt�*z ttƒ=Wn Yn0Wdƒn1sÒ0YnBt�*z ttƒ=Wn Yn0Wdƒn1�s0Y0dSr)r¿rÃr¥rÀr¨rzr·r4r¤r¸r%r«rr rr½r¯rr0r#r#r$r¾Ãs6  $    &ú zThread._bootstrap_innercCsN|j}|durd|_d|_|jsJt�tƒWdƒn1s@0YdSry)r§r©r�rÂr›rZr#r#r$Ú_stopàsz Thread._stopcCs0t�ttƒ=Wdƒn1s"0YdSr)r·r4rr0r#r#r$Ú_deleteûszThread._deletecCsZ|jstdƒ‚|j ¡s tdƒ‚|tƒur2tdƒ‚|durD| ¡n|jt|dƒd�dS)NúThread.__init__() not calledz'cannot join thread before it is startedzcannot join current threadr)rD)rªrHr¨rxr Ú_wait_for_tstate_lockÚmaxr‹r#r#r$Újoins   z Thread.joinTr?cCs^|j}|durdSz | ||¡r0| ¡| ¡Wn&| ¡rR| ¡| ¡‚Yn0dSr)r§rBrIrÄr3)r1ÚblockrDr[r#r#r$rÇ*s  zThread._wait_for_tstate_lockcCs|jSr)r r0r#r#r$r5Es z Thread.namecCst|ƒ|_dSr)rŸr ©r1r5r#r#r$r5PscCs|jSr)r¤r0r#r#r$ÚidentUs z Thread.identcCs|jSr)r¦r0r#r#r$Ú native_idbs zThread.native_idcCs&|js|j ¡sdS| d¡|j Srv)r©r¨rxrÇr0r#r#r$r´ms  zThread.is_alivecCs|jSr)r£r0r#r#r$r�{s z Thread.daemoncCs*|jstdƒ‚|j ¡r tdƒ‚||_dS)NrÆz)cannot set daemon status of active thread)rªrHr¨rxr£©r1Zdaemonicr#r#r$r�Šs  cCs|jSrrœr0r#r#r$ÚisDaemon’szThread.isDaemoncCs ||_dSrrœrÎr#r#r$Ú setDaemon•szThread.setDaemoncCs|jSr©r5r0r#r#r$ÚgetName˜szThread.getNamecCs ||_dSrrÑrËr#r#r$ÚsetName›szThread.setName)NNNr#N)N)Tr?)rTr8r9rªr2rµr=r¼r½rºr¿r¥rÀrÃr¾rÄrÅrÉrÇr’r5ÚsetterrÌrÍr´r�rÏrÐrÒrÓr#r#r#r$rsL ÿÿ /  &       r)Ú _excepthookÚ_ExceptHookArgs)Úprint_exception)Ú namedtuplerz'exc_type exc_value exc_traceback threadcCst|ŽSr)rÖ)r(r#r#r$r«scCsž|jtkrdStdur(tjdur(tj}n$|jdurH|jj}|durLdSndS|jdur`|jj}ntƒ}td|›d�|dd�t |j|j |j |d�|  ¡dS)NzException in thread ú:T©ÚfileÚflush)rÛ) Úexc_typeÚ SystemExitr«r¬Úthreadr­r5rÚprintÚ_print_exceptionÚ exc_valueÚ exc_tracebackrÜ)r(r¬r5r#r#r$r®s&     ÿÿrcsPt‰tj‰ˆdurtdƒ‚ˆdur*tdƒ‚tj‰t‰t‰‡‡‡‡‡fdd„}|S)Nzthreading.excepthook is Nonezsys.excepthook is Nonec sÆzºz.t}|durˆ}tgˆƒ¢|‘ƒ}||ƒWn‚ty²}zjd|_~ˆdurbˆjdurbˆj}n|j}ˆd|dd�ˆdur�ˆjdur�ˆj}nˆ}|ˆƒŽWYd}~n d}~00Wd}nd}0dS)NTz"Exception in threading.excepthook:rÚ)rrr»Ú__suppress_context__r¬r­)rßÚhookr(Úexcr¬Zsys_excepthook©Z local_printZ local_sysZold_excepthookZold_sys_excepthookZ sys_exc_infor#r$Úinvoke_excepthookÝs( ÿ"z2_make_invoke_excepthook..invoke_excepthook)rr«rHÚexc_inforà)rèr#rçr$r®Ís r®c@s&eZdZddd„Zdd„Zdd„ZdS) rNcCsFt |¡||_||_|dur"|ng|_|dur4|ni|_tƒ|_dSr)rr2ÚintervalÚfunctionr(r)rÚfinished)r1rêrër(r)r#r#r$r2 s  zTimer.__init__cCs|j ¡dSr)rìrzr0r#r#r$Úcancelsz Timer.cancelcCs:|j |j¡|j ¡s,|j|ji|j¤Ž|j ¡dSr)rìrdrêrxrër(r)rzr0r#r#r$r½s z Timer.run)NN)rTr8r9r2rír½r#r#r#r$rs rc@seZdZdd„ZdS)Ú _MainThreadcCshtj|ddd�| ¡|j ¡| ¡tr6| ¡t�|t |j <Wdƒn1sZ0YdS)NZ MainThreadF©r5r�) rr2rÃr¨rzr¿r¥rÀr·r4r¤r0r#r#r$r2"s z_MainThread.__init__N)rTr8r9r2r#r#r#r$rî srîc@s.eZdZdd„Zdd„Zdd„Zd dd „ZdS) Ú _DummyThreadcCsdtj|tdƒdd�|j ¡| ¡tr2| ¡t�|t |j <Wdƒn1sV0YdS)NzDummy-%dTrï) rr2r–r¨rzr¿r¥rÀr·r4r¤r0r#r#r$r27s z_DummyThread.__init__cCsdSrr#r0r#r#r$rÄAsz_DummyThread._stopcCsdSryr#r0r#r#r$r´Dsz_DummyThread.is_aliveNcCsdSrr#r‹r#r#r$rÉHsz_DummyThread.join)N)rTr8r9r2rÄr´rÉr#r#r#r$rð5s rðcCs*z ttƒWSty$tƒYS0dSr)r4rr6rðr#r#r#r$r Ns  r cCs8t� ttƒttƒWdƒS1s*0YdSr)r·r]r4r¸r#r#r#r$r\srcCstt ¡ƒtt ¡ƒSr)Úlistr4Úvaluesr¸r#r#r#r$Ú _enumeratehsrócCs@t�(tt ¡ƒtt ¡ƒWdƒS1s20YdSr)r·rñr4ròr¸r#r#r#r$r lsr cOs2tr tdƒ‚tj|g|¢Ri|¤Ž}t |¡dS)Nz$can't register atexit after shutdown)Ú_SHUTTING_DOWNrHÚ functoolsÚpartialÚ_threading_atexitsr`)r"Úargr)Zcallr#r#r$Ú_register_atexit{s rù)rcCs tjr dSdattƒD] }|ƒqtjtƒkrFtj}| ¡t  ¡nt � t t ƒ}t   ¡Wdƒn1sp0Y|s€qœ|D]}| ¡| ¡q„qFdSry)Ú _main_threadr©rôÚreversedr÷rÌrr§rIrÄrÂrñr™r\rB)Z atexit_callZtlockZlocksr[r#r#r$Ú _shutdown”s"    &rücCstSr)rúr#r#r#r$r Ìsr )Ú_local)rcCsÜtƒai}zttƒ}Wnty0tƒ}Yn0|atƒat ƒa t�‚t t ƒƒ}|  t ¡|D]>}||urŒ| d¡tƒ}||_|||<q`| d¡| ¡q`t ¡t ¡t  |¡Wdƒn1sÎ0YdS)NTF)rr·r4rr6rîrúr,rÂrzr™róÚupdater°rµr¤rÄr¸r\)Z new_activeZcurrentZthreadsrßrÌr#r#r$Ú _after_forkÝs0         rÿÚregister_at_fork)Zafter_in_child)r“)^ÚosÚ_osÚsysr«Ú_threadrõÚtimerreZ _weakrefsetrÚ itertoolsrZ_islicerr/Ú _collectionsrrXÚ ImportErrorÚ collectionsÚ__all__Ústart_new_threadr¹Ú allocate_lockr,rÁrrr¥r`rWÚerrorrrr&r r r%rrrr*r'r rrrrrHrÚ__next__r”r–r·r4r¸r°rÂrzr™r›rrÕrrÖrÚ tracebackr×rárØr®rrîrðr Z currentThreadrZ activeCountrór r÷rôrùrrúrür rýrZ_threading_localrÿÚhasattrrr#r#r#r$Úsº            v2S)O    þ5    8 5