Ë
    €»—hQK  ã                   ó2  — 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y)é    N)Ú	dataclass)ÚAnyÚOptional)ÚWebDriverException)Úcommand_builderé   )ÚLogEntryAdded)ÚSessionc                   ó   — e Zd ZdZdZdZy)ÚResultOwnershipz/Represents the possible result ownership types.ÚnoneÚrootN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚNONEÚROOT© ó    úg/var/www/html/w1hd.aprs.trek/venv/lib/python3.12/site-packages/selenium/webdriver/common/bidi/script.pyr   r      s   „ Ù9à€DØ�Dr   r   c                   ó0   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zy
)Ú	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Ø�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y)Ú	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   |j                  d«      |j                  d«      ¬	«      S )
zøCreates a RealmInfo instance from a dictionary.

        Parameters:
        -----------
            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<   sz   € ð ˜$ÑÜÐJÓKÐKØ˜4ÑÜÐKÓLÐLØ˜ÑÜÐIÓJÐJáØ�w‘-Ø˜‘>Ø�f‘Ø—H‘H˜YÓ'Ø—H‘H˜YÓ'ô
ð 	
r   )r   r   r   r   ÚstrÚ__annotations__r*   r   r+   ÚclassmethodÚdictr   r4   r   r   r   r&   r&   2   sX   … á/àƒJØƒKØ
ƒIØ!€GˆX�c‰]Ó!Ø!€GˆX�c‰]Ó!àð
˜T # s (™^ð 
°ò 
ó ñ
r   r&   c                   óT   — 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y)ÚSourcez*Represents the source of a script message.r'   Nr*   r,   r-   c                 óX   — d|vrt        d«      ‚ | |d   |j                  d«      ¬«      S )zðCreates a Source instance from a dictionary.

        Parameters:
        -----------
            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/   r2   s     r   r4   zSource.from_json_   s8   € ð ˜$ÑÜÐGÓHÐHáØ�w‘-Ø—H‘H˜YÓ'ô
