§
    Ž¬jÕ‰  ã                   ó  — d Z ddlZddlZddlZddlZddlZddlmZmZm	Z	m
Z
mZmZ  ej        d¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z	 dd	lmZ n# e$ r	 dd	lmZ Y nw xY wd
ZdZdZ G d„ d¦  «        ZdS )uè  
AutoPOE2 - Bá»™ Ä�iá»�u Phá»‘i VÃ²ng Ä�á»�i Tá»± HÃ nh ToÃ n Diá»‡n (Autonomous Lifecycle Manager)
Hiá»‡n thá»±c hÃ³a triáº¿t lÃ½ váº­n hÃ nh tá»± Ä‘á»™ng 1-Click:
- Giai Ä‘oáº¡n 1 (ChÆ°a End Game): Tá»± Ä‘á»™ng má»Ÿ game -> Ä‘Äƒng nháº­p -> cÃ y cuá»‘c, lÃ m nhiá»‡m vá»¥ chiáº¿n dá»‹ch tá»« Lv 1 Ä‘áº¿n Endgame.
- Giai Ä‘oáº¡n 2 (Ä�Ã£ Ä�áº¡t End Game): Tá»± Ä‘á»™ng chuyá»ƒn sang cháº¿ Ä‘á»™ Earning (farm map, nháº·t tiá»�n tá»‡, lá»�c Ä‘á»“ qua The Hooded One, sÄƒn kÃ¨o arbitrage).
é    N)ÚAnyÚCallableÚDictÚListÚOptionalÚTupleÚAutonomousLifecyclec                   ó"   — e Zd ZdZdZdZdZdZdS )ÚLifecyclePhaseÚSTANDBYÚAUTO_LAUNCH_CLIENTÚ
AUTO_LOGINÚCAMPAIGN_GRINDÚENDGAME_EARNINGN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   © ó    ú?C:\Projects\AutoPOE2\src\assistant_tool\autonomous_lifecycle.pyr   r      s(   € € € € € Ø€GØ-ÐØ€JØ%€NØ'€O€O€Or   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 )ÚEndgameMappingSubStateul   Tráº¡ng thÃ¡i chi tiáº¿t cá»§a chu trÃ¬nh cÃ y map khÃ©p kÃ­n táº¡i Giai Ä‘oáº¡n 2 (Cold Path Orchestrator).ÚIDLEÚPRECHECK_INVENTORYÚSELECT_WAYSTONEÚDISPATCH_MAP_DEVICEÚWAIT_ZONE_ENTERÚIN_MAP_MONITORINGÚMAP_COMPLETEDÚ	EXHAUSTEDN)r   r   r   Ú__doc__r   r   r   r   r   r   r   r    r   r   r   r   r      s?   € € € € € ØvÐvØ€DØ-ÐØ'€OØ/ÐØ'€OØ+ÐØ#€MØ€I€I€Ir   r   )ÚCharacterLifecycleState)i  iß  )i  é_   )iC  ië  c                   ó`  — e Zd ZdZdZ eh d£¦  «        Zedede	fd„¦   «         Z
d!deeeef                  fd	„Zd
eeegdf         fd„Zdefd„Zd"deeeef                  fd„Zd„ Zd„ Zd#dededefd„Zdefd„Zd„ Zd„ Zd„ Zd„ Zdedeeef         fd„Zdee         fd„Zd$dede	fd „Z dS )%ÚAutonomousLifecycleManageru  
    Quáº£n lÃ½ vÃ²ng Ä‘á»�i tiáº¿n hÃ³a tá»± hÃ nh cá»§a nhÃ¢n váº­t.
    Hoáº¡t Ä‘á»™ng phi táº­p trung (decoupled), láº¯ng nghe snapshot Shared Memory vÃ  Log events
    Ä‘á»ƒ ra quyáº¿t Ä‘á»‹nh chuyá»ƒn cáº£nh vÃ  giao tiáº¿p vá»›i C++ Core Engine.
    éA   >   úact 1úact 2úact 3úact 4ú(null)ú	(unknown)ÚatlasÚnameÚreturnc                 ó(  — |sdS |                      ¦   «                              ¦   «         }|                     d¦  «        r.|                     dd¦  «        d                               ¦   «         }|                     d¦  «        rdS || j        v rdS |dv S )uE   Kiá»ƒm tra xem tÃªn khu vá»±c cÃ³ pháº£i lÃ  UI overlay scene khÃ´ng.Tõ   Ä‘Ã£ chuyá»ƒn Ä‘áº¿n khu vá»±c:ú:é   z[dnt>   ú	world mapú[dnt] world map)ÚstripÚlowerÚ
startswithÚsplitÚUI_SCENE_NAMES)Úclsr.   Úcleans      r   Úis_ui_scenez&AutonomousLifecycleManager.is_ui_sceneE   sŸ   € ð ð 	Ø�4Ø—
’
‘”×"Ò"Ñ$Ô$ˆØ×ÒÐ=Ñ>Ô>ð 	3Ø—K’K  QÑ'Ô'¨Ô*×0Ò0Ñ2Ô2ˆEØ×Ò˜FÑ#Ô#ð 	Ø�4Ø�CÔ&Ð&Ð&Ø�4ØÐ8Ð8Ð8r   NÚconfigc                 ó>  — || _         || _        |pi | _        t          j        | _        d| _        t          j        ¦   «         | _	        t          j
        ¦   «         | _        d | _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        ddlm} dd	lm} dd
