Ë
    cQbjy  ã                  ód   — d Z ddlmZ  G d„ d«      Z G d„ d«      Z G d„ d«      Z G d	„ d
«      Zy)zThe Proxy implementation.é    )Úannotationsc                  ó    — e Zd ZdZed„ «       Zy)ÚProxyTypeFactoryzFactory for proxy types.c                ó   — | |dœS )N©Úff_valueÚstring© r   s     úR/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/proxy.pyÚmakezProxyTypeFactory.make   s   € à$°Ñ7Ð7ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r
   r   r   r   r      s   „ Ù"àñ8ó ñ8r   r   c                  ó  — e Zd ZdZej                  dd«      Zej                  dd«      Zej                  dd«      Zej                  dd	«      Z	ej                  d
d«      Z
ej                  dd«      Zej                  dd«      Zed„ «       Zy)Ú	ProxyTypez Set of possible types of proxy.

    Each proxy type has 2 properties: 'ff_value' is value of Firefox
    profile preference, 'string' is id of proxy type.
    r   ÚDIRECTé   ÚMANUALé   ÚPACé   Ú	RESERVED1é   Ú
AUTODETECTé   ÚSYSTEMé   ÚUNSPECIFIEDc                óþ   — t        |t        «      r	d|v r|d   }t        |«      j                  «       }t	        | «      D ]0  }t        | |«      }t        |t        «      sŒ d|v sŒ%|d   |k(  sŒ.|c S  t        d|› �«      ‚)Nr	   zNo proxy type is found for )Ú
isinstanceÚdictÚstrÚupperÚdirÚgetattrÚ	Exception)ÚclsÚvalueÚattrÚ
attr_values       r   ÚloadzProxyType.load.   s‡   € ä�eœTÔ" x°5Ñ'8Ø˜(‘OˆEÜ�E“
× Ñ Ó"ˆÜ˜“Hò 	"ˆDÜ   dÓ+ˆJÜ˜*¤dÕ+°¸JÒ0FÈ:ÐV^ÑK_ÐchÓKhØ!Ò!ð	"ô Ð5°e°WÐ=Ó>Ð>r   N)r   r   r   r   r   r   r   r   r   Ú
RESERVED_1r   r   r!   Úclassmethodr.   r
   r   r   r   r      s™   „ ñð ×"Ñ" 1 hÓ/€FØ×"Ñ" 1 hÓ/€FØ
×
Ñ
  5Ó
)€CØ!×&Ñ& q¨+Ó6€JØ!×&Ñ& q¨,Ó7€JØ×"Ñ" 1 hÓ/€FØ"×'Ñ'¨¨=Ó9€Kàñ?ó ñ?r   r   c                  ó   — e Zd Zd„ Zd„ Zd„ Zy)Ú_ProxyTypeDescriptorc                ó    — || _         || _        y ©N)ÚnameÚp_type)Úselfr5   r6   s      r   Ú__init__z_ProxyTypeDescriptor.__init__;   s   € ØˆŒ	Øˆ�r   c                ó.   — t        || j                  «      S r4   )r(   r5   )r7   Úobjr*   s      r   Ú__get__z_ProxyTypeDescriptor.__get__?   s   € Ü�s˜DŸI™IÓ&Ð&r   c                óì   — | j                   dk(  rt        |t        «      st        d«      ‚ t	        |d«      | j
                  «       t        |d| j
                  «       t        || j                   |«       y )NÚ
autodetectz,Autodetect proxy value needs to be a booleanÚ _verify_proxy_type_compatibilityÚ	proxyType)r5   r#   ÚboolÚ
ValueErrorr(   r6   Úsetattr)r7   r:   r+   s      r   Ú__set__z_ProxyTypeDescriptor.__set__B   sY   € Ø�9‰9˜Ò$¬Z¸¼tÔ-DÜÐKÓLÐLØ8Œ�Ð7Ó8¸¿¹ÔEÜ��[ $§+¡+Ô.Ü��T—Y‘Y Õ&r   N)r   r   r   r8   r;   rC   r
   r   r   r2   r2   :   s   „ òò'ó'r   r2   c                  ó  — e Zd ZdZej
                  ZdZdZdZ	dZ
