Ë
    û—h~r  ã                   óþ   — d dl mZmZmZmZ d dlmZ ddlmZ  G d„ d«      Z	 G d„ d«      Z
 G d	„ d
«      Z G d„ d«      Z G d„ de«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Zy)é    )ÚAnyÚCallableÚOptionalÚUnion)Úcommand_builderé   )ÚSessionc                   ó   — e Zd ZdZdZdZdZy)ÚReadinessStatezSRepresents the stage of document loading at which a navigation command will return.ÚnoneÚinteractiveÚcompleteN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚNONEÚINTERACTIVEÚCOMPLETE© ó    úr/home/bbl/html/w1hd.aprs.trek/venv/lib/python3.12/site-packages/selenium/webdriver/common/bidi/browsing_context.pyr   r      s   „ Ù]à€DØ€KØ�Hr   r   c                   ó    — e Zd ZdZdZdZdZdZy)ÚUserPromptTypez*Represents the possible user prompt types.ÚalertÚbeforeunloadÚconfirmÚpromptN)r   r   r   r   ÚALERTÚBEFORE_UNLOADÚCONFIRMÚPROMPTr   r   r   r   r   !   s   „ Ù4à€EØ"€MØ€GØ�Fr   r   c                   óH   — e Zd ZdZdedee   dedefd„Zede	dd fd	„«       Z
y
)ÚNavigationInfoz*Provides details of an ongoing navigation.ÚcontextÚ
navigationÚ	timestampÚurlc                 ó<   — || _         || _        || _        || _        y ©N)r%   r&   r'   r(   )Úselfr%   r&   r'   r(   s        r   Ú__init__zNavigationInfo.__init__-   s    € ð ˆŒØ$ˆŒØ"ˆŒØˆ�r   ÚjsonÚreturnc                 ó’  — |j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      r|dk  rt        d«      ‚|j                  d«      }|�t        |t        «      st        d	«      ‚ | ||||«      S )
a  Creates a NavigationInfo instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the navigation information.

        Returns:
        -------
            NavigationInfo: A new instance of NavigationInfo.
        r%   ú(context is required and must be a stringr&   únavigation must be a stringr'   r   ú8timestamp is required and must be a non-negative integerr(   ú$url is required and must be a string©ÚgetÚ
isinstanceÚstrÚ
ValueErrorÚint)Úclsr-   r%   r&   r'   r(   s         r   Ú	from_jsonzNavigationInfo.from_json9   s¼   € ð —(‘(˜9Ó%ˆØˆ?¤*¨W´cÔ":ÜÐGÓHÐHà—X‘X˜lÓ+ˆ
ØÐ!¬*°ZÄÔ*EÜÐ:Ó;Ð;à—H‘H˜[Ó)ˆ	ØÐ¤J¨y¼#Ô$>À)ÈaÂ-ÜÐWÓXÐXà�h‰h�u‹oˆØˆ;œj¨¬cÔ2ÜÐCÓDÐDá�7˜J¨	°3Ó7Ð7r   N)r   r   r   r   r7   r   r9   r,   ÚclassmethodÚdictr;   r   r   r   r$   r$   *   sW   „ Ù4ð
àð
ð ˜S‘Mð
ð ð	
ð
 ó
ð ð8˜Tð 8Ð&6ò 8ó ñ8r   r$   c                   ól   — e Zd ZdZ	 	 ddededeed       dededee   d	ee   fd
„Zede	dd fd„«       Z
y)ÚBrowsingContextInfoz)Represents the properties of a navigable.Nr%   r(   ÚchildrenÚclient_windowÚuser_contextÚparentÚoriginal_openerc                 óf   — || _         || _        || _        || _        || _        || _        || _        y r*   )r%   r(   r@   rC   rB   rD   rA   )r+   r%   r(   r@   rA   rB   rC   rD   s           r   r,   zBrowsingContextInfo.__init__[   s8   € ð ˆŒØˆŒØ ˆŒØˆŒØ(ˆÔØ.ˆÔØ*ˆÕr   r-   r.   c           	      óP  — d}|j                  d«      }|�ot        |t        «      st        d«      ‚g }|D ]M  }t        |t        «      st        dt        |«      › �«      ‚|j                  t        j                  |«      «       ŒO |j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      st        d«      ‚|j                  d	«      }|�t        |t        «      st        d
«      ‚|j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }	|	�t        |	t        «      st        d«      ‚|j                  d«      }
|
�t        |
t        «      st        d«      ‚ | ||||
|||	¬«      S )a!  Creates a BrowsingContextInfo instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the browsing context information.

        Returns:
        -------
            BrowsingContextInfo: A new instance of BrowsingContextInfo.
        Nr@   z#children must be a list if providedz%Each child must be a dictionary, got r%   r0   r(   r3   rC   z#parent must be a string if providedÚuserContextz,userContext is required and must be a stringÚoriginalOpenerz+originalOpener must be a string if providedÚclientWindowz-clientWindow is required and must be a string)r%   r(   r@   rA   rB   rC   rD   )
