+
    iHàjÐ8  ã                  ó†  a€ 0 t $ R t^ RIHt ^ RIt^ RIHt ^ RIHt ^ RI	H
t
HtHtHtHt ^ RIHt R R ltR	^ R
RRRRRRR/R R lltR	^ /R R llt] ! R R4      4       t]]
]].]
3,          t]]
R3,          tR R ltR R ltR R ltR R ltR R lt]! RR R!ReRf4      tR" R# ltR$ R% lt R& R' lt!R( R) lt"R* R+ lt#R, R- lt$/ R.]! R/R0RgRhR1 R27      bR3]! R4R5RiRjR6 R7 R87      bR9]bR:]bR;]! R<R=RkR> R?7      bR@]! RARBRCRlRf4      bRD]bRE]! RFRGRHRmRnRoRpRqRrRsRtRu4      bRI]! RJRKRHRvRnRoRw4      bRL]! RMRNRO4      bRP]! RQRRRSRmRxRoRyRpRzR{R|R}4      bRT]! RURVRWR~RR€R�4      bRX]#bRY] bRZ]"bR[]$bR\R] bt%R^]&R_&   R` Ra lt']%PQ                  4        U Uu/ uF  w  rV ]'! W4      bK  	  upp t)R^]&Rb&   ]*! 0 R‚m4      t+Rc Rd lt,R# u upp i )ƒaæ  Agent-level ("inline") tool executors shared by the sequential and concurrent tool paths.

These tools need live ``AIAgent`` state (stores, callbacks, session DB) and therefore
bypass the tool registry. Each executor is ``fn(agent, args, ctx) -> result``; the
table replaces two hand-maintained if/elif chains (``invoke_tool`` and
``execute_tool_calls_sequential``) that had drifted apart. Tool modules are imported
lazily at call time so ``patch("tools.x.y")`` in tests keeps working.
)ÚannotationsN)Ú	dataclass)Úimport_module)ÚAnyÚCallableÚDictÚOptionalÚTuple©Úcoerce_tool_argsc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úeffective_task_idÚstrÚtool_call_idúOptional[str]Úreturnzdict[str, str]© )Úformats   "Ú@/home/ubuntu/.hermes/hermes-agent/agent/inline_tool_executors.pyÚ__annotate__r      s"   € ÷ ñ ¨Cð ¸}ð ÐQ_ñ ó    c                óÀ   € RT;'       g    RR\        V RR4      ;'       g    RRT;'       g    RR\        V RR4      ;'       g    RR\        V RR4      ;'       g    R/# )	zPIdentity kwargs every tool hook/middleware call carries (all coerced to ``""``).Útask_idÚ Ú
session_idr   Úturn_idÚ_current_turn_idÚapi_request_idÚ_current_api_request_id©Úgetattr)Úagentr   r   s   &&&r   Útool_hook_idsr#      sm   € ð 	Ð$×*Ð*¨Ø”g˜e \°2Ó6×<Ð<¸"Ø˜×*Ð*¨Ø”7˜5Ð"4°bÓ9×?Ð?¸RØœ' %Ð)BÀBÓG×MÐMÈ2ðð r   Úduration_msÚstatusÚ
error_typeÚerror_messageÚmiddleware_tracec               óD   € V ^8„  d   QhRRRRRRRRRR	R
RRR	RR	RR	RRRR/# )r   Úfunction_namer   Úfunction_argsÚdictÚresultr   r   r   r   r$   Úintr%   r&   r'   r(   úOptional[list]r   ÚNoner   )r   s   "r   r   r      sz   € ÷ ñ ð ðð ð	ð
 ðð ðð  ðð ðð ðð ðð !ðð %ðð 
ñr   c       
        ó¦   €  ^ RI Hp T! RRVRVRV/\        WV4      BRTRTRTRT	R	\        T
;'       g    . 4      /B  R
#   \         d     R
# i ; i)zOEmit the one terminal ``post_tool_call`` hook for a tool_call_id (best-effort).)Ú_emit_post_tool_call_hookr*   r+   r-   r$   r%   r&   r'   r(   Nr   )Úmodel_toolsr2   r#   ÚlistÚ	Exception)r"   r*   r+   r-   r   r   r$   r%   r&   r'   r(   r2   s   &$$$$$$$$$$ r   Úemit_terminal_post_tool_callr6      s‘   € ðÝ9Ù!ñ 
	
