§
    ¯õiMI  ã                   ó|  — d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ  G d„ d	¦  «        Z G d
„ d¦  «        Ze G d„ d¦  «        ¦   «         Ze G d„ d¦  «        ¦   «         Ze G d„ d¦  «        ¦   «         Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        ZdS )é    N)Ú	dataclass)ÚAnyÚOptional)ÚWebDriverException)Úcommand_builder)ÚLogEntryAdded)ÚSessionc                   ó   — e Zd ZdZdZdZdS )ÚResultOwnershipz/Represents the possible result ownership types.ÚnoneÚrootN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚNONEÚROOT© ó    úq/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/selenium/webdriver/common/bidi/script.pyr   r      s   € € € € € Ø9Ð9à€DØ€D€D€Dr   r   c                   ó2   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )Ú	RealmTypez$Represents the possible realm types.Úwindowzdedicated-workerzshared-workerzservice-workerÚworkerzpaint-workletzaudio-workletÚworkletN)r   r   r   r   ÚWINDOWÚDEDICATED_WORKERÚSHARED_WORKERÚSERVICE_WORKERÚWORKERÚPAINT_WORKLETÚAUDIO_WORKLETÚWORKLETr   r   r   r   r   $   s=   € € € € € Ø.Ð.à€FØ)ÐØ#€MØ%€NØ€FØ#€MØ#€MØ€G€G€Gr   r   c                   ó–   — e Zd ZU dZeed<   eed<   eed<   dZee         ed<   dZee         ed<   e	de
eef         d	d fd
„¦   «         ZdS )Ú	RealmInfoz%Represents information about a realm.ÚrealmÚoriginÚtypeNÚcontextÚsandboxÚjsonÚreturnc           	      ó  — d|vrt          d¦  «        ‚d|vrt          d¦  «        ‚d|vrt          d¦  «        ‚ | |d         |d         |d         |                     d¦  «        |                     d¦  «        ¬	¦  «        S )
zÎCreates a RealmInfo instance from a dictionary.

        Args:
            json: A dictionary containing the realm information.

        Returns:
            RealmInfo: A new instance of RealmInfo.
        r&   z+Missing required field 'realm' in RealmInfor'   z,Missing required field 'origin' in RealmInfor(   z*Missing required field 'type' in RealmInfor)   r*   )r&   r'   r(   r)   r*   ©Ú
ValueErrorÚget©Úclsr+   s     r   Ú	from_jsonzRealmInfo.from_json;   sž   € ð ˜$ÐÐÝÐJÑKÔKÐKØ˜4ÐÐÝÐKÑLÔLÐLØ˜ÐÐÝÐIÑJÔJÐJàˆsØ�w”-Ø˜”>Ø�f”Ø—H’H˜YÑ'Ô'Ø—H’H˜YÑ'Ô'ð
ñ 
ô 
ð 	
r   )r   r   r   r   ÚstrÚ__annotations__r)   r   r*   ÚclassmethodÚdictr   r3   r   r   r   r%   r%   1   s“   € € € € € € à/Ð/à€J€J�JØ€K€K�KØ
€I€I�IØ!€GˆX�cŒ]Ð!Ð!Ñ!Ø!€GˆX�cŒ]Ð!Ð!Ñ!àð
˜T # s (œ^ð 
°ð 
ð 
ð 
ñ „[ð
ð 
ð 
r   r%   c                   óh   — e Zd ZU dZeed<   dZee         ed<   ede	ee
f         dd fd„¦   «         ZdS )ÚSourcez*Represents the source of a script message.r&   Nr)   r+   r,   c                 ót   — d|vrt          d¦  «        ‚ | |d         |                     d¦  «        ¬¦  «        S )zÆCreates a Source instance from a dictionary.

        Args:
            json: A dictionary containing the source information.

        Returns:
            Source: A new instance of Source.
        r&   z(Missing required field 'realm' in Sourcer)   )r&   r)   r.   r1   s     r   r3   zSource.from_json\   sM   € ð ˜$ÐÐÝÐGÑHÔHÐHàˆsØ�w”-Ø—H’H˜YÑ'Ô'ð