lm}  |¦   «         | _         |¦   «         | _         |¦   «         | _        d| _         d| _!        tD          j#        | _$        tK          | j         &                    dd¦  «        ¦  «        | _'        d| _(        d | _)        d| _*        d| _+        d| _,        d| _-        d| _.        d| _/        t`          j1        | _2        d| _3        d| _4        d| _5        g | _6        d S )NFÚ r3   ç        g       @u"   Ä�ang khá»Ÿi táº¡o há»‡ thá»‘ng...r   )ÚAutoQuester)ÚOpticalInventoryScanner)ÚScreenCapturerg      >@Úmax_mapsg     €A@g      @)7Úcore_bridgeÚcore_controllerr>   r   r   ÚphaseÚ	is_activeÚ	threadingÚLockÚ_lockÚEventÚ_stop_eventÚ_eval_threadÚcurrent_area_codeÚcurrent_area_nameÚplayer_levelÚ
is_in_townÚhas_real_map_logÚlast_travel_timeÚtravel_cooldown_secÚlast_launch_attemptÚlast_core_start_attemptÚcurrent_objective_descÚsrc.assistant_tool.auto_questerrB   Ú,src.assistant_tool.optical_inventory_scannerrC   Ú"src.assistant_tool.screen_capturerrD   ÚquesterÚinventory_scannerÚcapturerÚlast_identify_check_timeÚidentify_cooldown_secr   r   Úmapping_substateÚintÚgetrE   Úmaps_completedÚcurrent_waystone_slotÚmap_dispatch_timeÚmap_dispatch_timeout_secÚmap_start_timeÚcurrent_farming_map_nameÚlast_map_return_timeÚhideout_rest_cooldown_secr"   ÚUNINITIALIZED_OR_LOADINGÚlifecycle_stateÚportal_exit_triggeredÚlast_portal_exit_timeÚmap_monsters_detectedÚ_state_listeners)ÚselfrF   rG   r>   rB   rC   rD   s          r   Ú__init__z#AutonomousLifecycleManager.__init__S   s½  € Ø&ˆÔØ.ˆÔØ�l ˆŒå#Ô+ˆŒ
ØˆŒÝ”^Ñ%Ô%ˆŒ
Ý$œ?Ñ,Ô,ˆÔØ8<ˆÔð "$ˆÔØ!#ˆÔØˆÔØˆŒØ %ˆÔØ #ˆÔØ#&ˆÔ Ø#&ˆÔ Ø'*ˆÔ$Ø&JˆÔ#ð 	@Ð?Ð?Ð?Ð?Ð?ØXÐXÐXÐXÐXÐXØEÐEÐEÐEÐEÐEØ"�{‘}”}ˆŒØ!8Ð!8Ñ!:Ô!:ˆÔØ&˜Ñ(Ô(ˆŒØ(+ˆÔ%Ø%)ˆÔ"õ !7Ô ;ˆÔÝ˜DœKŸOšO¨J¸Ñ:Ô:Ñ;Ô;ˆŒØˆÔØ@DˆÔ"Ø!$ˆÔØ(,ˆÔ%Ø!ˆÔØ(*ˆÔ%Ø$'ˆÔ!Ø),ˆÔ&Ý6ÔOˆÔØ%*ˆÔ"Ø%(ˆÔ"Ø%*ˆÔ"ð NPˆÔÐÐr   Úcbc                 ó:   — | j                              |¦  «         dS )u:   Ä�Äƒng kÃ½ nháº­n cáº­p nháº­t tráº¡ng thÃ¡i vÃ²ng Ä‘á»�i.N)rr   Úappend)rs   ru   s     r   Úregister_listenerz,AutonomousLifecycleManager.register_listener‡   s   € àÔ×$Ò$ RÑ(Ô(Ð(Ð(Ð(r   Ústatus_textc                 ó¦   — | j         D ]H}	  || j        |¦  «         Œ# t          $ r'}t                               d|› �¦  «         Y d }~ŒAd }~ww xY wd S )Nu%   [Lifecycle] Lá»—i callback listener: )rr   rH   Ú	ExceptionÚloggerÚerror)rs   ry   ru   Úes       r   Ú_notify_listenersz,AutonomousLifecycleManager._notify_listeners‹   sŒ   € ØÔ'ð 	Jð 	JˆBðJØ��4”:˜{Ñ+Ô+Ð+Ð+øÝð Jð Jð JÝ—’ÐHÀQÐHÐHÑIÔIÐIÐIÐIÐIÐIÐIøøøøðJøøøð	Jð 	Js   ‹�
A§A	Á	Ac                 óî  — | j         5  | j        r	 ddd¦  «         dS |r9|| _        t          | j                             d| j        ¦  «        ¦  «        | _        t          j        | _        d| _        | j	         
                    ¦   «          t          j        | j        d¬¦  «        | _        | j                             ¦   «          t                                d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )u,   KÃ­ch hoáº¡t cháº¿ Ä‘á»™ tá»± hÃ nh 1-Click.NrE   T)ÚtargetÚdaemonuB   [Lifecycle] >> Ä�Ãƒ KÃ�CH HOáº T CHáº¾ Ä�á»˜ Tá»° HÃ€NH 1-CLICK <<)rL   rI   r>   rc   rd   rE   r   r   rb   rN   ÚclearrJ   ÚThreadÚ_lifecycle_looprO   Ústartr|   Úinfo)rs   r>   s     r   r†   z AutonomousLifecycleManager.start’   s]  € àŒZð 	^ð 	^ØŒ~ð Øð	^ð 	^ð 	^ñ 	^ô 	^ð 	^ð 	^ð 	^ð ð PØ$�”Ý # D¤K§O¢O°JÀÄÑ$NÔ$NÑ OÔ O�”Ý$:Ô$?ˆDÔ!Ø!ˆDŒNØÔ×"Ò"Ñ$Ô$Ð$Ý )Ô 0¸Ô8LÐUYÐ ZÑ ZÔ ZˆDÔØÔ×#Ò#Ñ%Ô%Ð%Ý�KŠKÐ\Ñ]Ô]Ð]ð	^ð 	^ð 	^ñ 	^ô 	^ð 	^ð 	^ð 	^ð 	^ð 	^ð 	^ð 	^øøøð 	^ð 	^ð 	^ð 	^ð 	^ð 	^s   ˆ	C*žB?C*Ã*C.Ã1C.c                 ó  — | j         5  d| _        | j                             ¦   «          t          j        | _        |                      d¦  «         t           	                    d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )u   Dá»«ng cháº¿ Ä‘á»™ tá»± hÃ nh.Fu)   Cháº¿ Ä‘á»™ tá»± hÃ nh Ä‘Ã£ Táº M Dá»ªNG.u:   [Lifecycle] >> Ä�Ãƒ Táº M Dá»ªNG CHáº¾ Ä�á»˜ Tá»° HÃ€NH <<N)
rL   rI   rN   Úsetr   r   rH   r   r|   r‡   )rs   s    r   ÚstopzAutonomousLifecycleManager.stop¡   sÐ   € àŒZð 	Vð 	VØ"ˆDŒNØÔ× Ò Ñ"Ô"Ð"Ý'Ô/ˆDŒJØ×"Ò"Ð#NÑOÔOÐOÝ�KŠKÐTÑUÔUÐUð	Vð 	Vð 	Vñ 	Vô 	Vð 	Vð 	Vð 	Vð 	Vð 	Vð 	Vð 	Vøøøð 	Vð 	Vð 	Vð 	Vð 	Vð 	Vs   ˆA!A6Á6A:Á=A:c                 ó  — |r|j         sdS t          |dd¦  «        pd}t          |dd¦  «        pd}|r|| _        |r#|                      |¦  «        s|| _        d| _        t          t          |dd¦  «        dd¦  «        }t          |t          t          f¦  «        rt          |¦  «        | _	        | j        r°|                      | j        ¦  «        s–d| j         
                    ¦   «         v rQt          | j	        t          t          f¦  «        rt          | j	        ¦  «        nd	}t          || j        ¦  «        | _	        | j                             | j        | j        ¦  «        | _        t!          |d
¦  «        r|j        | _        dS dS )u4   Tiáº¿p nháº­n snapshot telemetry tá»« CoreShmBridge.NÚ	area_coder@   Ú	area_nameTÚplayerÚlevelÚhideoutr3   rn   )Ú	is_onlineÚgetattrrP   r=   rQ   rT   Ú
isinstancerc   ÚfloatrR   r7   ÚmaxÚENDGAME_LEVEL_THRESHOLDr]   Úis_town_arearS   Úhasattrrn   )rs   ÚsnapshotÚ	snap_codeÚ	snap_nameÚraw_lvlÚcur_lvls         r   Úon_telemetry_snapshotz0AutonomousLifecycleManager.on_telemetry_snapshotª   s–  € àð 	˜xÔ1ð 	ØˆFå˜H k°2Ñ6Ô6Ð<¸"ˆ	Ý˜H k°2Ñ6Ô6Ð<¸"ˆ	àð 	/Ø%.ˆDÔ"ð
 ð 	)˜T×-Ò-¨iÑ8Ô8ð 	)Ø%.ˆDÔ"Ø$(ˆDÔ!å�' (¨H°dÑ;Ô;¸WÀdÑKÔKˆÝ�g¥¥U˜|Ñ,Ô,ð 	-Ý # G¡¤ˆDÔØÔ!ð 	h¨$×*:Ò*:¸4Ô;QÑ*RÔ*Rð 	hØ˜DÔ2×8Ò8Ñ:Ô:Ð:Ð:Ý4>¸tÔ?PÕSVÕX]ÐR^Ñ4_Ô4_Ðf�#˜dÔ/Ñ0Ô0Ð0Ðef�Ý$'¨°Ô1MÑ$NÔ$N�Ô!Ø"œl×7Ò7¸Ô8NÐPTÔPfÑgÔgˆDŒOå�8Ð.Ñ/Ô/ð 	<Ø#+Ô#;ˆDÔ Ð Ð ð	<ð 	<r   r3   rŒ   r�   Ú
