§
    9ˆtjU  ã                  ó�   — d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZmZmZmZ dZh d£Z G d	„ d
¦  «        ZdS )é    )ÚannotationsN)ÚSequence)ÚHeadersÚMutableHeaders)ÚPlainTextResponseÚResponse)ÚASGIAppÚMessageÚReceiveÚScopeÚSend)ÚDELETEÚGETÚHEADÚOPTIONSÚPATCHÚPOSTÚPUT>   úContent-TypeúAccept-LanguageúContent-LanguageÚAcceptc                  óh   — e Zd Z	 	 	 	 	 	 	 	 d,d-d„Zd.d„Zd/d „Zd0d$„Zd1d%„Zd2d(„Ze	d3d+„¦   «         Z
dS )4ÚCORSMiddleware© ©r   FNéX  Úappr	   Úallow_originsúSequence[str]Úallow_methodsÚallow_headersÚallow_credentialsÚboolÚallow_origin_regexú
str | NoneÚallow_private_networkÚexpose_headersÚmax_ageÚintÚreturnÚNonec
                ó’  — d|v rt           }d }
|�t          j        |¦  «        }
d|v }d|v }| p|}i }|rd|d<   |rd|d<   |rd                     |¦  «        |d<   i }|rd|d<   nd|d<   |                     d                     |¦  «        t          |	¦  «        d	œ¦  «         t          t          t          |¦  «        z  ¦  «        }|r|sd                     |¦  «        |d
<   |rd|d<   || _	        || _
        || _        d„ |D ¦   «         | _        || _        || _        || _        || _        |
