═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ EXERCISE ═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════ 2026-06-03 00:01:42.821 | INFO | <<< UI ENSURE >>> 2026-06-03 00:01:42.825 | INFO | UI get current page 2026-06-03 00:01:42.889 | INFO | [UI] page_event_list 2026-06-03 00:01:42.892 | INFO | Goto page_exercise 2026-06-03 00:01:42.897 | INFO | <<< UI GOTO PAGE_EXERCISE >>> 2026-06-03 00:01:42.940 | INFO | Page switch: page_event_list -> page_main 2026-06-03 00:01:42.945 | INFO | Click (1251, 35) @ GOTO_MAIN 2026-06-03 00:01:43.817 | INFO | Click (1187, 92) @ LOGIN_ANNOUNCE_2 2026-06-03 00:01:44.342 | INFO | Page switch: page_main_white -> page_campaign_menu 2026-06-03 00:01:44.347 | INFO | Click (1149, 469) @ MAIN_GOTO_CAMPAIGN_WHITE 2026-06-03 00:01:49.441 | INFO | Page switch: page_main_white -> page_campaign_menu 2026-06-03 00:01:49.445 | INFO | Click (1244, 486) @ MAIN_GOTO_CAMPAIGN_WHITE 2026-06-03 00:01:49.745 | INFO | Page switch: page_campaign_menu -> page_exercise 2026-06-03 00:01:49.749 | INFO | Click (1046, 614) @ CAMPAIGN_MENU_GOTO_EXERCISE 2026-06-03 00:01:50.037 | INFO | Page arrive: page_exercise 2026-06-03 00:01:50.051 | INFO | Bind task ['General', 'Alas', 'Exercise'] 2026-06-03 00:01:50.058 | INFO | Save config ./config/alas-pc.json, Exercise.Exercise.OpponentRefreshValue=0, Exercise.Exercise.OpponentRefreshRecord=datetime.datetime(2026, 6, 3, 0, 1, 50) 2026-06-03 00:01:50.071 | INFO | [Change_opponent_count] 0 2026-06-03 00:01:50.075 | INFO | [Exercise_ExerciseStrategy] fri18 2026-06-03 00:01:50.118 | INFO | Loading OCR model: ./bin/cnocr_models/cnocr 2026-06-03 00:01:50.322 | INFO | [OCR_PERIOD_REMAIN 0.241s] 11天23:58:10 2026-06-03 00:01:50.325 | INFO | Exercise period remain: 11 days, 23:58:10 2026-06-03 00:01:50.329 | INFO | Preserve 5 exercise 2026-06-03 00:01:50.400 | INFO | [OCR_EXERCISE_REMAIN 0.066s] 10 ═════════════════════════════════════════════════ EXERCISE REMAIN 10 ══════════════════════════════════════════════════ 2026-06-03 00:01:50.406 | INFO | EXERCISE REMAIN 10 ───────────────────────────────────────────────────── OPPONENT 0 ────────────────────────────────────────────────────── 2026-06-03 00:01:50.411 | INFO | OPPONENT 0 2026-06-03 00:01:50.415 | INFO | <<< OPPONENT: 0 >>> 2026-06-03 00:01:50.423 | INFO | Click ( 263, 220) @ OPPONENT_0_0 2026-06-03 00:01:51.433 | INFO | Click ( 590, 580) @ EXERCISE_PREPARATION 2026-06-03 00:01:52.040 | INFO | <<< TRY: 1 >>> 2026-06-03 00:01:52.045 | INFO | Combat preparation 2026-06-03 00:01:52.049 | INFO | Click (1150, 650) @ BATTLE_PREPARATION 2026-06-03 00:01:58.046 | INFO | [BattleUI] PAUSE 2026-06-03 00:01:58.052 | INFO | Combat execute 2026-06-03 00:01:58.530 | INFO | [99% - 99%] 2026-06-03 00:02:03.776 | INFO | [98% - 62%] 2026-06-03 00:02:08.897 | INFO | [95% - 23%] 2026-06-03 00:02:13.985 | INFO | [00% - 00%] 2026-06-03 00:02:17.563 | INFO | BATTLE_STATUS_S -> CLICK_SAFE_AREA 2026-06-03 00:02:17.567 | INFO | Click (1217, 666) @ CLICK_SAFE_AREA 2026-06-03 00:02:17.863 | INFO | GET_ITEMS_1 -> CLICK_SAFE_AREA 2026-06-03 00:02:17.867 | INFO | Click (1230, 681) @ CLICK_SAFE_AREA 2026-06-03 00:05:18.058 | INFO | Function calls: threading.py L890 _bootstrap() threading.py L926 _bootstrap_inner() threading.py L870 run() threadbased.py L254 run() output.py L801 click_callback() app.py L457 process_manager.py L51 start() process.py L112 start() context.py L223 _Popen() context.py L277 _Popen() popen_fork.py L20 __init__() popen_fork.py L74 _launch() process.py L297 _bootstrap() process.py L99 run() process_manager.py L166 run_process() alas.py L570 loop() alas.py L70 run() alas.py L269 exercise() exercise.py L237 run() exercise.py L115 _exercise_once() combat.py L188 _combat() combat.py L53 _combat_execute() device.py L188 screenshot() device.py L250 stuck_record_check() device.py L43 show_function_call() 2026-06-03 00:05:18.074 | WARNING | Wait too long 2026-06-03 00:05:18.077 | WARNING | Waiting for {'BATTLE_PREPARATION', 'GET_ITEMS_1', 'POPUP_CANCEL', 'GET_MISSION', 'GUILD_POPUP_CONFIRM', 'EXP_INFO_S', 'MISSION_POPUP_GO', 'PAUSE', 'QUIT_RECONFIRM', 'POPUP_CONFIRM_WHITE', 'EXP_INFO_D', 'OPTS_INFO_D', 'BATTLE_STATUS_S', 'EXERCISE_CHECK', 'BATTLE_STATUS_D'} 2026-06-03 00:05:18.181 | INFO | [Package_name] com.bilibili.azurlane 2026-06-03 00:05:18.184 | ERROR | GameStuckError: Wait too long 2026-06-03 00:05:18.186 | WARNING | Saving error: ./log/error/1780416318186