area_levelc                 óö  — |pd                      ¦   «         }|                     ¦   «                              d¦  «        r.|                     dd¦  «        d                               ¦   «         }|                      |¦  «        r t
                               d|› d�¦  «         dS || _        || _        d| _	        d	|                     ¦   «         v sd	|pd                     ¦   «         v rt          | j        | j        ¦  «        | _        | j                             ||¦  «        | _        t
                               d
|› d|› d| j        › �¦  «         | j        t"          j        k    r•| j        t(          j        k    r9| j        s2t(          j        | _        t/          j        ¦   «         | _        || _        dS | j        t(          j        k    r4| j        r/t(          j        | _        t/          j        ¦   «         | _        dS dS dS dS )u>   Xá»­ lÃ½ sá»± kiá»‡n chuyá»ƒn Ä‘á»•i khu vá»±c tá»« LogSensor.r@   r1   r2   r3   uD   [Lifecycle] Bá»� qua sá»± kiá»‡n UI scene / map khÃ´ng há»£p lá»‡: 'ú'NTr�   u   [Lifecycle] Chuyá»ƒn cáº£nh: ú (u   ) - á»ž LÃ ng: )r6   r7   r8   r9   r=   r|   r‡   rP   rQ   rT   r•   rR   r–   r]   r—   rS   rH   r   r   rb   r   r   r   Útimeri   rj   r   rk   )rs   rŒ   r�   rŸ   Ú
clean_names        r   Úon_area_changedz*AutonomousLifecycleManager.on_area_changedÈ   sê  € à�o 2×,Ò,Ñ.Ô.ˆ
Ø×ÒÑÔ×(Ò(Ð)JÑKÔKð 	=Ø#×)Ò)¨#¨qÑ1Ô1°!Ô4×:Ò:Ñ<Ô<ˆJð ×Ò˜JÑ'Ô'ð 	Ý�KŠKÐlÐ_iÐlÐlÐlÑmÔmÐmØˆFà!*ˆÔØ!+ˆÔØ $ˆÔØ˜
×(Ò(Ñ*Ô*Ð*Ð*¨i¸I¸OÈ×;RÒ;RÑ;TÔ;TÐ.TÐ.TÝ # DÔ$5°tÔ7SÑ TÔ TˆDÔØœ,×3Ò3°I¸zÑJÔJˆŒÝ�ŠÐm°JÐmÐmÀ)ÐmÐmÐ\`Ô\kÐmÐmÑnÔnÐnð Œ:�Ô7Ò7Ð7ØÔ$Õ(>Ô(NÒNÐNÐW[ÔWfÐNÝ(>Ô(P�Ô%Ý&*¤i¡k¤k�Ô#Ø0:�Ô-Ð-Ð-ØÔ&Õ*@Ô*RÒRÐRÐW[ÔWfÐRÝ(>Ô(L�Ô%Ý,0¬I©K¬K�Ô)Ð)Ð)ð 8Ð7ð
 SÐRÐRÐRr   c                 óœ  — | j         pd                     ¦   «         }| j        pd                     ¦   «         }d|v pd|v }|r(| j        | j        k     r| j        | _        t
          j        S d|v pFd|v pBd|v od|v p:| j        | j        k    p*| j                             | j         | j        | j        ¦  «        }|rt
          j        S t
          j	        S )u4  
        Ä�Ã¡nh giÃ¡ giai Ä‘oáº¡n nhÃ¢n váº­t:
        - Náº¿u á»Ÿ Hideout (báº¥t ká»³ hideout nÃ o) -> ENDGAME_EARNING (tá»± Ä‘á»™ng nÃ¢ng player_level lÃªn >= 65)
        - Náº¿u level >= 65 hoáº·c Ä‘ang trong Map Device / Endgame Area -> ENDGAME_EARNING
        - NgÆ°á»£c láº¡i -> CAMPAIGN_GRIND
        r@   r�   Úendgamer-   ÚmapÚtier)
rP   r7   rQ   rR   r–   r   r   r]   Úis_endgame_mapr   )rs   Úarea_code_lowerÚarea_name_lowerÚ
is_hideoutrª   s        r   Úevaluate_phasez)AutonomousLifecycleManager.evaluate_phaseå   s	  € ð  Ô1Ð7°R×>Ò>Ñ@Ô@ˆØÔ1Ð7°R×>Ò>Ñ@Ô@ˆð  /Ð1ÐQ°YÀ/Ð5Qˆ
Øð 	2ØÔ  4Ô#?Ò?Ð?Ø$(Ô$@�Ô!Ý!Ô1Ð1ð ˜Ð(ð nØ˜/Ð)ðnà˜Ð(ÐF¨V°Ð-Fðnð Ô  DÔ$@Ò@ðnð Œ|×*Ò*¨4Ô+AÀ4ÔCYÐ[_Ô[lÑmÔmð 	ð ð 	2Ý!Ô1Ð1ÝÔ,Ð,r   c                 ó.  — | j                              ¦   «         s{	 |                      ¦   «          n6# t          $ r)}t                               d|› �d¬¦  «         Y d}~nd}~ww xY wt          j        d¦  «         | j                              ¦   «         ¯ydS dS )uM   VÃ²ng láº·p Ä‘iá»�u phá»‘i tá»± hÃ nh cháº¡y Ä‘á»™c láº­p chu ká»³ 1.0 giÃ¢y.z[Lifecycle Loop Error] T)Úexc_infoNg      ð?)rN   Úis_setÚ_evaluate_and_actr{   r|   r}   r£   Úsleep)rs   r~   s     r   r…   z*AutonomousLifecycleManager._lifecycle_loop  s¿   € àÔ"×)Ò)Ñ+Ô+ð 	ðKØ×&Ò&Ñ(Ô(Ð(Ð(øÝð Kð Kð KÝ—’Ð:°qÐ:Ð:ÀT�ÑJÔJÐJÐJÐJÐJÐJÐJøøøøðKøøøåŒJ�s‰OŒOˆOð Ô"×)Ò)Ñ+Ô+ð 	ð 	ð 	ð 	ð 	s   ›0 °
A#ºAÁA#c                 ó  — t          j         ¦   «         }ddlm} |                     ¦   «         }|sì| j                             dd¦  «        r©t          j        | _        |t          | dd¦  «        z
  dk    ri|| _
        | j                             d¦  «        }|                      d	¦  «         t          j        |j        |fd
did¬¦  «                             ¦   «          n|                      d¦  «         d S t          j        | _        |                      d¦  «         d S | j        rn| j                             ¦   «         sU|t          | dd¦  «        z
  dk    r;|| _        |                      d¦  «         | j                             | j        ¦  «         d S |                      ¦   «         }|| _        | j        t          j        k    r|                      ¦   «          d S | j        t          j        k    r|                      ¦   «          d S d S )Nr   )ÚPoe2ClientLauncherÚauto_launch_clientTrW   rA   ç      .@Úpoe2_exe_pathu?   Game chÆ°a cháº¡y -> Ä�ang tá»± Ä‘á»™ng má»Ÿ PathOfExile.exe...Úwait_timeout_secé   )r�   ÚargsÚkwargsr‚   u9   Game chÆ°a cháº¡y -> Ä�ang chá»� client khá»Ÿi Ä‘á»™ng...u1   Chá»� ngÆ°á»�i dÃ¹ng má»Ÿ game PathOfExile.exe...rX   ç      @u-   Ä�ang khá»Ÿi Ä‘á»™ng C++ Core Engine 120Hz...)r£   Ú"src.assistant_tool.client_launcherrµ   Úis_client_runningr>   rd   r   r   rH   r’   rW   r   rJ   r„   Úlaunch_clientr†   r   rG   Ú