| _        || _        || _        || _        d S )NÚ*úAccess-Control-Allow-OriginÚtruez Access-Control-Allow-Credentialsú, zAccess-Control-Expose-HeadersÚOriginÚVary)zAccess-Control-Allow-MethodszAccess-Control-Max-AgeúAccess-Control-Allow-Headersc                ó6   — g | ]}|                      ¦   «         ‘ŒS r   ©Úlower©Ú.0Úhs     úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/starlette/middleware/cors.pyú
<listcomp>z+CORSMiddleware.__init__.<locals>.<listcomp>D   s    € Ð?Ð?Ð?¨A˜aŸgšg™iœiÐ?Ð?Ð?ó    )ÚALL_METHODSÚreÚcompileÚjoinÚupdateÚstrÚsortedÚSAFELISTED_HEADERSÚsetr   r   r!   r"   Úallow_all_originsÚallow_all_headersr#   Úpreflight_explicit_allow_originr%   r'   Úsimple_headersÚpreflight_headers)Úselfr   r   r!   r"   r#   r%   r'   r(   r)   Úcompiled_allow_origin_regexrG   rH   rI   rJ   rK   s                   r;   Ú__init__zCORSMiddleware.__init__   sÕ  € ð �-ÐÐÝ'ˆMà&*Ð#ØÐ)Ý*,¬*Ð5GÑ*HÔ*HÐ'à =Ð0ÐØ =Ð0ÐØ.?Ð*?Ð*TÐCTÐ'à)+ˆØð 	@Ø<?ˆNÐ8Ñ9Øð 	HØAGˆNÐ=Ñ>Øð 	XØ>B¿iºiÈÑ>WÔ>WˆNÐ:Ñ;à,.ÐØ*ð 	Cà(0Ð˜fÑ%Ð%à?BÐÐ;Ñ<Ø× Ò à04·	²	¸-Ñ0HÔ0HÝ*-¨g©,¬,ðð ñ	
ô 	
ð 	
õ Õ1µC¸Ñ4FÔ4FÑFÑGÔGˆØð 	YÐ!2ð 	YØ@DÇ	Â	È-Ñ@XÔ@XÐÐ<Ñ=Øð 	KØDJÐÐ@ÑAàˆŒØ*ˆÔØ*ˆÔØ?Ð?°Ð?Ñ?Ô?ˆÔØ!2ˆÔØ!2ˆÔØ!2ˆÔØ/NˆÔ,Ø"=ˆÔØ%:ˆÔ"Ø,ˆÔØ!2ˆÔÐÐr=   Úscoper   Úreceiver   Úsendr   c              ƒ  ó¤  K  — |d         dk    r|                       |||¦  «        ƒ d {V —† d S |d         }t          |¬¦  «        }|                     d¦  «        }|€|                       |||¦  «        ƒ d {V —† d S |dk    r/d|v r+|                      |¬¦  «        } ||||¦  «        ƒ d {V —† d S |                      ||||¬¦  «        ƒ d {V —† d S )	NÚtypeÚhttpÚmethod©rO   Úoriginr   úaccess-control-request-method)Úrequest_headers)r   r   ÚgetÚpreflight_responseÚsimple_response)rL   rO   rP   rQ   rU   ÚheadersrW   Úresponses           r;   Ú__call__zCORSMiddleware.__call__N   s*  è è € Ø�Œ=˜FÒ"Ð"Ø—(’(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆFà�x”ˆÝ Ð&Ñ&Ô&ˆØ—’˜XÑ&Ô&ˆàˆ>Ø—(’(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆFà�YÒÐÐ#BÀgÐ#MÐ#MØ×.Ò.¸wÐ.ÑGÔGˆHØ�(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆFà×"Ò" 5¨'°4ÈÐ"ÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQÐQr=   rW   rC   c                ól   — | j         rdS | j        �| j                             |¦  «        rdS || j        v S )NT)rG   r%   Ú	fullmatchr   )rL   rW   s     r;   Úis_allowed_originz CORSMiddleware.is_allowed_originb   sE   € ØÔ!ð 	Ø�4àÔ"Ð.°4Ô3J×3TÒ3TÐU[Ñ3\Ô3\Ð.Ø�4à˜Ô+Ð+Ð+r=   rY   r   r   c                óÜ  — |d         }|d         }|                      d¦  «        }|                      d¦  «        }t          | j        ¦  «        }g }|                      |¬¦  «        r| j        r||d<   n|                     d¦  «         || j        vr|                     d¦  «         | j        r|�||d<   nV|�Td	„ |                     d
¦  «        D ¦   «         D ]4}| 	                    ¦   «         | j
        vr|                     d¦  «          nŒ5|�"| j        rd|d<   n|                     d¦  «         |r*dd                     |¦  «        z   }	t          |	d|¬¦  «        S t          dd|¬¦  «        S )NrW   rX   zaccess-control-request-headersz&access-control-request-private-network©rW   r/   rU   r4   c                ó6   — g | ]}|                      ¦   «         ‘ŒS r   r6   r8   s     r;   r<   z5CORSMiddleware.preflight_response.<locals>.<listcomp>„   s    € ÐKÐKÐK¨˜1Ÿ7š7™9œ9ÐKÐKÐKr=   ú,r]   r0   z$Access-Control-Allow-Private-Networkzprivate-networkzDisallowed CORS r1   i�  )Ústatus_coder]   ÚOKéÈ   )rZ   ÚdictrK   rb   rI   Úappendr!   rH   ÚsplitÚstripr"   r'   rA   r   )
rL   rY   Úrequested_originÚrequested_methodÚrequested_headersÚrequested_private_networkr]   ÚfailuresÚheaderÚfailure_texts
             r;   r[   z!CORSMiddleware.preflight_responsek   sÃ  € Ø*¨8Ô4ÐØ*Ð+JÔKÐØ+×/Ò/Ð0PÑQÔQÐØ$3×$7Ò$7Ð8`Ñ$aÔ$aÐ!å�tÔ-Ñ.Ô.ˆØ ˆà×!Ò!Ð)9Ð!Ñ:Ô:ð 	&ØÔ3ð Jð :J�Ð5Ñ6øà�OŠO˜HÑ%Ô%Ð%à 4Ô#5Ð5Ð5Ø�OŠO˜HÑ%Ô%Ð%ð Ô!ð 	Ð&7Ð&CØ6GˆGÐ2Ñ3Ð3ØÐ*ØKÐKÐ.?×.EÒ.EÀcÑ.JÔ.JÐKÑKÔKð ð �Ø—<’<‘>”>¨Ô);Ð;Ð;Ø—O’O IÑ.Ô.Ð.Ø�Eð <ð %Ð0ØÔ)ð 3ØBH�Ð>Ñ?Ð?à—’Ð 1Ñ2Ô2Ð2ð
 ð 	UØ-°·	²	¸(Ñ0CÔ0CÑCˆLÝ$ \¸sÈGÐTÑTÔTÐTå  °3ÀÐHÑHÔHÐHr=   c              ƒ  ó|   K  — t          j        | j        ||¬¦  «        }|                      |||¦  «        ƒ d {V —† d S )N)rQ   rY   )Ú	functoolsÚpartialrQ   r   )rL   rO   rP   rQ   rY   s        r;   r\   zCORSMiddleware.simple_response˜   sM   è è € ÝÔ  ¤°ÀÐWÑWÔWˆØ�hŠh�u˜g tÑ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,r=   Úmessager
   c              ƒ  óª  K  — |d         dk    r ||¦  «        ƒ d {V —† d S |                      dg ¦  «         t          |¬¦  «        }|                     | j        ¦  «         |d         }| j        r| j        r|                      ||¦  «         n3| j        s,|                      |¬¦  «        r|                      ||¦  «          ||¦  «        ƒ d {V —† d S )NrS   zhttp.response.startr]   rV   r2   rd   )Ú
setdefaultr   rB   rJ   rG   r#   Úallow_explicit_originrb   )rL   rx   rQ   rY   r]   rW   s         r;   rQ   zCORSMiddleware.sendœ   s  è è € Ø�6Œ?Ð3Ò3Ð3Ø�$�w‘-”-ÐÐÐÐÐÐÐØˆFà×Ò˜9 bÑ)Ô)Ð)Ý  wÐ/Ñ/Ô/ˆØ�Š�tÔ*Ñ+Ô+Ð+Ø  Ô*ˆð Ô!ð 	8 dÔ&<ð 	8Ø×&Ò& w°Ñ7Ô7Ð7Ð7ð Ô'ð 	8¨D×,BÒ,BÈ&Ð,BÑ,QÔ,Qð 	8Ø×&Ò& w°Ñ7Ô7Ð7àˆd�7‰mŒmÐÐÐÐÐÐÐÐÐr=   r]   r   c                ó:   — || d<   |                       d¦  «         d S )Nr/   r2   )Úadd_vary_header)r]   rW   s     r;   r{   z$CORSMiddleware.allow_explicit_origin°   s'   € à17ˆÐ-Ñ.Ø×Ò Ñ)Ô)Ð)Ð)Ð)r=   )r   r   r   FNFr   r   )r   r	   r   r    r!   r    r"   r    r#   r$   r%   r&   r'   r$   r(   r    r)   r*   r+   r,   )rO   r   rP   r   rQ   r   r+   r,   )rW   rC   r+   r$   )rY   r   r+   r   )
rO   r   rP   r   rQ   r   rY   r   r+   r,   )rx   r
   rQ   r   rY   r   r+   r,   )r]   r   rW   rC   r+   r,   )Ú__name__Ú
__module__Ú__qualname__rN   r_   rb   r[   r\   rQ   Ústaticmethodr{   r   r=   r;   r   r      sÕ   € € € € € ð (*Ø'/Ø')Ø"'Ø)-Ø&+Ø(*Øð<3ð <3ð <3ð <3ð <3ð|Rð Rð Rð Rð(,ð ,ð ,ð ,ð+Ið +Ið +Ið +IðZ-ð -ð -ð -ðð ð ð ð( ð*ð *ð *ñ „\ð*ð *ð *r=   r   )Ú
__future__r   rv   r?   Úcollections.abcr   Ústarlette.datastructuresr   r   Ústarlette.responsesr   r   Ústarlette.typesr	   r
   r   r   r   r>   rE   r   r   r=   r;   ú<module>r‡      så   ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	Ø $Ð $Ð $Ð $Ð $Ð $à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BàJ€ØVÐVÐVÐ ðd*ð d*ð d*ð d*ð d*ñ d*ô d*ð d*ð d*ð d*r=   