r5   r6   Úlistr8   r=   ÚtypeÚappendr?   r;   r7   )r:   r-   r@   Úraw_childrenÚchildr%   r(   rC   rB   rD   rA   s              r   r;   zBrowsingContextInfo.from_jsonm   s›  € ð ˆØ—x‘x 
Ó+ˆØÐ#Ü˜l¬DÔ1Ü Ð!FÓGÐGàˆHØ%ò F�Ü! %¬Ô.Ü$Ð'LÌTÐRWË[ÈMÐ%ZÓ[Ð[Ø—‘Ô 3× =Ñ =¸eÓ DÕEðFð
 —(‘(˜9Ó%ˆØˆ?¤*¨W´cÔ":ÜÐGÓHÐHà�h‰h�u‹oˆØˆ;œj¨¬cÔ2ÜÐCÓDÐDà—‘˜(Ó#ˆØÐ¤j°¼Ô&=ÜÐBÓCÐCà—x‘x Ó.ˆØÐ¤z°,ÄÔ'DÜÐKÓLÐLàŸ(™(Ð#3Ó4ˆØÐ&¬z¸/Ì3Ô/OÜÐJÓKÐKàŸ™ Ó0ˆØÐ ¬
°=Ä#Ô(FÜÐLÓMÐMáØØØØ'Ø%ØØ+ô
ð 	
r   ©NN)r   r   r   r   r7   r   rJ   r,   r<   r=   r;   r   r   r   r?   r?   X   sŒ   „ Ù3ð !%Ø)-ñ+àð+ð ð+ð ˜4Ð 5Ñ6Ñ7ð	+ð
 ð+ð ð+ð ˜‘ð+ð " #™ó+ð$ ð7
˜Tð 7
Ð&;ò 7
ó ñ7
r   r?   c            
       óX   ‡ — e Zd ZdZdedee   dededef
ˆ fd„Zede	d	d fd
„«       Z
ˆ xZS )ÚDownloadWillBeginParamsz+Parameters for the downloadWillBegin event.r%   r&   r'   r(   Úsuggested_filenamec                 ó8   •— t         ‰| �  ||||«       || _        y r*   )Úsuperr,   rR   )r+   r%   r&   r'   r(   rR   Ú	__class__s         €r   r,   z DownloadWillBeginParams.__init__«   s    ø€ ô 	‰Ñ˜ *¨i¸Ô=Ø"4ˆÕr   r-   r.   c                 óò  — |j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      r|dk  rt        d«      ‚|j                  d«      }|�t        |t        «      st        d	«      ‚|j                  d
«      }|�t        |t        «      st        d«      ‚ | |||||¬«      S )a$  Creates a DownloadWillBeginParams instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the download parameters.

        Returns:
        -------
            DownloadWillBeginParams: A new instance of DownloadWillBeginParams.
        r%   r0   r&   r1   r'   r   r2   r(   r3   ÚsuggestedFilenamez2suggestedFilename is required and must be a string)r%   r&   r'   r(   rR   r4   )r:   r-   r%   r&   r'   r(   rR   s          r   r;   z!DownloadWillBeginParams.from_json¶   só   € ð —(‘(˜9Ó%ˆØˆ?¤*¨W´cÔ":ÜÐGÓHÐHà—X‘X˜lÓ+ˆ
ØÐ!¬*°ZÄÔ*EÜÐ:Ó;Ð;à—H‘H˜[Ó)ˆ	ØÐ¤J¨y¼#Ô$>À)ÈaÂ-ÜÐWÓXÐXà�h‰h�u‹oˆØˆ;œj¨¬cÔ2ÜÐCÓDÐDà!ŸX™XÐ&9Ó:ÐØÐ%¬ZÐ8JÌCÔ-PÜÐQÓRÐRáØØ!ØØØ1ô
ð 	
r   )r   r   r   r   r7   r   r9   r,   r<   r=   r;   Ú__classcell__)rU   s   @r   rQ   rQ   ¨   sb   ø„ Ù5ð	5àð	5ð ˜S‘Mð	5ð ð		5ð
 ð	5ð  õ	5ð ð%