dZdZdZdZdZ edej"                  «      Z	  edej&                  «      Z	  edej&                  «      Z	  edej,                  «      Z	  ed	ej&                  «      Z	  ed
ej&                  «      Z	  edej&                  «      Z	  edej&                  «      Z	  edej&                  «      Z	 ddd„Zed„ «       Zej@                  dd„«       Zd„ Z!d„ Z"dd„Z#y)ÚProxyzGProxy configuration containing proxy type and necessary proxy settings.FÚ Nr=   Ú	httpProxyÚnoProxyÚproxyAutoconfigUrlÚsslProxyÚ
socksProxyÚsocksUsernameÚsocksPasswordÚsocksVersionc                óœ  — |€yt        |t        «      st        dt        |«      › �«      ‚|j	                  d«      rt
        j                  |d   «      | _        |j	                  d«      r
|d   | _        |j	                  d«      r
|d   | _	        |j	                  d«      r
|d   | _
        |j	                  d«      r
|d   | _        |j	                  d«      r
|d   | _        |j	                  d	«      r
|d	   | _        |j	                  d
«      r
|d
   | _        |j	                  d«      r
|d   | _        |j	                  d«      r|d   | _        yy)zuCreates a new Proxy.

        Args:
            raw: Raw proxy data. If None, default class values are used.
        Nz`raw` must be a dict, got r?   rG   rH   rI   rJ   r=   rK   rL   rM   rN   )r#   r$   Ú	TypeErrorÚtypeÚgetr   r.   Ú
proxy_typeÚ
http_proxyÚno_proxyÚproxy_autoconfig_urlrJ   Úauto_detectÚsocks_proxyÚsocks_usernameÚsocks_passwordÚsocks_version)r7   Úraws     r   r8   zProxy.__init__t   s1  € ð ˆ;ØÜ˜#œtÔ$ÜÐ8¼¸c»¸ÐDÓEÐEØ�7‰7�;ÔÜ'Ÿn™n¨S°Ñ-=Ó>ˆDŒOØ�7‰7�;ÔØ! +Ñ.ˆDŒOØ�7‰7�9ÔØ 	™NˆDŒMØ�7‰7Ð'Ô(Ø(+Ð,@Ñ(AˆDÔ%Ø�7‰7�:ÔØ 
™OˆDŒMØ�7‰7�<Ô Ø" <Ñ0ˆDÔØ�7‰7�<Ô Ø" <Ñ0ˆDÔØ�7‰7�?Ô#Ø"% oÑ"6ˆDÔØ�7‰7�?Ô#Ø"% oÑ"6ˆDÔØ�7‰7�>Ô"Ø!$ ^Ñ!4ˆDÕð #r   c                ó   — | j                   S )z"Returns proxy type as `ProxyType`.)r?   )r7   s    r   rS   zProxy.proxy_type“   s   € ð �~‰~Ðr   c                ó4   — | j                  |«       || _        y)zKSets proxy type.

        Args:
            value: The proxy type.
        N)r>   r?   )r7   r+   s     r   rS   zProxy.proxy_type˜   s   € ð 	×-Ñ-¨eÔ4Øˆ�r   c                óx   — | j                   t        j                  |fvrt        d|› d| j                   › d�«      ‚y )NzSpecified proxy type (z') not compatible with current setting (ú))r?   r   r!   rA   )r7   Úcompatible_proxys     r   r>   z&Proxy._verify_proxy_type_compatibility¢   sK   € Ø�>‰>¤)×"7Ñ"7Ð9IÐ!JÑJÜØ(Ð)9Ð(:Ð:aÐbf×bpÑbpÐaqÐqrÐsóð ð Kr   c                ó‚   — d| j                   d   j                  «       i}g d¢}|D ]  }t        | |«      }|sŒ|||<   Œ |S )Nr?   r	   )	r=   rG   rI   rJ   rH   rK   rL   rM   rN   )r?   Úlowerr(   )r7   Ú
proxy_capsÚproxiesÚproxyr-   s        r   Úto_capabilitieszProxy.to_capabilities¨   sW   € Ø! 4§>¡>°(Ñ#;×#AÑ#AÓ#CÐDˆ
ò

ˆð ò 	/ˆEÜ   uÓ-ˆJÚØ$.�
˜5Ò!ð	/ð Ðr   c                ó  — | j                   d   j                  «       }d|i}|dk(  �r>| j                  r| j                  |d<   | j                  r| j                  |d<   | j                  r| j                  |d<   | j
                  �| j
                  |d<   | j                  rÄt        | j                  t        «      rM| j                  j                  d«      D �cg c]#  }|j                  «       sŒ|j                  «       ‘Œ% c}|d	<   |S t        | j                  t        «      r8t        d