ñ 
ô 
ð 	
r   )r   r   r   r   r4   r5   r)   r   r6   r7   r   r3   r   r   r   r9   r9   U   sm   € € € € € € à4Ð4à€J€J�JØ!€GˆX�cŒ]Ð!Ð!Ñ!àð
˜T # s (œ^ð 
°ð 
ð 
ð 
ñ „[ð
ð 
ð 
r   r9   c                   óŒ   — e Zd ZU dZeed<   eed<   dZee         ed<   dZ	ee         ed<   e
deeef         dd fd	„¦   «         ZdS )
ÚEvaluateResultz+Represents the result of script evaluation.r(   r&   NÚresultÚexception_detailsr+   r,   c                 óÐ   — d|vrt          d¦  «        ‚d|vrt          d¦  «        ‚ | |d         |d         |                     d¦  «        |                     d¦  «        ¬¦  «        S )zÞCreates an EvaluateResult instance from a dictionary.

        Args:
            json: A dictionary containing the evaluation result.

        Returns:
            EvaluateResult: A new instance of EvaluateResult.
        r&   z0Missing required field 'realm' in EvaluateResultr(   z/Missing required field 'type' in EvaluateResultr=   ÚexceptionDetails)r(   r&   r=   r>   r.   r1   s     r   r3   zEvaluateResult.from_jsonx   s~   € ð ˜$ÐÐÝÐOÑPÔPÐPØ˜ÐÐÝÐNÑOÔOÐOàˆsØ�f”Ø�w”-Ø—8’8˜HÑ%Ô%Ø"ŸhšhÐ'9Ñ:Ô:ð	
ñ 
ô 
ð 	
r   )r   r   r   r   r4   r5   r=   r   r7   r>   r6   r   r3   r   r   r   r<   r<   o   sŒ   € € € € € € à5Ð5à
€I€I�IØ€J€J�JØ!€FˆH�TŒNÐ!Ð!Ñ!Ø(,Ð�x ”~Ð,Ð,Ñ,àð
˜T # s (œ^ð 
Ð0@ð 
ð 
ð 
ñ „[ð
ð 
ð 
r   r<   c                   óZ   — e Zd ZdZdZdededefd„Ze	deee
f         dd fd	„¦   «         Zd
S )ÚScriptMessagez"Represents a script message event.úscript.messageÚchannelÚdataÚsourcec                 ó0   — || _         || _        || _        d S ©N©rD   rE   rF   )ÚselfrD   rE   rF   s       r   Ú__init__zScriptMessage.__init__”   s   € ØˆŒØˆŒ	ØˆŒˆˆr   r+   r,   c                 óä   — d|vrt          d¦  «        ‚d|vrt          d¦  «        ‚d|vrt          d¦  «        ‚ | |d         |d         t                               |d         ¦  «        ¬¦  «        S )z×Creates a ScriptMessage instance from a dictionary.

        Args:
            json: A dictionary containing the script message.

        Returns:
            ScriptMessage: A new instance of ScriptMessage.
        rD   z1Missing required field 'channel' in ScriptMessagerE   z.Missing required field 'data' in ScriptMessagerF   z0Missing required field 'source' in ScriptMessagerI   )r/   r9   r3   r1   s     r   r3   zScriptMessage.from_json™   sŽ   € ð ˜DÐ Ð ÝÐPÑQÔQÐQØ˜ÐÐÝÐMÑNÔNÐNØ˜4ÐÐÝÐOÑPÔPÐPàˆsØ˜”OØ�f”Ý×#Ò# D¨¤NÑ3Ô3ð
ñ 
ô 
ð 	
r   N)r   r   r   r   Úevent_classr4   r7   r9   rK   r6   r   r3   r   r   r   rB   rB   �   s~   € € € € € Ø,Ð,à"€Kð ð ¨4ð ¸ð ð ð ð ð
 ð
