+
    @žÀjO$  ã                   óø   € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ]P                  t ! R R4      t ! R R]4      t ! R R]4      t ! R	 R
]4      tR tRR ltRR ltR tR tR tR tR tR# )é    N)Úutilc                   óR   a € ] tR t^t o R
R ltR tR tRR ltR tR t	R t
R	tV tR# )Ú
BaseSocketNc                óR  € W0n         W n        Wn        Vf3   \        P                  ! V P                  \        P
                  4      pRpMG\        P                  ! W@P                  \        P
                  4      p\        P                  ! V4       RpV P                  WVR7      V n
        R # )NFT©Úbound)ÚlogÚconfÚcfg_addrÚsocketÚFAMILYÚSOCK_STREAMÚfromfdÚosÚcloseÚset_optionsÚsock)ÚselfÚaddressr
   r	   Úfdr   r   s   &&&&&  Úa/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.14/site-packages/gunicorn/sock.pyÚ__init__ÚBaseSocket.__init__   st   € ØŒØŒ	àŒØŠ:Ü—=’= §¡¬f×.@Ñ.@ÓAˆDØ‰Eä—=’= §[¡[´&×2DÑ2DÓEˆDÜ�HŠH�RŒLØˆEà×$Ñ$ TÐ$Ó7ˆŽ	ó    c                óD   € R V P                   P                  4       ,          # )z<socket %d>)r   Úfileno©r   s   &r   Ú__str__ÚBaseSocket.__str__$   s   € Ø˜tŸy™y×/Ñ/Ó1Õ1Ð1r   c                ó.   € \        V P                  V4      # ©N)Úgetattrr   )r   Únames   &&r   Ú__getattr__ÚBaseSocket.__getattr__'   s   € Ü�t—y‘y $Ó'Ð'r   c                óœ  € VP                  \        P                  \        P                  ^4       V P                  P
                  '       dG   \        \        R4      '       d1    VP                  \        P                  \        P                  ^4       V'       g   V P                  V4       VP                  ^ 4       \        VR4      '       d   VP                  R4       VP                  V P                  P                   4       V#   \         d;   pTP                  \        P                  \        P                  39  d   h  Rp?L´Rp?ii ; i)é   ÚSO_REUSEPORTNÚset_inheritableT)Ú
setsockoptr   Ú
SOL_SOCKETÚSO_REUSEADDRr
   Ú
reuse_portÚhasattrr(   ÚOSErrorÚerrnoÚENOPROTOOPTÚEINVALÚbindÚsetblockingr)   ÚlistenÚbacklog)r   r   r   Úerrs   &&& r   r   ÚBaseSocket.set_options*   sé   € Ø�‰œ×)Ñ)¬6×+>Ñ+>ÀÔBØ�I‰I× × Ð ÜœF N×3Ò3ðØ—‘¤× 1Ñ 1´6×3FÑ3FÈÔJ÷ Ø�I‰I�dŒOØ×Ñ˜Ôô �4Ð*×+Ò+Ø× Ñ  Ô&à�‰�D—I‘I×%Ñ%Ô&Øˆøô ô Ø—9‘9¤U×%6Ñ%6¼¿¹Ð$EÔEØô Fûðús   Á#/D ÄEÄ0EÅEc                ó<   € VP                  V P                  4       R # r!   )r3   r   )r   r   s   &&r   r3   ÚBaseSocket.bind>   s   € Ø�	‰	�$—-‘-Ö r   c                óä   € V P                   f   R #  V P                   P                  4        R V n         R #   \         d0   pT P                  P	                  R\        T4      4        R p?L>R p?ii ; i)NzError while closing socket %s)r   r   r/   r	   ÚinfoÚstr)r   Úes   & r   r   ÚBaseSocket.closeA   sZ   € Ø�9‰9ÒÙð	CØ�I‰I�O‰OÔð ˆŽ	øô ô 	CØ�H‰H�M‰MÐ9¼3¸q»6×BÑBûð	Cús   ’5 µA/Á %A*Á*A/c                ó   € R# ©r'   éÿÿÿÿ© r   s   &r   Úget_backlogÚBaseSocket.get_backlogL   s   € Øˆ	r   )r   r
   r	   r   r!   ©F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r$   r   r3   r   rD   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s-   ø‡ € ô8ò2ò(ôò(!ò	÷ð r   r   c                   ó~   a a€ ] tR t^Pt o]P
                  tR tRV 3R llt]	R8X  d   R t