Ø'ð
	
à'ð
	
ð ð
	
ô ˜E°lÓCñ	
	
ð
 $ð
	
ð ð
	
ð "ð
	
ð (ð
	
ô "Ð"2×"8Ð"8°bÓ9õ
	
øô ô Úðús   ‚=A ÁAÁAc               ó4   € V ^8„  d   Qh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   r   )r   s   "r   r   r   ?   sR   € ÷ ñ ð ðð ð	ð
 ðð ðð  ðð ðð 	ñr   c               ón   €  ^ RI HpHp V! WW6V! R/ \        WV4      B 4      #   \         d    Tu # i ; i)a&  Apply ``transform_tool_result`` to an inline-dispatched tool's result.

Registry tools get this inside ``handle_function_call``; inline executors never
reach it, so the agent paths call the same helper (after the terminal
``post_tool_call``) to keep the hook's "every tool" contract. Fail-open.)Ú_CallIdsÚ!_apply_transform_tool_result_hookr   )r3   r9   r:   r#   r5   )	r"   r*   r+   r-   r   r   r$   r9   r:   s	   &$$$$$$  r   Úapply_transform_tool_resultr;   ?   sD   € ðßKÙ0Ø¨&ÙÑM”} U¸|ÓLÑMó
ð 	
øô ô ØŠðús   ‚!$ ¤4³4c                  óB   € ] tR t^Xt$ RtR]R&   RtR]R&   RtR]R&   R	tR# )
ÚInlineToolContextz@Per-call state an inline executor may need beyond its arguments.r   r   Nr   r   r/   Úmessagesr   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r   r>   Ú__static_attributes__r   r   r   r=   r=   X   s   ‡ áJàÓØ"&€L�-Ó&Ø#€Hˆn×#r   r=   .c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R	/# )r   Úmoduler   ÚfuncÚargsr,   Ú	arg_specsztuple[_ArgSpec, ...]Úfixedr   r   r   )r   s   "r   r   r   g   sA   € ÷ Oñ O�sð O #ð O¨Tð OÐ>Rð OÐ]`ð OÐehñ Or   c                ó¢   € \        \        V 4      V4      pT! R/ V Uu/ uF!  qf^ ,          VP                  ! VR,          !  bK#  	  upBVB # u upi )z\Import ``module.func`` lazily and call it with args mapped per ``arg_specs`` plus ``fixed``.:é   NNr   )r!   r   Úget)rG   rH   rI   rJ   rK   ÚfnÚspecs   &&&&,  r   Ú
_call_toolrQ   g   sL   € ä	”˜vÓ&¨Ó	-€BÙÑN¹)ÓD¹)°$�a•˜$Ÿ(š( D¨¥HÑ-Ò-¹)ÑDÐNÈÑNÐNùÒDs   ž'Ac          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   rG   r   rH   rJ   Ú_ArgSpecrK   z'Callable[[Any, InlineToolContext], Any]r   ÚInlineToolExecutorr   )r   s   "r   r   r   m   s4   € ÷ ñ ØðØðØ(0ðØ;bðàñr   c                ó&   a aaa€ R VVVV 3R llpV# )zgExecutor calling ``module.func`` with mapped args plus ``fixed`` kwargs computed from ``(agent, ctx)``.c               ó$   € V ^8„  d   QhRRRRRR/# ©r   rI   r,   Úctxr=   r   r   r   )r   s   "r   r   Ú_tool.<locals>.__annotate__q   s'   € ÷ iñ i˜4ð iÐ&7ð i¸Cñ ir   c                ó~   <€ \        SSVS3/ SP                  4        UUu/ uF  w  r4W4! W4      bK  	  uppB # u uppi ©N)rQ   Úitems)	r"   rI   rX   ÚkÚfrJ   rK   rH   rG   s	   &&&  €€€€r   Ú_execÚ_tool.<locals>._execq   sD   ø€ Ü˜& $¨¨iÑhÐY^×YdÑYdÔYfÔ;gÑYfÑQUÐQR¸A¸qÀ»}Ò<LÑYfÒ;gÑhÐhùÓ;gs    9r   )rG   rH   rJ   rK   r_   s   ffjl r   Ú_toolra   m   s   û€ ÷ió ià€Lr   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r   rG   r   rH   Úcallback_attrrJ   rS   r   rT   r   )r   s   "r   r   r   v   s7   € ÷ lñ l˜3ð l cð l¸#ð lÈ8ð lÐXjñ lr   c                ó*   a€ \        W.VO5RV3R l/ # )zdExecutor for a GUI-callback tool: mapped args plus ``callback=getattr(agent, callback_attr, None)``.Úcallbackc                ó   <€ \        V SR 4      # r[   r    )r"   rX   rc   s   &&€r   Ú<lambda>Ú _callback_tool.<locals>.<lambda>x   s   ø€ ÄwÈuÐVcÐeiÔGjr   )ra   )rG   rH   rc   rJ   s   &&f*r   Ú_callback_toolri   v   s   ø€ ä�Ðk 	ÒkÔ4jÑkÐkr   c               ó$   € V ^8„  d   QhRRRRRR/# rW   r   )r   s   "r   r   r   {   s"   € ÷ ñ  ð Ð,=ð À#ñ r   c           	     ó°   € V P                  4       pV'       g&   ^ RIHp \        P                  ! RRRV! 4       /4      # \        RRVRW0P                  R7      # )	é    )Úformat_session_db_unavailableÚsuccessFÚerrorztools.session_search_toolÚsession_search)ÚdbÚcurrent_session_id))Úqueryrs   r   )Úrole_filterrt   )Úlimitru   é   )r   r   )Úaround_message_idrw   )Úwindowrx   é   )Úsortrz   )Úprofiler{   )Údetailr|   Úadaptive)Úafterr~   )Úbeforer   )Úexclude_session_idsr€   )Ú_get_session_db_for_recallÚhermes_staterm   ÚjsonÚdumpsrQ   r   )r"   rI   rX   Ú
session_dbrm   s   &&&  r   Ú_session_searchr†   {   sW   € Ø×1Ñ1Ó3€JßÝ>ä�zŠz˜9 e¨WÑ6SÓ6UÐVÓWÐWÜØ#Ð%5°tð	
ð ×*:Ñ*:ô
ð 
r   c               ó$   € V ^8„  d   QhRRRRRR/# rW   r   )r   s   "r   r   r   Ž   s"   € ÷ ñ ˜ð Ð$5ð ¸#ñ r   c                ó¨   a a€ \        R RVRS P                  R7      pS P                  '       d$   S P                  P                  VVV V3R lR7       V# )ztools.memory_toolÚmemory_tool©Ústorec                 óR   <€ S P                  SP                  SP                  R 7      # ))r   r   )Ú_build_memory_write_metadatar   r   ©r"   rX   s   €€r   rg   Ú_memory.<locals>.<lambda>�   s(   ø€  5×#EÑ#EØ×-Ñ-Ø ×-Ñ-ð $Fô $r   )Úbuild_metadata))Úactionr‘   )Útargetr’   )Úcontentr“   )Úold_textr”   )Únew_textr•   )Ú
operationsr–   )rQ   Ú_memory_storeÚ_memory_managerÚnotify_memory_tool_write)r"   rI   rX   r-   s   f&f r   Ú_memoryrš   Ž   s]   ù€ ÜØ˜]¨Dð	
ð ×!Ñ!ô€Fð ××ÐØ×Ñ×6Ñ6ØØõð 	7ô 	
ð €Mr   ztools.read_preview_toolÚread_preview_toolÚread_preview_callbackc               ó$   € V ^8„  d   QhRRRRRR/# rW   r   )r   s   "r   r   r   «   s"   € ÷ !ñ ! $ð !Ð->ð !À3ñ !r   c                ó’   € VP                  R 4      ;'       g    RP                  4       R8X  d   \        WV4      # ^ RIHp V! V4      # )r‘   r   Úread)Ú_handle_preview)rN   ÚstripÚ_read_previewÚtools.preview_toolr    )r"   rI   rX   r    s   &&& r   Ú_desktop_previewr¤   «   sA   € ð 	�‰�Ó× Ð ˜b×'Ñ'Ó)¨VÔ3Ü˜U¨#Ó.Ð.Ý2á˜4Ó Ð r   c               ó$   € V ^8„  d   QhRRRRRR/# rW   r   )r   s   "r   r   r   µ   s"   € ÷ ñ  Tð Ð0Að Àcñ r   c                óì   € ^ RI Hp ^ RIHp T! T\	        V RR4      VP
                  \	        V RR4      ;'       g    R\	        V RR4      VP                  \	        V RR4      R8H  R	7      p\        W4       V# )