˜T # s (œ^ð 
°ð 
ð 
ð 
ñ „[ð
ð 
ð 
r   rB   c                   óR   — e Zd ZdZdZdefd„Zedee	e
f         dd fd„¦   «         ZdS )	ÚRealmCreatedz!Represents a realm created event.úscript.realmCreatedÚ
realm_infoc                 ó   — || _         d S rH   ©rQ   )rJ   rQ   s     r   rK   zRealmCreated.__init__¶   s   € Ø$ˆŒˆˆr   r+   r,   c                 óJ   —  | t                                |¦  «        ¬¦  «        S )zÙCreates a RealmCreated instance from a dictionary.

        Args:
            json: A dictionary containing the realm created event.

        Returns:
            RealmCreated: A new instance of RealmCreated.
        rS   ©r%   r3   r1   s     r   r3   zRealmCreated.from_json¹   s%   € ð ˆs�i×1Ò1°$Ñ7Ô7Ð8Ñ8Ô8Ð8r   N)r   r   r   r   rM   r%   rK   r6   r7   r4   r   r3   r   r   r   rO   rO   ±   sp   € € € € € Ø+Ð+à'€Kð% 9ð %ð %ð %ð %ð ð	9˜T # s (œ^ð 	9°ð 	9ð 	9ð 	9ñ „[ð	9ð 	9ð 	9r   rO   c                   óR   — e Zd ZdZdZdefd„Zedeee	f         dd fd„¦   «         Z
dS )	ÚRealmDestroyedz#Represents a realm destroyed event.úscript.realmDestroyedr&   c                 ó   — || _         d S rH   ©r&   )rJ   r&   s     r   rK   zRealmDestroyed.__init__Ë   s   € ØˆŒ
ˆ
ˆ
r   r+   r,   c                 óL   — d|vrt          d¦  «        ‚ | |d         ¬¦  «        S )záCreates a RealmDestroyed instance from a dictionary.

        Args:
            json: A dictionary containing the realm destroyed event.

        Returns:
            RealmDestroyed: A new instance of RealmDestroyed.
        r&   z0Missing required field 'realm' in RealmDestroyedrZ   )r/   r1   s     r   r3   zRealmDestroyed.from_jsonÎ   s5   € ð ˜$ÐÐÝÐOÑPÔPÐPàˆs˜˜gœÐ'Ñ'Ô'Ð'r   N)r   r   r   r   rM   r4   rK   r6   r7   r   r3   r   r   r   rW   rW   Æ   sq   € € € € € Ø-Ð-à)€Kð˜cð ð ð ð ð ð(˜T # s (œ^ð (Ð0@ð (ð (ð (ñ „[ð(ð (ð (r   rW   c                   ó>  — e Zd ZdZddddœZd+d„Zd„ Zd	„ Zd
„ ZeZ	de
de
fd„Zde
ddfd„Zde
defd„Zdefd„Z	 	 	 	 d,de
deeee
ef                           deee
                  deee
                  dee
         de
fd„Zde
ddfd„Zdee
         deddfd„Z	 	 	 	 	 d-de
dededeee                  dee
         dee         d ee         d!edefd"„Z	 	 	 d.d#e
dededee
         dee         d!edefd$„Z	 	 d/d%ee
         d&ee
         dee         fd'„Zd(„ Zd)„ Zd*„ ZdS )0ÚScriptz)BiDi implementation of the script module.rC   rP   rX   )ÚmessageÚrealm_createdÚrealm_destroyedNc                 óL   — || _         || _        d| _        i | _        i | _        d S ©NF)ÚconnÚdriverÚlog_entry_subscribedÚsubscriptionsÚ	callbacks)rJ   rc   rd   s      r   rK   zScript.__init__ç   s+   € ØˆŒ	ØˆŒØ$)ˆÔ!ØˆÔØˆŒˆˆr   c                 ó’   — |                       ¦   «          | j                             t          |                      d|¦  «        ¦  «        S )NÚconsole©Ú_subscribe_to_log_entriesrc   Úadd_callbackr   Ú_handle_log_entry©rJ   Úhandlers     r   Úadd_console_message_handlerz"Script.add_console_message_handlerð   s=   € Ø×&Ò&Ñ(Ô(Ð(ØŒy×%Ò%¥m°T×5KÒ5KÈIÐW^Ñ5_Ô5_Ñ`Ô`Ð`r   c                 ó’   — |                       ¦   «          | j                             t          |                      d|¦  «        ¦  «        S )NÚ
javascriptrj   rn   s     r   Úadd_javascript_error_handlerz#Script.add_javascript_error_handlerô   s=   € Ø×&Ò&Ñ(Ô(Ð(ØŒy×%Ò%¥m°T×5KÒ5KÈLÐZaÑ5bÔ5bÑcÔcÐcr   c                 ón   — | j                              t          |¦  «         |                      ¦   «          d S rH   )rc   Úremove_callbackr   Ú_unsubscribe_from_log_entries)rJ   Úids     r   Úremove_console_message_handlerz%Script.remove_console_message_handlerø   s2   € ØŒ	×!Ò!¥-°Ñ4Ô4Ð4Ø×*Ò*Ñ,Ô,Ð,Ð,Ð,r   Úscriptr,   c                 ó,   — |                       |¦  «        S )z­Pins a script to the current browsing context.

        Args:
            script: The script to pin.

        Returns:
            str: The ID of the pinned script.
        )Ú_add_preload_script)rJ   ry   s     r   Úpinz