ð 	
r   )r   r   r   r   r5   r6   r*   r   r7   r8   r   r4   r   r   r   r:   r:   X   s@   … á4àƒJØ!€GˆX�c‰]Ó!àð
˜T # s (™^ð 
°ò 
ó ñ
r   r:   c                   ór   — 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y)
Ú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   |j                  d«      |j                  d«      ¬«      S )a  Creates an EvaluateResult instance from a dictionary.

        Parameters:
        -----------
            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/   r2   s     r   r4   zEvaluateResult.from_json}   s`   € ð ˜$ÑÜÐOÓPÐPØ˜ÑÜÐNÓOÐOáØ�f‘Ø�w‘-Ø—8‘8˜HÓ%Ø"Ÿh™hÐ'9Ó:ô	
ð 	
r   )r   r   r   r   r5   r6   r>   r   r8   r?   r7   r   r4   r   r   r   r=   r=   t   sU   … á5à
ƒIØƒJØ!€FˆH�T‰NÓ!Ø(,Ð�x ‘~Ó,àð
˜T # s (™^ð 
Ð0@ò 
ó ñ
r   r=   c                   óL   — 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y
)ÚScriptMessagez"Represents a script message event.úscript.messageÚchannelÚdataÚsourcec                 ó.   — || _         || _        || _        y ©N©rE   rF   rG   )ÚselfrE   rF   rG   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        j                  |d   «      ¬«      S )a  Creates a ScriptMessage instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the script message.

        Returns:
        -------
            ScriptMessage: A new instance of ScriptMessage.
        rE   z1Missing required field 'channel' in ScriptMessagerF   z.Missing required field 'data' in ScriptMessagerG   z0Missing required field 'source' in ScriptMessagerJ   )r0   r:   r4   r2   s     r   r4   zScriptMessage.from_json    sm   € ð ˜DÑ ÜÐPÓQÐQØ˜ÑÜÐMÓNÐNØ˜4ÑÜÐOÓPÐPáØ˜‘OØ�f‘Ü×#Ñ# D¨¡NÓ3ô
ð 	
r   N)r   r   r   r   Úevent_classr5   r8   r:   rL   r7   r   r4   r   r   r   rC   rC   –   sN   „ Ù,à"€Kð ð ¨4ð ¸ó ð
 ð
˜T # s (™^ð 
°ò 
ó ñ
r   rC   c                   óD   — e Zd ZdZdZdefd„Zedee	e
f   dd fd„«       Zy)	ÚRealmCreatedz!Represents a realm created event.úscript.realmCreatedÚ
realm_infoc                 ó   — || _         y rI   ©rR   )rK   rR   s     r   rL   zRealmCreated.__init__¿   s	   € Ø$ˆ�r   r,   r-   c                 ó:   —  | t         j                  |«      ¬«      S )a  Creates a RealmCreated instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the realm created event.

        Returns:
        -------
            RealmCreated: A new instance of RealmCreated.
        rT   )r&   r4   r2   s     r   r4   zRealmCreated.from_jsonÂ   s   € ñ œi×1Ñ1°$Ó7Ô8Ð8r   N)r   r   r   r   rN   r&   rL   r7   r8   r5   r   r4   r   r   r   rP   rP   º   s@   „ Ù+à'€Kð% 9ó %ð ð9˜T # s (™^ð 9°ò 9ó ñ9r   rP   c                   óD   — e Zd ZdZdZdefd„Zedeee	f   dd fd„«       Z
y)	ÚRealmDestroyedz#Represents a realm destroyed event.úscript.realmDestroyedr'   c                 ó   — || _         y rI   ©r'   )rK   r'   s     r   rL   zRealmDestroyed.__init__Ö   s	   € Øˆ�
r   r,   r-   c                 ó8   — d|vrt        d«      ‚ | |d   ¬«      S )a  Creates a RealmDestroyed instance from a dictionary.

        Parameters:
        -----------
            json: A dictionary containing the realm destroyed event.

        Returns:
        -------
            RealmDestroyed: A new instance of RealmDestroyed.
        r'   z0Missing required field 'realm' in RealmDestroyedrZ   )r0   r2   s     r   r4   zRealmDestroyed.from_jsonÙ   s'   € ð ˜$ÑÜÐOÓPÐPá˜˜g™Ô'Ð'r   N)r   r   r   r   rN   r5   rL   r7   r8   r   r4   r   r   r   rW   rW   Ñ   sA   „ Ù-à)€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y)/ÚScriptz)BiDi implementation of the script module.rD   rQ   rX   )ÚmessageÚrealm_createdÚrealm_destroyedNc                 óJ   — || _         || _        d| _        i | _        i | _        y ©NF)ÚconnÚdriverÚlog_entry_subscribedÚsubscriptionsÚ	callbacks)rK   rc   rd   s      r   rL   zScript.__init__ô   s'   € ØˆŒ	ØˆŒØ$)ˆÔ!ØˆÔØˆ�r   c                 ó‚   — | j                  «        | j                  j                  t        | j	                  d|«      «      S )NÚconsole©Ú_subscribe_to_log_entriesrc   Úadd_callbackr	   Ú_handle_log_entry©rK   Úhandlers     r   Úadd_console_message_handlerz"Script.add_console_message_handlerý   s3   € Ø×&Ñ&Ô(Ø�y‰y×%Ñ%¤m°T×5KÑ5KÈIÐW^Ó5_Ó`Ð`r   c                 ó‚   — | j                  «        | j                  j                  t        | j	                  d|«      «      S )NÚ
javascriptrj   rn   s     r   Úadd_javascript_error_handlerz#Script.add_javascript_error_handler  s3   € Ø×&Ñ&Ô(Ø�y‰y×%Ñ%¤m°T×5KÑ5KÈLÐZaÓ5bÓcÐcr   c                 ód   — | j                   j                  t        |«       | j                  «        y rI   )rc   Úremove_callbackr	   Ú_unsubscribe_from_log_entries)rK   Úids     r   Úremove_console_message_handlerz%Script.remove_console_message_handler  s"   € Ø�	‰	×!Ñ!¤-°Ô4Ø×*Ñ*Õ,r   Úscriptr-   c                 ó$   — | j                  |«      S )z×Pins a script to the current browsing context.

        Parameters:
        -----------
            script: The script to pin.

        Returns:
        -------
            str: The ID of the pinned script.
        )Ú_add_preload_script)rK   ry   s     r   Úpinz
Script.pin  s   € ð ×'Ñ'¨Ó/Ð/r   Ú	script_idc                 ó&   — | j                  |«       y)z¡Unpins a script from the current browsing context.

        Parameters:
        -----------
            script_id: The ID of the pinned script to unpin.
        N)Ú_remove_preload_script)rK   r}   s     r   ÚunpinzScript.unpin  s   € ð 	×#Ñ# IÕ.r   c                 óò  — | j                   €t        d«      ‚| j                   j                  }g }|D ]"  }|j                  | j	                  |«      «       Œ$ d|i}| j                  |d||r|nd¬«      }|j                  dk(  r|j                  S d}|j                  rQd|j                  v r |d	|j                  d   › �z  }t        |«      ‚d
|j                  v r|d	|j                  d
   › �z  }t        |«      ‚)a”  Executes a script in the current browsing context.

        Parameters:
        -----------
            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?   )	rK   ry   ÚargsÚbrowsing_context_idr…   Úargr„   r>   Úerror_messages	            r   ÚexecutezScript.execute!  s#  € ð" �;‰;ÐÜ$Ð%XÓYÐYØ"Ÿk™k×?Ñ?Ðð ˆ	Øò 	AˆCØ×Ñ˜T×:Ñ:¸3Ó?Õ@ð	Að Ð0Ð1ˆà×$Ñ$Ø!'°tÀFÑclÑV_Ðrvð %ó 
ˆð �;‰;˜)Ò#Ø—=‘=Ð à:ˆMØ×'Ò'Ø˜V×5Ñ5Ñ5Ø! r¨&×*BÑ*BÀ6Ñ*JÐ)KÐ%LÑL�Mô % ]Ó3Ð3ð  &×":Ñ":Ñ:Ø! r¨&×*BÑ*BÀ9Ñ*MÐ)NÐ%OÑO�Mä$ ]Ó3Ð3r   c           	      óB  — |€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kD  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||kD  s|| k  rdt        |«      dœS d|dœS t        |t        «      rd|dœS t        |t        j                  «      r4d|j                  €|j                  «       dz   dœS |j                  «       dœS t        |t        j                  «      rst        j                  j                  |t        j                  j                  «      j!                  t        j"                  j$                  ¬«      }d|j                  «       dœS t        |t&        «      r"d|D �cg c]  }| j)                  |«      ‘Œ c}dœS t        |t*        t,        f«      r"d|D �cg c]  }| j)                  |«      ‘Œ c}dœS t        |t.        «      rFd|j1                  «       D ��cg c]'  \  }}| j)                  |«      | j)                  |«      g‘Œ) c}}dœS dt        |«      dœS c c}w c c}w c c}}w )zD
        Converts a Python value to BiDi LocalValue format.
        r)   ÚnullÚboolean)r)   ÚvalueÚnumberÚNaNr   ÚInfinityz	-Infinityg        g      ð?z-0l   ÿÿÿÿ ÚbigintÚstringÚdateÚZ)ÚtzinfoÚsetÚarrayÚobject)Ú
isinstanceÚboolÚintÚfloatÚmathÚisnanÚisinfÚcopysignr5   Údatetimerœ   Ú	isoformatrš   ÚcombineÚtimeÚminÚreplaceÚtimezoneÚutcr�   rŠ   ÚlistÚtupler8   Úitems)rK   r”   ÚJS_MAX_SAFE_INTEGERÚdtÚitemÚkÚvs          r   Ú__convert_to_local_valuezScript.__convert_to_local_valueM  sg  € ð ˆ=Ø˜FÐ#Ð#Ü˜œtÔ$Ø%°Ñ6Ð6Ü˜¤¤U˜|Ô,Ü˜%¤Ô'Ü—:‘:˜eÔ$Ø$,°uÑ=Ð=Ü—Z‘Z Ô&Ø˜q’yØ(0¸:ÑFÐFà(0¸;ÑGÐGØ˜c’\¤d§m¡m°C¸Ó&?À!Ò&CØ$,°tÑ<Ð<à"2ÐÜ˜%¤Ô%¨5Ð3FÒ+FÈ%ÐSfÐRfÒJfØ (´3°u³:Ñ>Ð>à$¨uÑ5Ð5ä˜œsÔ#Ø$¨uÑ5Ð5Ü˜œx×0Ñ0Ô1à"ÈÏÉÐH\¨U¯_©_Ó->ÀÑ-DÑtÐtÐbg×bqÑbqÓbsÑtÐtÜ˜œxŸ}™}Ô-ä×"Ñ"×*Ñ*¨5´(·-±-×2CÑ2CÓD×LÑLÔT\×TeÑTe×TiÑTiÐLÓjˆBØ"¨R¯\©\«^Ñ<Ð<Ü˜œsÔ#Ø!Ð]bÖ,cÐUY¨T×-JÑ-JÈ4Õ-PÒ,cÑdÐdÜ˜¤¤e˜}Ô-Ø#Ð_dÖ.eÐW[¨t×/LÑ/LÈTÕ/RÒ.eÑfÐfÜ˜œtÔ$à àej×epÑepÓer÷Ù]aÐ]^Ð`a�T×2Ñ2°1Ó5°t×7TÑ7TÐUVÓ7WÒXóñð ð %¬s°5«zÑ:Ð:ùò -dùâ.eùós   ÇJÈJÉ,Jr‚   r…   ÚcontextsÚuser_contextsr+   c                 ó´   — |�|�t        d«      ‚d|i}|�||d<   |�||d<   |�||d<   |�||d<   | j                  j                  t        d|«      «      }|d   S )	aM  Adds a preload script.

        Parameters:
        -----------
            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.
        z.Cannot specify both contexts and user_contextsÚfunctionDeclarationr…   r¹   ÚuserContextsr+   zscript.addPreloadScriptry   )r0   rc   r�   r   )rK   r‚   r…   r¹   rº   r+   Úparamsr>   s           r   r{   zScript._add_preload_script€  s�   € ð4 Ð MÐ$=ÜÐMÓNÐNà"7Ð9MÐ!NˆàÐ Ø"+ˆF�;ÑØÐØ!)ˆF�:ÑØÐ$Ø%2ˆF�>Ñ"ØÐØ 'ˆF�9Ñà—‘×"Ñ"¤?Ð3LÈfÓ#UÓVˆØ�hÑÐr   c                 óV   — d|i}| j                   j                  t        d|«      «       y)zƒRemoves a preload script.

        Parameters:
        -----------
            script_id: The preload script ID to remove.
        ry   zscript.removePreloadScriptN©rc   r�   r   )rK   r}   r¾   s      r   r   zScript._remove_preload_script«  s(   € ð ˜IÐ&ˆØ�	‰	×Ñœ/Ð*FÈÓOÕPr   Úhandlesr„   c                 óX   — ||dœ}| j                   j                  t        d|«      «       y)z©Disowns the given handles.

        Parameters:
        -----------
            handles: The handles to disown.
            target: The target realm or context.
        )rÁ   r„   zscript.disownNrÀ   )rK   rÁ   r„   r¾   s       r   Ú_disownzScript._disownµ  s,   € ð Øñ