rl   )Úmanage_connections)Úconfigr   Nr   Úconnection_callbackÚplatformÚdesktop)r   r   r   r©   Úconnectors_availableÚcard_surface)Útools.connectorsr§   Útools.connectors.gatewayr¨   r!   r   r¬   Ú_scope_in_connected_mcp_servers)r"   rI   rX   r§   Úgateway_configr-   s   &&&   r   Ú_manage_connectionsr²   µ   ss   € å3ÝAáØœ ¨°dÓ;È#×JZÑJZÜ˜Ð1°4Ó8×@Ð@¸DÜ# EÐ+@À$ÓGØ+×@Ñ@Ü˜U J°Ó5¸ÑBô€Fô $ EÔ2Ø€Mr   c               ó    € V ^8„  d   QhRRRR/# )r   r-   r   r   r0   r   )r   s   "r   r   r   Å   s   € ÷ 4ñ 4°3ð 4¸4ñ 4r   c                óX  € \        V RR4      pVe   RV9   d   R#  \        P                  ! V4      P                  R4      ;'       g    . pT Uu. uF~  p\        T\        4      '       g   K  TP                  R4      R8X  g   K3  TP                  R4      R8X  g   KK  TP                  R	4      '       g   Kd  \        TP                  R
4      4      NK€  	  ppT Uu. uF  qfT9  g   K  TNK  	  ppT'       d   . TOTOT n
        R# R#   \        \
        \        3 d     R# i ; iu upi u upi )a•  Add the MCP servers this call connected to the agent's toolset selection.