˜Tð %
Ð&?ò %
ó ô%
r   rQ   c                   óP   — e Zd ZdZ	 ddededededee   f
d„Zed	ed
d fd„«       Z	y)ÚUserPromptOpenedParamsz*Parameters for the userPromptOpened event.Nr%   ÚhandlerÚmessagerK   Údefault_valuec                 óJ   — || _         || _        || _        || _        || _        y r*   ©r%   r[   r\   rK   r]   )r+   r%   r[   r\   rK   r]   s         r   r,   zUserPromptOpenedParams.__init__â   s(   € ð ˆŒØˆŒØˆŒØˆŒ	Ø*ˆÕr   r-   r.   c                 óè  — |j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      st        d«      ‚|j                  d	«      }|�t        |t        «      st        d
«      ‚ | |||||¬«      S )a$  Creates a UserPromptOpenedParams instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the user prompt parameters.

        Returns:
        -------
            UserPromptOpenedParams: A new instance of UserPromptOpenedParams.
        r%   r0   r[   z(handler is required and must be a stringr\   z(message is required and must be a stringrK   ú%type is required and must be a stringÚdefaultValuez)defaultValue must be a string if providedr_   ©r5   r6   r7   r8   )r:   r-   r%   r[   r\   Ú
type_valuer]   s          r   r;   z UserPromptOpenedParams.from_jsonð   sê   € ð —(‘(˜9Ó%ˆØˆ?¤*¨W´cÔ":ÜÐGÓHÐHà—(‘(˜9Ó%ˆØˆ?¤*¨W´cÔ":ÜÐGÓHÐHà—(‘(˜9Ó%ˆØˆ?¤*¨W´cÔ":ÜÐGÓHÐHà—X‘X˜fÓ%ˆ
ØÐ¤Z°
¼CÔ%@ÜÐDÓEÐEàŸ™ Ó0ˆØÐ$¬Z¸ÄsÔ-KÜÐHÓIÐIáØØØØØ'ô
ð 	
r   r*   )
r   r   r   r   r7   r   r,   r<   r=   r;   r   r   r   rZ   rZ   ß   sf   „ Ù4ð (,ñ+àð+ð ð+ð ð	+ð
 ð+ð   ‘}ó+ð ð%
˜Tð %
Ð&>ò %
ó ñ%
r   rZ   c            
       óL   — e Zd ZdZ	 ddedededee   fd„Zede	d	d fd
„«       Z
y)ÚUserPromptClosedParamsz*Parameters for the userPromptClosed event.Nr%   ÚacceptedrK   Ú	user_textc                 ó<   — || _         || _        || _        || _        y r*   ©r%   rg   rK   rh   )r+   r%   rg   rK   rh   s        r   r,   zUserPromptClosedParams.__init__  s    € ð ˆŒØ ˆŒØˆŒ	Ø"ˆ�r   r-   r.   c                 óŠ  — |j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      st        d«      ‚ | ||||¬	«      S )
a+  Creates a UserPromptClosedParams instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the user prompt closed parameters.

        Returns:
        -------
            UserPromptClosedParams: A new instance of UserPromptClosedParams.
        r%   r0   rg   z*accepted is required and must be a booleanrK   ra   ÚuserTextz%userText must be a string if providedrj   )r5   r6   r7   r8   Úbool)r:   r-   r%   rg   rd   rh   s         r   r;   z UserPromptClosedParams.from_json(  sÀ   € ð —(‘(˜9Ó%ˆØˆ?¤*¨W´cÔ":ÜÐGÓHÐHà—8‘8˜JÓ'ˆØÐ¤:¨h¼Ô#=ÜÐIÓJÐJà—X‘X˜fÓ%ˆ
ØÐ¤Z°
¼CÔ%@ÜÐDÓEÐEà—H‘H˜ZÓ(ˆ	ØÐ ¬°I¼sÔ)CÜÐDÓEÐEáØØØØô	
ð 	
r   r*   )r   r   r   r   r7   rm   r   r,   r<   r=   r;   r   r   r   rf   rf     s\   „ Ù4ð $(ñ
#àð
#ð ð
#ð ð	
#ð
 ˜C‘=ó
#ð ð 
˜Tð  
Ð&>ò  
ó ñ 
r   rf   c                   ó>   — e Zd ZdZdededefd„Zededd fd„«       Z	y	)
ÚHistoryUpdatedParamsz(Parameters for the historyUpdated event.r%   r'   r(   c                 ó.   — || _         || _        || _        y r*   ©r%   r'   r(   )r+   r%   r'   r(   s       r   r,   zHistoryUpdatedParams.__init__O  s   € ð ˆŒØ"ˆŒØˆ�r   r-   r.   c                 ó6  — |j                  d«      }|�t        |t        «      st        d«      ‚|j                  d«      }|�t        |t        «      r|dk  rt        d«      ‚|j                  d«      }|�t        |t        «      st        d«      ‚ | |||¬«      S )	a"  Creates a HistoryUpdatedParams instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the history updated parameters.

        Returns:
        -------
            HistoryUpdatedParams: A new instance of HistoryUpdatedParams.
        r%   r0   r'   r   r2   r(   r3   rq   r4   )r:   r-   r%   r'   r(   s        r   r;   zHistoryUpdatedParams.from_jsonY  s˜   € ð —(‘(˜9Ó%ˆØˆ?¤*¨W´cÔ":ÜÐGÓHÐHà—H‘H˜[Ó)ˆ	ØÐ¤J¨y¼#Ô$>À)ÈaÂ-ÜÐWÓXÐXà�h‰h�u‹oˆØˆ;œj¨¬cÔ2ÜÐCÓDÐDáØØØô
ð 	
r   N)
r   r   r   r   r7   r9   r,   r<   r=   r;   r   r   r   ro   ro   L  sI   „ Ù2ðàðð ðð ó	ð ð
˜Tð 
Ð&<ò 
ó ñ
r   ro   c                   ó6   — e Zd ZdZdefd„Zededd fd„«       Zy)ÚBrowsingContextEventz'Base class for browsing context events.Úevent_classc                 ó    — || _         || _        y r*   )ru   Úparams)r+   ru   Úkwargss      r   r,   zBrowsingContextEvent.__init__{  s   € Ø&ˆÔØˆ�r   r-   r.   c                 ór   — |j                  d«      }|�t        |t        «      st        d«      ‚ | dd|i|¤ŽS )a  Creates a BrowsingContextEvent instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the event information.

        Returns:
        -------
            BrowsingContextEvent: A new instance of BrowsingContextEvent.
        ru   z,event_class is required and must be a stringr   rc   )r:   r-   ru   s      r   r;   zBrowsingContextEvent.from_json  s@   € ð —h‘h˜}Ó-ˆØÐ¤j°¼cÔ&BÜÐKÓLÐLáÑ3˜{Ð3¨dÑ3Ð3r   N)	r   r   r   r   r7   r,   r<   r=   r;   r   r   r   rt   rt   x  s4   „ Ù1ð Có ð ð4˜Tð 4Ð&<ò 4ó ñ4r   rt   c                   ó°  — e Zd ZdZdddddddd	d
dddddœZd„ Zdeddfd„Z	 	 	 dFdededee	   dee	   def
d„Z
dGdededdfd„Z	 	 	 dHdedee   dedee   def
d „Z	 	 dId!ee   d"ee   dee   fd#„Z	 	 dIded$ee   d%ee   ddfd&„Z	 	 	 dJded'e	d(ee   d)ee	   d*eee	      dee	   fd+„Z	 dKded,ed-ee   de	fd.„Z	 	 	 	 	 	 	 dLdeded/ee	   d0ed1ee	   d2eeeeef         d3ed4edefd5„Z	 	 dIded6ee   d-ee   de	fd7„Z	 	 	 	 dMdee   dee	   d8ee   d9eee      ddf
d:„Zded;ede	fd<„Zd=ed>edefd?„ZdKd@ed>edAeee      defdB„Zd@edCeddfdD„ZdNdE„Zy)OÚBrowsingContextz2BiDi implementation of the browsingContext module.zbrowsingContext.contextCreatedz browsingContext.contextDestroyedz browsingContext.domContentLoadedz!browsingContext.downloadWillBeginz!browsingContext.fragmentNavigatedzbrowsingContext.historyUpdatedzbrowsingContext.loadz!browsingContext.navigationAbortedz#browsingContext.navigationCommittedz browsingContext.navigationFailedz!browsingContext.navigationStartedz browsingContext.userPromptClosedz browsingContext.userPromptOpened)Úcontext_createdÚcontext_destroyedÚdom_content_loadedÚdownload_will_beginÚfragment_navigatedÚhistory_updatedÚloadÚnavigation_abortedÚnavigation_committedÚnavigation_failedÚnavigation_startedÚuser_prompt_closedÚuser_prompt_openedc                 ó.   — || _         i | _        i | _        y r*   )ÚconnÚsubscriptionsÚ	callbacks)r+   rŠ   s     r   r,   zBrowsingContext.__init__¥  s   € ØˆŒ	ØˆÔØˆ�r   r%   r.   Nc                 óV   — d|i}| j                   j                  t        d|«      «       y)a  Activates and focuses the given top-level traversable.

        Parameters:
        -----------
            context: The browsing context ID to activate.

        Raises:
        ------
            Exception: If the browsing context is not a top-level traversable.
        r%   zbrowsingContext.activateN©rŠ   Úexecuter   )r+   r%   rw   s      r   ÚactivatezBrowsingContext.activateª  s(   € ð ˜WÐ%ˆØ�	‰	×Ñœ/Ð*DÀfÓMÕNr   ÚviewportÚoriginÚformatÚclipc                 ó|   — ||dœ}|�||d<   |�||d<   | j                   j                  t        d|«      «      }|d   S )aÎ  Captures an image of the given navigable, and returns it as a Base64-encoded string.

        Parameters:
        -----------
            context: The browsing context ID to capture.
            origin: The origin of the screenshot, either "viewport" or "document".
            format: The format of the screenshot.
            clip: The clip rectangle of the screenshot.

        Returns:
        -------
            str: The Base64-encoded screenshot.
        )r%   r’   r“   r”   z!browsingContext.captureScreenshotÚdatarŽ   )r+   r%   r’   r“   r”   rw   Úresults          r   Úcapture_screenshotz"BrowsingContext.capture_screenshot¸  sT   € ð( .5ÀÑ!GˆØÐØ%ˆF�8ÑØÐØ!ˆF�6‰Nà—‘×"Ñ"¤?Ð3VÐX^Ó#_Ó`ˆØ�f‰~Ðr   Úprompt_unloadc                 óX   — ||dœ}| j                   j                  t        d|«      «       y)a/  Closes a top-level traversable.

        Parameters:
        -----------
            context: The browsing context ID to close.
            prompt_unload: Whether to prompt to unload.

        Raises:
        ------
            Exception: If the browsing context is not a top-level traversable.
        )r%   ÚpromptUnloadzbrowsingContext.closeNrŽ   )r+   r%   r™   rw   s       r   ÚclosezBrowsingContext.closeÕ  s(   € ð %°mÑDˆØ�	‰	×Ñœ/Ð*AÀ6ÓJÕKr   rK   Úreference_contextÚ
backgroundrB   c                 óˆ   — d|i}|�||d<   |�||d<   |�||d<   | j                   j                  t        d|«      «      }|d   S )a   Creates a new navigable, either in a new tab or in a new window, and returns its navigable id.

        Parameters:
        -----------
            type: The type of the new navigable, either "tab" or "window".
            reference_context: The reference browsing context ID.
            background: Whether to create the new navigable in the background.
            user_context: The user context ID.

        Returns:
        -------
            str: The browsing context ID of the created navigable.
        rK   ÚreferenceContextrž   rG   zbrowsingContext.creater%   rŽ   )r+   rK   r�   rž   rB   rw   r—   s          r   ÚcreatezBrowsingContext.createä  se   € ð( #)¨$ ˆØÐ(Ø):ˆFÐ%Ñ&ØÐ!Ø#-ˆF�<Ñ ØÐ#Ø$0ˆF�=Ñ!à—‘×"Ñ"¤?Ð3KÈVÓ#TÓUˆØ�iÑ Ð r   Ú	max_depthÚrootc                 óÂ   — i }|�||d<   |�||d<   | j                   j                  t        d|«      «      }|d   D �cg c]  }t        j	                  |«      ‘Œ c}S c c}w )a•  Returns a tree of all descendent navigables including the given parent itself, or all top-level contexts
        when no parent is provided.

        Parameters:
        -----------
            max_depth: The maximum depth of the tree.
            root: The root browsing context ID.

        Returns:
        -------
            List[BrowsingContextInfo]: A list of browsing context information.
        ÚmaxDepthr£   zbrowsingContext.getTreeÚcontexts)rŠ   r�   r   r?   r;   )r+   r¢   r£   rw   r—   r%   s         r   Úget_treezBrowsingContext.get_tree  si   € ð" "$ˆØÐ Ø!*ˆF�:ÑØÐØ!ˆF�6‰Nà—‘×"Ñ"¤?Ð3LÈfÓ#UÓVˆØFLÈZÑFXÖY¸7Ô#×-Ñ-¨gÕ6ÒYÐYùÒYs   ½AÚacceptrh   c                 ór   — d|i}|�||d<   |�||d<   | j                   j                  t        d|«      «       y)zèAllows closing an open prompt.

        Parameters:
        -----------
            context: The browsing context ID.
            accept: Whether to accept the prompt.
            user_text: The text to enter in the prompt.
        r%   Nr¨   rl   z browsingContext.handleUserPromptrŽ   )r+   r%   r¨   rh   rw   s        r   Úhandle_user_promptz"BrowsingContext.handle_user_prompt  sH   € ð #,¨WÐ!5ˆØÐØ%ˆF�8ÑØÐ Ø!*ˆF�:Ñà�	‰	×Ñœ/Ð*LÈfÓUÕVr   ÚlocatorÚmax_node_countÚserialization_optionsÚstart_nodesc                 óŠ   — ||dœ}|�||d<   |�||d<   |�||d<   | j                   j                  t        d|«      «      }|d   S )aº  Returns a list of all nodes matching the specified locator.

        Parameters:
        -----------
            context: The browsing context ID.
            locator: The locator to use.
            max_node_count: The maximum number of nodes to return.
            serialization_options: The serialization options.
            start_nodes: The start nodes.

        Returns:
        -------
            List[Dict]: A list of nodes.
        )r%   r«   ÚmaxNodeCountÚserializationOptionsÚ