ˆð 	�	‰	×Ñœ/¨/¸6ÓBÕCr   rƒ   Úresult_ownershipÚserialization_optionsÚthisÚuser_activationc	                 ó¼   — ||||dœ}	|�||	d<   |�||	d<   |�||	d<   |�||	d<   | j                   j                  t        d|	«      «      }
t        j	                  |
«      S )a¶  Calls a provided function with given arguments in a given realm.

        Parameters:
        -----------
            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„   ÚuserActivationr…   ÚresultOwnershipÚserializationOptionsrÆ   zscript.callFunction©rc   r�   r   r=   r4   )rK   r‚   rƒ   r„   r…   rÄ   rÅ   rÆ   rÇ   r¾   r>   s              r   r‹   zScript._call_functionÃ  s‡   € ð: $8Ø)ØØ-ñ	
ˆð Ð Ø"+ˆF�;ÑØÐ'Ø(8ˆFÐ$Ñ%Ø Ð,Ø-BˆFÐ)Ñ*ØÐØ!ˆF�6‰Nà—‘×"Ñ"¤?Ð3HÈ&Ó#QÓRˆÜ×'Ñ'¨Ó/Ð/r   Ú
expressionc                 ó    — ||||dœ}|�||d<   |�||d<   | j                   j                  t        d|«      «      }t        j	                  |«      S )a&  Evaluates a provided script in a given realm.

        Parameters:
        -----------
            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Ê   rË   rÌ   zscript.evaluaterÍ   )	rK   rÎ   r„   rƒ   rÄ   rÅ   rÇ   r¾   r>   s	            r   Ú	_evaluatezScript._evaluateò  sh   € ð2 %ØØ)Ø-ñ	
