
    hg_                       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e G d d                      Z G d dej                  Ze G d d                      Ze G d d                      Z G d dej                  ZdsdZdtdZdtdZdtdZdud Z	 dvdwd"Zdxd%Z	 dvdyd(Z	 	 	 	 	 	 	 	 	 dzd{d<Zd|d>Zd}d@Z	 dvd~dCZ 	 	 dddGZ!ddJZ"	 	 	 dddNZ#ddQZ$dtdRZ%ddTZ&ddVZ'ddXZ(	 dvddZZ)	 	 	 	 dddbZ*	 dvdddZ+ddfZ,ddgZ-ddjZ.	 	 	 dddoZ/ edp          e G dq dr                                  Z0dS )    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)network)pagec                  D    e Zd ZU dZded<   ded<   d Zed             ZdS )	ScreenOrientationz
    Screen orientation.
    strtype_intanglec                J    t                      }| j        |d<   | j        |d<   |S )Ntyper   )dictr   r   selfjsons     i/var/www/fb-scrape/myenv/lib/python3.11/site-packages/selenium/webdriver/common/devtools/v95/emulation.pyto_jsonzScreenOrientation.to_json   s&    vvzV
W    c                h     | t          |d                   t          |d                             S )Nr   r   )r   r   r   r   clsr   s     r   	from_jsonzScreenOrientation.from_json"   s9    sd6l##d7m$$
 
 
 	
