
    $)f'Q                       d dl mZ ddlmZmZ d dlmZ d dlZd dlZddl	m
Z
 ddl	mZ ddl	mZ e G d	 d
             Ze G d d             Z G d dej                        Ze G d d             Ze G d d             Zd-dZd.dZd.dZd.dZ	 	 	 	 d/dZ	 	 	 	 d0dZ	 d1	 	 	 d2dZ	 	 	 	 	 	 	 	 d3	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d4dZ	 	 	 	 d5dZ	 	 	 	 d6dZ	 d1	 	 	 	 	 d7dZ	 	 d8	 	 	 	 	 d9dZ	 	 	 	 d:dZ	 	 	 d;	 	 	 	 	 	 	 d<d Z 	 	 	 	 d=d!Z!	 	 	 	 d>d"Z"	 	 	 	 d?d#Z#	 d1	 	 	 	 	 d@d$Z$	 	 	 	 dA	 	 	 	 	 	 	 	 	 	 	 dBd%Z%	 d1	 	 	 dCd&Z&	 	 	 	 dDd'Z'	 	 	 	 	 	 dEd(Z(	 	 	 d;	 	 	 	 	 	 	 	 	 dFd)Z) ed*      e G d+ d,                    Z*y)G    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)network)pagec                  <    e Zd ZU dZded<   ded<   d Zed        Zy)	ScreenOrientationz
    Screen orientation.
    strtype_intanglec                V    t               }| j                  |d<   | j                  |d<   |S )Ntyper   )dictr   r   selfjsons     m/var/www/html/flask-app/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/emulation.pyto_jsonzScreenOrientation.to_json   s(    vzzV

W    c                F     | t        |d         t        |d               S )Nr   r   )r   r   )r   r   clsr   s     r   	from_jsonzScreenOrientation.from_json"   s'    d6l#d7m$
 	
r   N__name__
__module____qualname____doc____annotations__r   classmethodr    r   r   r   r      s.     J J 
 
r   r   c                  8    e Zd ZU ded<   ded<   d Zed        Zy)MediaFeaturer   namevaluec                V    t               }| j                  |d<   | j                  |d<   |S )Nr(   r)   )r   r(   r)   r   s     r   r   zMediaFeature.to_json0   s(    vyyV

Wr   c                F     | t        |d         t        |d               S )Nr(   r)   )r(   r)   r   r   s     r   r   zMediaFeature.from_json6   s'    T&\"d7m$
 	
r   N)r   r    r!   r#   r   r$   r   r%   r   r   r'   r'   *   s%    
IJ 
 
r   r'   c                  2    e Zd ZdZdZdZdZd Zed        Z	y)VirtualTimePolicya?  
    advance: If the scheduler runs out of immediate work, the virtual time base may fast forward to
    allow the next delayed task (if any) to run; pause: The virtual time base may not advance;
    pauseIfNetworkFetchesPending: The virtual time base may not advance if there are any pending
    resource fetches.
    advancepausepauseIfNetworkFetchesPendingc                    | j                   S N)r)   )r   s    r   r   zVirtualTimePolicy.to_jsonI   s    zzr   c                     | |      S r3   r%   r   s     r   r   zVirtualTimePolicy.from_jsonL   s    4yr   N)