is_runningrX   r®   r   Ú_execute_campaign_grind_stepr   Ú_execute_endgame_earning_step)rs   Únowrµ   r¿   Úexe_pathÚ	new_phases         r   r²   z,AutonomousLifecycleManager._evaluate_and_act  s  € ÝŒi‰kŒkˆð 	JÐIÐIÐIÐIÐIØ.×@Ò@ÑBÔBÐà ð 	ØŒ{�ŠÐ3°TÑ:Ô:ð Ý+Ô>�”
Ø� Ð'<¸cÑBÔBÑBÀdÒJÐJØ/2�DÔ,Ø#œ{Ÿš¨Ñ?Ô?�HØ×*Ò*Ð+lÑmÔmÐmÝÔ$Ø1Ô?Ø&˜[Ø 2°BÐ7Ø#ð	ñ ô ÷
 ’e‘g”g�g�gà×*Ò*Ð+fÑgÔgÐgØ�å+Ô3�”
Ø×&Ò&Ð'ZÑ[Ô[Ð[Ø�ð Ôð 	¨Ô(<×(GÒ(GÑ(IÔ(Ið 	Ø•W˜TÐ#<¸cÑBÔBÑBÀcÒIÐIØ/2�Ô,Ø×&Ò&Ð'VÑWÔWÐWØÔ$×*Ò*¨4¬;Ñ7Ô7Ð7ØˆFð ×'Ò'Ñ)Ô)ˆ	ØˆŒ
àŒ:�Ô6Ò6Ð6Ø×-Ò-Ñ/Ô/Ð/Ð/Ð/ØŒZ�>Ô9Ò9Ð9Ø×.Ò.Ñ0Ô0Ð0Ð0Ð0ð :Ð9r   c           	      ó*  — | j         pd                     ¦   «         }| j        pd                     ¦   «         }d|                     ¦   «         v sd|                     ¦   «         v rPt          j        | _        t          | j        | j	        ¦  «        | _        |  
                    d| j         › d�¦  «         dS t          |¦  «        o-| j        o&|                      |¦  «         ot          | dd¦  «        }| j                             | j        | j         | j        ¬¦  «        }d	|j        › d
|j        › d|j        › d|j        › d�	| _        |�r«d}|                     ¦   «         }|                     ¦   «         }|j        pd                     ¦   «                              ¦   «         }|j        pd                     ¦   «                              ¦   «         }	|r|r||k    s
|r
|	r||	k    rd}|r'|  
                    d| j         › d|j        › �¦  «         dS t/          j        ¦   «         }
|
| j        z
  | j        k    r¢|  
                    d|j        › d|j        › d�¦  «         | j        rot7          | j        d¦  «        r\| j                             |j        |j        ¦  «        }|r7|
| _        t<                               d|j        › d|j        › �¦  «         dS dS dS dS |  
                    d|j        › d�¦  «         dS | j        rJt          | dd¦  «        r|s|  
                    d¦  «         dS |  
                    d| j         › d�¦  «         dS t          | dd¦  «        s|s|  
                    d¦  «         dS |  
                    d|j        › d|j        › d�¦  «         dS )uJ  
        Thá»±c thi hÃ nh Ä‘á»™ng cho Giai Ä‘oáº¡n 1: CÃ y cuá»‘c & LÃ m nhiá»‡m vá»¥.
        - Náº¿u á»Ÿ LÃ ng: Tá»± Ä‘á»™ng xÃ¡c Ä‘á»‹nh quest tiáº¿p theo -> gá»­i phÃ­m U vÃ  dá»‹ch chuyá»ƒn (chá»‰ khi má»¥c tiÃªu lÃ  khu vá»±c khÃ¡c).
        - Náº¿u á»Ÿ Phá»¥ báº£n: Cáº­p nháº­t má»¥c tiÃªu, theo dÃµi Core hoÃ n thÃ nh quest. TUYá»†T Ä�á»�I KHÃ”NG gá»­i lá»‡nh travel phÃ­m U.

        CHá»ˆ gá»­i send_trigger_world_map_travel khi:
        1. self.current_area_name KHÃ”NG rá»—ng vÃ  Ä‘Æ°á»£c xÃ¡c nháº­n lÃ  Thá»‹ tráº¥n (self.is_in_town == True).
        2. TÃªn map hiá»‡n táº¡i KHÃ”NG PHáº¢I lÃ  UI scene ("act 1", "act 2", "act 3", "act 4", "atlas").
        3. Ä�Ã£ xÃ¡c thá»±c khu vá»±c chÆ¡i tháº­t (self.has_real_map_log): Client.txt SCENE
           hoáº·c SHM area_name do C++ LogSensor ghi tá»« cÃ¹ng nháº­t kÃ½.
        r@   r�   u*   ðŸ›¡ï¸� [LIFECYCLE] Nhan vat tai Hideout (z() -> Chuyen sang Pha 2: ENDGAME_EARNING!NrT   F)rŸ   z[Act ú] ú: r¢   ú)Tu0   ðŸ›¡ï¸� [LÃ€NG] Ä�Ã£ á»Ÿ khu vá»±c má»¥c tiÃªu: u*    -> Tiáº¿n hÃ nh thá»±c thi nhiá»‡m vá»¥: uP   ðŸ›¡ï¸� [LÃ€NG - Tá»° HÃ€NH QUEST] Má»Ÿ World Map 'U' -> Dá»‹ch chuyá»ƒn tá»›i: z (Act Úsend_trigger_world_map_travelu9   [Lifecycle] Ä�Ã£ gá»­i lá»‡nh World Map Travel tá»›i Act z, Node u9   ðŸ›¡ï¸� [LÃ€NG] Ä�ang chuáº©n bá»‹ chuyá»ƒn cáº£nh sang: ú...u]   â�³ [CHá»œ Dá»® LIá»†U GAME] Ä�ang chá»� xÃ¡c thá»±c vá»‹ trÃ­ báº£n Ä‘á»“ tá»« Log Client...u*   ðŸ›¡ï¸� [LÃ€NG] Báº£n Ä‘á»“ hiá»‡n táº¡i (u,   ) Ä‘ang á»Ÿ tráº¡ng thÃ¡i chá»� xÃ¡c thá»±c.uH   âš”ï¸� [CHIáº¾N Ä�áº¤U] Ä�ang cÃ y cuá»‘c & thá»±c hiá»‡n nhiá»‡m vá»¥: ) rQ   r6   rP   r7   r   r   rH   r•   rR   r–   r   ÚboolrS   r=   r’   r]   Úresolve_active_objectiveÚactr�   Útarget_nameÚdescriptionrY   rŒ   r£   rU   rV   rF   r˜   rË   Ú