``tool_describe``/``tool_call`` resolve names inside that selection, and it was fixed when the
agent was built, so a server registered a moment ago is otherwise "not found" for the rest of
the turn the result calls it available in. Only the selection changes; ``agent.tools`` does
not, so the sent tool schema bytes stay the same.Úenabled_toolsetsNÚno_mcpÚtargetsÚkindÚmcpÚstateÚ	connectedÚtoolsÚname)r!   rƒ   ÚloadsrN   ÚAttributeErrorÚ	TypeErrorÚ
ValueErrorÚ
isinstancer,   r   rµ   )r"   r-   Úenabledr·   Útr»   r½   Úaddeds   &&      r   r°   r°   Å   s  € ô �eÐ/°Ó6€GØ‚˜( gÔ-ÙðÜ—*’*˜VÓ$×(Ñ(¨Ó3×9Ð9°rˆñ .5ó b©W¨¼
À1Äd×8KÔ#Ø—U‘U˜6“] eÑ+ô $Ø01·±°g³À+Ñ0Mô $ØRS×RWÑRWÐX_×R`ô $”�Q—U‘U˜6“]Ö#©W€Ið bá'Ó?™i�d°wÑ+>�TˆT™i€EÐ?ßØ!3 7Ð!3¨UÐ!3ˆÖñ øô œI¤zÐ2ô Úðüòbùâ?sA   œ+D ÁD ÁD"Á,D"ÂD"ÂD"Â5D"ÃD'Ã&D'ÄDÄDc               ó$   € V ^8„  d   QhRRRRRR/# rW   r   )r   s   "r   r   r   Ú   s"   € ÷ ñ  ð Ð,=ð À#ñ r   c                ó„   € ^ RI Hp V! V\        V RR4      VP                  \        V RR4      \        V RR4      R8H  R7      # )rl   )Úmanage_catalogr   Nr©   rª   r«   )r   r   r©   r­   )Útools.connectors.catalog_toolrÈ   r!   r   )r"   rI   rX   rÈ   s   &&& r   Ú_manage_catalogrÊ   Ú   sF   € å<áØœ ¨°dÓ;È#×JZÑJZÜ# EÐ+@À$ÓGÜ˜U J°Ó5¸ÑBôð r   c               ó$   € V ^8„  d   QhRRRRRR/# rW   r   )r   s   "r   r   r   å   s"   € ÷ ñ ˜Tð Ð(9ð ¸cñ r   c                óÂ   a a€ ^ RI Ho ^ RIHp T! T\	        S RR4      \	        S RR4      ;'       g    RVP
                  ;'       g    R\	        S RR4      VV 3R lR	7      # )