r   r    r!   r"   ADVANCEPAUSE PAUSE_IF_NETWORK_FETCHES_PENDINGr   r$   r   r%   r   r   r.   r.   >   s2     GE'E$  r   r.   c                  <    e Zd ZU dZded<   ded<   d Zed        Zy)UserAgentBrandVersiong
    Used to specify User Agent Cient Hints to emulate. See https://wicg.github.io/ua-client-hints
    r   brandversionc                V    t               }| j                  |d<   | j                  |d<   |S )Nr;   r<   )r   r;   r<   r   s     r   r   zUserAgentBrandVersion.to_jsonZ   s(    v

W,,Yr   c                F     | t        |d         t        |d               S )Nr;   r<   )r;   r<   r,   r   s     r   r   zUserAgentBrandVersion.from_json`   s'    d7m$Y(
 	
r   Nr   r%   r   r   r9   r9   Q   s,     JL 
 
r   r9   c                  n    e Zd ZU dZded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   d Zed        Zy)UserAgentMetadatar:   z"typing.List[UserAgentBrandVersion]brandsr   full_versionplatformplatform_versionarchitecturemodelboolmobilec                .   t               }| j                  D cg c]  }|j                          c}|d<   | j                  |d<   | j                  |d<   | j
                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   |S c c}w )NrA   fullVersionrC   platformVersionrE   rF   rH   )	r   rA   r   rB   rC   rD   rE   rF   rH   )r   r   is      r   r   zUserAgentMetadata.to_json{   s    v/3{{;!!))+;X"//]==Z"&"7"7#00^

WX <s   Bc                    | |d   D cg c]  }t         j                  |       c}t        |d         t        |d         t        |d         t        |d         t        |d         t        |d               S c c}w )	NrA   rJ   rC   rK   rE   rF   rH   )rA   rB   rC   rD   rE   rF   rH   )r9   r   r   rG   )r   r   rL   s      r   r   zUserAgentMetadata.from_json   s}    @DXO1)33A6OT-01j)* &7!89T.12d7m$X'
 	
Os   A<Nr   r%   r   r   r@   r@   h   sI     /.MJL	 	
 	
r   r@   c               #  6   K   ddi} | }t        |d         S w)z^
    Tells whether emulation is supported.

    :returns: True if emulation is supported.
    methodzEmulation.canEmulateresult)rG   cmd_dictr   s     r   can_emulaterS      s-      	(H >DXs   c               #     K   ddi} | }yw)z/
    Clears the overridden device metrics.
    rO   z$Emulation.clearDeviceMetricsOverrideNr%   rQ   s     r   clear_device_metrics_overriderU      s     
 	8H >D   
c               #     K   ddi} | }yw)z?
    Clears the overridden Geolocation Position and Error.
    rO   z"Emulation.clearGeolocationOverrideNr%   rQ   s     r   clear_geolocation_overriderX      s     
 	6H >DrV   c               #     K   ddi} | }yw)z[
    Requests that page scale factor is reset to initial values.

    **EXPERIMENTAL**
    rO   zEmulation.resetPageScaleFactorNr%   rQ   s     r   reset_page_scale_factorrZ      s      	2H >DrV   c              #  <   K   t               }| |d<   d|d}|}yw)z
    Enables or disables simulating a focused and active page.

    **EXPERIMENTAL**

    :param enabled: Whether to enable to disable focus emulation.
    enabledz"Emulation.setFocusEmulationEnabledrO   paramsNr   )r\   r^   rR   r   s       r   set_focus_emulation_enabledr`      s/      &FF96H >D   c              #  <   K   t               }| |d<   d|d}|}yw)z
    Enables CPU throttling to emulate slow CPUs.

    **EXPERIMENTAL**

    :param rate: Throttling rate as a slowdown factor (1 is no throttle, 2 is 2x slowdown, etc).
    ratezEmulation.setCPUThrottlingRater]   Nr_   )rc   r^   rR   r   s       r   set_cpu_throttling_raterd      s.      &FF6N2H >Dra   c              #  \   K   t               }| | j                         |d<   d|d}|}yw)a  
    Sets or clears an override of the default background color of the frame. This override is used
    if the content does not specify one.

    :param color: *(Optional)* RGBA of the default background color. If not specified, any existing override will be cleared.
    Ncolorz+Emulation.setDefaultBackgroundColorOverrider]   r   r   )rf   r^   rR   r   s       r   %set_default_background_color_overriderh      s:      &F--/w?H >D   *,c              #    K   t               }| |d<   ||d<   ||d<   ||d<   |||d<   |||d<   |||d<   |||d	<   |||d