zone_indexr|   r‡   )rs   Úcur_nameÚcur_codeÚcan_trigger_town_travelÚobjÚis_same_areaÚcur_name_lowerÚcur_code_lowerÚobj_nameÚobj_coderÄ   Úsuccesss               r   rÂ   z7AutonomousLifecycleManager._execute_campaign_grind_step9  s   € ð Ô*Ð0¨b×7Ò7Ñ9Ô9ˆØÔ*Ð0¨b×7Ò7Ñ9Ô9ˆð ˜ŸšÑ(Ô(Ð(Ð(¨I¸¿ºÑ9IÔ9IÐ,IÐ,IÝ'Ô7ˆDŒJÝ # DÔ$5°tÔ7SÑ TÔ TˆDÔØ×"Ò"Ø}¸TÔ=SÐ}Ð}Ð}ñô ð ð ˆFõ �‰NŒNð 9Ø”ð9à×$Ò$ XÑ.Ô.Ð.ð9õ ˜Ð0°%Ñ8Ô8ð	 	 ð Œl×3Ò3ØÔ"ØÔ"ØÔ(ð 4ñ 
ô 
ˆð
 'p¨c¬gÐ&oÐ&o¸¼Ð&oÐ&oÈ#Ì/Ð&oÐ&oÐ]`Ô]lÐ&oÐ&oÐ&oˆÔ#à"ñ 3	à ˆLØ%Ÿ^š^Ñ-Ô-ˆNØ%Ÿ^š^Ñ-Ô-ˆNØœÐ+¨×2Ò2Ñ4Ô4×:Ò:Ñ<Ô<ˆHØœÐ+¨×2Ò2Ñ4Ô4×:Ò:Ñ<Ô<ˆHàð $ 8ð $°À(Ò0JÐ0JÐP^Ð0JÐckÐ0JÐp~ð  CKò  qKð  qKØ#�àð Ø×&Ò&ð [ÀtÔG]ð  [ð  [ð  JMô  JYð  [ð  [ñô ð ð �å”)‘+”+ˆCØ�TÔ*Ñ*¨TÔ-EÒEÐEØ×&Ò&ð GÐgjÔgtð  Gð  GÐ|ô  }Dð  Gð  Gð  Gñô ð ð Ô#ð B­°Ô0@ÐBaÑ(bÔ(bð BØ"Ô.×LÒLÈSÌWÐVYÔVdÑeÔe�GØð BØ03˜Ô-ÝŸšð  %AÐ`cÔ`gð  %Að  %AÐpsÔp~ð  %Að  %Añ  Bô  Bð  Bð  Bð  Bð	Bð Bð Bð BðBð Bð ×&Ò&ØbÐPSÔP]ÐbÐbÐbñô ð ð ð ð Œ_ð 	å˜4Ð!3°UÑ;Ô;ð À8ð Ø×&Ò&Øsñô ð ð ð ð ×&Ò&ð FÀÔAWð  Fð  Fð  Fñô ð ð ð õ
 ˜4Ð!3°UÑ;Ô;ð ÀHð Ø×&Ò&Øsñô ð ð ð ð ×&Ò&ð CÐ_bÔ_nð  Cð  CÐruÔrð  Cð  Cð  Cñô ð ð ð r   c                 óB  — 	 ddl m} n# t          $ r	 ddlm} Y nw xY w| j                             d|j        ¦  «        }	  |t          |¦  «        ¦  «        }n# t          t          f$ r
 |j        }Y nw xY wt          | j                             dd¦  «        ¦  «        }t          | d¦  «        r"| j        r| j                             ||¦  «         t          | d¦  «        rD| j        r=t          | j        d¦  «        r(| j                             t          |¦  «        |¦  «         |j        d	|j        d
|j        d|j        di}|                     |d¦  «        }t'          j        ¦   «         }| j        t*          j        k    r¶| j        s| j        t2          j        k    rt| j        | j        k     r<t*          j        | _        |                      d| j        dz   › d| j        › d�¦  «         dS |                      d| j        › d| j        › d�¦  «         dS t*          j        | _        || _         | j!        | _"        dS | j        t*          j        k    �r9d| j        dz   › d| j        › �| _#        | j                             dd¦  «        }|rtH          j%         &                    |¦  «        s| j'         (                    dd¬¦  «        }|r²tH          j%         &                    |¦  «        r“| j                             dd¦  «        rx|| j)        z
  | j*        k    re| j+         ,                    || j        | j!        d¬¦  «        }	|	                     d¦  «        r(|| _)        |                      d|	d         › d�¦  «         dS t*          j-        | _        dS | j        t*          j-        k    �rd | j        dz   › �| _#        | j                             dd¦  «        }|rtH          j%         &                    |¦  «        st]          | j'        d!d¦  «        }d}
|r›tH          j%         &                    |¦  «        r|| j+         /                    |¦  «        }|r/|d         \  }}}}|df}
|                      d"|› d#|d$›d%�¦  «         n3t*          j0        | _        |                      d&| j        › d'�¦  «         dS d(}
|
| _1        t*          j2        | _        dS | j        t*          j2        k    �rp| j        t2          j3        t2          j4        t2          j5        fv r/|| _6        t*          j7        | _        |                      d)¦  «         dS || j6        z
  d*k     rdS |  8                    ¦   «         }|�|                      d+|d$›d,�¦  «         | j1        pd(\  }}t          | j                             d-d¦  «        ¦  «        }| j        r…t          | j        d.¦  «        rp| j         9                    |||d/¬0¦  «        }|r9|| _6        t*          j7        | _        |                      d1|› d2|› d3|› d4�¦  «         dS |                      d5¦  «         dS |                      d6¦  «         dS | j        t*          j7        k    rúd7| j        dz   › d8�| _#        | j         r"| j!        r|  :                    | j!        ¦  «         p| j        t2          j;        t2          j<        fv }|r_t*          j        | _        || _         d| _=        d| _>        | j!        pd9| _"        |                      d:| j        dz   › d;| j"        › d<�¦  «         dS || j6        z
  | j?        k    r(|                      d=¦  «         t*          j        | _        dS dS | j        t*          j        k    �rÊ|| j         z
  }d>| j        dz   › d?| j"        › d@|› dAt          |¦  «        › dB�	| _#        | j        rt]          | j        dCd¦  «        nd}	 t          t]          |dDd¦  «        ¦  «        }n# t          t          f$ r d}Y nw xY w|dk    rd| _>        t�          | j                             dEdF¦  «        ¦  «        }| j        t2          jA        k    p| j>        o|dk    o|dGk    p||k    }|rA| j=        s:|                      dHt          |¦  «        › dI�¦  «         |  B                    ¦   «          | j        p$|d*k    o| j        t2          j        t2          jC        fv }|r(d| _=        d| _>        t*          jD        | _        || _E        dS |                      d:| j        dz   › dJ| j"        › dK|› d@t          |¦  «        › dB�	¦  «         dS | j        t*          jD        k    �r$| xj        dz  c_        | j         dk    r| jE        | j         z
  ndL}|                      dM| j        › d| j        › dJ| j"        › d@|d$›dN�	¦  «         | j        | j        k    r9t*          j        | _        |                      dO| j        › d| j        › dP�¦  «         dS || jE        z
  | jF        k    r<t*          j        | _        |                      dQ| j        dz   › d| j        › d8�¦  «         dS | jF        || jE        z
  z
  }|                      dR|d$›dS�¦  «         dS | j        t*          j0        k    r |                      dT| j        › dU�¦  «         dS dS )Vu;  
        Giai Ä‘oáº¡n 2: Ä�iá»�u phá»‘i chu trÃ¬nh Mapping khÃ©p kÃ­n (Closed-Loop Mapping Engine).
        Phá»‘i há»£p báº¥t Ä‘á»‘i xá»©ng: Python Cold Path kiá»ƒm soÃ¡t kho Ä‘á»“ & Ä‘iá»�u phá»‘i cáº¥p cao,
        C++ Core Hot Path 120Hz trá»±c tiáº¿p thá»±c thi Map Device routine vÃ  in-map clearing.
        r   )ÚMapScenarioÚmap_scenarioÚauto_portal_after_bossTr]   rF   Úsend_set_map_scenarioÚ	BOSS_RUSHÚATLAS_QUESTÚ
