
    ,h"                     X    d Z  G d d      Z G d d      Z G d d      Z G d d      Zy	)
zThe Proxy implementation.c                        e Zd ZdZed        Zy)ProxyTypeFactoryzFactory for proxy types.c                     | |dS )Nff_valuestring r   s     a/var/www/html/Resume-Scraper/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)	ProxyTypezSet 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.
        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    eT"x5'8(OEE
  "H 	"D d+J*d+J0F:V^K_chKh!!	" 5eW=>>r   N)r   r   r   r   r   r
   r   r   r   
RESERVED_1r   r   r    classmethodr-   r   r   r	   r   r      s     ""1h/F""1h/F


5
)C!&&q+6J!&&q,7J""1h/F"''=9K? ?r   r   c                       e Zd Zd Zd Zd Zy)_ProxyTypeDescriptorc                      || _         || _        y N)namep_type)selfr4   r5   s      r	   __init__z_ProxyTypeDescriptor.__init__8   s    	r   c                 .    t        || j                        S r3   )r'   r4   )r6   objr)   s      r	   __get__z_ProxyTypeDescriptor.__get__<   s    sDII&&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)r4   r"   bool
ValueErrorr'   r5   setattr)r6   r9   r*   s      r	   __set__z_ProxyTypeDescriptor.__set__?   sY    99$Zt-DKLL878E[$++.TYY&r   N)r   r   r   r7   r:   rB   r   r   r	   r1   r1   7   s    ''r   r1   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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j0                        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Ze d        Z!e!jD                  dd       Z!d Z#d Z$y)ProxyzMProxy contains information about proxy type and necessary proxy
    settings.F Nr<   ftpProxy	httpProxynoProxyproxyAutoconfigUrlsslProxy
socksProxysocksUsernamesocksPasswordsocksVersionc                    |rd|v r"|d   rt         j                  |d         | _        d|v r|d   r
|d   | _        d|v r|d   r
|d   | _        d|v r|d   r
|d   | _        d|v r|d   r
|d   | _        d|v r|d   r
|d   | _        d|v r|d   r
|d   | _        d|v r|d   r
|d   | _	        d	|v r|d	   r
|d	   | _
        d
|v r|d
   r
|d
   | _        d|v r|d   r|d   | _        yyyy)zuCreates a new Proxy.

        :Args:
         - raw: raw proxy data. If None, default class values are used.
        r>   rF   rG   rH   rI   rJ   r<   rK   rL   rM   rN   N)r   r-   
proxy_type	ftp_proxy
http_proxyno_proxyproxy_autoconfig_urlrJ   auto_detectsocks_proxysocks_usernamesocks_passwordsocks_version)r6   raws     r	   r7   zProxy.__init__   sH    c!c+&6"+..[1A"BS S_!$Zc!c+&6"%k"2CC	N #I#s*s3G/H,/0D,E)S S_ #Js"s<'8#&|#4 s"s<'8#&|#4 #%#o*>&)/&:##%#o*>&)/&:#$^)<%(%8" *=$+ r   c                     | j                   S )z"Returns proxy type as `ProxyType`.)r>   )r6   s    r	   rP   zProxy.proxy_type  s     ~~r   c                 4    | j                  |       || _        y)zKSets proxy type.

        :Args:
         - value: The proxy type.
        N)r=   r>   )r6   r*   s     r	   rP   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    r@   )r6   compatible_proxys     r	   r=   z&Proxy._verify_proxy_type_compatibility  sK    >>)"7"79I!JJ()9(::abfbpbpaqqrs  Kr   c                     d| j                   d   j                         i}g d}|D ]  }t        | |      }|s|||<    |S )Nr>   r   )
r<   rF   rG   rI   rJ   rH   rK   rL   rM   rN   )r>   lowerr'   )r6   
proxy_capsproxiesproxyr,   s        r	   to_capabilitieszProxy.to_capabilities!  sW    !4>>(#;#A#A#CD

  	/E u-J$.
5!	/ r   r3   )returnN)%r   r   r   r   r   r    r>   r<   rF   rG   rH   rI   rJ   rK   rL   rM   rN   r1   r   rU   r   rQ   rR   rS   r   rT   	ssl_proxyrV   rW   rX   rY   r7   propertyrP   setterr=   re   r   r   r	   rD   rD   G   s~    %%IJHIGHJMML '|Y5I5IJK %Z1A1ABI &k93C3CDJ $Iy/?/?@H 00DimmT %Z1A1ABI '|Y5E5EFK */9;K;KLN */9;K;KLN )9I9IJM9<    r   rD   N)r   r   r   r1   rD   r   r   r	   <module>rj      s4   "  8 8? ?6' ' l lr   