r   N__name__
__module____qualname____doc____annotations__r   classmethodr    r   r   r   r      s`           JJJ JJJ   
 
 [
 
 
r   r   c                  J    e Zd ZU ded<   ded<   ded<   d Zed             ZdS )	DisplayFeaturer   orientationr   offsetmask_lengthc                ^    t                      }| j        |d<   | j        |d<   | j        |d<   |S )Nr)   r*   
maskLength)r   r)   r*   r+   r   s     r   r   zDisplayFeature.to_json8   s5    vv".]X!-\r   c                     | t          |d                   t          |d                   t          |d                             S )Nr)   r*   r-   )r)   r*   r+   r   r   s     r   r   zDisplayFeature.from_json?   sJ    sD/00tH~&&D.//
 
 
 	
r   Nr    r!   r"   r$   r   r%   r   r&   r   r   r(   r(   *   sg           KKK
    
 
 [
 
 
r   r(   c                  @    e Zd ZU ded<   ded<   d Zed             ZdS )MediaFeaturer   namevaluec                J    t                      }| j        |d<   | j        |d<   |S )Nr2   r3   )r   r2   r3   r   s     r   r   zMediaFeature.to_jsonN   s&    vvyV
Wr   c                h     | t          |d                   t          |d                             S )Nr2   r3   )r2   r3   r   r   s     r   r   zMediaFeature.from_jsonT   s9    sT&\""d7m$$
 
 
 	
r   Nr/   r&   r   r   r1   r1   H   sR         IIIJJJ   
 
 [
 
 
r   r1   c                  :    e Zd ZdZdZdZdZd Zed             Z	dS )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r3   r   s    r   r   zVirtualTimePolicy.to_jsong   
    zr   c                     | |          S r=   r&   r   s     r   r   zVirtualTimePolicy.from_jsonj       s4yyr   N)
r    r!   r"   r#   ADVANCEPAUSE PAUSE_IF_NETWORK_FETCHES_PENDINGr   r%   r   r&   r   r   r8   r8   \   sZ          GE'E$     [  r   r8   c                  D    e Zd ZU dZded<   ded<   d Zed             ZdS )UserAgentBrandVersionzg
    Used to specify User Agent Cient Hints to emulate. See https://wicg.github.io/ua-client-hints
    r   brandversionc                J    t                      }| j        |d<   | j        |d<   |S )NrH   rI   )r   rH   rI   r   s     r   r   zUserAgentBrandVersion.to_jsonx   s&    vv
W,Yr   c                h     | t          |d                   t          |d                             S )NrH   rI   )rH   rI   r6   r   s     r   r   zUserAgentBrandVersion.from_json~   s9    sd7m$$Y((
 
 
 	
r   Nr   r&   r   r   rG   rG   o   s^           JJJLLL   
 
 [
 
 
r   rG   c                  ~    e Zd ZU dZded<   ded<   ded<   ded<   ded<   d	Zd
ed<   d	Zded<   d Zed             Z	d	S )UserAgentMetadataz
    Used to specify User Agent Cient Hints to emulate. See https://wicg.github.io/ua-client-hints
    Missing optional values will be filled in by the target with what it would normally use.
    r   platformplatform_versionarchitecturemodelboolmobileNz3typing.Optional[typing.List[UserAgentBrandVersion]]brandstyping.Optional[str]full_versionc                    t                      }| j        |d<   | j        |d<   | j        |d<   | j        |d<   | j        |d<   | j        d | j        D             |d<   | j        
| j        |d<   |S )	NrN   platformVersionrP   rQ   rS   c                6    g | ]}|                                 S r&   r   .0is     r   
<listcomp>z-UserAgentMetadata.to_json.<locals>.<listcomp>   s     ???aaiikk???r   rT   fullVersion)r   rN   rO   rP   rQ   rS   rT   rV   r   s     r   r   zUserAgentMetadata.to_json   s    vv=Z"&"7#0^
WX;"??4;???DN("&"3Dr   c                B    | t          |d                   t          |d                   t          |d                   t          |d                   t          |d                   d|v rd |d         D             nd d|v rt          |d                   nd 	          S )
NrN   rX   rP   rQ   rS   rT   c                B    g | ]}t                               |          S r&   )rG   r   r[   s     r   r^   z/UserAgentMetadata.from_json.<locals>.<listcomp>   s'    OOO1)33A66OOOr   r_   )rN   rO   rP   rQ   rS   rT   rV   )r   rR   r   s     r   r   zUserAgentMetadata.from_json   s    sj)** &7!899T.122d7m$$X''S[_cScScOOXOOOOim5Bd5J5JT-0111PT
 
 
 	
r   )
r    r!   r"   r#   r$   rT   rV   r   r%   r   r&   r   r   rM   rM      s           MMMJJJLLLBFFFFFF)-L----   	
 	
 [	
 	
 	
r   rM   c                  :    e Zd ZdZdZdZdZd Zed             Z	dS )DisabledImageTypez3
    Enum of image types that can be disabled.
    avifjxlwebpc                    | j         S r=   r>   r?   s    r   r   zDisabledImageType.to_json   r@   r   c                     | |          S r=   r&   r   s     r   r   zDisabledImageType.from_json   rB   r   N)
r    r!   r"   r#   AVIFJXLWEBPr   r%   r   r&   r   r   rc   rc      sY          D
CD     [  r   rc   return0typing.Generator[T_JSON_DICT, T_JSON_DICT, bool]c               #  @   K   ddi} | V }t          |d                   S )z^
    Tells whether emulation is supported.

    :returns: True if emulation is supported.
    methodzEmulation.canEmulateresult)rR   cmd_dictr   s     r   can_emulaters      s2       	(H >>DXr   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c               #     K   ddi} | V }dS )z/
    Clears the overridden device metrics.
    ro   z$Emulation.clearDeviceMetricsOverrideNr&   rq   s     r   clear_device_metrics_overriderv      s$      
 	8H >>DDDr   c               #     K   ddi} | V }dS )z?
    Clears the overridden Geolocation Position and Error.
    ro   z"Emulation.clearGeolocationOverrideNr&   rq   s     r   clear_geolocation_overriderx      s$      
 	6H >>DDDr   c               #     K   ddi} | V }dS )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 >>DDDr   enabledrR   c              #  B   K   t                      }| |d<   d|d}|V }dS )z
    Enables or disables simulating a focused and active page.

    **EXPERIMENTAL**

    :param enabled: Whether to enable to disable focus emulation.
    r{   z"Emulation.setFocusEmulationEnabledro   paramsNr   r{   r~   rr   r   s       r   set_focus_emulation_enabledr      s<       &&FF96 H >>DDDr   typing.Optional[bool]c              #  F   K   t                      }| | |d<   d|d}|V }dS )z
    Automatically render all web contents using a dark theme.

    **EXPERIMENTAL**

    :param enabled: *(Optional)* Whether to enable or disable automatic dark mode. If not specified, any existing override will be cleared.
    Nr{   z!Emulation.setAutoDarkModeOverrider}   r   r   s       r   set_auto_dark_mode_overrider     sB       &&F#y5 H >>DDDr   ratefloatc              #  B   K   t                      }| |d<   d|d}|V }dS )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).
    r   zEmulation.setCPUThrottlingRater}   Nr   )r   r~   rr   r   s       r   set_cpu_throttling_rater     s;       &&FF6N2 H >>DDDr   colortyping.Optional[dom.RGBA]c              #  j   K   t                      }| |                                 |d<   d|d}|V }dS )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.
    Nr   z+Emulation.setDefaultBackgroundColorOverrider}   r   r   )r   r~   rr   r   s       r   %set_default_background_color_overrider   +  sI       &&F--//w? H >>DDDr   widthr   heightdevice_scale_factorrS   scaletyping.Optional[float]screen_widthtyping.Optional[int]screen_height
position_x
position_ydont_set_visible_sizescreen_orientation"typing.Optional[ScreenOrientation]viewporttyping.Optional[page.Viewport]display_featuretyping.Optional[DisplayFeature]c              #  J  K   t                      }| |d<   ||d<   ||d<   ||d<   |||d<   |||d<   |||d<   |||d	<   |||d
<   |	|	|d<   |
|
                                |d<   ||                                |d<   ||                                |d<   d|d}|V }dS )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.
    :param display_feature: **(EXPERIMENTAL)** *(Optional)* If set, the display feature of a multi-segment screen. If not set, multi-segment support is turned-off.
    r   r   deviceScaleFactorrS   Nr   screenWidthscreenHeight	positionX	positionYdontSetVisibleSizescreenOrientationr   displayFeaturez"Emulation.setDeviceMetricsOverrider}   r   )r   r   r   rS   r   r   r   r   r   r   r   r   r   r~   rr   r   s                   r   set_device_metrics_overrider   >  s     D &&FF7OF8"5FF8w ,} !.~({({('<#$%&8&@&@&B&B"#%--//z"#2#:#:#<#< 6 H >>DDDr   hiddenc              #  B   K   t                      }| |d<   d|d}|V }dS )z\


    **EXPERIMENTAL**

    :param hidden: Whether scrollbars should be always hidden.
    r   zEmulation.setScrollbarsHiddenr}   Nr   )r   r~   rr   r   s       r   set_scrollbars_hiddenr   ~  s<       &&FF81 H >>DDDr   disabledc              #  B   K   t                      }| |d<   d|d}|V }dS )zc


    **EXPERIMENTAL**

    :param disabled: Whether document.coookie API should be disabled.
    r   z#Emulation.setDocumentCookieDisabledr}   Nr   )r   r~   rr   r   s       r   set_document_cookie_disabledr     s<       &&F!F:7 H >>DDDr   configurationrU   c              #  P   K   t                      }| |d<   |||d<   d|d}|V }dS )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{   Nr   z$Emulation.setEmitTouchEventsForMouser}   r   )r{   r   r~   rr   r   s        r   set_emit_touch_events_for_mouser     sL       &&FF9 "/8 H >>DDDr   mediafeatures*typing.Optional[typing.List[MediaFeature]]c              #  h   K   t                      }| | |d<   |d |D             |d<   d|d}|V }dS )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.
    Nr   c                6    g | ]}|                                 S r&   rZ   r[   s     r   r^   z&set_emulated_media.<locals>.<listcomp>  s     <<<aaiikk<<<r   r   zEmulation.setEmulatedMediar}   r   )r   r   r~   rr   r   s        r   set_emulated_mediar     s_       &&Fw<<8<<<z. H >>DDDr   r   r   c              #  B   K   t                      }| |d<   d|d}|V }dS )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 >>DDDr   latitude	longitudeaccuracyc              #  b   K   t                      }| | |d<   |||d<   |||d<   d|d}|V }dS )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
    Nr   r   r   z Emulation.setGeolocationOverrider}   r   )r   r   r   r~   rr   r   s         r   set_geolocation_overrider     sb       &&F%z'{%z4 H >>DDDr   is_user_activeis_screen_unlockedc              #  L   K   t                      }| |d<   ||d<   d|d}|V }dS )z
    Overrides the Idle state.

    **EXPERIMENTAL**

    :param is_user_active: Mock isUserActive
    :param is_screen_unlocked: Mock isScreenUnlocked
    isUserActiveisScreenUnlockedzEmulation.setIdleOverrider}   Nr   )r   r   r~   rr   r   s        r   set_idle_overrider     sG       &&F+F>!3F- H >>DDDr   c               #     K   ddi} | V }dS )z<
    Clears Idle state overrides.

    **EXPERIMENTAL**
    ro   zEmulation.clearIdleOverrideNr&   rq   s     r   clear_idle_overrider     s$       	/H >>DDDr   rN   c              #  B   K   t                      }| |d<   d|d}|V }dS )z
    Overrides value returned by the javascript navigator object.

    **EXPERIMENTAL**

    :param platform: The platform navigator.platform should return.
    rN   zEmulation.setNavigatorOverridesr}   Nr   )rN   r~   rr   r   s       r   set_navigator_overridesr   !  s<       &&F!F:3 H >>DDDr   page_scale_factorc              #  B   K   t                      }| |d<   d|d}|V }dS )zu
    Sets a specified page scale factor.

    **EXPERIMENTAL**

    :param page_scale_factor: Page scale factor.
    pageScaleFactorzEmulation.setPageScaleFactorr}   Nr   )r   r~   rr   r   s       r   set_page_scale_factorr   4  s=       &&F 1F0 H >>DDDr   r3   c              #  B   K   t                      }| |d<   d|d}|V }dS )z|
    Switches script execution in the page.

    :param value: Whether script execution should be disabled in the page.
    r3   z$Emulation.setScriptExecutionDisabledr}   Nr   )r3   r~   rr   r   s       r   set_script_execution_disabledr   G  s;       &&FF7O8 H >>DDDr   max_touch_pointsc              #  P   K   t                      }| |d<   |||d<   d|d}|V }dS )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{   r   r~   rr   r   s        r   set_touch_emulation_enabledr   X  sM       &&FF9##3 6 H >>DDDr   policybudget&max_virtual_time_task_starvation_countwait_for_navigationinitial_virtual_time'typing.Optional[network.TimeSinceEpoch]1typing.Generator[T_JSON_DICT, T_JSON_DICT, float]c              #     K   t                      }|                                 |d<   |||d<   |||d<   |||d<   ||                                |d<   d|d}|V }t          |d	                   S )
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).
    r   Nr   !maxVirtualTimeTaskStarvationCountwaitForNavigationinitialVirtualTimezEmulation.setVirtualTimePolicyr}   virtualTimeTicksBase)r   r   r   )r   r   r   r   r   r~   rr   r   s           r   set_virtual_time_policyr   m  s      ( &&F~~''F8!x-96\23&&9"#'';'C'C'E'E#$2 H >>D,-...r   localec              #  F   K   t                      }| | |d<   d|d}|V }dS )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.
    Nr   zEmulation.setLocaleOverrider}   r   )r   r~   rr   r   s       r   set_locale_overrider     sB       &&F!x/ H >>DDDr   timezone_idc              #  B   K   t                      }| |d<   d|d}|V }dS )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   )r   r~   rr   r   s       r   set_timezone_overrider     s<       &&F&F<1 H >>DDDr   c              #  L   K   t                      }| |d<   ||d<   d|d}|V }dS )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).
    r   r   zEmulation.setVisibleSizer}   Nr   )r   r   r~   rr   r   s        r   set_visible_sizer     sE       &&FF7OF8, H >>DDDr   image_typestyping.List[DisabledImageType]c              #  V   K   t                      }d | D             |d<   d|d}|V }dS )zM


    **EXPERIMENTAL**

    :param image_types: Image types to disable.
    c                6    g | ]}|                                 S r&   rZ   r[   s     r   r^   z,set_disabled_image_types.<locals>.<listcomp>  s     ===AAIIKK===r   
imageTypeszEmulation.setDisabledImageTypesr}   Nr   )r   r~   rr   r   s       r   set_disabled_image_typesr     sJ       &&F=====F<3 H >>DDDr   
user_agentaccept_languageuser_agent_metadata"typing.Optional[UserAgentMetadata]c              #     K   t                      }| |d<   |||d<   |||d<   ||                                |d<   d|d}|V }dS )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acceptLanguagerN   userAgentMetadatazEmulation.setUserAgentOverrider}   r   )r   r   rN   r   r~   rr   r   s          r   set_user_agent_overrider     sz       &&F$F;"#2 %z&&9&A&A&C&C"#2 H >>DDDr   z"Emulation.virtualTimeBudgetExpiredc                  *    e Zd ZdZedd            ZdS )VirtualTimeBudgetExpiredz~
    **EXPERIMENTAL**

    Notification sent after the virtual time budget for the current VirtualTimePolicy has run out.
    r   r   rl   c                     |             S r=   r&   r   s     r   r   z"VirtualTimeBudgetExpired.from_json  s    s 
 
 	
r   N)r   r   rl   r   )r    r!   r"   r#   r%   r   r&   r   r   r   r     s>          
 
 
 [
 
 
r   r   )rl   rm   )rl   rt   )r{   rR   rl   rt   r=   )r{   r   rl   rt   )r   r   rl   rt   )r   r   rl   rt   )	NNNNNNNNN)r   r   r   r   r   r   rS   rR   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rl   rt   )r   rR   rl   rt   )r   rR   rl   rt   )r{   rR   r   rU   rl   rt   )NN)r   rU   r   r   rl   rt   )r   r   rl   rt   )NNN)r   r   r   r   r   r   rl   rt   )r   rR   r   rR   rl   rt   )rN   r   rl   rt   )r   r   rl   rt   )r3   rR   rl   rt   )r{   rR   r   r   rl   rt   )NNNN)r   r8   r   r   r   r   r   r   r   r   rl   r   )r   rU   rl   rt   )r   r   rl   rt   )r   r   r   r   rl   rt   )r   r   rl   rt   )
r   r   r   rU   rN   rU   r   r   rl   rt   )1
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r
   r   r(   r1   Enumr8   rG   rM   rc   rs   rv   rx   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r&   r   r   <module>r     s   # " " " " " * * * * * * * * ! ! ! ! ! !                     
 
 
 
 
 
 
 
0 
 
 
 
 
 
 
 
: 
 
 
 
 
 
 
 
&    	   & 
 
 
 
 
 
 
 
, *
 *
 *
 *
 *
 *
 *
 *
Z    	    
  
  
  
       	 	 	 	   ( *.    (   ( ,0    0 )--1.2+/+/7;AE37;?= = = = =@   &   * /3    0 '+?C    ,   ( ,0,0+/    6   ,	 	 	 	   &   &   & 26    . *.GK59HL#/ #/ #/ #/ #/N (,    (   &   0   * 15)-BF	    : 122

 
 
 
 
 
 
  32
 
 
r   