RtVtV ;t# R t
RtVtV ;t# )Ú	TCPSocketc                óª   € V P                   P                  '       d   R pMRpV P                  P                  4       pRW^ ,          V^,          3,          # )ÚhttpsÚhttpz
%s://%s:%d)r
   Úis_sslr   Úgetsockname)r   ÚschemeÚaddrs   &  r   r   ÚTCPSocket.__str__T   sF   € Ø�9‰9××ÐØ‰FàˆFà�y‰y×$Ñ$Ó&ˆØ˜v¨A¥w°°QµÐ8Õ8Ð8r   c                ó‚   <€ VP                  \        P                  \        P                  ^4       \        SV `  WR7      # )r'   r   )r*   r   ÚIPPROTO_TCPÚTCP_NODELAYÚsuperr   )r   r   r   Ú	__class__s   &&&€r   r   ÚTCPSocket.set_options]   s2   ø€ Ø�‰œ×*Ñ*¬F×,>Ñ,>ÀÔBÜ‰wÑ" 4Ð"Ó5Ð5r   Úlinuxc                ó  € V P                   '       dZ   Rp V P                   P                  \        P                  \        P                  ^h4      p\
        P                  ! W4      ^,          # ^ #   \        \        3 d     ^ # i ; i)ÚBÚ BBBBBBBBIIIIIIIIIIIIIIIIIIIIIIII)	r   Ú
getsockoptr   rZ   ÚTCP_INFOÚstructÚunpackÚAttributeErrorr/   )r   ÚfmtÚtcp_info_structs   &  r   rD   ÚTCPSocket.get_backlogb   sr   € Ø�y�yˆyà(�ðØ&*§i¡i×&:Ñ&:¼6×;MÑ;MÜ;A¿?¹?ÈCó'Q�Oô "Ÿ=š=¨Ó>¸rÕBÐBñ øô '¬Ð0ô ØÙðús   –AA. Á.BÂBc                ó   € R# rA   rC   r   s   &r   rD   rj   o   s   € ØˆIr   rC   rF   )rG   rH   rI   rJ   r   ÚAF_INETr   r   r   ÚPLATFORMrD   rK   rL   Ú__classcell__©r]   rN   s   @@r   rP   rP   P   s6   ù‡ € à�^‰^€Fò9÷6ð �7Ô÷	ò 	÷	ò 	r   rP   c                   ó>   a € ] tR t^st o ]P
                  tR tRtV t	R# )Ú
TCP6Socketc                óR   € V P                   P                  4       w  r pR W3,          # )zhttp://[%s]:%d)r   rU   )r   ÚhostÚportÚ_s   &   r   r   ÚTCP6Socket.__str__w   s(   € Ø!ŸY™Y×2Ñ2Ó4Ñˆ�Q˜Ø 4 ,Õ.Ð.r   rC   N)
rG   rH   rI   rJ   r   ÚAF_INET6r   r   rK   rL   rM   s   @r   rq   rq   s   s   ø‡ € à�_‰_€F÷/ð /r   rq   c                   óZ   a a€ ] tR t^|t o]P
                  tRV 3R lltR tR t	Rt
VtV ;t# )Ú
UnixSocketc                ó|  <€ Vfg    \         P                  ! V4      p\        P                  ! VP                  4      '       d   \         P                  ! V4       M\        RV,          4      h\        SV `-  WW4R7       R #   \         d2   pTP                  ^ ,          \        P                  8w  d   h  R p?LJR p?ii ; i)Nz%r is not a socket©r   )r   ÚstatÚS_ISSOCKÚst_modeÚremoveÚ
ValueErrorr/   Úargsr0   ÚENOENTr\   r   )r   rW   r
   r	   r   Ústr>   r]   s   &&&&&  €r   r   ÚUnixSocket.__init__€   sŒ   ø€ ØŠ:ð	BÜ—W’W˜T“]�ô
 —=’= §¡×,Ò,Ü—I’I˜d•Oä$Ð%9¸DÕ%@ÓAÐAÜ‰Ñ˜ SÐÖ0øô ô Ø—6‘6˜!•9¤§¡Ô,Øô -ûðús   ‡A? Á?B;Â
'B6Â6B;c                ó(   € R V P                   ,          # )zunix:%s)r   r   s   &r   r   ÚUnixSocket.__str__Ž   s   € Ø˜4Ÿ=™=Õ(Ð(r   c                óP  € \         P                  ! V P                  P                  4      pVP                  V P                  4       \
        P                  ! V P                  V P                  P                  V P                  P                  4       \         P                  ! V4       R # r!   )	r   Úumaskr
   r3   r   r   ÚchownÚuidÚgid)r   r   Ú	old_umasks   && r   r3   ÚUnixSocket.bind‘   sX   € Ü—H’H˜TŸY™YŸ_™_Ó-ˆ	Ø�	‰	�$—-‘-Ô Ü�
Š
�4—=‘= $§)¡)§-¡-°·±·±Ô?Ü
�Š�Ör   rC   r!   )rG   rH   rI   rJ   r   ÚAF_UNIXr   r   r   r3   rK   rL   rn   ro   s   @@r   ry   ry   |   s"   ù‡ € à�^‰^€F÷1ò)÷ò r   ry   c                 ó  € \        V \        4      '       d5   \        P                  ! V ^ ,          4      '       d	   \        pV# \
        p V# \        V \        \        34      '       d	   \        pV# \        RV ,          4      h)r   z Unable to create socket from: %r)
Ú
isinstanceÚtupler   Úis_ipv6rq   rP   r=   Úbytesry   Ú	TypeError)rW   Ú	sock_types   & r   Ú
_sock_typer–   ˜   sq   € Ü�$œ×ÒÜ�<Š<˜˜Q�× Ò Ü"ˆIð Ðô "‰Ið
 Ðô	 
�Dœ3¤˜,×	'Ò	'Üˆ	ð Ðô Ð:¸TÕAÓBÐBr   c                óz  € . pV P                   pV Uu. uF  p\        V\        4      '       g   K  VNK  	  ppV'       d   V\        V4      ,          pV Uu. uF  p\        V\        4      '       d   K  VNK  	  ppV P                  '       dL   \
        P                  P                  V P                  4      '       g   \        RV P                  ,          4      hV P                  '       dL   \
        P                  P                  V P                  4      '       g   \        RV P                  ,          4      hV'       dv   V Fm  p\        P                  ! V\        P                  \        P                  4      p	V	P                  4       p
\        V
4      pV! W WR7      pVP!                  V4       Ko  	  V# V Fr  p\        V4      pRp	\#        ^4       F  p V! W@V4      p	 M	  V	f2   VP-                  R
\/        V4      4       \:        P<                  ! ^4       VP!                  V	4       Kt  	  V# u upi u upi   \$         dú   pTP&                  ^ ,          \(        P*                  8X  d   TP-                  R\/        T4      4       TP&                  ^ ,          \(        P0                  8X  d   TP-                  R\/        T4      4       RpTP-                  TP3                  \/        T4      \/        T4      R7      4       T^8  d/   TP5                  R	4       \6        P8                  ! ^4        Rp?EK_   Rp?EKf  Rp?ii ; i)zØ
Create a new socket for the configured addresses or file descriptors.

If a configured address is a tuple then a TCP socket is created.
If it is a string, a Unix socket is created. Otherwise, a TypeError is
raised.
zcertfile "%s" does not existzkeyfile "%s" does not existr{   NzConnection in use: %szInvalid address: %sz$connection to {addr} failed: {error})rW   ÚerrorzRetrying in 1 second.zCan't connect to %s)r   r�   ÚintÚlistÚcertfiler   ÚpathÚexistsr€   Úkeyfiler   r   rŽ   r   rU   r–   ÚappendÚranger/   r�   r0   Ú
EADDRINUSEr˜   r=   ÚEADDRNOTAVAILÚformatÚdebugÚtimeÚsleepÚsysÚexit)r
   r	   ÚfdsÚ	listenersrW   r3   ÚfdaddrÚladdrr   r   Ú	sock_namer•   ÚlistenerÚir>   Úmsgs   &&&             r   Úcreate_socketsr±   ¥   sh  € ð €Ið �<‰<€DÙ#Ó=™t�t¤z°$¼×'<�dˆd™t€FÐ=ß
Ø”$�s“)ÕˆÙ"Ó@™d�d¬*°T¼3×*?�TˆT™d€EÐ@ð ‡}‡}€}œRŸW™WŸ^™^¨D¯M©M×:Ò:ÜÐ7¸$¿-¹-ÕGÓHÐHà‡|‡|€|œBŸG™GŸN™N¨4¯<©<×8Ò8ÜÐ6¸¿¹ÕEÓFÐF÷ ÛˆBÜ—=’= ¤V§^¡^´V×5GÑ5GÓHˆDØ×(Ñ(Ó*ˆIÜ" 9Ó-ˆIÙ  °#Ô=ˆHØ×Ñ˜XÖ&ñ ð Ðó ˆÜ˜tÓ$ˆ	ØˆÜ�q–ˆAðÙ  ¨SÓ1�ñ ñ ð  Š<Ø�I‰IÐ+¬S°«YÔ7Ü�HŠH�QŒKà×Ñ˜Öñ/ ð2 Ðùòe >ùò Aøô8 ô 	"Ø—6‘6˜!•9¤× 0Ñ 0Ô0Ø—I‘IÐ5´s¸4³yÔAØ—6‘6˜!•9¤× 3Ñ 3Ô3Ø—I‘IÐ3´S¸³YÔ?Ø<�Ø—	‘	˜#Ÿ*™*¬#¨d«)¼3¸q»6˜*ÓBÔCØ�q”5Ø—I‘IÐ5Ô6Ü—J’J˜q—M“Mö ûð	"ús/   “H,°H,ÁH1Á3H1Ç	H6È6L:ÉC&L5Ì5L:c                 óÂ   € V  FX  pVP                  4       pVP                  4        V'       g   K-  \        V4      \        J g   KB  \        P
                  ! V4       KZ  	  R # r!   )rU   r   r–   ry   r   Úunlink)rª   r³   r   r­   s   &&  r   Úclose_socketsr´   æ   s@   € ÛˆØ×$Ñ$Ó&ˆ	Ø�
‰
Œß‰6”j Ó+¬zÕ9Ü�IŠI�iÖ ó	 r   c                óÎ   € ^ RI Hp V P                  pV'       g   . # RV9  d   . # ^ RIHp V! 4       '       g   . # . pV F"  pWQ9   g   K  VP                  W,          4       K$  	  V# )z´Get ALPN protocol list from configuration.

Returns list of ALPN protocol identifiers based on http_protocols setting.
Returns empty list if HTTP/2 is not configured or available.
)ÚALPN_PROTOCOL_MAPÚh2)Úis_http2_available)Úgunicorn.configr¶   Úhttp_protocolsÚgunicorn.http2r¸   rŸ   )r
   r¶   rº   r¸   Úalpn_protocolsÚprotos   &     r   Ú_get_alpn_protocolsr¾   î   sm   € õ 2à×(Ñ(€NßØˆ	ð �>Ô!Øˆ	õ 2Ù×ÒØˆ	ð €NÛˆØÖ%Ø×!Ñ!Ð"3Õ":Ö;ñ  ð Ðr   c                 ó4   a € V 3R  lpS P                  S V4      # )c                  óŽ  <€ \         P                  ! \         P                  P                  SP                  R 7      p V P                  SP                  SP                  R7       SP                  V n	        SP                  '       d   V P                  SP                  4       \        S4      pV'       d   V P                  V4       V # ))Úcafile)r›   rž   )ÚsslÚcreate_default_contextÚPurposeÚCLIENT_AUTHÚca_certsÚload_cert_chainr›   rž   Ú	cert_reqsÚverify_modeÚciphersÚset_ciphersr¾   Úset_alpn_protocols)Úcontextr¼   r
   s     €r   Údefault_ssl_context_factoryÚ0ssl_context.<locals>.default_ssl_context_factory  s‡   ø€ Ü×,Ò,¬S¯[©[×-DÑ-DÈTÏ]É]Ô[ˆØ×Ñ¨¯©ÀÇÁÐÔMØ"Ÿn™nˆÔØ�<�<ˆ<Ø×Ñ §¡Ô-ô -¨TÓ2ˆßØ×&Ñ& ~Ô6àˆr   )Ússl_context)r
   rÎ   s   f r   rÐ   rÐ     s   ø€ õð ×Ñ˜DÐ"=Ó>Ð>r   c                 óf   € \        V4      P                  V R VP                  VP                  R7      # )T)Úserver_sideÚsuppress_ragged_eofsÚdo_handshake_on_connect)rÐ   Úwrap_socketrÓ   rÔ   )r   r
   s   &&r   Ússl_wrap_socketrÖ     s8   € Ü�tÓ×(Ñ(¨Ø59Ø>B×>WÑ>WØAE×A]ÑA]ð )ó _ð _r   c                ó¬   € \        V \        P                  4      '       g   R#  V P                  4       #   \        \        P
                  3 d     R# i ; i)z®Get the negotiated ALPN protocol from an SSL socket.

Returns:
    str: The negotiated protocol name ('h2', 'http/1.1', etc.)
         or None if no protocol was negotiated.
N)r�   rÂ   Ú	SSLSocketÚselected_alpn_protocolrg   ÚSSLError)Ú
ssl_sockets   &r   Úget_negotiated_protocolrÜ   $  sG   € ô �j¤#§-¡-×0Ò0ÙðØ×0Ñ0Ó2Ð2øÜœCŸL™LÐ)ô Úðús   ¤4 ´AÁAc                ó"   € \        V 4      pVR8H  # )zmCheck if HTTP/2 was negotiated on an SSL socket.

Returns:
    bool: True if HTTP/2 was negotiated via ALPN.
r·   )rÜ   )rÛ   Úprotocols   & r   Úis_http2_negotiatedrß   4  s   € ô ' zÓ2€HØ�tÑÐr   r!   )T)r0   r   r   rÂ   r|   re   r§   r¥   Úgunicornr   Úplatformrm   r   rP   rq   ry   r–   r±   r´   r¾   rÐ   rÖ   rÜ   rß   rC   r   r   Ú<module>râ      s…   ðó
 Û 	Û Û 
Û Û Û 
Û å à�<‰<€÷:ñ :ôz �
ô  ôF/�ô /ô�ô ò8
ô>ôB!òò:?ò$_òô r   