+
    ‡)Ùjò  ã                   óš   € ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ R	IHt  ! R
 R]4      t ! R R]4      tR# )é    N)Úurlsplit)Úsettings)ÚPermissionDenied)Úmail_managers)ÚHttpResponsePermanentRedirect)Úis_valid_path)ÚMiddlewareMixin)Úescape_leading_slashesc                   ó@   a € ] tR t^t o Rt]tR tR tR t	R t
RtV tR# )ÚCommonMiddlewareaÛ  
"Common" middleware for taking care of some basic operations:

    - Forbid access to User-Agents in settings.DISALLOWED_USER_AGENTS

    - URL rewriting: Based on the APPEND_SLASH and PREPEND_WWW settings,
      append missing slashes and/or prepends missing "www."s.

        - If APPEND_SLASH is set and the initial URL doesn't end with a
          slash, and it is not found in urlpatterns, form a new URL by
          appending a slash at the end. If this new URL is found in
          urlpatterns, return an HTTP redirect to this new URL; otherwise
          process the initial URL as usual.

      This behavior can be customized by subclassing CommonMiddleware and
      overriding the response_redirect_class attribute.
c                óþ  € VP                   P                  R4      pVe:   \        P                   F%  pVP	                  V4      '       g   K  \        R4      h	  VP                  4       p\        P                  '       d   V'       du   VP                  R4      '       g\   V P                  V4      '       d   V P                  V4      pMVP                  4       pV P                  VP                   RV V 24      # R# R# R# )zj
Check for denied User-Agents and rewrite the URL based on
settings.APPEND_SLASH and settings.PREPEND_WWW
ÚHTTP_USER_AGENTNzForbidden user agentzwww.z://www.)ÚMETAÚgetr   ÚDISALLOWED_USER_AGENTSÚsearchr   Úget_hostÚPREPEND_WWWÚ
startswithÚshould_redirect_with_slashÚget_full_path_with_slashÚget_full_pathÚresponse_redirect_classÚscheme)ÚselfÚrequestÚ
user_agentÚuser_agent_regexÚhostÚpaths   &&    ÚQ/var/www/eggtrainer/venv/lib/python3.14/site-packages/django/middleware/common.pyÚprocess_requestÚ CommonMiddleware.process_request"   sÜ   € ð —\‘\×%Ñ%Ð&7Ó8ˆ
ØÒ!Ü$,×$CÔ$CÐ Ø#×*Ñ*¨:×6Ô6Ü*Ð+AÓBÐBñ %Dð
 ×ÑÓ!ˆä××Ð§D°·±À×1HÒ1Hð
 ×.Ñ.¨w×7Ò7Ø×4Ñ4°WÓ=‘à×,Ñ,Ó.�à×/Ñ/°7·>±>Ð2BÀ'È$ÈÐPTÈvÐ0VÓWÐWñ 2I¡DÑó    c                óB  € \         P                  '       d‰   VP                  P                  R4      '       gh   \	        VRR4      p\        VP                  V4      '       g?   \        RVP                  ,          V4      pV'       d   VP                  p\	        VRR4      # R# )z€
Return True if settings.APPEND_SLASH is True and appending a slash to
the request path turns an invalid path into a valid one.
Ú/ÚurlconfNz%s/Úshould_append_slashTF)r   ÚAPPEND_SLASHÚ	path_infoÚendswithÚgetattrr   Úfunc)r   r   r'   ÚmatchÚviews   &&   r!   r   Ú+CommonMiddleware.should_redirect_with_slash>   s}   € ô
 × × Ð ¨×):Ñ):×)CÑ)CÀC×)HÒ)HÜ˜g y°$Ó7ˆGÜ  ×!2Ñ!2°G×<Ò<Ü% e¨g×.?Ñ.?Õ&?ÀÓI�ßØ Ÿ:™:�DÜ" 4Ð)>ÀÓEÐEÙr$   c                óø   € VP                  RR7      p\        V4      p\        P                  '       dG   VP                  R9   d6   \        RRVP                  RVP                  4       V,           /,          4      hV# )z¨
Return the full path of the request with a trailing slash appended.

