Ë
    9¾ªj«  ã                  óp   — d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	m
Z
 d dlmZmZmZmZ dZ G d„ d«      Zy	)
é    )Úannotations)ÚSequence)ÚURLÚHeaders)ÚPlainTextResponseÚRedirectResponseÚResponse)ÚASGIAppÚReceiveÚScopeÚSendz6Domain wildcard patterns must be like '*.example.com'.c                  ó0   — e Zd Z	 	 d	 	 	 	 	 	 	 dd„Zdd„Zy)ÚTrustedHostMiddlewareNc                óö   — |€dg}|D ]H  }d|dd  vsJ t         «       ‚|j                  d«      sŒ'|dk7  sŒ-|j                  d«      rŒ?J t         «       ‚ || _        t        |«      | _        d|v | _        || _        y )NÚ*é   z*.)ÚENFORCE_DOMAIN_WILDCARDÚ
startswithÚappÚlistÚallowed_hostsÚ	allow_anyÚwww_redirect)Úselfr   r   r   Úpatterns        ú_/var/www/html/serviGia/entorno/lib/python3.12/site-packages/starlette/middleware/trustedhost.pyÚ__init__zTrustedHostMiddleware.__init__   s”   € ð Ð Ø ˜EˆMà$ò 	IˆGØ˜g a b˜kÑ)ÐBÔ+BÓBÐ)Ø×!Ñ! #Õ&¨7°c«>Ø×)Ñ)¨$Õ/ÐHÔ1HÓHÐ/ð	Ið ˆŒÜ! -Ó0ˆÔØ Ð-ˆŒØ(ˆÕó    c              ƒ  óŒ  K  — | j                   s|d   dvr| j                  |||«      ƒ d {  –—†  y t        |¬«      }|j                  dd«      j	                  d«      d   }d}d}| j
                  D ];  }||k(  s%|j                  d	«      r|j                  |d
d  «      rd} nd|z   |k(  sŒ:d}Œ= |r| j                  |||«      ƒ d {  –—†  y |rM| j                  rAt        |¬«      }	|	j                  d|	j                  z   ¬«      }
t        t        |
«      ¬«      }nt        dd¬«      } ||||«      ƒ d {  –—†  y 7 �Œ7 Œw7 Œ
­w)NÚtype)ÚhttpÚ	websocket)ÚscopeÚhostÚ ú:r   Fr   r   Tzwww.)Únetloc)ÚurlzInvalid host headeri�  )Ústatus_code)r   r   r   ÚgetÚsplitr   r   Úendswithr   r   Úreplacer'   r   Ústrr   )r   r#   ÚreceiveÚsendÚheadersr$   Úis_valid_hostÚfound_www_redirectr   r(   Úredirect_urlÚresponses               r   Ú__call__zTrustedHostMiddleware.__call__   sN  è ø€ Ø�>Š>˜U 6™]ð 3
ñ 
ð —(‘(˜5 '¨4Ó0×0Ð0Øä Ô&ˆØ�{‰{˜6 2Ó&×,Ñ,¨SÓ1°!Ñ4ˆØˆØ"ÐØ×)Ñ)ò 	*ˆGØ�wŠ 7×#5Ñ#5°cÔ#:¸t¿}¹}ÈWÐUVÐUWÈ[Ô?YØ $�ÙØ˜$‘ 'Ó)Ø%)Ñ"ð	*ñ Ø—(‘(˜5 '¨4Ó0×0Ñ0ñ " d×&7Ò&7Ü Ô&�Ø"Ÿ{™{°&¸3¿:¹:Ñ2E˜{ÓF�Ü+´°LÓ0AÔB‘ä,Ð-BÐPSÔT�Ù˜5 '¨4Ó0×0Ñ0ð1 1ùð 1øð 1ús;   ‚*E¬D=­A>EÂ,EÃE Ã	A.EÄ7EÄ8EÅ EÅE)NT)r   r
   r   zSequence[str] | Noner   ÚboolÚreturnÚNone)r#   r   r/   r   r0   r   r8   r9   )Ú__name__Ú
__module__Ú__qualname__r   r6   © r   r   r   r      s:   „ ð /3Ø!ð	)àð)ð ,ð)ð ð	)ð
 
ó)ô$1r   r   N)Ú
__future__r   Úcollections.abcr   Ústarlette.datastructuresr   r   Ústarlette.responsesr   r   r	   Ústarlette.typesr
   r   r   r   r   r   r=   r   r   ú<module>rC      s*   ðÝ "å $ç 1ß MÑ Mß 9Ó 9àRÐ ÷01ò 01r   