§
    #ˆtj!  ã                  óÜ   — d dl 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mZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ  ej        d	e¦  «          G d
„ de¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚAny)ÚArbiter)ÚWorker)Úasyncio_run)ÚConfig)ÚServerz˜The `uvicorn.workers` module is deprecated. Please use `uvicorn-worker` package instead.
For more details, see https://github.com/Kludex/uvicorn-worker.c                  ób   ‡ — e Zd ZU dZdddœZded<   dˆ fd„Zdd„Zdd„Zdd„Z	dd„Z
dd„Zˆ xZS )ÚUvicornWorkerzv
    A worker class for Gunicorn that interfaces with an ASGI consumer callable,
    rather than a WSGI callable.
    Úauto©ÚloopÚhttpzdict[str, Any]ÚCONFIG_KWARGSÚargsr   ÚkwargsÚreturnÚNonec           	     óŒ  •—  t          ¦   «         j        |i |¤Ž t          j        d¦  «        }| j        j        j        |_        |                     | j        j        j        ¦  «         d|_	        t          j        d¦  «        }| j        j
        j        |_        |                     | j        j
        j        ¦  «         d|_	        d d | j        j        | j        | j        | j        | j        j        dœ}| j        j        rê| j        j                             d¦  «        | j        j                             d¦  «        | j        j                             d¦  «        | j        j                             d¦  «        | j        j                             d	¦  «        | j        j                             d