<   |	|	|d<   |
|
j                         |d<   ||j                         |d<   d|d}|}yw)a  
    Overrides the values of device screen dimensions (window.screen.width, window.screen.height,
    window.innerWidth, window.innerHeight, and "device-width"/"device-height"-related CSS media
    query results).

    :param width: Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override.
    :param height: Overriding height value in pixels (minimum 0, maximum 10000000). 0 disables the override.
    :param device_scale_factor: Overriding device scale factor value. 0 disables the override.
    :param mobile: Whether to emulate mobile device. This includes viewport meta tag, overlay scrollbars, text autosizing and more.
    :param scale: **(EXPERIMENTAL)** *(Optional)* Scale to apply to resulting view image.
    :param screen_width: **(EXPERIMENTAL)** *(Optional)* Overriding screen width value in pixels (minimum 0, maximum 10000000).
    :param screen_height: **(EXPERIMENTAL)** *(Optional)* Overriding screen height value in pixels (minimum 0, maximum 10000000).
    :param position_x: **(EXPERIMENTAL)** *(Optional)* Overriding view X position on screen in pixels (minimum 0, maximum 10000000).
    :param position_y: **(EXPERIMENTAL)** *(Optional)* Overriding view Y position on screen in pixels (minimum 0, maximum 10000000).
    :param dont_set_visible_size: **(EXPERIMENTAL)** *(Optional)* Do not set visible view size, rely upon explicit setVisibleSize call.
    :param screen_orientation: *(Optional)* Screen orientation override.
    :param viewport: **(EXPERIMENTAL)** *(Optional)* If set, the visible area of the page will be overridden to this viewport. This viewport change is not observed by the page, e.g. viewport-relative elements do not change positions.
    widthheightdeviceScaleFactorrH   NscalescreenWidthscreenHeight	positionX	positionYdontSetVisibleSizescreenOrientationviewportz"Emulation.setDeviceMetricsOverrider]   rg   )rk   rl   device_scale_factorrH   rn   screen_widthscreen_height
