§
    9ˆtjV(  ã                  ó˜  — d dl mZ d dlmZmZmZmZmZmZ d dl	m
Z
mZ d dlZd dlmZ d dlmZmZ d dlmZ d dlmZmZmZmZmZ eegee         f         Zeeegee         f         Zeeeee
f         z  df         Zeeez  ez  eee
f         z           Z  ed	¦  «        Z! G d
„ de¦  «        Z" G d„ d¦  «        Z# G d„ de¦  «        Z$dS )é    )Úannotations)ÚAsyncGeneratorÚAsyncIterableÚ	AwaitableÚCallableÚMappingÚMutableMapping)ÚAnyÚTypeVarN)Úcreate_collapsing_task_group)ÚClientDisconnectÚRequest)ÚResponse)ÚASGIAppÚMessageÚReceiveÚScopeÚSendÚTc                  ó,   ‡ — e Zd ZdZd
ˆ fd„Zdd	„Zˆ xZS )Ú_CachedRequesta  
    If the user calls Request.body() from their dispatch function
    we cache the entire request body in memory and pass that to downstream middlewares,
    but if they call Request.stream() then all we do is send an
    empty body so that downstream things don't hang forever.
    Úscoper   Úreceiver   c                óš   •— t          ¦   «                              ||¦  «         d| _        d| _        |                      ¦   «         | _        d S )NF)ÚsuperÚ__init__Ú_wrapped_rcv_disconnectedÚ_wrapped_rcv_consumedÚstreamÚ_wrapped_rc_stream)Úselfr   r   Ú	__class__s      €úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/starlette/middleware/base.pyr   z_CachedRequest.__init__   sC   ø€ Ý‰Œ×Ò˜ Ñ(Ô(Ð(Ø).ˆÔ&Ø%*ˆÔ"Ø"&§+¢+¡-¤-ˆÔÐÐó    Úreturnr   c              ƒ  ó  K  — | j         rddiS | j        rY| j        rd| _         ddiS |                      ¦   «         ƒ d {V —†}|d         dk    rt	          d|d         › �¦  «        ‚d| _         |S t          | dd ¦  «        �d| _        d| j        ddœS | j        rd| _        dd	ddœS 	 |                      ¦   «         }| 	                    ¦   «         ƒ d {V —†}| j        | _        d|| j         dœS # t          $ r d| _         ddicY S w xY w)
NÚtypeúhttp.disconnectTzUnexpected message received: Ú_bodyzhttp.requestF©r'   ÚbodyÚ	more_bodyr$   )r   r   Ú_is_disconnectedr   ÚRuntimeErrorÚgetattrr)   Ú_stream_consumedr   Ú	__anext__r   )r!   Úmsgr   Úchunks       r#   Úwrapped_receivez_CachedRequest.wrapped_receive"   s¢  è è € àÔ)ð 	/ð Ð-Ð.Ð.àÔ%ð 	ð Ô$ð 3ð 26�Ô.ØÐ 1Ð2Ð2ð Ÿš™œÐ&Ð&Ð&Ð&Ð&Ð&ˆCØ�6Œ{Ð/Ò/Ð/õ #Ð#PÀ3ÀvÄ;Ð#PÐ#PÑQÔQÐQØ-1ˆDÔ*ØˆJõ �4˜ $Ñ'Ô'Ð3à)-ˆDÔ&à&Øœ
Ø"ðð ð ð
 Ô"ð 	3ð *.ˆDÔ&à&ØØ"ðð ð ð3ØŸš™œ�Ø$×.Ò.Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0�Ø-1Ô-B�Ô*à*Ø!Ø%)Ô%:Ð!:ðð ð øõ
 $ð 3ð 3ð 3Ø15�Ô.ØÐ 1Ð2Ð2Ð2Ð2ð3øøøs   Â&AC, Ã,DÄD)r   r   r   r   ©r%   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r4   Ú__classcell__)r"   s   @r#   r   r      s[   ø€ € € € € ðð ð0ð 0ð 0ð 0ð 0ð 0ð;3ð ;3ð ;3ð ;3ð ;3ð ;3ð ;3ð ;3r$   r   c                  ó(   — e Zd Zddd„Zdd„Zdd„ZdS )ÚBaseHTTPMiddlewareNÚappr   ÚdispatchúDispatchFunction | Noner%   ÚNonec                ó4   — || _         |€| j        n|| _        d S ©N)r=   r>   Údispatch_func)r!   r=   r>   s      r#   r   zBaseHTTPMiddleware.__init__a   s"   € ØˆŒØ.6Ð.>˜Tœ]˜]ÀHˆÔÐÐr$   r   r   r   r   Úsendr   c           
   ƒ  ó°  ‡ ‡‡‡	‡