Raise a RuntimeError if settings.DEBUG is True and request.method is
DELETE, POST, PUT, or PATCH.
T)Úforce_append_slasha"  You called this URL via %(method)s, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining %(method)s data. Change your form to point to %(url)s (note the trailing slash), or set APPEND_SLASH=False in your Django settings.ÚmethodÚurl)ÚDELETEÚPOSTÚPUTÚPATCH)r   r
   r   ÚDEBUGr3   ÚRuntimeErrorr   )r   r   Únew_paths   && r!   r   Ú)CommonMiddleware.get_full_path_with_slashL   sx   € ð ×(Ñ(¸DÐ(ÓAˆä)¨(Ó3ˆÜ�>�>ˆ>˜gŸn™nÐ0RÔRÜðMð ˜gŸn™nØ˜7×+Ñ+Ó-°Õ8ðõó
ð 
ð ˆr$   c                ó>  € VP                   R8X  d8   V P                  V4      '       d!   V P                  V P                  V4      4      # VP                  '       gC   VP                  R4      '       g,   \        \        VP                  4      4      VP                  R&   V# )z�
When the status code of the response is 404, it may redirect to a path
with an appended slash if should_redirect_with_slash() returns True.
é”  zContent-Length)
Ústatus_coder   r   r   Ú	streamingÚ
has_headerÚstrÚlenÚcontentÚheaders)r   r   Úresponses   &&&r!   Úprocess_responseÚ!CommonMiddleware.process_responsed   sƒ   € ð ×Ñ 3Ô&¨4×+JÑ+JÈ7×+SÒ+SØ×/Ñ/°×0MÑ0MÈgÓ0VÓWÐWð ×!×!Ð!¨(×*=Ñ*=Ð>N×*OÒ*OÜ14´S¸×9IÑ9IÓ5JÓ1KˆH×ÑÐ-Ñ.àˆr$   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r"   r   r   rG   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r!   r   r      s,   ø‡ € ñð$ <ÐòXò8ò÷0ð r$   r   c                   ó2   a € ] tR t^vt o R tR tR tRtV tR# )ÚBrokenLinkEmailsMiddlewarec                óì  € VP                   R8X  dã   \        P                  '       gÍ   VP                  4       pVP	                  4       pVP
                  P                  RR4      pV P                  WW54      '       gy   VP
                  P                  RR4      pVP
                  P                  RR4      p\        RV P                  W54      '       d   RMR: R	V: 2R
V: RV: RV: RV: R2	RR7       V# )z=Send broken link emails for relevant 404 NOT FOUND responses.r>   ÚHTTP_REFERERÚ r   z<none>ÚREMOTE_ADDRzBroken z	INTERNAL zlink on z
Referrer: z
Requested URL: z
User agent: z
IP address: Ú
T)Úfail_silently)
r?   r   r9   r   r   r   r   Úis_ignorable_requestr   Úis_internal_request)r   r   rF   Údomainr    ÚrefererÚuaÚips   &&&     r!   rG   Ú+BrokenLinkEmailsMiddleware.process_responsew   s×   € à×Ñ 3Ô&¬x¯~¯~¨~Ø×%Ñ%Ó'ˆFØ×(Ñ(Ó*ˆDØ—l‘l×&Ñ& ~°rÓ:ˆGà×,Ñ,¨W¸F×LÒLØ—\‘\×%Ñ%Ð&7¸ÓB�Ø—\‘\×%Ñ% m°XÓ>�Ýð
  $×7Ñ7¸×HÒHñ (à!#ò$ò ñó +2³4»»RðAà"&õð ˆr$   c                óx   € \        \        P                  ! R\        P                  ! V4      ,          V4      4      # )zM
Return True if the referring URL is the same domain as the current
request.
z^https?://%s/)ÚboolÚrer.   Úescape)r   r]   r^   s   &&&r!   r\   Ú.BrokenLinkEmailsMiddleware.is_internal_request‘   s(   € ô ”B—H’H˜_¬r¯yªy¸Ó/@Õ@À'ÓJÓKÐKr$   c                óØ  a€ V'       g   R# \         P                  '       d$   SP                  R4      '       d   VSRR 8X  d   R# V P                  W44      '       g
   RV9   d   R# \	        V4      pVP
                  RV39   d   VP                  S8X  d   R# \        ;QJ d-    V3R l\         P                   4       F  '       g   K   R# 	  R# ! V3R l\         P                   4       4      # )	z—
Return True if the given request *shouldn't* notify the site managers
according to project settings or in situations outlined by the inline
comments.
Tr&   NÚ?rW   c              3   óD   <"  € T F  qP                  S4      x € K  	  R # 5i)N)r   )Ú.0ÚpatternÚuris   & €r!   Ú	<genexpr>ÚBBrokenLinkEmailsMiddleware.is_ignorable_request.<locals>.<genexpr>²   s   øé € ÐRÑ6Q¨7—>‘> #×&Ð&Ó6Qùs   ƒ Féÿÿÿÿ)	r   r)   r+   r\   r   Únetlocr    ÚanyÚIGNORABLE_404_URLS)r   r   rl   r]   r^   Úparsed_referers   &&f&& r!   r[   Ú/BrokenLinkEmailsMiddleware.is_ignorable_request™   s¶   ø€ ÷ Ùô × × Ð  S§\¡\°#×%6Ò%6¸7ÀcÈ#È2ÀhÔ;NÙð ×'Ñ'¨×8Ò8¸SÀG¼^Ùô " 'Ó*ˆØ× Ñ  R¨ LÔ0°^×5HÑ5HÈCÔ5OÙç‹sÔR´h×6QÒ6QÓR�sŒsÐRŠsÐRˆsÔR´h×6QÒ6QÓRÓRÐRr$   rI   N)	rJ   rK   rL   rM   rG   r\   r[   rO   rP   rQ   s   @r!   rT   rT   v   s   ø‡ € òò4L÷Sð Sr$   rT   )rd   Úurllib.parser   Údjango.confr   Údjango.core.exceptionsr   Údjango.core.mailr   Údjango.httpr   Údjango.urlsr   Údjango.utils.deprecationr	   Údjango.utils.httpr
   r   rT   rI   r$   r!   Ú<module>r}      s=   ðÛ 	Ý !å  Ý 3Ý *Ý 5Ý %Ý 4Ý 4ôf�ô fôR<S ö <Sr$   