
    gi.                     p    d dl Z d dlmZmZ ddlmZmZ ej         ed          z
  Z G d de          ZdS )    N)datetime	timedelta   )BaseProviderElementsTypeg      ?c                      e Zd ZU dZdZee         ed<   dZee         ed<   dZ	ee         ed<   dZ
ee         ed	<   d
Zee         ed<   dZee         ed<   dZee         ed<   defdZdefdZdefdZ	 	 	 	 d'dededededef
dZdefdZdefdZdefdZdefd Zdefd!Zdefd"Zdefd#Zdefd$Zdefd%Zd&S )(Providerz0Implement default user agent provider for Faker.)chromefirefoxinternet_exploreroperasafariuser_agents)z
Windows 95z
Windows 98zWindows 98; Win 9x 4.90z
Windows CEzWindows NT 4.0zWindows NT 5.0zWindows NT 5.01zWindows NT 5.1zWindows NT 5.2zWindows NT 6.0zWindows NT 6.1zWindows NT 6.2zWindows NT 10.0zWindows NT 11.0windows_platform_tokens)i686x86_64linux_processors)IntelPPCzU; IntelzU; PPCmac_processors)Bz1.0z1.1z1.5z1.6z2.0z2.0.1z2.1z2.22.2.1z2.2.2z2.2.3z2.3z2.3.1z2.3.2z2.3.3z2.3.4z2.3.5z2.3.6z2.3.7z3.0z3.1z3.2z3.2.13.2.2z3.2.3z3.2.4z3.2.5z3.2.6z4.0z4.0.1z4.0.2z4.0.3z4.0.4z4.1z4.1.1z4.1.2z4.24.2.1z4.2.2z4.3z4.3.1z4.4z4.4.1z4.4.2z4.4.3z4.4.4z5.0z5.0.1z5.0.2z5.15.1.1z6.0z6.0.1z7.0z7.1z7.1.17.1.2z8.0.0z8.1.09101112z12.11314android_versions)iPhoneiPadapple_devices)#z1.1.5r   z3.1.3r   r   z4.3.5r   z6.1.6r   z8.4.1z9.3.5z9.3.6z10.3.3z10.3.4z11.4.1z12.4.4z12.4.8z12.5.7z13.5.1z13.7z14.2z14.2.1z14.8.1z15.8.2z16.7.6z16.7.7z17.1z17.1.1z17.1.2z17.2z17.2.1z17.3z17.3.1z17.4z17.4.1ios_versionsreturnc                 6    |                      | j                  S )z<Generate a MacOS processor token used in user agent strings.)random_elementr   selfs    {/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/faker/providers/user_agent/__init__.pymac_processorzProvider.mac_processor   s    ""4#6777    c                 6    |                      | j                  S )z<Generate a Linux processor token used in user agent strings.r)   r   r*   s    r,   linux_processorzProvider.linux_processor   s    ""4#8999r.   c                 f    |                      | j                  } t          | |                      S )z0Generate a random web browser user agent string.)r)   r   getattr)r+   names     r,   
user_agentzProvider.user_agent   s0    ''(899"wtT""$$$r.      ?        version_from
version_to
build_frombuild_toc                 ,   | j         j                            dd           d| j         j                            dd           }|                     |                     d          t
          j                  }d}d}|                    |                                 || j         j                            ||          | j         j                            ||          |          |                    | 	                                || j         j                            ||          | j         j                            ||          |          |                    | 
                                || j         j                            ||          | j         j                            ||          |          |                    d	|                                  || j         j                            ||          | j         j                            ||          |          |                    |                                 || j         j                            ||          | j         j                            ||          |          f}	d