position_x
position_ydont_set_visible_sizescreen_orientationru   r^   rR   r   s                  r   set_device_metrics_overrider}      s     @ &FF7OF8"5FF8w ,} !.~({({('<#$%&8&@&@&B"#%--/z6H >Ds   A=A?c              #  <   K   t               }| |d<   d|d}|}yw)z\


    **EXPERIMENTAL**

    :param hidden: Whether scrollbars should be always hidden.
    hiddenzEmulation.setScrollbarsHiddenr]   Nr_   )r   r^   rR   r   s       r   set_scrollbars_hiddenr   5  s/      &FF81H >Dra   c              #  <   K   t               }| |d<   d|d}|}yw)zc


    **EXPERIMENTAL**

    :param disabled: Whether document.coookie API should be disabled.
    disabledz#Emulation.setDocumentCookieDisabledr]   Nr_   )r   r^   rR   r   s       r   set_document_cookie_disabledr   H  s/      &F!F:7H >Dra   c              #  J   K   t               }| |d<   |||d<   d|d}|}yw)z


    **EXPERIMENTAL**

    :param enabled: Whether touch emulation based on mouse input should be enabled.
    :param configuration: *(Optional)* Touch/gesture events configuration. Default: current platform.
    r\   Nconfigurationz$Emulation.setEmitTouchEventsForMouser]   r_   )r\   r   r^   rR   r   s        r   set_emit_touch_events_for_mouser   [  s?      &FF9 "/8H >D   !#c              #     K   t               }| | |d<   |!|D cg c]  }|j                          c}|d<   d|d}|}yc c}w w)z
    Emulates the given media type or media feature for CSS media queries.

    :param media: *(Optional)* Media type to emulate. Empty string disables the override.
    :param features: *(Optional)* Media features to emulate.
    NmediafeatureszEmulation.setEmulatedMediar]   rg   )r   r   r^   rL   rR   r   s         r   set_emulated_mediar   r  sZ      &Fw3;<aaiik<z.H >D =s   AAAc              #  <   K   t               }| |d<   d|d}|}yw)zv
    Emulates the given vision deficiency.

    **EXPERIMENTAL**

    :param type_: Vision deficiency to emulate.
    r   z%Emulation.setEmulatedVisionDeficiencyr]   Nr_   )r   r^   rR   r   s       r   set_emulated_vision_deficiencyr     s.      &FF6N9H >Dra   c              #  \   K   t               }| | |d<   |||d<   |||d<   d|d}|}yw)a  
    Overrides the Geolocation Position or Error. Omitting any of the parameters emulates position
    unavailable.

    :param latitude: *(Optional)* Mock latitude
    :param longitude: *(Optional)* Mock longitude
    :param accuracy: *(Optional)* Mock accuracy
    Nlatitude	longitudeaccuracyz Emulation.setGeolocationOverrider]   r_   )r   r   r   r^   rR   r   s         r   set_geolocation_overrider     sU      &F%z'{%z4H >Dri   c              #  <   K   t               }| |d<   d|d}|}yw)z
    Overrides value returned by the javascript navigator object.

    **EXPERIMENTAL**

    :param platform: The platform navigator.platform should return.
    rC   zEmulation.setNavigatorOverridesr]   Nr_   )rC   r^   rR   r   s       r   set_navigator_overridesr     s/      &F!F:3H >Dra   c              #  <   K   t               }| |d<   d|d}|}yw)zu
    Sets a specified page scale factor.

    **EXPERIMENTAL**

    :param page_scale_factor: Page scale factor.
    pageScaleFactorzEmulation.setPageScaleFactorr]   Nr_   )page_scale_factorr^   rR   r   s       r   set_page_scale_factorr     s0      &F 1F0H >Dra   c              #  <   K   t               }| |d<   d|d}|}yw)z|
    Switches script execution in the page.

    :param value: Whether script execution should be disabled in the page.
    r)   z$Emulation.setScriptExecutionDisabledr]   Nr_   )r)   r^   rR   r   s       r   set_script_execution_disabledr     s.      &FF7O8H >Dra   c              #  J   K   t               }| |d<   |||d<   d|d}|}yw)z
    Enables touch on platforms which do not support them.

    :param enabled: Whether the touch event emulation should be enabled.
    :param max_touch_points: *(Optional)* Maximum touch points supported. Defaults to one.
    r\   NmaxTouchPointsz"Emulation.setTouchEmulationEnabledr]   r_   )r\   max_touch_pointsr^   rR   r   s        r   set_touch_emulation_enabledr     s@      &FF9##3 6H >Dr   c              #     K   t               }| j                         |d<   |||d<   |||d<   |||d<   ||j                         |d<   d|d}|}t        |d         S w)	a  
    Turns on virtual time for all frames (replacing real-time with a synthetic time source) and sets
    the current virtual time policy.  Note this supersedes any previous time budget.

    **EXPERIMENTAL**

    :param policy:
    :param budget: *(Optional)* If set, after this many virtual milliseconds have elapsed virtual time will be paused and a virtualTimeBudgetExpired event is sent.
    :param max_virtual_time_task_starvation_count: *(Optional)* If set this specifies the maximum number of tasks that can be run before virtual is forced forwards to prevent deadlock.
    :param wait_for_navigation: *(Optional)* If set the virtual time policy change should be deferred until any frame starts navigating. Note any previous deferred policy change is superseded.
    :param initial_virtual_time: *(Optional)* If set, base::Time::Now will be overridden to initially return this value.
    :returns: Absolute timestamp at which virtual time was first enabled (up time in milliseconds).
    policybudget!maxVirtualTimeTaskStarvationCountwaitForNavigationinitialVirtualTimezEmulation.setVirtualTimePolicyr]   virtualTimeTicksBase)r   r   float)r   r   &max_virtual_time_task_starvation_countwait_for_navigationinitial_virtual_timer^   rR   r   s           r   set_virtual_time_policyr     s     ( &F~~'F8!x-96\23&&9"#'';'C'C'E#$2H >D,-..s   AA!c              #  @   K   t               }| | |d<   d|d}|}yw)z
    Overrides default host system locale with the specified one.

    **EXPERIMENTAL**

    :param locale: *(Optional)* ICU style C locale (e.g. "en_US"). If not specified or empty, disables the override and restores default host system locale.
    NlocalezEmulation.setLocaleOverrider]   r_   )r   r^   rR   r   s       r   set_locale_overrider   (  s5      &F!x/H >Ds   c              #  <   K   t               }| |d<   d|d}|}yw)z
    Overrides default host system timezone with the specified one.

    **EXPERIMENTAL**

    :param timezone_id: The timezone identifier. If empty, disables the override and restores default host system timezone.
    
timezoneIdzEmulation.setTimezoneOverrider]   Nr_   )timezone_idr^   rR   r   s       r   set_timezone_overrider   <  s/      &F&F<1H >Dra   c              #  F   K   t               }| |d<   ||d<   d|d}|}yw)a<  
    Resizes the frame/viewport of the page. Note that this does not affect the frame's container
    (e.g. browser window). Can be used to produce screenshots of the specified size. Not supported
    on Android.

    **EXPERIMENTAL**

    :param width: Frame width (DIP).
    :param height: Frame height (DIP).
    rk   rl   zEmulation.setVisibleSizer]   Nr_   )rk   rl   r^   rR   r   s        r   set_visible_sizer   O  s8      &FF7OF8,H >Ds   !c              #     K   t               }| |d<   |||d<   |||d<   ||j                         |d<   d|d}|}yw)a  
    Allows overriding user agent with the given string.

    :param user_agent: User agent to use.
    :param accept_language: *(Optional)* Browser langugage to emulate.
    :param platform: *(Optional)* The platform navigator.platform should return.
    :param user_agent_metadata: **(EXPERIMENTAL)** *(Optional)* To be sent in Sec-CH-UA-* headers and returned in navigator.userAgentData
    	userAgentNacceptLanguagerC   userAgentMetadatazEmulation.setUserAgentOverrider]   rg   )