ˆð Ð'Ø(8ˆFÐ$Ñ%Ø Ð,Ø-BˆFÐ)Ñ*à—‘×"Ñ"¤?Ð3DÀfÓ#MÓNˆÜ×'Ñ'¨Ó/Ð/r   r*   r)   c                 óÂ   — i }|�||d<   |�||d<   | j                   j                  t        d|«      «      }|d   D �cg c]  }t        j	                  |«      ‘Œ c}S c c}w )a*  Returns a list of all realms, optionally filtered.

        Parameters:
        -----------
            context: The browsing context ID to filter by.
            type: The realm type to filter by.

        Returns:
        -------
            List[RealmInfo]: A list of realm information.
        r*   r)   zscript.getRealmsÚrealms)rc   r�   r   r&   r4   )rK   r*   r)   r¾   r>   r'   s         r   Ú_get_realmszScript._get_realms  sh   € ð  ˆàÐØ 'ˆF�9ÑØÐØ!ˆF�6‰Nà—‘×"Ñ"¤?Ð3EÀvÓ#NÓOˆØ8>¸xÑ8HÖI¨u”	×#Ñ# EÕ*ÒIÐIùÒIs   ½Ac                 óÆ   — | j                   sUt        | j                  «      }| j                  j                  |j	                  t
        j                  «      «       d| _         y y )NT)re   r
   rc   r�   Ú	subscriber	   rN   ©rK   Úsessions     r   rk   z Script._subscribe_to_log_entries3  sI   € Ø×(Ò(Ü˜dŸi™iÓ(ˆGØ�I‰I×Ñ˜g×/Ñ/´×0IÑ0IÓJÔKØ(,ˆDÕ%ð )r   c                 ó  — | j                   r|t        j                  | j                  j                  vrUt        | j                  «      }| j                  j                  |j                  t        j                  «      «       d| _         y y y rb   )re   r	   rN   rc   rg   r
   r�   ÚunsubscriberÖ   s     r   rv   z$Script._unsubscribe_from_log_entries9  sd   € Ø×$Ò$¬×)BÑ)BÈ$Ï)É)×J]ÑJ]Ñ)]Ü˜dŸi™iÓ(ˆGØ�I‰I×Ñ˜g×1Ñ1´-×2KÑ2KÓLÔMØ(-ˆDÕ%ð *^Ð$r   c                 ó   ‡‡— ˆˆfd„}|S )Nc                 ó6   •— | j                   ‰k(  r	 ‰| «       y y rI   )Útype_)Ú	log_entryro   r)   s    €€r   rm   z3Script._handle_log_entry.<locals>._handle_log_entry@  s   ø€ Ø�‰ $Ò&Ù˜	Õ"ð 'r   r   )rK   r)   ro   rm   s    `` r   rm   zScript._handle_log_entry?  s   ù€ õ	#ð !Ð r   rI   )NNNN)NNNNF)NNF)NN)r   r   r   r   ÚEVENTSrL   rp   rs   rx   Úremove_javascript_error_handlerr5   r|   r€   r8   r�   rŠ   r   r°   r   r{   r   rÃ   r¡   r=   r‹   rÐ   r&   rÓ   rk   rv   rm   r   r   r   r]   r]   ë   sT  „ Ù3ð $Ø.Ø2ñ€Fóòaòdò-ð 'EÐ#ð0˜#ð 0 #ó 0ð/˜sð / tó /ð*4˜cð *4¨Tó *4ðX0;°ó 0;ðl 59Ø(,Ø-1Ø!%ñ) à!ð) ð ˜D  c¨3 h¡Ñ0Ñ1ð) ð ˜4 ™9Ñ%ð	) ð
    S¡	Ñ*ð) ð ˜#‘ð) ð 