|                     |	          z   S )z0Generate a Chrome web browser user agent string.    .r   r   ##?###zG({0}) AppleWebKit/{1} (KHTML, like Gecko) Chrome/{2}.0.{3}.0 Safari/{4}zQ({0}) AppleWebKit/{1} (KHTML, like Gecko) CriOS/{2}.0.{3}.0 Mobile/{4} Safari/{1}zLinux; Mozilla/5.0 )	generatorrandomrandintlexifynumerifystringascii_uppercaseformatlinux_platform_tokenwindows_platform_tokenmac_platform_tokenandroid_platform_tokenios_platform_tokenr)   )
r+   r:   r;   r<   r=   safbldtmplt	tmplt_ios	platformss
             r,   r
   zProvider.chrome   sR    n+33C==ee@U@]@]^_ab@c@cee;;t}}X668NOO^l	LL))++%--lJGG%--j(CC  LL++--%--lJGG%--j(CC  LL''))%--lJGG%--j(CC  LL9$557799%--lJGG%--j(CC  ''))%--lJGG%--j(CC ;$(
	L  3 3I > >>>r.   c                    d| j                             t          ddd          t                     d| j         j                            dd           dd| j                             t          ddd          t                     d	| j         j                            dd
           d| j                             t          ddd          t                     df}d}d}d}d}d}| j         j                            dd           d| j         j                            dd           }|                     |                     d          t          j	                  }|                     |                     d          t          j
                  }	|                    |                                 | j                                                             dd          | j         j                            dd          | j         j                            |                    |                    |                                 | j         j                            dd          | j         j                            |                    |                    |                                 | j         j                            dd          | j         j                            |                    |                    |                                 | j         j                            dd                    |                    |                                 || j         j                            dd          |	|          f}
d|                     |
          z   S ) z9Generate a Mozilla Firefox web browser user agent string.zGecko/i     z	 Firefox/      z.0i  z Firefox/3.6.   z Firefox/3.8z({0}; {1}; rv:1.9.{2}.20) {3}z({0}; rv:1.9.{1}.20) {2}z1({0}; Mobile; rv:{1}.0) Gecko/{1}.0 Firefox/{1}.0zO({0}) AppleWebKit/{1} (KHTML, like Gecko) FxiOS/{2}.{3}.0 Mobile/{4} Safari/{1}r?   r@   rA   r   r   rB   z#?####_-         D   	      rC   )rD   date_time_betweenr   _DT_ALMOST_MAXrE   rF   rG   rH   rI   rJ   ascii_lowercaserK   rM   localereplacechoicerL   rN   rO   rP   r)   )r+   ver	tmplt_win	tmplt_lin	tmplt_mac	tmplt_andrT   rQ   rR   bld2rU   s              r,   r   zProvider.firefox   s<   D99(4A:N:NP^__ D D>088B??D D DF99(4A:N:NP^__ F F#~4<<QCCF F jT^55htQ6J6JN[[iii
"
 9	3	3	L	j	n+33C==ee@U@]@]^_ab@c@cee;;t}}X668NOOKKh 7 79OPP++--%%''//S99%--a33%,,S11	  ))++%--a33%,,S11 
 ''))%--a33%,,S11 
 T88::DN<Q<Y<YZ[]_<`<`aa''))%--a44 %(
	6  3 3I > >>>r.   c                    | j         j                            dd           d| j         j                            dd           d| j         j                            dd           }| j         j                            d          sC| j         j                            dd           d| j         j                            d	d           nB| j         j                            dd           d
| j         j                            dd           }d}d}d}| j                                                             dd          }|                    |                                 |||          |                    |                                 | j         j                            dd          ||||          |                    | j         j                            dd          | j         j                            d	d          ||| j         j                            dd          | j         j                            dd          |          f}d| 	                    |          z   S )z0Generate a Safari web browser user agent string.r?   i  rA   rW   2   r^   rX   r]   r   z.0.zL(Windows; U; {0}) AppleWebKit/{1} (KHTML, like Gecko) Version/{2} Safari/{3}zN({0} rv:{1}.0; {2}) AppleWebKit/{3} (KHTML, like Gecko) Version/{4} Safari/{5}z(iPod; U; CPU iPhone OS {0}_{1} like Mac OS X; {2}) AppleWebKit/{3} (KHTML, like Gecko) Version/{4}.0.5 Mobile/8B{5} Safari/6{6}r[   r\   r   r_      o   w   rC   )
rD   rE   rF   getrandbitsrf   rg   rK   rM   rN   r)   )r+   rQ   ri   rj   rl   
tmplt_ipodrf   rU   s           r,   r   zProvider.safari  sS    ~$,,S#66 5 5~$,,Q335 5~$,,Q225 5 	 >(44Q77bt~$,,Q22ZZT^5J5R5RSTVW5X5XZZZN)11!Q77aaDN<Q<Y<YZ[]^<_<_aa 	 h	i	( 	
 n++--55c3??T88::CcJJ''))%--a33  %--a33%--a33%--a33%--c377 (
	*  3 3I > >>>r.   c                    | j         j                            d          r|                                 n|                                 }| j                                                             dd          }d| d| d| j         j                            dd           d	| j         j                            d