‡‡‡‡K  — ‰d         dk    r‰                       ‰||¦  «        ƒ d {V —† d S t          ‰|¦  «        }|j        Št          j        ¦   «         Šd ŠdŠ	d	ˆˆ	ˆ
ˆˆˆ ˆˆˆf	d„}t          j        ¦   «         }|\  ŠŠ
‰
5  ‰5  t          ¦   «         4 ƒd {V —†Š‰                      ||¦  «        ƒ d {V —†} |‰‰|¦  «        ƒ d {V —† ‰                     ¦   «          ‰
 	                    ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰�‰	s‰‚d S d S )
Nr'   ÚhttpFÚrequestr   r%   r   c              “  ó
  •	‡‡K  — dˆˆfd„Šdˆfd„Šdˆˆˆˆˆˆfd„}‰                      |¦  «         	 ‰
                     ¦   «         ƒ d {V —†}|                     dd ¦  «        }|d	         d
k    r|�‰
                     ¦   «         ƒ d {V —†}n5# t          j        $ r# ‰�dŠ	‰‰j        p‰j        ‚t          d¦  «        ‚w xY w|d	         dk    sJ ‚dˆ
fd„}t          |d          |¦   «         |¬¦  «        }|d         |_	        |S )Nr%   r   c               “  óL  •‡K  — ‰                      ¦   «         rddiS t          j        ¦   «         4 ƒd {V —†Šdˆfd„} ‰                     | ‰j        ¦  «          | ‰¦  «        ƒ d {V —†}d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰                      ¦   «         rddiS |S )	Nr'   r(   ÚfuncúCallable[[], Awaitable[T]]r%   r   c              “  ó^   •K  —  | ¦   «         ƒ d {V —†}‰j                              ¦   «          |S rB   )Úcancel_scopeÚcancel)rJ   ÚresultÚ
task_groups     €r#   Úwrapz[BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect.<locals>.wrapw   s8   øè è € Ø'+ t¡v¤v      ˜Ø"Ô/×6Ò6Ñ8Ô8Ð8Ø%˜r$   )rJ   rK   r%   r   )Úis_setÚanyioÚcreate_task_groupÚ
start_soonÚwait)rQ   ÚmessagerP   Úresponse_sentr4   s     @€€r#   Úreceive_or_disconnectzMBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnectq   sd  øøè è € Ø ×'Ò'Ñ)Ô)ð 7Ø"Ð$5Ð6Ð6å Ô2Ñ4Ô4ð :ð :ð :ð :ð :ð :ð :¸
ð&ð &ð &ð &ð &ð &ð
 ×)Ò)¨$°Ô0BÑCÔCÐCØ$( D¨Ñ$9Ô$9Ð9Ð9Ð9Ð9Ð9Ð9�Gð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð !×'Ò'Ñ)Ô)ð 7Ø"Ð$5Ð6Ð6à�s   ¶3A;Á;