Script.pinþ   s   € ð ×'Ò'¨Ñ/Ô/Ð/r   Ú	script_idc                 ó0   — |                       |¦  «         dS )z‡Unpins a script from the current browsing context.

        Args:
            script_id: The ID of the pinned script to unpin.
        N)Ú_remove_preload_script)rJ   r}   s     r   ÚunpinzScript.unpin	  s   € ð 	×#Ò# IÑ.Ô.Ð.Ð.Ð.r   c                 ó¾  — | j         €t          d¦  «        ‚| j         j        }g }|D ]*}|                     |                      |¦  «        ¦  «         Œ+d|i}|                      |d||r|nd¬¦  «        }|j        dk    r|j        �|j        ni S d}|j        r9d|j        v r|d	|j        d         › �z  }nd
|j        v r|d	|j        d
         › �z  }t          |¦  «        ‚)a[  Executes a script in the current browsing context.

        Args:
            script: The script function to execute.
            *args: Arguments to pass to the script function.

        Returns:
            dict: The result value from the script execution.

        Raises:
            WebDriverException: If the script execution fails.
        Nz1Driver reference is required for script executionr)   T)Úfunction_declarationÚawait_promiseÚtargetÚ	argumentsÚsuccesszError while executing scriptÚtextz: r^   )	rd   r   Úcurrent_window_handleÚappendÚ_Script__convert_to_local_valueÚ_call_functionr(   r=   r>   )	rJ   ry   ÚargsÚbrowsing_context_idr…   Úargr„   r=   Úerror_messages	            r   ÚexecutezScript.execute  s3  € ð Œ;ÐÝ$Ð%XÑYÔYÐYØ"œkÔ?Ðð ˆ	Øð 	Að 	AˆCØ×Ò˜T×:Ò:¸3Ñ?Ô?Ñ@Ô@Ð@Ð@àÐ0Ð1ˆà×$Ò$Ø!'°tÀFÐclÐVvÐV_ÐV_Ðrvð %ñ 