„ | j                  D «       «      st        d«      ‚| j                  |d	<   |S t        d«      ‚|S |dk(  r| j                  r| j                  |d<   |S c c}w )zqConvert proxy settings to BiDi format.

        Returns:
            Proxy configuration in BiDi format.
        r	   r?   ÚmanualrG   rJ   rK   rN   ú,rH   c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr4   )r#   r%   )Ú.0Úhs     r   ú	<genexpr>z%Proxy.to_bidi_dict.<locals>.<genexpr>Ò   s   è ø€ ÒH°aœz¨!¬S×1ÑHùs   ‚z'no_proxy list must contain only stringsz>no_proxy must be a comma-separated string or a list of stringsÚpacrI   )r?   rc   rG   rJ   rK   rN   rH   r#   r%   ÚsplitÚstripÚlistÚallrP   rI   )r7   rS   ÚresultÚhosts       r   Úto_bidi_dictzProxy.to_bidi_dict»   sb  € ð —^‘^ HÑ-×3Ñ3Ó5ˆ
Ø˜zÐ*ˆà˜Ó!Ø�~Š~Ø&*§n¡n��{Ñ#Ø�}Š}Ø%)§]¡]��zÑ"Ø�ŠØ'+§¡��|Ñ$Ø× Ñ Ð,Ø)-×):Ñ):��~Ñ&Ø�|Š|ä˜dŸl™l¬CÔ0ØBFÇ,Á,×BTÑBTÐUXÓBYÖ(j¸$Ð]a×]gÑ]gÕ]i¨¯©­Ò(j�F˜9Ñ%ð ˆô   §¡¬dÔ3ÜÑH¸4¿<¹<ÔHÔHÜ'Ð(QÓRÐRØ(,¯©�F˜9Ñ%ð ˆô $Ð$dÓeÐeð ˆð	 ˜5Ò Ø×&Ò&Ø/3×/FÑ/F�Ð+Ñ,àˆùò )ks   ÃFÃ-Fr4   )r\   zdict | None)ÚreturnÚNone)rw   r$   )$r   r   r   r   r   r!   r?   r=   rG   rH   rI   rJ   rK   rL   rM   rN   r2   r   rW   r   rT   rU   r   rV   Ú	ssl_proxyrX   rY   rZ   r[   r8   ÚpropertyrS   Úsetterr>   rg   rv   r
   r   r   rE   rE   J   s?  „ ÙQà×%Ñ%€IØ€JØ€IØ€GØÐØ€HØ€JØ€MØ€MØ€Lñ ' |°Y×5IÑ5IÓJ€KØ0á% k°9×3CÑ3CÓD€JØá# I¨y×/?Ñ/?Ó@€HØ$á/Ð0DÀiÇmÁmÓTÐØ&á$ Z°×1AÑ1AÓB€IØá& |°Y×5EÑ5EÓF€KØá)¨/¸9×;KÑ;KÓL€NØá)¨/¸9×;KÑ;KÓL€NØá(¨¸×9IÑ9IÓJ€MØô5ð> ñó ðð ×Ñòó ðòòô&!r   rE   N)r   Ú
__future__r   r   r   r2   rE   r
   r   r   ú<module>r}      s7   ðñ$  å "÷8ñ 8÷?ñ ?÷6'ñ '÷ Rò Rr   