BÂBrW   r@   c              “  óp   •K  — 	 ‰                      | ¦  «        ƒ d {V —† d S # t          j        $ r Y d S w xY wrB   )rD   rS   ÚBrokenResourceError)rW   Úsend_streams    €r#   Úsend_no_errorzEBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error„   s]   øè è € ðØ%×*Ò*¨7Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3øÝÔ0ð ð ð à�F�Fðøøøs   …" ¢5´5c               “  ó²   •K  — ‰5  	 ‰                      ‰‰‰¦  «        ƒ d {V —† n# t          $ r} | ŠY d } ~ nd } ~ ww xY wd d d ¦  «         d S # 1 swxY w Y   d S rB   )r=   Ú	Exception)ÚexcÚapp_excrY   r   r!   r]   r\   s    €€€€€€r#   Úcoroz<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro‹   sÒ   øè è € ð !ð &ð &ð&Ø"Ÿhšh uÐ.CÀ]ÑSÔSÐSÐSÐSÐSÐSÐSÐSÐSøÝ$ð &ð &ð &Ø"%˜˜˜˜˜˜øøøøð&øøøð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s0   †Aˆ&¥A¦
<°7²A·<¼AÁAÁAÚinfor'   úhttp.response.debugTzNo response returned.úhttp.response.startÚBodyStreamGeneratorc                óè   •K  — ‰2 3 d {V —†} | d         dk    r| W V —  d S | d         dk    sJ d| › �¦   «         ‚|                       dd¦  «        }|r|W V — |                       dd¦  «        s d S Œk6 d S )	Nr'   zhttp.response.pathsendúhttp.response.bodyzUnexpected message: r+   r$   r,   F)Úget)rW   r+   Úrecv_streams     €r#   Úbody_streamzCBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.body_stream­   sÊ   øè è € Ø%0ð 	ð 	ð 	ð 	ð 	ð 	ð 	˜'Ø˜v”Ð*BÒBÐBØ%˜˜˜˜Ø˜˜Ø" 6œ?Ð.BÒBÐBÐBÐDdÐ[bÐDdÐDdÑBÔBÐBØ"Ÿ;š; v¨sÑ3Ô3�DØð #Ø"˜
˜
˜
˜
Ø"Ÿ;š; {°EÑ:Ô:ð Ø˜˜ðð &1 [ [s   †A1Ústatus)Ústatus_codeÚcontentrc   Úheadersr5   )rW   r   r%   r@   )r%   r@   )r%   rf   )
rU   r   ri   rS   ÚEndOfStreamÚ	__cause__Ú__context__r.   Ú_StreamingResponseÚraw_headers)rG   rb   rW   rc   rk   ÚresponserY   r]   ra   Úexception_already_raisedrj   rX   r   r!   r\   rP   r4   s         @@€€€€€€€€€r#   Ú	call_nextz.BaseHTTPMiddleware.__call__.<locals>.call_nextp   sÇ  øøøè è € ðð ð ð ð ð ð ð&ð ð ð ð ð ð&ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð ×!Ò! $Ñ'Ô'Ð'ð<Ø +× 3Ò 3Ñ 5Ô 5Ð5Ð5Ð5Ð5Ð5Ð5�Ø—{’{ 6¨4Ñ0Ô0�Ø˜6”?Ð&;Ò;Ð;ÀÐ@PØ$/×$7Ò$7Ñ$9Ô$9Ð9Ð9Ð9Ð9Ð9Ð9�GøøÝÔ$ð <ð <ð <ØÐ&à/3Ð,ð " wÔ'8Ð'O¸GÔ<OÐOÝ"Ð#:Ñ;Ô;Ð;ð<øøøð  ˜6”?Ð&;Ò;Ð;Ð;Ð;ð
ð 
ð 
ð 
ð 
ð 
õ *°g¸hÔ6GÐQ\ÐQ\ÑQ^ÔQ^ÐeiÐjÑjÔjˆHØ#*¨9Ô#5ˆHÔ ØˆOs   ´AB Â2B?)rG   r   r%   r   )
r=   r   r4   rS   ÚEventÚcreate_memory_object_streamr   rC   ÚsetÚclose)r!   r   r   rD   rG   rw   Ústreamsru   ra   rv   rj   rX   r\   rP   r4   s   ``      @@@@@@@r#   Ú__call__zBaseHTTPMiddleware.__call__e   sç  øøøøøøøøøè è € Ø�Œ=˜FÒ"Ð"Ø—(’(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆFå  ¨Ñ0Ô0ˆØ!Ô1ˆÝœ™œˆØ$(ˆØ#(Ð ðK	ð K	ð K	ð K	ð K	ð K	ð K	ð K	ð K	ð K	ð K	ð K	ð K	ð K	õZ ?DÔ>_Ñ>aÔ>aˆØ#*Ñ ˆ�[Øð 	$ð 	$˜+ð 	$ð 	$Ý3Ñ5Ô5ð $ð $ð $ð $ð $ð $ð $¸Ø!%×!3Ò!3°G¸YÑ!GÔ!GÐGÐGÐGÐGÐGÐG�Ø�h˜u o°tÑ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ø×!Ò!Ñ#Ô#Ð#Ø×!Ò!Ñ#Ô#Ð#ð	$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð ÐÐ'?ÐØˆMð ÐÐÐs[   ÂEÂD,Â%ADÃ=D,Ä
DÄD,ÄDÄD,Ä EÄ,D0	Ä0EÄ3D0	Ä4EÅEÅ
ErG   r   rw   ÚRequestResponseEndpointr   c              ƒ  ó"   K  — t          ¦   «         ‚rB   )ÚNotImplementedError)r!   rG   rw   s      r#   r>   zBaseHTTPMiddleware.dispatchÈ   s   è è € Ý!Ñ#Ô#Ð#r$   rB   )r=   r   r>   r?   r%   r@   ©r   r   r   r   rD   r   r%   r@   )rG   r   rw   r~   r%   r   )r6   r7   r8   r   r}   r>   © r$   r#   r<   r<   `   s_   € € € € € ðMð Mð Mð Mð Mðað að að aðF$ð $ð $ð $ð $ð $r$   r<   c                  ó(   — e Zd Z	 	 	 	 ddd„Zdd„ZdS )rs   éÈ   Nrn   ÚAsyncContentStreamrm   Úintro   úMapping[str, str] | NoneÚ
media_typeú
str | Nonerc   úMapping[str, Any] | Noner%   r@   c                óv   — || _         || _        || _        || _        |                      |¦  «         d | _        d S rB   )rc   Úbody_iteratorrm   rˆ   Úinit_headersÚ
background)r!   rn   rm   ro   rˆ   rc   s         r#   r   z_StreamingResponse.__init__Í   sA   € ð ˆŒ	Ø$ˆÔØ&ˆÔØ$ˆŒØ×Ò˜'Ñ"Ô"Ð"ØˆŒˆˆr$   r   r   r   r   rD   r   c              ƒ  óœ  K  — | j         � |d| j         dœ¦  «        ƒ d {V —†  |d| j        | j        dœ¦  «        ƒ d {V —† d}| j        2 3 d {V —†}t	          |t
          ¦  «        rd} ||¦  «        ƒ d {V —† Œ0 |d|ddœ¦  «        ƒ d {V —† ŒF6 |r |dd	ddœ¦  «        ƒ d {V —† | j        r|                      ¦   «         ƒ d {V —† d S d S )
Nrd   )r'   rc   re   )r'   rl   ro   TFrh   r*   r$   )rc   rm   rt   rŒ   Ú
isinstanceÚdictrŽ   )r!   r   r   rD   Úshould_close_bodyr3   s         r#   r}   z_StreamingResponse.__call__Ü   s¦  è è € ØŒ9Ð Ø�$Ð 5¸t¼yÐIÐIÑJÔJÐJÐJÐJÐJÐJÐJÐJØˆdà-ØÔ*ØÔ+ðð ñ
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð !ÐØÔ-ð 	Yð 	Yð 	Yð 	Yð 	Yð 	Yð 	Y�%Ý˜%¥Ñ&Ô&ð à$)Ð!Ø�d˜5‘k”kÐ!Ð!Ð!Ð!Ð!Ð!Ð!ØØ�$Ð 4¸eÐRVÐWÐWÑXÔXÐXÐXÐXÐXÐXÐXÐXÐXð .ð ð 	XØ�$Ð 4¸cÐPUÐVÐVÑWÔWÐWÐWÐWÐWÐWÐWÐWàŒ?ð 	$Ø—/’/Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ð	$ð 	$s   ÁB)r„   NNN)rn   r…   rm   r†   ro   r‡   rˆ   r‰   rc   rŠ   r%   r@   r�   )r6   r7   r8   r   r}   r‚   r$   r#   rs   rs   Ì   sO   € € € € € ð Ø,0Ø!%Ø)-ðð ð ð ð ð$ð $ð $ð $ð $ð $r$   rs   )%Ú
__future__r   Úcollections.abcr   r   r   r   r   r	   Útypingr
   r   rS   Ústarlette._utilsr   Ústarlette.requestsr   r   Ústarlette.responsesr   Ústarlette.typesr   r   r   r   r   r~   ÚDispatchFunctionÚbytesÚstrrf   Ú
memoryviewr…   r   r   r<   rs   r‚   r$   r#   ú<module>rž      sæ  ðØ "Ð "Ð "Ð "Ð "Ð "à gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gÐ gØ Ð Ð Ð Ð Ð Ð Ð à €€€à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø (Ð (Ð (Ð (Ð (Ð (Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà" G 9¨i¸Ô.AÐ#AÔBÐ Ø˜WÐ&=Ð>À	È(Ô@SÐSÔTÐ Ø$ U¨^¸CÀ¸HÔ-EÑ%EÀtÐ%KÔLÐ Ø" 3¨¡;°Ñ#;¸nÈSÐRUÈXÔ>VÑ#VÔWÐ Ø€GˆC�L„L€ðI3ð I3ð I3ð I3ð I3�Wñ I3ô I3ð I3ðXi$ð i$ð i$ð i$ð i$ñ i$ô i$ð i$ðX($ð ($ð ($ð ($ð ($˜ñ ($ô ($ð ($ð ($ð ($r$   