
    CiH                         S r SSKrSSKrSSKrSSKJrJr  SSKJr  \	" S5      r
\	" S \ 5       5      rS rS	 rS
 rS rS rS rS rS r " S S\5      r " S S\5      r " S S5      r " S S5      rg)z$Adjustments are tunable parameters.
    N   )HAS_IPV6WIN)PROXY_HEADERS)ttrueyyeson1c              #   `   #    U  H$  oR                  5       R                  S S5      v   M&     g7f)_-N)lowerreplace).0headers     f/var/www/html/backend/Backoffice_Marketplace/venv/lib/python3.13/site-packages/waitress/adjustments.py	<genexpr>r      s'       3@LLN3$$=s   ,.c                     U c  g[        U [        5      (       a  U $ [        U 5      R                  5       n U R	                  5       [
        ;   $ )a7  Return the boolean value ``True`` if the case-lowered value of string
input ``s`` is any of ``t``, ``true``, ``y``, ``on``, or ``1``, otherwise
return the boolean value ``False``.  If ``s`` is the value ``None``,
return ``False``.  If ``s`` is already one of the boolean values ``True``
or ``False``, return it.F)
isinstanceboolstrstripr   truthyss    r   asboolr      s>     	y!TAA779    c                     [        U S5      $ )z3Convert the given octal string to an actual number.   )intr   s    r   asoctalr#   ,   s    q!9r   c                     [        U [        5      (       a8  [        S U R                  5        Vs/ s H  oR	                  5       PM     sn5      n [        U 5      $ s  snf N)r   r   filter
splitlinesr   list)valuexs     r   aslist_cronlyr+   1   sI    %t1A1A1CD1CAggi1CDE; Es   A
c                 t    [        U 5      n/ nU H$  n U R                  5       nUR                  U5        M&     U$ )zReturn a list of strings, separating the input based on newlines
and, if flatten=True (the default), also split on spaces within
each line.)r+   splitextend)r)   valuesresult	subvaluess       r   aslistr2   7   s;     5!FFKKM	i   Mr   c                 *    [        [        U 5      5      $ r%   )setr2   )r)   s    r   assetr5   C   s    ve}r   c                 z    U R                  5       n U (       a#  SU R                  S5      R                  S5      -   n U $ )N/)r   lstriprstripr   s    r   slash_fixed_strr:   G   s4    		A !((3-&&s++Hr   c                 *    U (       a  [        U 5      $ S $ r%   )r   r   s    r   str_iftruthyr<   P   s    3q6 D r   c                 t    U  Vs/ s H&  n[        U[        R                  5      (       d  M$  UPM(     sn$ s  snf )zNChecks if the elements in the list are of type socket and
removes them if not.)r   socket)socketssocks     r   as_socket_listrA   T   s)     %HWT
4(GDWHHHs   #55c                       \ rS rSrSrg)_str_markerZ    N__name__
__module____qualname____firstlineno____static_attributes__rE   r   r   rC   rC   Z       r   rC   c                       \ rS rSrSrg)_int_marker^   rE   NrF   rE   r   r   rN   rN   ^   rL   r   rN   c                       \ rS rSrSrg)_bool_markerb   rE   NrF   rE   r   r   rQ   rQ   b   rL   r   rQ   c                   N   \ rS rSrSr/ S\4PS\4PS\4PS\4PS\4PS\4PS	\	4PS
\4PS\
4PS\4PS\4PS\4PS\4PS\4PS\4PS\4PS\4PS\4PS\4PS\4PS\4PS\4PS\4PS\4PS\4PS\4PS\	4PS\4PS\4PS \4PS!\4PS"\4PS#\4PS$\4P7r\" \5      r\" S%5      r\" S&5      r\ S'\ 3/rS(rS)rS)r\" 5       rS*r\rS+rS,rS-r S.r!S/r"S0r#S1r$S2r%S3r&S4r'S5r(S6r)S7r*S8r+S9r,S*r-S)r.S:r/\0Rb                  \0Rd                  S04/r3S0r4S*r5S7r6S7r7/ r8S;r9S<r:S= r;\<S> 5       r=\<S? 5       r>S@r?g))AAdjustmentsf   z'This class contains tunable parameters.hostportipv4ipv6listenthreadstrusted_proxytrusted_proxy_counttrusted_proxy_headerslog_untrusted_proxy_headersclear_untrusted_proxy_headers
url_scheme
url_prefixbacklog
recv_bytes
send_bytesoutbuf_overflowoutbuf_high_watermarkinbuf_overflowconnection_limitcleanup_intervalchannel_timeoutlog_socket_errorsmax_request_header_sizemax_request_body_sizeexpose_tracebacksidentasyncore_loop_timeoutasyncore_use_pollunix_socketunix_socket_permsr?   channel_request_lookaheadserver_namez0.0.0.0i  :   NFhttp waitressi   i    r   i   i   i   d      x   Ti   i   @i  r   zwaitress.invalidc           	      
   SU;   a  SU;   d  SU;   a  [        S5      eSU;   a  SU;   a  [        S5      eSU;   a  SU;   d  SU;   a  [        S5      eSU;   a  SU;   a  [        S	5      eSU;   a  SU;   d  SU;   a  [        S
5      eSU;   a  SU;   a  [        S5      eSU;   a  [        R                  " S[        5        UR	                  5        HA  u  p#X R
                  ;  a  [        SU-  5      e[        XU R
                  U   " U5      5        MC     [        U R                  [        5      (       a  [        U R                  [        5      (       d!  U R                   SU R                   3/U l        [        R                  nU R                  (       d  [         (       d  [        S5      eU R                  (       a!  U R"                  (       d  [        R$                  nU R                  (       d,  U R"                  (       a  [         (       a  [        R&                  n/ n/ nU R                   GHZ  nSU;   a1  UR)                  SS5      u  pSU	;   a  U[+        U R                  5      pOU[+        U R                  5      p[,        (       a   [/        U	5      n	 SU;   a&  SU;   a   UR3                  S5      R5                  S5      nUS:X  a  S n[        R6                  " UU	U[        R8                  [        R:                  [        R<                  5       Ht  n
U
u  ppnUS   S:X  d#  US   R?                  SS5      S   US   4U;  d  M5  URA                  XX45        URA                  US   R?                  SS5      S   US   45        Mv     GM]     U RB                  b  U RD                  c  [        S5      eU RB                  c  SU l!        U RF                  (       a  U RD                  c  [        S5      eU RF                  (       a  U RF                   Vs1 s H  nURI                  5       iM     snU l#        U RF                  [J        -
  nU(       a5  [        SSRM                  U5      < SSRM                  [J        5      < 35      eSU RF                  ;   a   U RF                  S1-
  (       a  [        S5      eO0U RD                  b#  [        R                  " S [        5        S!1U l#        U RN                  [P        L a"  [        R                  " S"[        5        S#U l'        XPl        U RS                  U RT                  5        g ! [0         a    [        S5      ef = f! [0         a    [        S5      ef = fs  snf )$NrZ   rV   rW   z-host or port may not be set if listen is set.r?   z'socket may not be set if listen is set.z.host or port may not be set if sockets is set.rs   z,unix_socket may not be set if sockets is setz1unix_socket may not be set if host or port is setz+unix_socket may not be set if listen is setre   z.send_bytes will be removed in a future releasezUnknown adjustment %rrw   zGIPv4 is disabled but IPv6 is not available. Cowardly refusing to start.r   ]z>Windows does not support service names instead of port numbers[*r   %zInvalid host/port specified.z@trusted_proxy_count has no meaning without setting trusted_proxyzBtrusted_proxy_headers has no meaning without setting trusted_proxyz.Received unknown trusted_proxy_headers value (z, z) expected one of 	forwardedzyThe Forwarded proxy header and the X-Forwarded-{By,Host,Proto,Port,For} headers are mutually exclusive. Can't trust both!zNo proxy headers were marked as trusted, but trusted_proxy was set. Implicitly trusting X-Forwarded-Proto for backwards compatibility. This will be removed in future versions of waitress.zx-forwarded-protozIn future versions of Waitress clear_untrusted_proxy_headers will be set to True by default. You may opt-out by setting this value to False, or opt-in explicitly by setting this to True.F)+
ValueErrorwarningswarnDeprecationWarningitems
_param_mapsetattrr   rV   rC   rW   rN   rZ   r>   	AF_UNSPECrX   r   rY   AF_INETAF_INET6rsplitr   r   r"   	Exceptionr   r9   getaddrinfoSOCK_STREAMIPPROTO_TCP
AI_PASSIVEr-   appendr]   r\   r^   r   KNOWN_PROXY_HEADERSjoinr`   rQ   check_socketsr?   )selfkwkvenabled_familieswanted_socketshp_pairsirV   rW   r   familysocktypeprotor   sockaddrr   unknown_valuess                     r   __init__Adjustments.__init__)  s   r>v|v|LMMr>i2oFGG?""MNN?}2KLLBFbLFbLPQQB8r>JKK2MM@BT HHJDA' !81!<==DT__Q/23 
 $))[11II{:
 :
 #ii[$))56DK!++yyY  99TYY%~~yyTYY88%Aax xxQ/ $;$%s499~4 !3tyy>tst9D"A$;3$;::c?11#6D3;D++$&&&&%%A >?:Vu !q($QK--c15a8(1+FhV&--v.QR !):):3)B1)ExPQ{(ST17 p ##/D4F4F4NU  %%-'(D$%%$*<*<*DW  %%-1-G-G*-G6-G*D& "77:MMN  yy0$))<O2PR  t999..+> 3  +MMG #	 +>)>D&--=MMG #	 27D.$4<<(C ! $X L  A !?@@A"*s&   T1B*U
?AU
U#1U
U c                 p   SS/nU R                    H[  u  p4UR                  SS5      nU[        L a'  UR                  U5        UR                  SU-   5        MG  UR                  US-   5        M]     SSS.n[        R                  " US	U5      u  pgU H  u  p8UR                  S5      R                  SS5      n	U	S
:X  a'  SR                  UR                  S
S	5      U5      US
'   MS  U	R                  S5      (       a  U	SS n	SXY'   Mt  U	S;   a  SXY'   M  U R                  U	   [        L a  SXY'   M  XU	'   M     XW4$ )zPre-parse command line arguments for input into __init__.  Note that
this does not cast values into adjustment types, it just creates a
dictionary suitable for passing into __init__, where __init__ does the
casting.
helpcallr   r   zno-=F)r   r   rz   rZ   z{} {}no_   NfalseTr   )
_paramsr   r   r   getoptr8   formatget
startswithr   )
clsargv	long_optsoptcastr   optsargsr)   params
             r   
parse_argsAdjustments.parse_args  s7    V$	IC++c3'Cv~  %  -  s+ % 

 ]]4Y7
JCJJsO++C5E &~~bffXr.BEJ8&&ab	#	** 	&&0"	!5	 " xr   c                    SnSnSnU H  nUR                   [        R                  :X  d  UR                   [        R                  :X  a"  UR                  [        R
                  :X  a  SnMa  [        [        S5      (       a@  UR                   [        R                  :X  a"  UR                  [        R
                  :X  a  SnM  SnM     U(       a  U(       a  [        S5      eU(       a  [        S5      eg )NFTAF_UNIXz+Internet and UNIX sockets may not be mixed.z1Only Internet or UNIX stream sockets may be used.)	r   r>   r   r   typer   hasattrr   r   )r   r?   has_unix_sockethas_inet_sockethas_unsupported_socketr@   s         r   r   Adjustments.check_sockets  s    !&Dv~~-1O))v111"&	**KK6>>1II!3!33"&)-&  JKK!PQQ "r   )r`   rZ   r]   r^   )@rG   rH   rI   rJ   __doc__r   r"   r   r2   r<   r5   r:   r#   rA   r   dictr   rC   rV   rN   rW   rZ   r[   r\   r]   r4   r^   r_   rQ   r`   ra   rb   rp   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rs   rt   r>   SOL_TCPTCP_NODELAYsocket_optionsrq   rr   rX   rY   r?   ru   rv   r   classmethodr   r   rK   rE   r   r   rT   rT   f   sz   1#	#	# 
# 
	#
 
6# 
C# 
,'# 
$# 
!%(# 
'/# 
)&1# 
s# 
'# 
C# 
s#  
s!#" 
C ##$ 
!#&%#& 
3'#( 
S!)#* 
S!+#, 
C -#. 
f%/#0 
#C(1#2 
!#&3#4 
f%5#6 
,7#8 
!#&9#: 
f%;#< 
=#> 
g&?#@ 
N#A#B 
%c*C#D 
E#GJ gJ y!D tDavF G M 
  E #( %1! J J E G J J
 O %
 N   O  % '  K  
++Q/N
   D D G !"
 %Kb)H & &P R Rr   rT   )r   r   r>   r   compatr   r   proxy_headersr   	frozensetr   r   r   r#   r+   r2   r5   r:   r<   rA   r   rC   r"   rN   rQ   rT   rE   r   r   <module>r      s       ! (	7	8  3@   

	!I	# 		# 		 	eR eRr   