¦  «        | j        j                             d¦  «        dœ}|                     |¦  «         | j        j        d         j        r| j        j        d         j        |d<   |                     | j        ¦  «         t1          di |¤Ž| _        d S )Nzuvicorn.errorFzuvicorn.access)ÚappÚ
log_configÚtimeout_keep_aliveÚtimeout_notifyÚcallback_notifyÚlimit_max_requestsÚforwarded_allow_ipsÚkeyfileÚcertfileÚpasswordÚssl_versionÚ	cert_reqsÚca_certsÚciphers)Ússl_keyfileÚssl_certfileÚssl_keyfile_passwordr    Ússl_cert_reqsÚssl_ca_certsÚssl_ciphersÚbacklog© )ÚsuperÚ__init__ÚloggingÚ	getLoggerÚlogÚ	error_logÚhandlersÚsetLevelÚlevelÚ	propagateÚ
access_logÚcfgÚ	keepaliveÚtimeoutr   Úmax_requestsr   Úis_sslÚssl_optionsÚgetÚupdateÚsettingsÚvaluer   r   Úconfig)Úselfr   r   ÚloggerÚconfig_kwargsÚ
ssl_kwargsÚ	__class__s         €úM/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/uvicorn/workers.pyr-   zUvicornWorker.__init__    sþ  ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)åÔ" ?Ñ3Ô3ˆØœ(Ô,Ô5ˆŒØ�Š˜œÔ*Ô0Ñ1Ô1Ð1Ø ˆÔåÔ"Ð#3Ñ4Ô4ˆØœ(Ô-Ô6ˆŒØ�Š˜œÔ+Ô1Ñ2Ô2Ð2Ø ˆÔð ØØ"&¤(Ô"4Ø"œlØ#Ô3Ø"&Ô"3Ø#'¤8Ô#?ð
ð 
ˆð Œ8Œ?ð 
	-à#œxÔ3×7Ò7¸	ÑBÔBØ $¤Ô 4× 8Ò 8¸Ñ DÔ DØ(,¬Ô(<×(@Ò(@ÀÑ(LÔ(LØ#œxÔ3×7Ò7¸ÑFÔFØ!%¤Ô!5×!9Ò!9¸+Ñ!FÔ!FØ $¤Ô 4× 8Ò 8¸Ñ DÔ DØ#œxÔ3×7Ò7¸	ÑBÔBðð ˆJð × Ò  Ñ,Ô,Ð,àŒ8Ô˜YÔ'Ô-ð 	JØ'+¤xÔ'8¸Ô'CÔ'IˆM˜)Ñ$à×Ò˜TÔ/Ñ0Ô0Ð0åÐ-Ð-˜}Ð-Ð-ˆŒˆˆó    c                óÞ   — | j         D ]!}t          j        |t          j        ¦  «         Œ"t          j        t          j        | j        ¦  «         t          j        t          j        d¦  «         d S )NF)ÚSIGNALSÚsignalÚSIG_DFLÚSIGUSR1Úhandle_usr1Úsiginterrupt)rB   Úss     rG   Úinit_signalszUvicornWorker.init_signalsJ   s^   € ð ”ð 	-ð 	-ˆAÝŒM˜!�Vœ^Ñ,Ô,Ð,Ð,åŒ•f”n dÔ&6Ñ7Ô7Ð7åÔ�FœN¨EÑ2Ô2Ð2Ð2Ð2rH   c                óŽ   — t          j        ¦   «         }|                     t          j        | j        t          j        d¦  «         dS )z¡Install a SIGQUIT handler on workers.

        - https://github.com/Kludex/uvicorn/issues/1116
        - https://github.com/benoitc/gunicorn/issues/2604
        N)ÚasyncioÚget_running_loopÚadd_signal_handlerrK   ÚSIGQUITÚhandle_exit)rB   r   s     rG   Ú_install_sigquit_handlerz&UvicornWorker._install_sigquit_handlerU   s:   € õ Ô'Ñ)Ô)ˆØ×Ò¥¤°Ô0@Å&Ä.ÐRVÑWÔWÐWÐWÐWrH   c              ƒ  ó  K  — | j         | j        _        t          | j        ¬¦  «        }|                      ¦   «          |                     | j        ¬¦  «        ƒ d {V —† |j        s t          j	        t          j        ¦  «         d S d S )N)rA   )Úsockets)ÚwsgirA   r   r	   rX   ÚserverZ   ÚstartedÚsysÚexitr   ÚWORKER_BOOT_ERROR)rB   Úservers     rG   Ú_servezUvicornWorker._serve_   sŠ   è è € Øœ)ˆŒŒÝ˜tœ{Ð+Ñ+Ô+ˆØ×%Ò%Ñ'Ô'Ð'Ø�lŠl 4¤<ˆlÑ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØŒ~ð 	0ÝŒH•WÔ.Ñ/Ô/Ð/Ð/Ð/ð	0ð 	0rH   c                óv   — t          |                      ¦   «         | j                             ¦   «         ¬¦  «        S )N)Úloop_factory)r   rb   rA   Úget_loop_factory©rB   s    rG   ÚrunzUvicornWorker.rung   s+   € Ý˜4Ÿ;š;™=œ=°t´{×7SÒ7SÑ7UÔ7UÐVÑVÔVÐVrH   c              ƒ  ó2   K  — |                       ¦   «          d S )N)Únotifyrf   s    rG   r   zUvicornWorker.callback_notifyj   s   è è € Ø�Š‰ŒˆˆˆrH   )r   r   r   r   r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r-   rQ   rX   rb   rg   r   Ú__classcell__)rF   s   @rG   r   r      sÑ   ø€ € € € € € ðð ð
 .4¸VÐ$DÐ$D€MÐDÐDÐDÑDð(.ð (.ð (.ð (.ð (.ð (.ðT	3ð 	3ð 	3ð 	3ðXð Xð Xð Xð0ð 0ð 0ð 0ðWð Wð Wð Wðð ð ð ð ð ð ð rH   r   c                  ó   — e Zd ZdddœZdS )ÚUvicornH11WorkerrS   Úh11r   N)rj   rk   rl   r   r+   rH   rG   rq   rq   n   s   € € € € € Ø&°Ð6Ð6€M€M€MrH   rq   )Ú
__future__r   rS   r.   rK   r^   ÚwarningsÚtypingr   Úgunicorn.arbiterr   Úgunicorn.workers.baser   Úuvicorn._compatr   Úuvicorn.configr   Úuvicorn.serverr	   ÚwarnÚDeprecationWarningr   rq   r+   rH   rG   ú<module>r}      s6  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð à $Ð $Ð $Ð $Ð $Ð $Ø (Ð (Ð (Ð (Ð (Ð (à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !à €„ðFàñô ð ðSð Sð Sð Sð S�Fñ Sô Sð Sðl7ð 7ð 7ð 7ð 7�}ñ 7ô 7ð 7ð 7ð 7rH   