FAST_CLEARÚ
FULL_CLEARu   ðŸ’° [MAPPING #r3   ú/u&   ] Báº¯t Ä‘áº§u chu trÃ¬nh map má»›i...u-   ðŸŽ‰ [MAPPING] Ä�Ã£ hoÃ n thÃ nh chá»‰ tiÃªu u%    maps. Nghá»‰ an toÃ n táº¡i Hideout.u   Precheck tÃºi Ä‘á»“ Map #Úlast_inventory_capture_pathr@   ÚPRECHECK_INVF)Ú
event_nameÚcapture_ramÚenable_hooded_one_identify)r�   Úmonster_countÚ	triggeredu%   ðŸ§™ [HOODED ONE] TÃºi Ä‘á»“ Ä‘áº§y (Úoccupied_slotsu2   /60) -> Ä�Ã£ gá»­i lá»‡nh Identify All (Opcode 8)!Nu   Lá»±a chá»�n Waystone cho Map #Úlast_capture_pathu1   ðŸŽ¯ [MAPPING] PhÃ¡t hiá»‡n Waystone táº¡i Slot [z, 0] (AvgRGB=z.1frÊ   uB   ðŸ›‘ [MAPPING] Cáº¡n kiá»‡t Waystone trong HÃ ng 1 tÃºi Ä‘á»“ sau u    maps! Dá»«ng an toÃ n.)r   r   u_   â�³ [MAP DEVICE] C++ Core Ä‘ang thá»±c thi Map Device routine -> Chuyá»ƒn sang WAIT_ZONE_ENTER.r½   u,   ðŸ“� [MAP DEVICE] Cá»± ly tá»›i Map Device: z units.Úuse_precursor_tabletÚsend_map_devicei¸ˆ  )Úwaystone_colÚwaystone_rowÚ
use_tabletÚ
timeout_msu1   ðŸš€ [MAP DEVICE] Ä�Ã£ gá»­i Opcode 7 (Waystone [ú,z
], Tablet=u1   ) -> C++ Core tiáº¿p cáº­n & kÃ­ch hoáº¡t cá»•ng!uK   âš ï¸� [MAP DEVICE] KhÃ´ng thá»ƒ gá»­i lá»‡nh qua SHM. Ä�ang thá»­ láº¡i...u@   âš ï¸� [MAP DEVICE] Cáº§u ná»‘i CoreShmBridge chÆ°a sáºµn sÃ ng!u1   Chá»� C++ Core má»Ÿ cá»•ng vÃ  bÆ°á»›c vÃ o Map #rÌ   zEndgame Mapu   âš”ï¸� [IN-MAP #u   ] Ä�Ã£ vÃ o Map: ú!ub   âš ï¸� [MAP DEVICE] QuÃ¡ thá»�i gian chá»� vÃ o Map (35s). Ä�ang kiá»ƒm tra láº¡i tráº¡ng thÃ¡i...u   Ä�ang dá»�n Map #rÉ   r¢   z, zs)Úlast_snapshotÚmonsters_countÚmap_duration_secg     €f@r·   uN   ðŸ�† [MAP CLEAR] Báº£n Ä‘á»“ Ä‘Ã£ dá»�n sáº¡ch hoáº·c Ä‘áº¡t thá»�i lÆ°á»£ng (u   s) -> KÃ­ch hoáº¡t Town Portal!rÈ   z | rA   u   âœ… [HOÃ€N THÃ€NH #zs)!u-   ðŸŽ‰ [MAPPING] HoÃ n thÃ nh chá»‰ tiÃªu cÃ y u    maps. Táº¡m dá»«ng an toÃ n.u8   â�³ [HIDEOUT] Nghá»‰ ngÆ¡i xong -> Chuáº©n bá»‹ cho Map u)   â�³ [HIDEOUT] Nghá»‰ ngÆ¡i há»“i phá»¥c (zs)...u:   ðŸ›‘ [Háº¾T WAYSTONE] Chu trÃ¬nh mapping táº¡m dá»«ng sau z maps.)GrZ   rÞ   ÚImportErrorÚauto_questerr>   rd   rä   rc   Ú	TypeErrorÚ
ValueErrorrÍ   r˜   r]   Úset_map_scenariorF   rá   râ   ÚATLAS_QUEST_RUSHrå   r£   rb   r   r   rS   rn   r"   ÚHIDEOUT_IDLEre   rE   r   r   r   ri   rQ   rj   rY   ÚosÚpathÚexistsr_   Úcapture_screenshotr`   ra   r^   Ú%check_and_trigger_hooded_one_identifyr   r’   Úscan_row1_waystonesr    rf   r   ÚHIDEOUT_MAP_DEVICE_APPROACHÚHIDEOUT_MAP_DEVICE_ACTIVATEÚHIDEOUT_ENTER_PORTALrg   r   Úget_map_device_distancerñ   r=   ÚMAP_LOADING_GRACEÚMAP_FARMING_COMBATro   rq   rh   r”   ÚMAP_COMPLETED_PORTAL_OUTÚsend_town_portal_exitÚHIDEOUT_STASHINGr   rk   rl   )rs   rÞ   ÚrawÚscenarioÚauto_portalÚnamesÚlabelrÄ   Ú
latest_capÚidentify_resÚwaystone_slotÚ	waystonesÚsel_colÚsel_cxÚsel_cyÚsel_rgbÚdist_to_deviceÚcolÚrowrô   rÜ   Úin_mapÚdurationÚsnapÚmonsters_cntÚmap_timeoutÚ
is_clearedÚis_returnedÚremains                                r   rÃ   z8AutonomousLifecycleManager._execute_endgame_earning_step•  sR  € ð	1ØCÐCÐCÐCÐCÐCÐCøÝð 	1ð 	1ð 	1Ø0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ð	1øøøð Œk�oŠo˜n¨kÔ.DÑEÔEˆð	.Ø"�{¥3 s¡8¤8Ñ,Ô,ˆHˆHøÝ�:Ð&ð 	.ð 	.ð 	.Ø"Ô-ˆHˆHˆHð	.øøøõ ˜4œ;Ÿ?š?Ð+CÀTÑJÔJÑKÔKˆÝ�4˜Ñ#Ô#ð 	A¨¬ð 	AØŒL×)Ò)¨(°KÑ@Ô@Ð@å�4˜Ñ'Ô'ð 	O¨DÔ,<ð 	OÅÈÔIYÐ[rÑAsÔAsð 	OØÔ×2Ò2µ3°x±=´=À+ÑNÔNÐNð Ô! ;ØÔ(¨-ØÔ" LØÔ" Lð	
ˆð —	’	˜( LÑ1Ô1ˆåŒi‰kŒkˆð
 Ô Õ$:Ô$?Ò?Ð?ØŒð 
G $Ô"6Õ:QÔ:^Ò"^Ð"^ØÔ&¨¬Ò6Ð6Ý,BÔ,U�DÔ)Ø×*Ò*ð  ,M¸TÔ=PÐSTÑ=Tð  ,Mð  ,MÐW[ÔWdð  ,Mð  ,Mð  ,Mñ  Nô  Nð  Nð  Nð  Nà×*Ò*ð  ,fÐ[_Ô[nð  ,fð  ,fÐquÔq~ð  ,fð  ,fð  ,fñ  gô  gð  gð  gð  gõ )?Ô(P�Ô%Ø&)�Ô#Ø04Ô0F�Ô-Ð-Ð-àÔ"Õ&<Ô&OÒOÑOØ*oÀdÔFYÐ\]ÑF]Ð*oÐ*oÐ`dÔ`mÐ*oÐ*oˆDÔ'ØœŸšÐ)FÈÑKÔKˆJØð l¥R¤W§^¢^°JÑ%?Ô%?ð lØ!œ]×=Ò=ÈÐejÐ=ÑkÔk�
àð �bœgŸnšn¨ZÑ8Ô8ð Ø”;—?’?Ð#?ÀÑFÔFð 
ÈCÐRVÔRoÑLoÐrvô  sMò  MMð  MMØ#'Ô#9×#_Ò#_Ø"ØÔ(Ø"&Ô"8Ø&'ð	 $`ñ $ô $�Lð $×'Ò'¨Ñ4Ô4ð Ø8;˜Ô5Ø×.Ò.ð  0jÐWcÐdtÔWuð  0jð  0jð  0jñ  kô  kð  kØ˜Ý$:Ô$JˆDÔ!Ð!Ð!àÔ"Õ&<Ô&LÒLÑLØ*eÈDÔL_ÐbcÑLcÐ*eÐ*eˆDÔ'ØœŸšÐ)FÈÑKÔKˆJØð M¥R¤W§^¢^°JÑ%?Ô%?ð MÝ$ T¤]Ð4GÈÑLÔL�
à ˆMØð '�bœgŸnšn¨ZÑ8Ô8ð 'Ø Ô2×FÒFÀzÑRÔR�	Øð Ø7@À´|Ñ4�G˜V V¨WØ%,¨a L�MØ×*Ò*ð  ,DÐ_fð  ,Dð  ,DÐu|ð  ,Dð  ,Dð  ,Dð  ,Dñ  Eô  Eð  Eð  Eå,BÔ,L�DÔ)Ø×*Ò*ð  ,]Ðptô  qDð  ,]ð  ,]ð  ,]ñ  ^ô  ^ð  ^Ø�Fð !'�à)6ˆDÔ&Ý$:Ô$NˆDÔ!Ð!Ð!àÔ"Õ&<Ô&PÒPÑPàÔ#Ý'ÔCÝ'ÔCÝ'Ô<ð(ð ð ð
 *-�Ô&Ý(>Ô(N�Ô%Ø×&Ò&ð  (Iñ  Jô  Jð  JØ�ð �dÔ,Ñ,°Ò3Ð3Ø�ð "×9Ò9Ñ;Ô;ˆNØÐ)Ø×&Ò&Ð'qÐVdÐ'qÐ'qÐ'qÐ'qÑrÔrÐràÔ1Ð;°V‰HˆC�Ý˜dœkŸošoÐ.DÀeÑLÔLÑMÔMˆJØÔð k¥G¨DÔ,<Ð>OÑ$PÔ$Pð kØÔ*×:Ò:Ø!$Ø!$Ø)Ø$ð	 ;ñ ô �ð ð zØ-0�DÔ*Ý,BÔ,R�DÔ)Ø×*Ò*ð _ÈCð  _ð  _ÐRUð  _ð  _Ðakð  _ð  _ð  _ñô ð ð ð ð ×*Ò*Ð+xÑyÔyÐyÐyÐyà×&Ò&Ð'iÑjÔjÐjÐjÐjàÔ"Õ&<Ô&LÒLÐLØ*zÐ^bÔ^qÐtuÑ^uÐ*zÐ*zÐ*zˆDÔ'à”_Ð$Ðp¨Ô)?ÐpÈ×HXÒHXÐY]ÔYoÑHpÔHpÐDpð EØÔ(Õ-DÔ-VÕXoô  YCð  -Dð  Dð ð ð Ý(>Ô(P�Ô%Ø&)�Ô#Ø-2�Ô*Ø-2�Ô*Ø04Ô0FÐ0WÈ-�Ô-Ø×&Ò&ð  (E¸$Ô:MÐPQÑ:Qð  (Eð  (EÐdhô  eBð  (Eð  (Eð  (Eñ  Fô  Fð  FØ�à�TÔ+Ñ+¨dÔ.KÒKÐKØ×&Ò&ð  (Lñ  Mô  Mð  MÝ(>Ô(Q�Ô%Ð%Ð%ð LÐKð Ô"Õ&<Ô&NÒNÑNØ˜TÔ0Ñ0ˆHð +U¸dÔ>QÐTUÑ>Uð  +Uð  +UÐY]ÔYvð  +Uð  +UÐzð  +Uð  +Uõ  DGð  HPñ  DQô  DQð  +Uð  +Uð  +UˆDÔ'ð HLÔGWÐa•7˜4Ô+¨_¸dÑCÔCÐCÐ]aˆDð!Ý"¥7¨4Ð1AÀ1Ñ#EÔ#EÑFÔF��øÝ¥	Ð*ð !ð !ð !Ø ���ð!øøøà˜aÒÐØ-1�Ô*õ   ¤§¢Ð0BÀEÑ JÔ JÑKÔKˆKàÔ%Õ)@Ô)YÒYð -ØÔ.ÐY°<À1Ò3DÐYÈÐUYÒIYð-à Ò+ð ð ð - $Ô"<ð -Ø×&Ò&ð TÕehÐiqÑerÔerð  Tð  Tð  Tñô ð ð ×*Ò*Ñ,Ô,Ð,ð ”ð QØ˜s’Nð  P tÔ';Õ@WÔ@dÕf}ô  gOð  @Pð  (Pð ð ð SØ-2�Ô*Ø-2�Ô*Ý(>Ô(L�Ô%Ø,/�Ô)Ð)Ð)à×&Ò&ð  (R¸$Ô:MÐPQÑ:Qð  (Rð  (RÐUYÔUrð  (Rð  (RÐw|ð  (Rð  (Rõ  ADð  EMñ  ANô  ANð  (Rð  (Rð  (Rñ  Sô  Sð  Sð  Sð  SàÔ"Õ&<Ô&JÒJÑJØÐÔ 1Ñ$ÐÔØLPÔL_ÐbcÒLcÐLc˜Ô1°DÔ4GÑGÐGÐilˆHØ×"Ò"ð  $S¸Ô9Lð  $Sð  $SÈtÌ}ð  $Sð  $SÐ`dÔ`}ð  $Sð  $Sð  BJð  $Sð  $Sð  $Sð  $Sñ  Tô  Tð  TØÔ" d¤mÒ3Ð3Ý(>Ô(C�Ô%Ø×&Ò&ð  (ZÐW[ÔWjð  (Zð  (ZÐmqÔmzð  (Zð  (Zð  (Zñ  [ô  [ð  [ð  [ð  [à˜Ô2Ñ2°dÔ6TÒTÐTÝ,BÔ,U�DÔ)Ø×*Ò*ð  ,SÐfjÔfyÐ|}Ñf}ð  ,Sð  ,Sð  AEô  ANð  ,Sð  ,Sð  ,Sñ  Tô  Tð  Tð  Tð  Tà!Ô;¸sÀTÔE^Ñ?^Ñ_�FØ×*Ò*Ð+hÐW]Ð+hÐ+hÐ+hÐ+hÑiÔiÐiÐiÐiàÔ"Õ&<Ô&FÒFÐFØ×"Ò"Ð#{Ð`dÔ`sÐ#{Ð#{Ð#{Ñ|Ô|Ð|Ð|Ð|ð GÐFs0   ‚	 ‰›Á A ÁA4Á3A4Þ>_ ß_3ß2_3Ú
image_pathc                 óR   — | j                              || j        | j        d¬¦  «        S )uo   KÃ­ch hoáº¡t kiá»ƒm tra vÃ  gá»­i lá»‡nh The Hooded One Identify All thá»§ cÃ´ng hoáº·c theo yÃªu cáº§u (P1-5).r   )r)  rF   r�   rì   )r^   r  rF   rQ   )rs   r)  s     r   Útrigger_hooded_one_identifyz6AutonomousLifecycleManager.trigger_hooded_one_identifyk  s5   € àÔ%×KÒKØ!ØÔ(ØÔ,Øð	 Lñ 
ô 
ð 	
r   c                 ó6  — | j         sdS t          | j         dd¦  «        }|rt          |dd¦  «        sdS t          |dg ¦  «        }t          |t          t          f¦  «        sdS |D ]²}t          |t
          ¦  «        sŒt          |                     dd¦  «        ¦  «                             ¦   «         }|                     dd	¦  «        }|d