ô 
ˆð Œ;˜)Ò#Ð#Ø$*¤MÐ$=�6”=�=À2ÐEà:ˆMØÔ'ð PØ˜VÔ5Ð5Ð5Ø!Ð%L¨&Ô*BÀ6Ô*JÐ%LÐ%LÑL�M�MØ &Ô":Ð:Ð:Ø!Ð%O¨&Ô*BÀ9Ô*MÐ%OÐ%OÑO�Må$ ]Ñ3Ô3Ð3r   c                 óð  ‡ — |€ddiS t          |t          ¦  «        rd|dœS t          |t          t          f¦  «        r±t          |t          ¦  «        rat	          j        |¦  «        rdddœS t	          j        |¦  «        r|dk    rdd	dœS dd
dœS |dk    rt	          j        d|¦  «        dk     rdddœS d}t          |t          ¦  «        r||k    s|| k     rdt          |¦  «        dœS d|dœS t          |t          ¦  «        rd|dœS t          |t          j	        ¦  «        r5d|j
        €|                     ¦   «         dz   n|                     ¦   «         dœS t          |t          j        ¦  «        rit          j	                             |t          j        j        ¦  «                             t          j        j        ¬¦  «        }d|                     ¦   «         dœS t          |t&          ¦  «        rdˆ fd„|D ¦   «         dœS t          |t(          t*          f¦  «        rdˆ fd„|D ¦   «         dœS t          |t,          ¦  «        r#dˆ fd„|                     ¦   «         D ¦   «         dœS dt          |¦  «        dœS )zD
        Converts a Python value to BiDi LocalValue format.
        Nr(   ÚnullÚboolean)r(   ÚvalueÚnumberÚNaNr   ÚInfinityz	-Infinityg        g      ð?z-0l   ÿÿÿÿ ÚbigintÚstringÚdateÚZ)ÚtzinfoÚsetc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r   ©rŠ   ©Ú.0ÚitemrJ   s     €r   ú
<listcomp>z3Script.__convert_to_local_value.<locals>.<listcomp>^  s(   ø€ Ð,cÐ,cÐ,cÐUY¨T×-JÒ-JÈ4Ñ-PÔ-PÐ,cÐ,cÐ,cr   Úarrayc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r   rŸ   r    s     €r   r£   z3Script.__convert_to_local_value.<locals>.<listcomp>`  s(   ø€ Ð.eÐ.eÐ.eÐW[¨t×/LÒ/LÈTÑ/RÔ/RÐ.eÐ.eÐ.er   Úobjectc                 ój   •— g | ]/\  }}‰                      |¦  «        ‰                      |¦  «        g‘Œ0S r   rŸ   )r¡   ÚkÚvrJ   s      €r   r£   z3Script.__convert_to_local_value.<locals>.<listcomp>d  sN   ø€ ð ð ð Ù]aÐ]^Ð`a�T×2Ò2°1Ñ5Ô5°t×7TÒ7TÐUVÑ7WÔ7WÐXðð ð r   )Ú
isinstanceÚboolÚintÚfloatÚmathÚisnanÚisinfÚcopysignr4   Údatetimerœ   Ú	isoformatrš   ÚcombineÚtimeÚminÚreplaceÚtimezoneÚutcr�   ÚlistÚtupler7   Úitems)rJ   r”   ÚJS_MAX_SAFE_INTEGERÚdts   `   r   Ú__convert_to_local_valuezScript.__convert_to_local_value:  sÚ  ø€ ð ˆ=Ø˜FÐ#Ð#Ý˜�tÑ$Ô$ð *	;Ø%°Ð6Ð6Ð6Ý˜¥¥U˜|Ñ,Ô,ð (	;Ý˜%¥Ñ'Ô'ð 	=Ý”:˜eÑ$Ô$ð =Ø$,°uÐ=Ð=Ð=Ý”Z Ñ&Ô&ð =Ø˜q’y�yØ(0¸:ÐFÐFÐFà(0¸;ÐGÐGÐGØ˜c’\�\¥d¤m°C¸Ñ&?Ô&?À!Ò&CÐ&CØ$,°tÐ<Ð<Ð<à"2ÐÝ˜%¥Ñ%Ô%ð ?¨5Ð3FÒ+FÐ+FÈ%ÐSfÐRfÒJfÐJfØ (µ3°u±:´:Ð>Ð>Ð>à$¨uÐ5Ð5Ð5å˜�sÑ#Ô#ð 	;Ø$¨uÐ5Ð5Ð5Ý˜�xÔ0Ñ1Ô1ð 	;à"ÈÌÐH\¨U¯_ª_Ñ->Ô->ÀÑ-DÐ-DÐbg×bqÒbqÑbsÔbsÐtÐtÐtÝ˜�xœ}Ñ-Ô-ð 	;åÔ"×*Ò*¨5µ(´-Ô2CÑDÔD×LÒLÕT\ÔTeÔTiÐLÑjÔjˆBØ"¨R¯\ª\©^¬^Ð<Ð<Ð<Ý˜�sÑ#Ô#ð 	;Ø!Ð,cÐ,cÐ,cÐ,cÐ]bÐ,cÑ,cÔ,cÐdÐdÐdÝ˜¥¥e˜}Ñ-Ô-ð 	;Ø#Ð.eÐ.eÐ.eÐ.eÐ_dÐ.eÑ.eÔ.eÐfÐfÐfÝ˜�tÑ$Ô$ð 		;à ðð ð ð Øej×epÒepÑerÔerðñ ô ðð ð ð %­s°5©z¬zÐ:Ð:Ð:r   r‚   r…   ÚcontextsÚuser_contextsr*   c                 óÈ   — |�|�t          d¦  «        ‚d|i}|�||d<   |�||d<   |�||d<   |�||d<   | j                             t          d|¦  «        ¦  «        }|d	         S )
a  Adds a preload script.

        Args:
            function_declaration: The function declaration to preload.
            arguments: The arguments to pass to the function.
            contexts: The browsing context IDs to apply the script to.
            user_contexts: The user context IDs to apply the script to.
            sandbox: The sandbox name to apply the script to.

        Returns:
            str: The preload script ID.

        Raises:
            ValueError: If both contexts and user_contexts are provided.
        Nz.Cannot specify both contexts and user_contextsÚfunctionDeclarationr…   rÀ   ÚuserContextsr*   zscript.addPreloadScriptry   )r/   rc   r�   r   )rJ   r‚   r…   rÀ   rÁ   r*   Úparamsr=   s           r   r{   zScript._add_preload_scriptm  s”   € ð. Ð MÐ$=ÝÐMÑNÔNÐNà"7Ð9MÐ!NˆàÐ Ø"+ˆF�;ÑØÐØ!)ˆF�:ÑØÐ$Ø%2ˆF�>Ñ"ØÐØ 'ˆF�9Ñà”×"Ò"¥?Ð3LÈfÑ#UÔ#UÑVÔVˆØ�hÔÐr   c                 ó^   — d|i}| j                              t          d|¦  «        ¦  «         dS )ziRemoves a preload script.

        Args:
            script_id: The preload script ID to remove.
        ry   zscript.removePreloadScriptN©rc   r�   r   )rJ   r}   rÅ   s      r   r   zScript._remove_preload_script•  s5   € ð ˜IÐ&ˆØŒ	×Ò�/Ð*FÈÑOÔOÑPÔPÐPÐPÐPr   Úhandlesr„   c                 ó`   — ||dœ}| j                              t          d|¦  «        ¦  «         dS )z�Disowns the given handles.

        Args:
            handles: The handles to disown.
            target: The target realm or context.
        )rÈ   r„   zscript.disownNrÇ   )rJ   rÈ   r„   rÅ   s       r   Ú_disownzScript._disownž  s>   € ð Øð