ó) ðVQ°ð Q¸ó QðD˜t C™yð D°$ð D¸4ó Dð& +/Ø*.Ø04Ø#Ø %ñ-0à!ð-0ð ð-0ð ð	-0ð
 ˜D ™JÑ'ð-0ð # 3™-ð-0ð  (¨™~ð-0ð �t‰nð-0ð ð-0ð 
ó-0ðh +/Ø04Ø %ñ%0àð%0ð ð%0ð ð	%0ð
 # 3™-ð%0ð  (¨™~ð%0ð ð%0ð 
ó%0ðR "&Ø"ñJà˜#‘ðJð �s‰mðJð 
ˆi‰ó	Jò4-ò.ó!r   r]   )r¨   r¤   Údataclassesr   Útypingr   r   Úselenium.common.exceptionsr   Ú%selenium.webdriver.common.bidi.commonr   Úlogr	   r×   r
   r   r   r&   r:   r=   rC   rP   rW   r]   r   r   r   ú<module>rå      s«   ðó$ Û Ý !ß  å 9Ý Aå Ý ÷ñ ÷
ñ 
ð ÷"
ð "
ó ð"
ðJ ÷
ð 
ó ð
ð6 ÷
ð 
ó ð
÷B!
ñ !
÷H9ñ 9÷.(ñ (÷4Y!ò Y!r   