
    i                     `    S SK r S SKJrJr  S SKJrJrJr  S SKJ	r	J
r
JrJr  Sr " S S5      rg)    N)URLHeaders)PlainTextResponseRedirectResponseResponse)ASGIAppReceiveScopeSendz6Domain wildcard patterns must be like '*.example.com'.c            	           \ rS rSr  SS\S\R                  \R                  \      S\	SS4S jjr
S\S	\S
\SS4S jrSrg)TrustedHostMiddleware
   Nappallowed_hostswww_redirectreturnc                    Uc  S/nU HX  nSUSS  ;  d   [         5       eUR                  S5      (       d  M/  US:w  d  M7  UR                  S5      (       a  MO   [         5       e   Xl        [        U5      U l        SU;   U l        X0l        g )N*   z*.)ENFORCE_DOMAIN_WILDCARD
startswithr   listr   	allow_anyr   )selfr   r   r   patterns        k/home/maestro/MAESTRO/maestro-backend/venv/lib/python3.13/site-packages/starlette/middleware/trustedhost.py__init__TrustedHostMiddleware.__init__   s       EM$Ggabk)B+BB)!!#&&7c>))$//H1HH/ % !-0-(    scopereceivesendc                   #    U R                   (       d	  US   S;  a  U R                  XU5      I S h  vN   g [        US9nUR                  SS5      R	                  S5      S   nSnSnU R
                   HH  nXX:X  d/  UR                  S	5      (       a  UR                  US
S  5      (       a  Sn  OSU-   U:X  d  MF  SnMJ     U(       a  U R                  XU5      I S h  vN   g U(       aI  U R                  (       a8  [        US9n	U	R                  SU	R                  -   S9n
[        [        U
5      S9nO
[        SSS9nU" XU5      I S h  vN   g  GN Nt N
7f)Ntype)http	websocket)r    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    r!   r"   headersr'   is_valid_hostfound_www_redirectr   r+   redirect_urlresponses               r   __call__TrustedHostMiddleware.__call__   sC    >>U6] 3
 
 ((54000&{{62&,,S1!4"))G""3''DMM'!"+,F,F $$')%)" * ((54000 "d&7&7&"{{&3::2E{F+L0AB,-BPST540005 1" 1 1s;   0EEBE;"EEA+E	E
EEE)r   r   r   r   )NT)__name__
__module____qualname____firstlineno__r   typingOptionalSequencer1   boolr   r
   r	   r   r7   __static_attributes__ r   r   r   r   
   sj     @D!	)) vs';<) 	)
 
)$1E 1G 14 1D 1r   r   )r=   starlette.datastructuresr   r   starlette.responsesr   r   r   starlette.typesr   r	   r
   r   r   r   rB   r   r   <module>rF      s'     1 M M 9 9R 21 21r   