d           d	}d| j         j                            dd           d| j         j                            d
d           d| S )z0Generate an Opera web browser user agent string.rW   r[   r\   (z; z) Presto/2.9.      z	 Version/
      z.00zOpera/   ra   rA   c   )rD   rE   rt   rL   rM   rf   rg   rF   )r+   tokenrf   platforms       r,   r   zProvider.opera=  s*    ,0>+@+L+LQ+O+OrD%%'''UYUpUpUrUr 	 n++--55c3??B B B B Bdn.C.K.KCQT.U.U B B~,44R<<B B B 	 q-55a;;ppdn>S>[>[\^`b>c>cppfnpppr.   c                     d| j         j                            dd           d|                                  d| j         j                            dd           d| j         j                            dd	           d
	S )z-Generate an IE web browser user agent string.zMozilla/5.0 (compatible; MSIE r]   ra   z.0; z
; Trident/rq   rA   r   rW   ))rD   rE   rF   rM   r*   s    r,   r   zProvider.internet_explorerI  s    dT^-B-J-J1a-P-P d d**,,d d~,44Q::d d=A^=R=Z=Z[\^_=`=`d d d	
r.   c                 6    |                      | j                  S )z=Generate a Windows platform token used in user agent strings.)r)   r   r*   s    r,   rM   zProvider.windows_platform_tokenQ  s    ""4#?@@@r.   c                 <    d|                      | j                   S )z;Generate a Linux platform token used in user agent strings.zX11; Linux r0   r*   s    r,   rL   zProvider.linux_platform_tokenU  s!    IT001FGGIIIr.   c           	          d|                      | j                   d| j        j                            dd           d| j        j                            dd           S )z;Generate a MacOS platform token used in user agent strings.zMacintosh; z Mac OS X 10_r]   r{   r[   r   ra   )r)   r   rD   rE   rF   r*   s    r,   rN   zProvider.mac_platform_tokenY  sv    \$--d.ABB \ \~$,,Q33\ \6:n6K6S6STUWX6Y6Y\ \	
r.   c                 <    d|                      | j                   S )z>Generate an Android platform token used in user agent strings.zAndroid )r)   r"   r*   s    r,   rO   zProvider.android_platform_token`  s!    F$--d.CDDFFFr.   c                     |                      | j                  }|                      | j                  }| d| d|                    dd           dS )z:Generate an iOS platform token used in user agent strings.z; CPU z OS rA   r[   z like Mac OS X)r)   r%   r&   rg   )r+   apple_deviceios_versions      r,   rP   zProvider.ios_platform_tokend  s_     //0BCC..t/@AAiiliiK<O<OPSUX<Y<Yiiiir.   N)r6   r7   r8   r9   )__name__
__module____qualname____doc__r   r   str__annotations__r   r   r   r"   r%   r&   r-   r1   r5   intr
   r   r   r   r   rM   rL   rN   rO   rP    r.   r,   r	   r	   
   s        ::&Kc"   2\#.   " +=l3'<<<(NNL%NNNC+l3' C C CJ (:M<$999$'L,s# $ $ $L8s 8 8 8 8: : : : :%C % % % % 2? 2?2? 2? 	2?
 2? 
2? 2? 2? 2?h0? 0? 0? 0? 0?d+? +? +? +? +?Z
qs 
q 
q 
q 
q
3 
 
 
 
A A A A AJc J J J J
C 
 
 
 
G G G G GjC j j j j j jr.   r	   )	rI   r   r    r   r   maxrd   r	   r   r.   r,   <module>r      s     ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) )		#.^j ^j ^j ^j ^j| ^j ^j ^j ^j ^jr.   