rl   )Ú_REASON_NEW_MESSAGE)Úsetup_beat_toolÚ_session_dbNr   r   Úsetup_beat_callbackc                 ó(   <€ SP                  S R 7      # ))Útool_reason)Ú	interrupt)rÍ   r"   s   €€r   rg   Ú_setup_beat.<locals>.<lambda>ï   s   ø€ ˜Ÿ™Ð5H˜ÔIr   )rq   r   r   re   Úend_turn)Úagent.interrupt_controlrÍ   Útools.setup_beat_toolrÎ   r!   r   )r"   rI   rX   rÎ   rÍ   s   f&& @r   Ú_setup_beatrØ   å   s]   ù€ õ <Ý5áØ”˜ ¨tÓ4ÄÈÐP\Ð^bÓAc×AiÐAiÐgiØ×%Ñ%×+Ð+¨´g¸eÐEZÐ\`Ó6aÝIôð r   c               ó$   € V ^8„  d   QhRRRRRR/# rW   r   )r   s   "r   r   r   ó   s"   € ÷ ñ  ð Ð,=ð À#ñ r   c                ón   € \        V R VP                  R R4      RRVP                  RR4      RR/./V4      # )r‘   ÚinstallÚ
connectorsr½   Úserverr   r¹   T)r²   rN   ©r"   rI   rX   s   &&&r   Ú_setup_mcp_shimrß   ó   sI   € ô ˜uØ�$—(‘(˜8 YÓ/Ø˜ §¡¨°2Ó 6¸¸tÐDÐEð'ð óð r   Ú	todo_listztools.todo_toolÚ	todo_toolc                ó   € V P                   # r[   )Ú_todo_storerŽ   s   &&r   rg   rg      s
   €  ×!2Ò!2r   rŠ   Úmessage_agentztools.bot_mode_dmÚmessage_agent_toolc                ó   € VP                   # r[   )r   rŽ   s   &&r   rg   rg     s
   €  3×#8Ò#8r   c                ó   € V # r[   r   rŽ   s   &&r   rg   rg     s   € ÑSXr   )r   r"   rp   ÚmemoryÚclarifyztools.clarify_toolÚclarify_toolc                ó   € V P                   # r[   )Úclarify_callbackrŽ   s   &&r   rg   rg     s
   €  E×$:Ò$:r   )re   Úread_terminalztools.read_terminal_toolÚread_terminal_toolÚread_terminal_callbackÚdesktop_previewÚdrive_previewztools.drive_preview_toolÚdrive_preview_toolÚdrive_preview_callbackÚannotate_previewztools.annotate_preview_toolÚannotate_preview_toolÚread_window_belowztools.read_window_toolÚread_window_below_toolÚread_window_below_callbackÚgui_tourztools.tour_toolÚ	tour_toolÚtour_callbackÚ	set_themeztools.set_theme_toolÚset_theme_toolÚtheme_callbackÚ