startNodeszbrowsingContext.locateNodesÚnodesrŽ   )r+   r%   r«   r¬   r­   r®   rw   r—   s           r   Úlocate_nodeszBrowsingContext.locate_nodes3  sf   € ð, .5ÀÑ!IˆØÐ%Ø%3ˆF�>Ñ"Ø Ð,Ø-BˆFÐ)Ñ*ØÐ"Ø#.ˆF�<Ñ à—‘×"Ñ"¤?Ð3PÐRXÓ#YÓZˆØ�g‰Ðr   r(   Úwaitc                 óh   — ||dœ}|�||d<   | j                   j                  t        d|«      «      }|S )aF  Navigates a navigable to the given URL.

        Parameters:
        -----------
            context: The browsing context ID.
            url: The URL to navigate to.
            wait: The readiness state to wait for.

        Returns:
        -------
            Dict: A dictionary containing the navigation result.
        )r%   r(   rµ   zbrowsingContext.navigaterŽ   )r+   r%   r(   rµ   rw   r—   s         r   ÚnavigatezBrowsingContext.navigateT  s>   € ð$ %¨SÑ1ˆØÐØ!ˆF�6‰Nà—‘×"Ñ"¤?Ð3MÈvÓ#VÓWˆØˆr   ÚmarginÚorientationÚpageÚpage_rangesÚscaleÚshrink_to_fitc	                 ó�   — |||||dœ}	|�||	d<   |�||	d<   |�||	d<   | j                   j                  t        d|	«      «      }
|
d   S )aŒ  Creates a paginated representation of a document, and returns it as a PDF document represented as a
        Base64-encoded string.

        Parameters:
        -----------
            context: The browsing context ID.
            background: Whether to include the background.
            margin: The margin parameters.
            orientation: The orientation, either "portrait" or "landscape".
            page: The page parameters.
            page_ranges: The page ranges.
            scale: The scale.
            shrink_to_fit: Whether to shrink to fit.

        Returns:
        -------
            str: The Base64-encoded PDF document.
        )r%   rž   r¹   r¼   ÚshrinkToFitr¸   rº   Ú