ð 
ˆð 	Œ	×Ò�/¨/¸6ÑBÔBÑCÔCÐCÐCÐCr   Frƒ   Úresult_ownershipÚserialization_optionsÚthisÚuser_activationc	                 óÌ   — ||||dœ}	|�||	d<   |�||	d<   |�||	d<   |�||	d<   | j                              t          d|	¦  «        ¦  «        }
t                               |
¦  «        S )aŒ  Calls a provided function with given arguments in a given realm.

        Args:
            function_declaration: The function declaration to call.
            await_promise: Whether to await promise resolution.
            target: The target realm or context.
            arguments: The arguments to pass to the function.
            result_ownership: The result ownership type.
            serialization_options: The serialization options.
            this: The 'this' value for the function call.
            user_activation: Whether to trigger user activation.

        Returns:
            EvaluateResult: The result of the function call.
        )rÃ   ÚawaitPromiser„   ÚuserActivationNr…   ÚresultOwnershipÚserializationOptionsrÍ   zscript.callFunction©rc   r�   r   r<   r3   )rJ   r‚   rƒ   r„   r…   rË   rÌ   rÍ   rÎ   rÅ   r=   s              r   r‹   zScript._call_function«  s“   € ð6 $8Ø)ØØ-ð	
ð 
ˆð Ð Ø"+ˆF�;ÑØÐ'Ø(8ˆFÐ$Ñ%Ø Ð,Ø-BˆFÐ)Ñ*ØÐØ!ˆF�6‰Nà”×"Ò"¥?Ð3HÈ&Ñ#QÔ#QÑRÔRˆÝ×'Ò'¨Ñ/Ô/Ð/r   Ú
expressionc                 ó°   — ||||dœ}|�||d<   |�||d<   | j                              t          d|¦  «        ¦  «        }t                               |¦  «        S )aü  Evaluates a provided script in a given realm.

        Args:
            expression: The script expression to evaluate.
            target: The target realm or context.
            await_promise: Whether to await promise resolution.
            result_ownership: The result ownership type.
            serialization_options: The serialization options.
            user_activation: Whether to trigger user activation.

        Returns:
            EvaluateResult: The result of the script evaluation.
        )rÕ   r„   rÐ   rÑ   NrÒ   rÓ   zscript.evaluaterÔ   )	rJ   rÕ   r„   rƒ   rË   rÌ   rÎ   rÅ   r=   s	            r   Ú	_evaluatezScript._evaluateØ  st   € ð. %ØØ)Ø-ð	