user_agentaccept_languagerC   user_agent_metadatar^   rR   r   s          r   set_user_agent_overrider   g  sj      &F$F;"#2 %z&&9&A&A&C"#2H >Ds   =?z"Emulation.virtualTimeBudgetExpiredc                  "    e Zd ZdZedd       Zy)VirtualTimeBudgetExpiredz~
    **EXPERIMENTAL**

    Notification sent after the virtual time budget for the current VirtualTimePolicy has run out.
    c                     |        S r3   r%   r   s     r   r   z"VirtualTimeBudgetExpired.from_json  s     
 	
r   N)r   r   returnr   )r   r    r!   r"   r$   r   r%   r   r   r   r     s     
 
r   r   )r   z0typing.Generator[T_JSON_DICT, T_JSON_DICT, bool])r   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])r\   rG   r   r   )rc   r   r   r   r3   )rf   ztyping.Optional[dom.RGBA]r   r   )NNNNNNNN)rk   r   rl   r   rv   r   rH   rG   rn   typing.Optional[float]rw   typing.Optional[int]rx   r   ry   r   rz   r   r{   typing.Optional[bool]r|   z"typing.Optional[ScreenOrientation]ru   ztyping.Optional[page.Viewport]r   r   )r   rG   r   r   )r   rG   r   r   )r\   rG   r   typing.Optional[str]r   r   )NN)r   r   r   z*typing.Optional[typing.List[MediaFeature]]r   r   )r   r   r   r   )NNN)r   r   r   r   r   r   r   r   )rC   r   r   r   )r   r   r   r   )r)   rG   r   r   )r\   rG   r   r   r   r   )NNNN)r   r.   r   r   r   r   r   r   r   z'typing.Optional[network.TimeSinceEpoch]r   z1typing.Generator[T_JSON_DICT, T_JSON_DICT, float])r   r   r   r   )r   r   r   r   )rk   r   rl   r   r   r   )
r   r   r   r   rC   r   r   z"typing.Optional[UserAgentMetadata]r   r   )+
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r
   r   r'   Enumr.   r9   r@   rS   rU   rX   rZ   r`   rd   rh   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r%   r   r   <module>r      s   # * !      
 
 
0 
 
 
&		 & 
 
 
, '
 '
 '
T
 		7&	7( ,0(	70 )--1.2+/+/7;AE37999 #9 	9
 &9 +9 ,9 )9 )9  59 ?9 19 
89x	7&	7* /3+ 
80 '+?C#< 
8,	7( ,0,0+/() ) 
8	6	7& 	7&	7& 26. 
8. *.GK59HL#/!#/&#/ 1E#/ 3	#/
 F#/ 
9#/N (,$	7(	7& 
84 15)-BF	- ' @	
 
8: 12

 
  3
r   