pageRangeszbrowsingContext.printr–   rŽ   )r+   r%   rž   r¸   r¹   rº   r»   r¼   r½   rw   r—   s              r   ÚprintzBrowsingContext.printm  sq   € ð< Ø$Ø&ØØ(ñ
ˆð ÐØ%ˆF�8ÑØÐØ!ˆF�6‰NØÐ"Ø#.ˆF�<Ñ à—‘×"Ñ"¤?Ð3JÈFÓ#SÓTˆØ�f‰~Ðr   Úignore_cachec                 ót   — d|i}|�||d<   |�||d<   | j                   j                  t        d|«      «      }|S )aA  Reloads a navigable.

        Parameters:
        -----------
            context: The browsing context ID.
            ignore_cache: Whether to ignore the cache.
            wait: The readiness state to wait for.

        Returns:
        -------
            Dict: A dictionary containing the navigation result.
        r%   ÚignoreCacherµ   zbrowsingContext.reloadrŽ   )r+   r%   rÂ   rµ   rw   r—   s         r   ÚreloadzBrowsingContext.reload›  sN   € ð$ #,¨WÐ!5ˆØÐ#Ø$0ˆF�=Ñ!ØÐØ!ˆF�6‰Nà—‘×"Ñ"¤?Ð3KÈVÓ#TÓUˆØˆr   Údevice_pixel_ratioÚuser_contextsc                 óŠ   — i }|�||d<   |�||d<   |�||d<   |�||d<   | j                   j                  t        d|«      «       y)aµ  Modifies specific viewport characteristics on the given top-level traversable.

        Parameters:
        -----------
            context: The browsing context ID.
            viewport: The viewport parameters.
            device_pixel_ratio: The device pixel ratio.
            user_contexts: The user context IDs.

        Raises:
        ------
            Exception: If the browsing context is not a top-level traversable.
        Nr%   r‘   ÚdevicePixelRatioÚuserContextszbrowsingContext.setViewportrŽ   )r+   r%   r‘   rÆ   rÇ   rw   s         r   Úset_viewportzBrowsingContext.set_viewport¶  sd   € ð( "$ˆØÐØ 'ˆF�9ÑØÐØ!)ˆF�:ÑØÐ)Ø);ˆFÐ%Ñ&ØÐ$Ø%2ˆF�>Ñ"à�	‰	×Ñœ/Ð*GÈÓPÕQr   Údeltac                 óZ   — ||dœ}| j                   j                  t        d|«      «      }|S )a,  Traverses the history of a given navigable by a delta.

        Parameters:
        -----------
            context: The browsing context ID.
            delta: The delta to traverse by.

        Returns:
        -------
            Dict: A dictionary containing the traverse history result.
        )r%   rÌ   zbrowsingContext.traverseHistoryrŽ   )r+   r%   rÌ   rw   r—   s        r   Útraverse_historyz BrowsingContext.traverse_historyÖ  s0   € ð %¨uÑ5ˆØ—‘×"Ñ"¤?Ð3TÐV\Ó#]Ó^ˆØˆr   Ú