ð 
ˆð Ð'Ø(8ˆFÐ$Ñ%Ø Ð,Ø-BˆFÐ)Ñ*à”×"Ò"¥?Ð3DÀfÑ#MÔ#MÑNÔNˆÝ×'Ò'¨Ñ/Ô/Ð/r   r)   r(   c                 ó–   — i }|�||d<   |�||d<   | j                              t          d|¦  «        ¦  «        }d„ |d         D ¦   «         S )a   Returns a list of all realms, optionally filtered.

        Args:
            context: The browsing context ID to filter by.
            type: The realm type to filter by.

        Returns:
            List[RealmInfo]: A list of realm information.
        Nr)   r(   zscript.getRealmsc                 óB   — g | ]}t                                |¦  «        ‘ŒS r   rU   )r¡   r&   s     r   r£   z&Script._get_realms.<locals>.<listcomp>  s&   € ÐIÐIÐI¨u•	×#Ò# EÑ*Ô*ÐIÐIÐIr   ÚrealmsrÇ   )rJ   r)   r(   rÅ   r=   s        r   Ú_get_realmszScript._get_realmsý  sa   € ð ˆàÐØ 'ˆF�9ÑØÐØ!ˆF�6‰Nà”×"Ò"¥?Ð3EÀvÑ#NÔ#NÑOÔOˆØIÐI¸¸xÔ8HÐIÑIÔIÐIr   c                 ó¼   — | j         sTt          | j        ¦  «        }| j                             |                     t
          j        ¦  «        ¦  «         d| _         d S d S )NT)re   r	   rc   r�   Ú	subscriber   rM   ©rJ   Úsessions     r   rk   z Script._subscribe_to_log_entries  s[   € ØÔ(ð 	-Ý˜dœiÑ(Ô(ˆGØŒI×Ò˜g×/Ò/µÔ0IÑJÔJÑKÔKÐKØ(,ˆDÔ%Ð%Ð%ð	-ð 	-r   c                 óð   — | j         rlt          j        | j        j        vrVt          | j        ¦  «        }| j                             |                     t          j        ¦  «        ¦  «         d| _         d S d S d S rb   )re   r   rM   rc   rg   r	   r�   ÚunsubscriberÞ   s     r   rv   z$Script._unsubscribe_from_log_entries  ss   € ØÔ$ð 	.­Ô)BÈ$Ì)ÔJ]Ð)]Ð)]Ý˜dœiÑ(Ô(ˆGØŒI×Ò˜g×1Ò1µ-Ô2KÑLÔLÑMÔMÐMØ(-ˆDÔ%Ð%Ð%ð	.ð 	.Ð)]Ð)]r   c                 ó   ‡‡— ˆˆfd„}|S )Nc                 ó8   •— | j         ‰k    r ‰| ¦  «         d S d S rH   )Útype_)Ú	log_entryro   r(   s    €€r   rm   z3Script._handle_log_entry.<locals>._handle_log_entry"  s.   ø€ ØŒ $Ò&Ð&Ø�˜	Ñ"Ô"Ð"Ð"Ð"ð 'Ð&r   r   )rJ   r(   ro   rm   s    `` r   rm   zScript._handle_log_entry!  s*   øø€ ð	#ð 	#ð 	#ð 	#ð 	#ð 	#ð !Ð r   rH   )NNNN)NNNNF)NNF)NN)r   r   r   r   ÚEVENTSrK   rp   rs   rx   Úremove_javascript_error_handlerr4   r|   r€   r7   r�   rŠ   r   rº   r   r{   r   rÊ   r«   r<   r‹   r×   r%   rÛ   rk   rv   rm   r   r   r   r]   r]   Þ   sq  € € € € € Ø3Ð3ð $Ø.Ø2ðð €Fðð ð ð ðað að aðdð dð dð-ð -ð -ð 'EÐ#ð	0˜#ð 	0 #ð 	0ð 	0ð 	0ð 	0ð/˜sð / tð /ð /ð /ð /ð'4˜cð '4¨Tð '4ð '4ð '4ð '4ðR0;°ð 0;ð 0;ð 0;ð 0;ðl 59Ø(,Ø-1Ø!%ð& ð & à!ð& ð ˜D  c¨3 h¤Ô0Ô1ð& ð ˜4 œ9Ô%ð	& ð
    S¤	Ô*ð& ð ˜#”ð& ð 
ð& ð & ð & ð & ðPQ°ð Q¸ð Qð Qð Qð QðD˜t Cœyð D°$ð D¸4ð Dð Dð Dð Dð$ +/Ø*.Ø04Ø#Ø %ð+0ð +0à!ð+0ð ð+0ð ð	+0ð
 ˜D œJÔ'ð+0ð # 3œ-ð+0ð  (¨œ~ð+0ð �tŒnð+0ð ð+0ð 
ð+0ð +0ð +0ð +0ðd +/Ø04Ø %ð#0ð #0àð#0ð ð#0ð ð	#0ð
 # 3œ-ð#0ð  (¨œ~ð#0ð ð#0ð 
ð#0ð #0ð #0ð #0ðN "&Ø"ðJð Jà˜#”ðJð �sŒmðJð 
ˆiŒð	Jð Jð Jð Jð0-ð -ð -ð.ð .ð .ð!ð !ð !ð !ð !r   r]   )r²   r®   Údataclassesr   Útypingr   r   Úselenium.common.exceptionsr   Ú%selenium.webdriver.common.bidi.commonr   Ú"selenium.webdriver.common.bidi.logr   Ú&selenium.webdriver.common.bidi.sessionr	   r   r   r%   r9   r<   rB   rO   rW   r]   r   r   r   ú<module>rî      s-  ðð$ €€€Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø AÐ AÐ AÐ AÐ AÐ AØ <Ð <Ð <Ð <Ð <Ð <Ø :Ð :Ð :Ð :Ð :Ð :ðð ð ð ð ñ ô ð ð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð ð 
ð  
ð  
ð  
ð  
ñ  
ô  
ñ „ð 
ðF ð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ „ð
ð2 ð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ „ð
ð>
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ðD9ð 9ð 9ð 9ð 9ñ 9ô 9ð 9ð*(ð (ð (ð (ð (ñ (ô (ð (ð0H!ð H!ð H!ð H!ð H!ñ H!ô H!ð H!ð H!ð H!r   