v rKd|v sd|v sd|v r?	 t          |                     dd¦  «        ¦  «        c S # t          t          f$ r Y  dS w xY wŒ³dS )ur   Truy váº¥n khoáº£ng cÃ¡ch tá»« nhÃ¢n váº­t tá»›i Map Device náº¿u cÃ³ dá»¯ liá»‡u thá»±c thá»ƒ RAM trong snapshot.Nrø   r‘   FÚentitiesr.   r@   Útyper   )é   é   z
map deviceÚdevicer-   ÚdistrA   )rF   r’   r“   ÚlistÚtupleÚdictÚstrrd   r7   r”   rþ   rý   )rs   r#  r-  Úentr.   Úetypes         r   r  z2AutonomousLifecycleManager.get_map_device_distancet  sO  € àÔð 	Ø�4Ý�tÔ'¨¸$Ñ?Ô?ˆØð 	�7 4¨°eÑ<Ô<ð 	Ø�4Ý˜4 ¨RÑ0Ô0ˆÝ˜(¥T­5 MÑ2Ô2ð 	Ø�4Øð 		 ð 		 ˆCÝ˜c¥4Ñ(Ô(ð ØÝ�s—w’w˜v rÑ*Ô*Ñ+Ô+×1Ò1Ñ3Ô3ˆDØ—G’G˜F AÑ&Ô&ˆEØ˜ˆˆ L°DÐ$8Ð$8¸HÈÐ<LÐ<LÐPWÐ[_ÐP_ÐP_ð Ý  §¢¨°Ñ!5Ô!5Ñ6Ô6Ð6Ð6Ð6øÝ"¥IÐ.ð  ð  ð  Ø˜4˜4˜4ð øøøøàˆts   Ã"C?Ã?DÄDéˆ  rõ   c                 ó¢  — d| _         t          j        ¦   «         | _        d}| j        rFt	          | j        d¦  «        r1| j                             |¬¦  «        }|                      d¦  «         n`| j        rDt	          | j        d¦  «        r/| j                             ¦   «         }|                      d¦  «         n|                      d¦  «         |S )	u|   Gá»­i lá»‡nh má»Ÿ Town Portal (Key '.' / VK_OEM_PERIOD 0xBE / Opcode 4 CAST_EMERGENCY_PORTAL) Ä‘á»ƒ thoÃ¡t Map vá»� Hideout.TFÚsend_cast_emergency_portal)rõ   ui   ðŸŒ€ [TOWN PORTAL] Ä�Ã£ phÃ¡t lá»‡nh Opcode 4 (Key '.' / VK_OEM_PERIOD 0xBE) -> Má»Ÿ Portal vá»� Hideout!Úsend_portalu<   ðŸŒ€ [TOWN PORTAL] Ä�Ã£ gá»­i lá»‡nh má»Ÿ Portal qua bridge!u\   âš ï¸� [TOWN PORTAL] Cáº§u ná»‘i CoreShmBridge khÃ´ng há»— trá»£ send_cast_emergency_portal!)ro   r£   rp   rF   r˜   r;  r   r<  )rs   rõ   rÜ   s      r   r  z0AutonomousLifecycleManager.send_town_portal_exitŠ  sò   € à%)ˆÔ"Ý%)¤Y¡[¤[ˆÔ"ØˆØÔð 	C¥¨Ô(8Ð:VÑ WÔ Wð 	CØÔ&×AÒAÈZÐAÑXÔXˆGØ×"Ò"ð  $Oñ  Pô  Pð  Pð  PØÔð 	C¥'¨$Ô*:¸MÑ"JÔ"Jð 	CØÔ&×2Ò2Ñ4Ô4ˆGØ×"Ò"Ð#aÑbÔbÐbÐbà×"Ò"ð  $Bñ  Cô  Cð  CØˆr   )NNN)N)r3   )r9  )!r   r   r   r!   r–   Ú	frozensetr:   Úclassmethodr6  rÍ   r=   r   r   r   rt   r   r   rx   r   r†   rŠ   rž   rc   r¥   r®   r…   r²   rÂ   rÃ   r+  r”   r  r  r   r   r   r%   r%   1   sN  € € € € € ðð ð !Ðð �Yð  ð  ð  ñ ô €Nð ð9˜sð 9 tð 9ð 9ð 9ñ „[ð9ð2Pð 2PÀxÐPTÐUXÐZ]ÐU]ÔP^ÔG_ð 2Pð 2Pð 2Pð 2Pðh) H¨n¸cÐ-BÀDÐ-HÔ$Ið )ð )ð )ð )ðJ¨Sð Jð Jð Jð Jð^ð ^˜H T¨#¨s¨(¤^Ô4ð ^ð ^ð ^ð ^ðVð Vð Vð<ð <ð <ð<8ð 8¨ð 8¸ð 8È#ð 8ð 8ð 8ð 8ð:- ð -ð -ð -ð -ð<ð ð ð+1ð +1ð +1ðZZð Zð ZðxT}ð T}ð T}ðl
°cð 
¸dÀ3ÈÀ8¼nð 
ð 
ð 
ð 
ð¨°%¬ð ð ð ð ð,ð °ð ¸tð ð ð ð ð ð r   r%   )r!   ÚenumÚloggingr  rJ   r£   Útypingr   r   r   r   r   r   Ú	getLoggerr|   ÚEnumr   r   Ú"src.assistant_tool.core_shm_bridger"   rû   Úcore_shm_bridgeÚMAP_DEVICE_SCREEN_POS_2560ÚATLAS_ENDGAME_TAB_POS_2560ÚATLAS_TRAVERSE_BTN_POS_2560r%   r   r   r   ú<module>rI     sy  ððð ð €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =à	ˆÔ	Ð0Ñ	1Ô	1€ð(ð (ð (ð (ð (�T”Yñ (ô (ð (ð	ð 	ð 	ð 	ð 	˜TœYñ 	ô 	ð 	ð8ØJÐJÐJÐJÐJÐJÐJøØð 8ð 8ð 8Ø7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ð8øøøð )Ð Ø'Ð Ø)Ð ðf	ð f	ð f	ð f	ð f	ñ f	ô f	ð f	ð f	ð f	s   ÁA% Á%A3Á2A3