event_nameÚcallbackc                 óä   ‡ ‡‡— t        ‰«      }ˆˆˆ fd„}‰ j                  j                  ||«      }‰‰ j                  v r ‰ j                  ‰   j	                  |«       |S |g‰ j                  ‰<   |S )a%  Set a callback function to subscribe to a browsing context event.

        Parameters:
        ----------
            event_name: The event to subscribe to.
            callback: The callback function to execute on event.

        Returns:
        -------
            int: callback id
        c                 ó¼  •— ‰‰j                   d   k(  s‰‰j                   d   k(  r(t        j                  | j                  «      } ‰|«       y ‰‰j                   d   k(  r(t        j                  | j                  «      } ‰|«       y ‰‰j                   d   k(  r(t
        j                  | j                  «      } ‰|«       y ‰‰j                   d   k(  r(t        j                  | j                  «      } ‰|«       y ‰‰j                   d   k(  r(t        j                  | j                  «      } ‰|«       y t        j                  | j                  «      } ‰|«       y )Nr|   r}   r   rˆ   r‡   r�   )	ÚEVENTSr?   r;   rw   rQ   rZ   rf   ro   r$   )Ú
event_dataÚinforw   rÐ   rÏ   r+   s      €€€r   Ú	_callbackz,BrowsingContext._on_event.<locals>._callbackô  s"  ø€ Ø˜TŸ[™[Ð):Ñ;Ò;¸zÈTÏ[É[ÐYlÑMmÒ?mÜ*×4Ñ4°Z×5FÑ5FÓG�Ù˜•Ø˜tŸ{™{Ð+@ÑAÒAÜ0×:Ñ:¸:×;LÑ;LÓM�Ù˜Õ Ø˜tŸ{™{Ð+?Ñ@Ò@Ü/×9Ñ9¸*×:KÑ:KÓL�Ù˜Õ Ø˜tŸ{™{Ð+?Ñ@Ò@Ü/×9Ñ9¸*×:KÑ:KÓL�Ù˜Õ Ø˜tŸ{™{Ð+<Ñ=Ò=Ü-×7Ñ7¸
×8IÑ8IÓJ�Ù˜Õ ô &×/Ñ/°
×0AÑ0AÓB�Ù˜•r   )rt   rŠ   Úadd_callbackrŒ   rL   )r+   rÏ   rÐ   ÚeventrÖ   Úcallback_ids   ```   r   Ú	_on_eventzBrowsingContext._on_eventæ  so   ú€ ô % ZÓ0ˆö	ð* —i‘i×,Ñ,¨U°IÓ>ˆà˜Ÿ™Ñ'Ø�N‰N˜:Ñ&×-Ñ-¨kÔ:ð Ðð +6¨ˆD�N‰N˜:Ñ&àÐr   rØ   r¦   c                 ó–  — 	 | j                   |   }| j                  ||«      }|| j                  v r | j                  |   j                  |«       |S d|gi}|�||d<   t        | j                  «      }| j                  j                   |j                  di |¤Ž«       |g| j                  |<   |S # t        $ r t        d|› d�«      ‚w xY w)aL  Add an event handler to the browsing context.

        Parameters:
        ----------
            event: The event to subscribe to.
            callback: The callback function to execute on event.
            contexts: The browsing context IDs to subscribe to.

        Returns:
        -------
            int: callback id
        úEvent ú
 not foundÚeventsÚbrowsingContextsr   )
rÓ   ÚKeyErrorÚ	ExceptionrÚ   r‹   rL   r	   rŠ   r�   Ú	subscribe)r+   rØ   rÐ   r¦   rÏ   rÙ   rw   Úsessions           r   Úadd_event_handlerz!BrowsingContext.add_event_handler  sã   € ð	8ØŸ™ UÑ+ˆJð —n‘n Z°Ó:ˆà˜×+Ñ+Ñ+Ø×Ñ˜zÑ*×1Ñ1°+Ô>ð Ðð   Ð-ˆFØÐ#Ø-5�Ð)Ñ*Ü˜dŸi™iÓ(ˆGØ�I‰I×ÑÐ/˜g×/Ñ/Ñ9°&Ñ9Ô:Ø.9¨]ˆD×Ñ˜zÑ*àÐøô ò 	8Ü˜f U G¨:Ð6Ó7Ð7ð	8ús   ‚B/ Â/CrÙ   c                 ó¼  — 	 | j                   |   }t        |«      }| j                  j                  ||«       || j                  v r{| j                  |   }||v rg|j                  |«       |sSd|gi}t        | j                  «      }| j                  j                   |j                  di |¤Ž«       | j                  |= yyyy# t        $ r t        d|› d�«      ‚w xY w)zÉRemove an event handler from the browsing context.

        Parameters:
        ----------
            event: The event to unsubscribe from.
            callback_id: The callback id to remove.
        rÜ   rÝ   rÞ   Nr   )rÓ   rà   rá   rt   rŠ   Úremove_callbackr‹   Úremover	   r�   Úunsubscribe)r+   rØ   rÙ   rÏ   Ú	event_objrŒ   rw   rã   s           r   Úremove_event_handlerz$BrowsingContext.remove_event_handler2  së   € ð	8ØŸ™ UÑ+ˆJô )¨Ó4ˆ	à�	‰	×!Ñ! )¨[Ô9Ø˜×+Ñ+Ñ+Ø×*Ñ*¨:Ñ6ˆIØ˜iÑ'Ø× Ñ  Ô-Ù Ø&¨¨Ð5�FÜ% d§i¡iÓ0�GØ—I‘I×%Ñ%Ð&9 g×&9Ñ&9Ñ&C¸FÑ&CÔDØ×*Ñ*¨:Ñ6ð	 !ð (ð ,øô ò 	8Ü˜f U G¨:Ð6Ó7Ð7ð	8ús   ‚C ÃCc                 ó4  — | j                   D ]‚  }t        |«      }| j                   |   D ]  }| j                  j                  ||«       Œ  d|gi}t	        | j                  «      }| j                  j                   |j                  di |¤Ž«       Œ„ i | _         y)z3Clear all event handlers from the browsing context.rÞ   Nr   )r‹   rt   rŠ   ræ   r	   r�   rè   )r+   rÏ   rØ   rÙ   rw   rã   s         r   Úclear_event_handlersz$BrowsingContext.clear_event_handlersL  s–   € à×,Ñ,ò 	=ˆJÜ(¨Ó4ˆEØ#×1Ñ1°*Ñ=ò >�Ø—	‘	×)Ñ)¨%°Õ=ð>à  Ð-ˆFÜ˜dŸi™iÓ(ˆGØ�I‰I×ÑÐ1˜g×1Ñ1Ñ;°FÑ;Õ<ð	=ð  ˆÕr   )r‘   NN)F)NFNrO   )NNNr*   )FNÚportraitNNg      ð?T)NNNN)r.   N) r   r   r   r   rÓ   r,   r7   r�   r   r=   r˜   rm   rœ   r¡   r9   rJ   r?   r§   rª   r´   r·   r   ÚfloatrÁ   rÅ   rË   rÎ   r   rÚ   rä   rê   rì   r   r   r   r{   r{   ’  sº  „ Ù<ð <Ø?Ø@ØBØAØ;Ø&ØAØ EØ?ØAØ@Ø@ñ€Fò ð
O ð O¨ó Oð" !Ø!%Ø#ñàðð ðð ˜‘ð	ð
 �t‰nðð 
óñ:L˜Sð L°ð LÀ$ó Lð$ ,0Ø Ø&*ñ!àð!ð $ C™=ð!ð ð	!ð
 ˜s‘mð!ð 
ó!ðB $(Ø"ñZà˜C‘=ðZð �s‰mðZð 
Ð!Ñ	"ó	Zð: "&Ø#'ñ	WàðWð ˜‘ðWð ˜C‘=ð	Wð
 
óWð4 )-Ø04Ø,0ñàðð ðð ! ™ð	ð
  (¨™~ðð ˜d 4™jÑ)ðð 
ˆd‰óðJ #ñ	àðð ðð �s‰mð	ð
 
óð8 !Ø!%Ø%Ø#Ø7;ØØ"ñ,àð,ð ð,ð ˜‘ð	,ð
 ð,ð �t‰nð,ð ˜d 5¨¨c¨¡?Ñ3Ñ4ð,ð ð,ð ð,ð 
ó,ðb (,Ø"ñ	àðð ˜t‘nðð �s‰mð	ð
 
óð: "&Ø#'Ø.2Ø-1ñRà˜#‘ðRð ˜4‘.ðRð % U™Oð	Rð
    S¡	Ñ*ðRð 
óRð@¨ð °Cð ¸Dó ð * Cð *°8ð *Àó *ñX sð °hð È(ÐSWÐX[ÑS\ÑJ]ð Ðiló ð@7¨#ð 7¸Cð 7ÀDó 7ô4	 r   r{   N)Útypingr   r   r   r   Ú%selenium.webdriver.common.bidi.commonr   rã   r	   r   r   r$   r?   rQ   rZ   rf   ro   rt   r{   r   r   r   ú<module>rñ      sƒ   ð÷$ 2Ó 1å Aå ÷ñ ÷ñ ÷+8ñ +8÷\M
ñ M
ô`4
˜nô 4
÷n7
ñ 7
÷t0
ñ 0
÷f)
ñ )
÷X4ñ 4÷4C ò C r   