setup_beatr§   rÈ   Ú	setup_mcpÚdelegate_taskc                ó$   € V P                  V4      # r[   )Ú_dispatch_delegate_taskrÞ   s   &&&r   rg   rg   -  s   € ¨e×.KÑ.KÈDÔ.Qr   zdict[str, InlineToolExecutor]Ú_RAW_INLINE_TOOL_EXECUTORSc               ó$   € V ^8„  d   QhRRRRRR/# )r   r½   r   ÚexecutorrT   r   r   )r   s   "r   r   r   1  s#   € ÷ ñ �3ð Ð"4ð Ð9Kñ r   c                ó   a a€ R  VV 3R llpV# )c               ó$   € V ^8„  d   QhRRRRRR/# rW   r   )r   s   "r   r   Ú_coerced.<locals>.__annotate__2  s'   € ÷ Bñ B˜4ð BÐ&7ð B¸Cñ Br   c                ó,   <€ S! V \        SV4      V4      # r[   r
   )r"   rI   rX   r  r½   s   &&&€€r   r_   Ú_coerced.<locals>._exec2  s   ø€ Ù˜Ô/°°dÓ;¸SÓAÐAr   r   )r½   r  r_   s   ff r   Ú_coercedr  1  s   ù€ ÷Bñ Bà€Lr   ÚINLINE_TOOL_EXECUTORSc               ó    € V ^8„  d   QhRRRR/# )r   r*   r   r   zOptional[InlineToolExecutor]r   )r   s   "r   r   r   A  s   € ÷ 4ñ 4°sð 4Ð?[ñ 4r   c                óÒ   a€ S\         9   d   \        S,          # V P                  pV'       d   VP                  S4      '       d   V3R l# SR8X  d   R# \        P	                  S4      # )zÝInline executor for ``invoke_tool`` (concurrent path), or None for registry dispatch.

Precedence: todo_list/session_search/memory, then memory-manager tools, then the
remaining inline tools (``message_agent`` excluded).
c           	     ój   <€ V P                   P                  ST\        V R R4      ;'       g    RR7      # )Ú_gateway_session_keyr   )Ú
caller_gsk)r˜   Úhandle_tool_callr!   )r"   rI   rX   r*   s   &&&€r   rg   Ú.resolve_invoke_tool_executor.<locals>.<lambda>K  s6   ø€ ¨×(=Ñ(=×(NÑ(NØ˜4Ü Ð'=¸rÓB×HÐHÀbð )Oô )
r   rä   N)Ú$INVOKE_TOOL_PRE_MEMORY_MANAGER_NAMESr  r˜   Úhas_toolrN   )r"   r*   Úmemory_managers   &f r   Úresolve_invoke_tool_executorr  A  s_   ø€ ð Ô<Ô<Ü$ ]Õ3Ð3Ø×*Ñ*€Nß˜.×1Ñ1°-×@Ò@ô
ð 	
ð ˜Ô'ÙÜ ×$Ñ$ ]Ó3Ð3r   )Ústartr  )Úcountr  )Útodosr  )Úmerger  F)r’   r’   r   )Úmessager  r   )Ú	questionsr  )Ú
start_liner  )r‘   r‘   r   )Úrefr   )Úselectorr!  )Útextr"  )Úkeyr#  )Úsubmitr$  )Úamountr%  )Útor&  )ru   Úmax)r‘   r‘   Úadd)Úlabelr)  )Úsurfacer*  )Útitler+  )Úsider,  )Ústepsr-  )Ú
step_indexr.  )Úpresetr/  )Úaccentr0  )Úmoder1  )Úlayoutr2  )Úpickerr3  >   rè   rà   rp   )-Ú__conditional_annotations__rC   Ú
__future__r   rƒ   Údataclassesr   Ú	importlibr   Útypingr   r   r   r   r	   Útools.arg_coercionr   r#   r6   r;   r=   r,   rT   ÚtuplerS   rQ   ra   ri   r†   rš   r¢   r¤   r²   r°   rÊ   rØ   rß   r  rD   r  r\   r  Ú	frozensetr  r  )r½   r  r4  s   00@r   Ú<module>r<     s%  øðôõ #ã Ý !Ý #ß 7Õ 7å /õðð ðð !ðð !%ðð $(ðð (,÷ð@ð ÷ð2 ÷$ð $ó ð$ð ˜s DÐ*;Ð<¸cÐAÕBÐ ð ��c��?€õOõõlõ
õ&ñ. ØÐ2Ð4KØÐ*ó€õ!õõ 4õ*õõð1=Ø‘Ø˜;Ð(:Ð<UÙ2ôð1=ð ‘UØÐ1Ð3KÐMgÙ8Ñ@Xôð1=ð �oð1=ð ˆgð1=ð ‰uØ˜nÐ.HÙ:ôð1=ð" ‘^Ø"Ð$8Ð:RØ$Ð&8óð#1=ð* Ð'ð+1=ð, ‘^Ø"Ð$8Ð:RØ  .Ð2JÐL\ØÐ,Ð.BÀLÐRbóð-1=ð6 ™Ø%Ð'>Ð@XØ# ^Ð5MÐOaóð71=ð> ™Ø Ð":Ð<Xóð?1=ðD ‘Ø˜;¨Ø Ð"8Ð:RÐTfØÐ*Ð,>Ð@\Øó	ðE1=ðP ‘ØÐ 0Ð2BØÐ.Ð0DÐFZóðQ1=ðX �+ðY1=ðZ Ð-ð[1=ð\ �oð]1=ð^ �ð_1=ð` ÑQða1=Ð Ð9ó 1õhð :T×9YÑ9YÔ9[ô8Ù9[¡~ t€D‰(�4Ó
"Ò"Ñ9[ò8Ð Ð4ó ñ (1Ò1ZÓ'[Ð $÷4ùó8s   ÆF=