ksaa 2025.6.23.0__tar.gz → 2025.7.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ksaa-2025.6.23.0/ksaa.egg-info → ksaa-2025.7.3.0}/PKG-INFO +4 -1
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/README.md +3 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/WHATS_NEW.md +42 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/context/context.py +0 -2
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/__init__.py +1 -2
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/device.py +155 -4
- ksaa-2025.7.3.0/kotonebot/client/host/adb_common.py +94 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/host/custom.py +27 -21
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/host/leidian_host.py +14 -23
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/host/mumu12_host.py +70 -24
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/host/protocol.py +4 -1
- ksaa-2025.7.3.0/kotonebot/client/host/windows_common.py +55 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/implements/__init__.py +2 -1
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/implements/adb.py +1 -44
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/implements/adb_raw.py +2 -9
- ksaa-2025.7.3.0/kotonebot/client/implements/nemu_ipc/__init__.py +8 -0
- ksaa-2025.7.3.0/kotonebot/client/implements/nemu_ipc/external_renderer_ipc.py +280 -0
- ksaa-2025.7.3.0/kotonebot/client/implements/nemu_ipc/nemu_ipc.py +327 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/implements/remote_windows.py +8 -14
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/implements/uiautomator2.py +5 -16
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/implements/windows.py +5 -36
- ksaa-2025.7.3.0/kotonebot/client/registration.py +24 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/config/base_config.py +4 -2
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/debug_entry.py +4 -2
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/errors.py +7 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/common.py +18 -0
- ksaa-2025.7.3.0/kotonebot/kaa/main/dmm_host.py +60 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/main/gr.py +373 -33
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/main/kaa.py +30 -3
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/metadata.py +42 -0
- ksaa-2025.7.3.0/kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/game.db +0 -0
- ksaa-2025.7.3.0/kotonebot/kaa/resources/game_ver.txt +0 -0
- ksaa-2025.7.3.0/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-005_0.png +0 -0
- ksaa-2025.7.3.0/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-005_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/R.py +132 -132
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0/ksaa.egg-info}/PKG-INFO +4 -1
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/ksaa.egg-info/SOURCES.txt +140 -133
- ksaa-2025.7.3.0/version +1 -0
- ksaa-2025.6.23.0/kotonebot/client/registration.py +0 -89
- ksaa-2025.6.23.0/kotonebot/kaa/main/dmm_host.py +0 -79
- ksaa-2025.6.23.0/kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
- ksaa-2025.6.23.0/kotonebot/kaa/resources/game_ver.txt +0 -0
- ksaa-2025.6.23.0/version +0 -1
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/LICENSE +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/MANIFEST.in +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/bot.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/color.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/context/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/context/task_action.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/core.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/debug/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/debug/entry.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/debug/mock.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/debug/server.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/debug/vars.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/dispatch.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/flow_controller.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/image.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/loop.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/ocr.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/backend/preprocessor.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/fast_screenshot.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/host/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/client/protocol.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/config/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/config/manager.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/interop/win/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/interop/win/reg.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/db/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/db/constants.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/db/idol_card.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/db/sqlite.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/game_ui/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/game_ui/badge.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/game_ui/common.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/game_ui/commu_event_buttons.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/game_ui/dialog.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/game_ui/idols_overview.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/game_ui/primary_button.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/game_ui/schedule.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/game_ui/scrollable.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/game_ui/toolbar.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/image_db/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/image_db/db.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/image_db/descriptors/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/image_db/descriptors/hist.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/kaa_context.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/main/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/main/cli.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-002_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-002_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-003_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-003_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-005_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-005_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-006_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-006_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-007_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-007_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-008_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-008_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-009_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-009_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-010_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-010_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-011_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-011_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-012_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-012_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-002_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-002_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-003_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-003_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-005_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-005_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-006_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-006_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-007_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-007_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-008_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-008_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-009_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-009_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-010_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-010_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-011_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-011_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-012_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-012_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-014_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-014_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-002_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-002_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-003_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-003_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-004_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-004_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-005_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-005_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-006_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-006_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-007_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-007_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-008_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-008_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-009_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-009_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-010_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-010_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-011_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-011_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-012_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-012_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-002_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-002_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-003_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-003_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-005_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-005_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-006_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-006_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-007_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-007_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-008_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-008_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-009_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-009_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-010_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-010_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-011_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-011_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-012_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-012_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-013_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-013_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-002_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-002_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-004_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-004_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-005_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-005_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-006_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-006_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-011_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-011_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-013_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-013_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-002_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-002_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-003_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-003_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-004_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-004_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-005_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-005_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-006_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-006_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-010_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-010_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-012_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-012_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-002_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-002_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-003_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-003_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-004_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-004_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-005_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-005_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-006_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-006_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-007_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-007_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-008_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-008_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-009_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-009_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-010_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-010_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-011_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-011_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-012_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-012_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-002_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-002_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-004_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-004_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-005_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-005_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-006_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-006_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-007_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-007_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-008_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-008_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-009_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-009_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-010_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-010_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-011_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-011_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-012_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-012_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-002_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-002_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-003_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-003_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-004_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-004_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-006_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-006_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-007_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-007_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-008_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-008_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-009_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-009_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-010_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-010_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-011_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-011_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-013_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-013_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-002_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-002_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-003_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-003_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-005_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-005_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-006_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-006_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-007_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-007_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-008_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-008_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-009_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-009_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-010_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-010_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-011_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-011_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-012_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-012_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-013_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-013_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-2-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-2-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-000_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-000_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-001_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-001_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-002_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-002_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-003_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-003_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-004_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-004_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-006_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-006_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-007_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-007_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-008_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-008_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-009_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-009_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-010_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-010_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-011_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-011_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-012_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-012_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-013_0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-013_1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/00551158-fee9-483f-b034-549139a96f58.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/c5ea3dfd-6761-466e-b44c-86592ef05323.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/01ce8957-465d-4278-b297-f58b36c73285.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/84bb4986-0295-4a45-9486-86e31fcdf1f1.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/02048c24-3002-4122-b24b-15a2c2fb502f.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/b01c25d2-21bf-4db9-b5b2-ec35817f1b04.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/02de663b-a039-4530-b10b-fd5aea9f600e.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/e1e0d751-9006-4fa4-a933-4c0dc5e1f3d2.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/047454d6-9cbb-432d-b670-bde2d5f5fc9a.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/05890a1b-8764-4e9f-9d21-65d292c22e13.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/920a3974-4875-4d2b-bbac-caa175c03ce0.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/081ca89e-0f95-45e5-a855-5b7e49295af5.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/0949c622-9067-4f0d-bac2-3f938a1d2ed2.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/0235ae3d-1741-4a81-8053-f60bc395ee85.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/0a0dfcba-7ae4-415a-9361-7f3c4ec16ef9.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/9c7f1bcc-0bc8-454b-95fb-56a803030771.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/0a586241-e005-45a6-b12f-eed8089d8fd8.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/5152e3fa-079c-4592-8df7-656101694df8.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/0ad61c60-5458-400d-9788-437edb32608a.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/f611bbd9-c062-4989-96a4-65ff6c59673c.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/0b452661-3720-4fa3-9e52-6fdc69517396.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/0c0627be-4a09-4450-a078-1858d3ace532.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/bed9575d-ccad-4f4e-825e-47b2a9cb0925.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/0db398fd-3551-4a15-b734-ca5a7b54150f.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/0d4b669e-5e43-4458-b65a-5565797335ae.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/0e0686c7-9fe8-4f82-9d05-7922e55fc1a9.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/0f7d581d-cea3-4039-9205-732e4cd29293.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/264e056f-3bcc-4b16-94d4-f767c78ab6f5.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/109ff896-1f96-465a-ad6f-ef410789e140.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/b65724b4-ec8f-48a9-9ab2-e7ce5b8f35b2.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/1140cce1-90e4-44cd-9acc-c2491841fbd4.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/7f6cb60e-6ab3-4db4-86e1-8558250062a4.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/124fb25f-47ac-468d-97af-f90c9604f1c5.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/135ee57a-d30d-4ba8-83f0-9f1681a49ff7.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/5868ebfb-5e61-4ac6-b270-acb1e89b738f.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/1470cd16-3340-4a0a-854f-3acf9b882cb1.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/1aaceb21-dc5c-4a58-96d3-d2c66b2fb357.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/156d67bb-562c-42df-b55a-aea0b6ad71dd.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/1652f06a-5417-49ef-8949-4854772d9ab7.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/16fbc93d-b294-4001-b4e9-ee2af181415f.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/abcc709c-1f4d-4832-a063-eafbad94ac31.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/17608ef8-fe7c-4fc7-b811-a6c05e838881.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/1926f2f9-4bd7-48eb-9eba-28ec4efb0606.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/dbd537c7-d1d3-4d64-9ccd-43dd4519bedd.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/1a4c5291-70a9-4923-aadf-f7e6a28c7aa5.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/d4c47cc7-5b3e-4c3e-8e80-78cb94e7eed9.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/1db583b2-c82a-4576-9ca9-b7409bc1ca95.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/7cabdf91-2f15-4991-b165-eb9cdd557af6.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/1fc998a7-cfa2-4485-9742-1ae87306a9fc.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/23d88465-65d9-4718-8725-8dbf0a98a5a4.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/dde03640-6c3a-4b13-a783-f672816bfec4.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/24cdb395-915e-4816-9406-efd1aafa70c1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/24e99232-9434-457f-a9a0-69dd7ecf675f.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/94433cf2-dd04-4b74-ae14-e5e3d945f579.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/25151748-2eb2-4f08-94f1-f1be2fbea3da.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/cdbbb5ba-5117-488a-8172-48cfc92c14c6.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/25598023-8999-4737-9f3c-9da71bb88748.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/25f00ee3-8dfe-42d1-a67e-191fa5c3df4b.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/d3e6e2e9-c5b5-463f-98f4-de72c9320d9d.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/26b9efc1-51be-4784-bf78-2b929abac650.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/e394ff91-09d3-41e1-bbf5-bc42a71a623b.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/276522a3-d8f0-4b0f-8ee5-dce3f2cb87a5.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/dfb14c98-f672-4906-80bd-d2a18bdd62cd.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/277035b5-7eee-4ca8-80dd-f73d78e7531f.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/278b7d9c-707e-4392-9677-74574b5cdf42.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/15465879-eb84-4ca6-ae0f-d3c5ac71e723.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/28ea2cc9-e9f2-4573-968a-0c88562c696a.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/aa3b717f-67f8-445f-a6bf-b89f7200d95b.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/28f44641-894d-4047-bc56-b932ac5a32a0.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/4a310bdd-0a7d-4669-9d57-6ae69bc8f022.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/2a0e9656-26ba-4d7a-a414-6045e521b92c.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/bfec58df-2628-454f-92aa-769cad186448.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/2a2770d2-7fd8-4bb0-89a7-c507046fc892.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/cf66ae12-48bc-4512-a988-0e5de337c76d.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/2b9fb35b-4a3b-440d-bcac-1eb1fdfe0e21.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/2bc00520-0afe-40e5-8743-d33fc6b2945a.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/2bd6fe88-99fa-443d-8e42-bb3de5881213.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/2ededcf5-1d80-4e2a-9c83-2a31998331ce.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/c3ec61aa-f62e-46fd-b359-48864ea7a150.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/2fc3fa82-cc3d-4164-839f-d0bd7f8a32f5.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/1aae0ab3-f619-47e0-8bf6-3d3791f7d445.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/2fd135e1-8010-4a53-90a3-2a950c5a43bf.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/d1699baa-467b-46d1-9276-aae78fe8f589.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/3037118b-4a82-4cfc-ad95-db8a03f779d5.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/303cccc1-c674-4d3a-8c89-19ea729fdbef.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/30a6f399-6999-4f04-bb77-651e0214112f.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/1d5f7454-672d-4e87-a368-ec4bb32f9b1f.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/33aaec9e-dccc-441a-b91a-4784f1eb4498.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/a8b3fdce-9e4a-495c-839e-0142f67fee69.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/359e43b3-6b85-4f8c-86a1-4d4c1ae75779.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/09fb5e41-6caa-4246-a415-8317b12d8d81.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/3a4e2e77-c49b-4f69-bfd1-19fbe4f5c9a5.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/3b473fe6-e147-477f-b088-9b8fb042a4f6.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/038c69e6-7cb0-4c8d-99da-b537e48a86b7.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/3bf0a104-739e-4bef-9304-4aa77e5e18ea.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/3c8b477a-8eda-407e-9e9f-7540c8808f89.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/cb24b3df-1ec3-4ffd-95f1-ca4b0dd5b7da.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/3ea8a020-5605-47ce-8d3a-d812d0583058.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/3f637e86-6b74-4693-9131-1fe411fc21e5.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/42d8b5dc-ef27-4411-b8b5-d981e562990b.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/404c6271-1af4-4f63-be02-e82b318eb072.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/4096cffa-a889-4622-852e-760fc7022d93.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/8e48af2b-c083-4480-a27c-c59c31a7ede1.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/43550662-cd46-4312-b18b-949cba98d173.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/52f7c8b1-af88-43c5-a999-de4da3caa03a.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/441c2df2-43ac-4ff3-814e-6230c510bce6.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/58a5f51d-d1a3-480b-8dde-ecead34d9f02.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/44430184-c35e-4bb8-8858-ed5cec580c36.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/a4075991-98da-4d06-bcde-28054cd124d2.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/4466c3fe-a5ad-4960-a137-0d735441b12e.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/447d0e44-5d87-4b7c-8e60-edb111fe1639.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/44ba8515-4a60-42c9-8878-b42e4e34ee15.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/4503db6b-7224-4b81-9971-e7cfa56e10f2.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/4695f96b-c4f5-4bb6-a021-a13b6ceb2883.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/efb28e1d-7b52-4e20-aec5-117c798b7fbe.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/46debd92-df4c-49d6-a3f6-c83a4c72be70.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/4883c564-f950-4a29-9f5f-6f924123cd22.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/448ea37d-a10d-4102-ac9f-a58403ee8914.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/49e46cda-a6ac-44c8-8901-60956ca5151d.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/faf360e8-7845-4fcf-b0a6-0f5f93c050f1.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/4cca8c07-b33f-4f57-8c2b-3fff8cb4424a.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/4d78add6-1027-4939-bb51-f99fca7db2ce.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/a1bba683-a740-4eaf-8c37-3b1042b963b0.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/4fe4fbf2-4dbf-44d2-8dd6-a3f3c9f0d1b7.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/7516c9a1-87ec-4d2f-ac5e-40d1aec27104.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/501eaf11-021e-4764-93ed-0be6ea0ed5df.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/50e23c8a-7ba2-4c9c-9cfb-196c260fa1d5.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/5ee8e9a8-b133-4ab7-a52c-e7e4e1d1ce7b.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/525b6f3a-acc8-4bd8-be4b-cc1f44fb377a.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/6114d53e-dd69-4cee-82a7-7e43b338ff8d.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/540547f7-5633-440c-b7ad-b54529436479.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/c5e16f75-9b5a-4853-a144-275f3d20c186.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/540a0d73-7158-4872-808f-abcb11ba1aef.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/a3b15425-0bfd-4668-a3a9-2ab64da8505f.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/559485ee-a27f-4824-ad7a-e57d0c613ed5.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/55f7db71-0a18-4b3d-b847-57959b8d2e32.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/8f1e5644-1079-44b1-9d44-97bae3817bc5.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/56a7aed8-6367-40dd-a6a1-fc8a840abd9b.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/582d36c0-0916-4706-9833-4fbc026701f5.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/2e00ac54-d23a-4d51-82f2-829c012552a6.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/5d8bbe9f-4732-495a-8d27-80cfd2ea12f5.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/5ebcde3b-f0fd-4e5d-b3de-ada8f0b5e03b.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/4eaa5db2-d624-4df4-b2e4-01f72755f1a4.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/612d508d-e77c-492e-854d-30141733bd27.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/d5d854fc-1b87-43d4-b32d-66eccb66fa41.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/62031705-40e0-4b74-b7b9-07f1fffd122f.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/0a6c6b1e-7a80-428e-a483-1858bfb8ac59.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/62a4c9fd-35e6-4982-b9f4-e3a5685eac13.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/6720b6e8-ae80-4cc0-a885-518efe12b707.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/68838f92-5916-424e-a37e-47e0b3834eb3.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/685fb958-ec13-4826-8e78-3575ff42df27.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/b1e7f24e-f246-406e-9073-58e2f3e4e819.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/689aa894-304a-48d2-8b6e-794dc967b1f6.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/1b6be6dd-2711-441a-9fa6-3281a6ad10c7.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/69266fc9-c8fe-48ea-8d68-8ace8c606049.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/1ccdcacf-4f7d-442c-8e2f-09aa7fe14e56.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/699df701-37a2-4e17-afae-5b49ab826926.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/ba759205-ce99-4417-8cab-d32fe55dff4c.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/6a7eacf1-f14e-45cf-8ef7-7f933d4fa664.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/969eb98c-f761-4007-b8bd-2b3fb8d1f08c.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/6af19ba1-ca74-473b-8788-61132e5fc084.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/6b58d90d-2e5e-4b7f-bc01-941f2633de89.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/3cc9685d-6347-4114-9d39-7683c2dc9df6.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/6be05914-aa45-4e55-a0bb-7ec16e76d7b1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/6cd80be8-c9b3-4ba5-bf17-3ffc9b000743.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/534d1310-3503-46d3-8ecd-426d9bcf183e.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/6f342de5-b179-4120-ab6d-404c3eee5caa.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/60be53a6-98e9-4fc6-9285-85506dc0e335.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/6fc5543e-9d09-4f06-8331-64ee62bd73c3.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/0fbcb3f6-9ca0-43c7-975b-e7c15c26c897.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/7036c80b-28fd-4a54-a8f9-06a23d89e861.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/b8aada91-eedd-4c53-99f3-f903d547235e.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/71fe9437-3d7a-4321-9e5c-d6b81d954002.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/a1cf80ee-64bf-4d54-a7db-ffadf3c97026.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/7344f9d8-fccb-44e3-ab43-a180cfce2217.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/90def878-cd6e-46e5-9dc4-9c92dd904b80.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/74e207b4-a13e-47cc-bf23-dbf77089ea3c.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/74ec3510-583d-4a76-ac69-38480fbf1387.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/74ff07b3-d91c-4579-80cd-379ed7020622.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/faf069e1-f623-47c1-b879-cfa246fbc7df.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/76aca556-0042-4f84-a29a-30e6a631aa72.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/79abd239-5eed-4195-9fa8-d729daa874ca.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/e5eeb9af-8003-4981-bf56-2e32e76cec5d.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/7aa7c3dc-02e8-4d70-a026-d1afb34f37f9.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/9cd7e1f1-13c4-471e-abee-223ffd9126cb.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/7d4d40cf-a6db-41ef-90fd-2fb0a6f5087d.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/17a8b0a5-5b71-4612-8a68-16c51f03c71b.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/7d7ccd61-8d92-49b4-aa7e-b1e73906371e.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/e5259dfb-3a49-4cfc-9f89-b42958ce6eec.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/807904aa-30fd-4a9b-8acb-ca4b235281bc.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/8b9c115b-d4ce-492e-88cb-08bd01c43570.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/81a6e258-670c-4646-90ef-a76846cf5d37.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/5dd0cc39-4102-4f0f-8ad3-342bbf825977.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/81bf65f2-9cc3-4613-9611-e7b5ec14c31c.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/835489e2-b29b-426c-b4c9-3bb9f8eb6195.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/83d0a033-466c-463a-bb8c-be0f2953e9b2.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/8424ecdd-8857-4764-9fd0-d4bfa440c128.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/b5d4265c-82e0-470d-a48e-8aa4edbdef5a.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/84af97ac-7e73-4ae8-88a6-9b3a18c81fbe.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/aefdec38-e3b6-4762-aed8-33107686ddac.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/85347bb8-c28d-4a40-bd55-386c530727c2.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/868b97a9-492e-4712-b47f-82b97495b019.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/4b20b364-5f5f-4b34-960e-b0cfd08b1662.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/884a25c2-7b98-4a33-a975-6f918a8301aa.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/29cb7b0f-5684-4516-8fae-4439f7f28e08.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/88ed3d25-070a-411d-b4fb-8a9df068b091.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/8c179a21-be6f-4db8-a9b0-9afeb5c36b1c.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/8ded6c98-85ea-4858-a66d-4fc8caecb7c5.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/9340b854-025c-40da-9387-385d38433bef.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/1bb00a74-2fdc-4973-84ae-dc1edee15f81.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/94b8429e-64d9-49da-945c-d2d3dcccb587.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/df97421e-4b74-430e-b3d1-ed9bac6918a7.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/95e591bb-f0e6-457e-83e3-0909cb5c8877.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/9aef1aa8-41e1-42a7-83ad-b4e212ee3976.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/982d2e5d-4493-44a5-b922-e71649fd6bc5.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/302fde7d-de85-44c7-ba57-fe4b5f6db5fa.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/99ae067f-72f2-4d13-a2de-f78ce13ec5a3.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/66678caa-7b25-4ff7-8c3a-017f67279349.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/9b425fee-9118-4015-9242-29bf1150e704.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/83f17b06-2792-4035-bc90-1800279ae131.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/9bf5d8a8-30c1-4ce7-9888-bcada63d48e6.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/c25c7ce5-ad8d-4b2c-83eb-ae6d4871a6c3.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/9fb0b19e-ae0c-4c9e-8ec8-b126113b6091.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/9fd0753f-c607-4d49-82d1-40bda27e014f.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/a0bd6a5f-784d-4f0a-9d66-10f4b80c8d3e.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/a1df3af1-a3e7-4521-a085-e4dc3cd1cc57.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/0ad2f603-a3ad-4a92-a398-c411145fd8e9.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/a241cff0-d803-4c8f-bcd0-22bda2adc8a7.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/83acbca8-3567-4262-a1e7-50f158348d45.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/a26dc021-2a28-4f79-bd11-48c4a1261f0d.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/ca2adfb8-1e88-4a31-b3cc-1f70568ce4a3.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/a2ab29ef-ddc7-4885-9f88-850858b0c995.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/17414e9e-b046-49e0-9596-cad1f4673a9e.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/a388f87d-9a69-4189-b80a-e230d7d7b964.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/a48324ae-7c1a-489e-b3c4-93d12267f88d.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/83cf48ba-d1af-4674-a52e-6bb80a626db7.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/a53820f6-1572-413a-b7b1-2bc08690884f.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/a1853223-d6b9-4660-af4e-91e59bdddc3c.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/a5bd802e-d10c-4e95-9b62-1ffd92aca4ab.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/f12c2b0b-8273-4197-a8c6-2a8ef2788a9b.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/a6d63930-bb09-443c-95ae-47ad6a9f9cc4.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/a7f5abf1-982f-4a55-8d41-3ad6f56798e0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/a9fcaf04-0c1f-4b0f-bb5b-ede9da96180f.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/9d5dd50c-3341-41a4-a3dd-ccc00edcf201.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/ab4cd19c-ad2b-4ed7-baeb-eef6a12939b2.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/080b3cf5-ce35-4382-9bfa-d6a12efb09b3.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/abd7bfbf-5f08-452a-b216-22fb0af4e955.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/e9c45a73-2011-4584-87b7-c4e566eba87f.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/ac4579ad-2000-4283-8e13-53fe525725bf.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/dad4ff8c-07f4-4b07-abd3-5d02bbcc4562.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/ada79928-ea1a-4537-89e7-a02877dc6e7d.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/adc533a7-970b-4c5b-a037-2181531a35d6.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/1f2981d8-5eb6-4332-aa9b-17f4db2d4163.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/af4b7a1d-4cb2-432c-8dbb-c333950c58c2.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/afa06fdc-a345-4384-b25d-b16540830256.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/b0283997-7931-476d-a92f-d7569f6ea34c.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/b2af59e9-60e3-4d97-8c72-c7ba092113a3.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/b2e1bf3c-2c36-4fb5-9db7-c10a29563a37.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/7aa2435c-da90-4d52-b831-88dbec57dde9.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/b5d02984-ec1f-48f5-8593-0bc0e4babc1f.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/b62bf889-da3c-495a-8707-f3bde73efe92.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/b6b94f21-ef4b-4425-9c7e-ca2b574b0add.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/bab6c393-692c-4681-ac0d-76c0d9dabea6.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/25910d8e-d57f-409f-b0be-ee68c5af4920.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/bba69e83-b9f4-4a24-a95b-190c985c5b22.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/1639278d-67e0-4452-a2b5-ec4cf4011f42.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/bc10fc41-960e-4151-aad2-325367b20895.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/bc7155ac-18c9-4335-9ec2-c8762d37a057.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/66172bc0-3869-4a48-a26d-0dc3fa404ab8.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/bc94b664-bbcf-4b59-8e4b-7dbf03997309.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/bb0ae68d-44d5-47c6-91dd-a529bc34225b.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/bf44c221-0af9-497e-a2e8-cdc497348257.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/2dd34393-ee6f-4b19-8a9c-76556d1bd7d7.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/bff85e9a-df48-429f-a82e-ceff41f8527b.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/c3f536d6-a04a-4651-b3f9-dd2c22593f7f.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/ed6d3e3d-0f04-4fa4-b0f9-fdbf324649f6.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/c4985caa-1e42-4980-9a76-a660a7b12c67.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/f8eec9b2-55ca-4195-b098-a5393d02a98a.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/c5447438-3b41-465e-b438-157f5e61c764.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/c5b7d67e-7260-4f08-a0e9-4d31ce9bbecf.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/ad172750-d1a6-4a25-8ce8-9483f4b5affb.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/c696843a-1e17-4c0d-a92c-eb54f9356daf.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/c78c38cc-7b61-4dc4-820d-0a5b684ef52e.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/c948f136-416f-447e-8152-54a1cd1d1329.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/c954e153-d3e9-4488-869f-d00cfdfac5ee.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/cbf4ce9c-f8d8-4fb7-a197-15bb9847df04.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/cc8a495d-330d-447d-8a80-a8a6ecc409c5.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/c571e1c0-ff85-4b2e-97ed-97d33b8d92e3.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/cc959ce4-8619-4bd7-8a85-02f97cf6cc51.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/ccbcb114-7f73-43d1-904a-3a7ae660c531.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/65d2a5e5-48aa-4390-bb87-bfd8e044e4f6.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/ce0df3fa-5d88-4b20-9cf1-6b4abac4c110.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/ce1d1d6f-38f2-48bf-98bd-6e091c7ca5b8.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/cfc9c8e8-cbe1-49f0-9afa-ead7f9455a2e.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/d15959bf-d07b-4f07-948a-c0aeaf17756a.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/d271a24f-efe8-424d-8fd5-f6b3756ba4ca.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/26580772-ff20-4dcf-8496-f939e0f2890d.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/d2a8f04f-38c1-4a67-8c57-43e0334887ef.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/d3424d31-0502-4623-996e-f0194e5085ce.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/d3cc3323-51af-4882-ae12-49e7384b746d.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/d6b64759-26b7-45b1-bf8e-5c0d98611e0d.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/d7667903-7149-4f2f-9c15-d8a4b5f4d347.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/d83f338d-dde3-494b-9bea-cae511e3517c.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/d982d2b5-4bc0-4ae9-a516-f29c2848d64b.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/da439e8c-3b74-4371-9657-0736d826c7d1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/daf3d823-b7f1-4584-acf3-90b9d880332c.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/2f74b04f-1992-4584-8dc6-e789b081ddc3.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/db375f07-c682-4aae-880a-a2cf13d0dac0.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/db7d3f03-1f7f-43bf-8125-f7c2d345fca2.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/d60a395b-d907-416a-b091-36bfee4948b3.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/dd4c523c-1286-4f68-89f5-371464aa138c.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/de325534-3fd3-480a-9eb8-eb47960a753a.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/df991b42-ed8e-4f2c-bf0c-aa7522f147b6.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/694d3a07-9697-4bda-984d-967779d530f7.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/e2d3a8c0-3998-4643-b084-c21b2304843c.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/6156116e-56dd-4b41-a6de-ccec55dab7c8.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/e3c1f79a-0077-43db-bd00-ba04d7ca8d3b.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/e4683def-8d1d-472b-a5ab-bb3885c0c98e.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/2d145ade-b926-4276-b872-baec4ef78308.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/e47acec2-3466-419a-acad-30618239aab9.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/e5e84f9e-28da-4cf4-bcba-c9145fe39b07.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/f72bd3d6-850d-4190-9775-938f474d263c.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/e671d7bd-cf40-425f-b941-3e1adf4624e8.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/e6b45405-cd9f-4c6e-a9f1-6ec953747c65.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/9f99b0e9-8cc0-4877-8f8a-d26257ef5386.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/e703f139-9612-4e4a-be30-db32423d57d9.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/e88c9ad1-ec37-4fcd-b086-862e1e7ce8fd.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/4e8f3e59-edfa-4523-939d-bc46988fc909.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/e89906b2-7354-4724-80ef-7c7fe5cd3ef5.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/e9ee330d-dfca-440e-8b8c-0a3b4e8c8730.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/6aa34982-e7ab-4001-808f-8c5cf370d087.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/ea0440b1-a7a5-4db0-828a-f907b0531cd5.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/ea1ba124-9cb3-4427-969a-bacd47e7d920.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/eaba6ebe-f0df-4918-aee5-ef4e3ffedcf0.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/7b7dad18-a838-4267-b3c7-6ab43b8361f0.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/ecdf7c70-d50e-41f4-a2ee-c4f6dd5a2617.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/5d3d61e9-bf13-4668-b0c7-fed730ea2ed6.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/ed331876-f724-4a9f-a494-7823be883a76.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/ee4e512b-4982-49b6-9c71-31984b58e1d0.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/a7da51c2-8444-4770-a16b-b6543e40197f.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/ee7f4e24-6cbc-41ed-9327-d6843ac6a820.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/eef25cf9-afd0-43b1-b9c5-fbd997bd5fe0.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/f6bfbf6a-6e53-4563-9345-3f3756d6ea9a.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/f1758956-6b88-49f7-9ecf-44db49d1e6fe.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/f1f21925-3e22-4dd1-b53b-bb52bcf26c2b.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/f43c313b-8a7b-467b-8442-fc5bcb8b4388.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/f5c16d2f-ebc5-4617-9b96-971696af7c52.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/f025027f-daa0-4943-8395-5d7d44cc7f15.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/f6063ed7-f59e-4c37-93e2-026c805826ea.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/69b022a8-e42f-4985-bd16-b4a530ad8a20.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/f699ed29-e7aa-4c53-8320-3df785078ec3.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/f6ca6bd3-543f-4779-8367-c5c883f04b95.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/eae83523-e58c-4db9-a356-4335a5da3dc8.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/f897b52f-b9d8-4d94-9d98-1ed6bf7b6c76.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/f528ea0e-1e55-4e41-844f-bb1db9185ef8.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/f92f9af7-77ef-4814-a64b-ce8f340a9cf9.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/sprites/fad5eec2-5fd5-412f-9abb-987a3087dc54.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/c484ca57-6b19-46b5-a107-1805a7488d48.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/fccea764-f5db-45c6-ace1-140844e0d0f0.png +0 -0
- /ksaa-2025.6.23.0/kotonebot/kaa/sprites/97adee05-1586-4589-93e6-c6c3a9cdae9d.png → /ksaa-2025.7.3.0/kotonebot/kaa/sprites/feb8f473-8a2e-40a5-b6e0-dffafd35edc1.png +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/actions/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/actions/commu.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/actions/loading.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/actions/scenes.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/actions/stats.py +0 -0
- {ksaa-2025.6.23.0/kotonebot/kaa → ksaa-2025.7.3.0/kotonebot/kaa/tasks}/clear_logs.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/daily/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/daily/acquire_activity_funds.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/daily/acquire_presents.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/daily/assignment.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/daily/capsule_toys.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/daily/club_reward.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/daily/contest.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/daily/mission_reward.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/daily/purchase.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/daily/upgrade_support_card.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/end_game.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/produce/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/produce/cards.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/produce/common.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/produce/in_purodyuusu.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/produce/non_lesson_actions.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/produce/p_drink.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/produce/produce.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/tasks/start_game.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/util/paths.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/kaa/util/trace.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/logging/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/logging/log.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/primitives/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/primitives/geometry.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/primitives/visual.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/tools/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/tools/mirror.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/ui/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/ui/file_host/sensio.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/ui/file_host/tmp_send.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/ui/pushkit/__init__.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/ui/pushkit/image_host.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/ui/pushkit/protocol.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/ui/pushkit/wxpusher.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/ui/user.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/kotonebot/util.py +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/ksaa.egg-info/dependency_links.txt +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/ksaa.egg-info/entry_points.txt +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/ksaa.egg-info/requires.txt +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/ksaa.egg-info/top_level.txt +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/pyproject.toml +0 -0
- {ksaa-2025.6.23.0 → ksaa-2025.7.3.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ksaa
|
|
3
|
-
Version: 2025.
|
|
3
|
+
Version: 2025.7.3.0
|
|
4
4
|
Summary: Kotones Auto Assistant(kaa) is a script for game 'Gakuen Idol M@ster' that automates the dailies and produces.
|
|
5
5
|
Requires-Python: ~=3.10
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -106,6 +106,9 @@ kaa 的开发主要用到了以下开源项目:
|
|
|
106
106
|
](https://github.com/AllenHeartcore/GkmasObjectManager):用于提取游戏图像资源,以 GPLv3 协议开源。
|
|
107
107
|
* [gakumasu-diff](https://github.com/vertesan/gakumasu-diff):游戏数据。
|
|
108
108
|
|
|
109
|
+
kaa 的开发还参考了以下开源项目:
|
|
110
|
+
* [EmulatorExtras](https://github.com/MaaXYZ/EmulatorExtras):MuMu 与雷电模拟器的截图与控制接口定义。
|
|
111
|
+
* [blue_archive_auto_script](https://github.com/pur1fying/blue_archive_auto_script):MuMu 与雷电模拟器的截图与控制接口的 Python 实现,以及各模拟器的控制实现。
|
|
109
112
|
|
|
110
113
|
## 免责声明
|
|
111
114
|
**请在使用本项目前仔细阅读以下内容。使用本脚本将带来包括但不限于账号被封禁的风险。**
|
|
@@ -76,6 +76,9 @@ kaa 的开发主要用到了以下开源项目:
|
|
|
76
76
|
](https://github.com/AllenHeartcore/GkmasObjectManager):用于提取游戏图像资源,以 GPLv3 协议开源。
|
|
77
77
|
* [gakumasu-diff](https://github.com/vertesan/gakumasu-diff):游戏数据。
|
|
78
78
|
|
|
79
|
+
kaa 的开发还参考了以下开源项目:
|
|
80
|
+
* [EmulatorExtras](https://github.com/MaaXYZ/EmulatorExtras):MuMu 与雷电模拟器的截图与控制接口定义。
|
|
81
|
+
* [blue_archive_auto_script](https://github.com/pur1fying/blue_archive_auto_script):MuMu 与雷电模拟器的截图与控制接口的 Python 实现,以及各模拟器的控制实现。
|
|
79
82
|
|
|
80
83
|
## 免责声明
|
|
81
84
|
**请在使用本项目前仔细阅读以下内容。使用本脚本将带来包括但不限于账号被封禁的风险。**
|
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
## kaa
|
|
3
|
+
### v2025.7.3.0
|
|
4
|
+
启动器:
|
|
5
|
+
* [新增] 新启动器现在支持安装指定版本与指定补丁(#456019b)
|
|
6
|
+
* [新增] 自动更新可禁用(#3f88c3a)
|
|
7
|
+
* [新增] 启动器 C++ EXE 跳板程序(#b377b84)
|
|
8
|
+
* [新增] 新启动器(#c4b93f4)
|
|
9
|
+
|
|
10
|
+
其他:
|
|
11
|
+
* [其他] Git 记录提取工具支持 bootstrap scope(#66ea531)
|
|
12
|
+
|
|
13
|
+
### v2025.6.28.0
|
|
14
|
+
脚本:
|
|
15
|
+
* [修复] 修正 debug_entry 脚本路径处理逻辑(#b53a055)
|
|
16
|
+
* [修复] 修复清理日志功能失效的问题(#ad5c7b7)
|
|
17
|
+
* [修复] 修复 debug_entry 执行的脚本没有正确输出日志的问题(#3ceae4c)
|
|
18
|
+
|
|
19
|
+
界面:
|
|
20
|
+
* [新增] 优化日志导出功能(#9574d20)
|
|
21
|
+
* [新增] 为 UI 增加部分配置有效性验证(#08a7e71)
|
|
22
|
+
* [新增] 加入调试模式警告提示(#a01c37d)
|
|
23
|
+
* [新增] 画面 Tab 刷新机制由自动改为手动(#2469fc0)
|
|
24
|
+
* [新增] MuMu12 保活模式可选开启(#71170e5)
|
|
25
|
+
|
|
26
|
+
框架:
|
|
27
|
+
* [修复] 修复 Device 中缩放与截图 Hook 的处理顺序不正确问题
|
|
28
|
+
* [修复] 修复 NemuIpc 在多显示器下的坐标系问题(#87da282)
|
|
29
|
+
* [修复] 修复当目标分辨率与实际分辨率旋转不同时截图会强制拉伸的问题(#e62e65d)
|
|
30
|
+
* [修复] 缩放处理支持自动识别旋转(#677932a)
|
|
31
|
+
* [修复] 修复 NemuIpc 截图无法响应屏幕旋转导致的分辨率变化(#105a894)
|
|
32
|
+
* [新增] NemuIpcImpl 获取显示器 ID 支持自动重试(#0c94acf)
|
|
33
|
+
* [新增] 支持 MuMu12 后台保活模式(#e232826)
|
|
34
|
+
* [新增] 引入 Nemu 截图与控制方式(#f0b9181)
|
|
35
|
+
* [新增] 移除 WindowsImpl 中的分辨率缩放(#415a8df)
|
|
36
|
+
* [新增] 支持等比例分辨率缩放(#bb7f603)
|
|
37
|
+
* [重构] 组装 Device 改用 recipe 方案(#f01e022)
|
|
38
|
+
* [重构] 将传递的 MuMu 路径从 shell 目录改为 MuMu 根目录(#784b8ed)
|
|
39
|
+
|
|
40
|
+
其他:
|
|
41
|
+
* [其他] HsvRangeTool 支持从剪贴板粘贴图片(#1397587)
|
|
42
|
+
* [其他] VSCode 新增不初始化 context 的启动配置(#0718678)
|
|
43
|
+
* [其他] 调整部分日志输出格式(#bcd8cf2)
|
|
44
|
+
|
|
3
45
|
### v2025.6.23.0
|
|
4
46
|
脚本:
|
|
5
47
|
* [新增] 优化了培育开始的逻辑,修复若干 bug(#86313ec)
|
|
@@ -46,12 +46,10 @@ from kotonebot.backend.color import (
|
|
|
46
46
|
from kotonebot.backend.ocr import (
|
|
47
47
|
Ocr, OcrResult, OcrResultList, jp, en, StringMatchFunction
|
|
48
48
|
)
|
|
49
|
-
from kotonebot.client.registration import AdbBasedImpl, create_device
|
|
50
49
|
from kotonebot.config.manager import load_config, save_config
|
|
51
50
|
from kotonebot.config.base_config import UserConfig
|
|
52
51
|
from kotonebot.backend.core import Image, HintBox
|
|
53
52
|
from kotonebot.errors import KotonebotWarning
|
|
54
|
-
from kotonebot.client import DeviceImpl
|
|
55
53
|
from kotonebot.backend.preprocessor import PreprocessorProtocol
|
|
56
54
|
from kotonebot.primitives import Rect
|
|
57
55
|
|
|
@@ -9,6 +9,7 @@ from cv2.typing import MatLike
|
|
|
9
9
|
from adbutils._device import AdbDevice as AdbUtilsDevice
|
|
10
10
|
|
|
11
11
|
from ..backend.debug import result
|
|
12
|
+
from ..errors import UnscalableResolutionError
|
|
12
13
|
from kotonebot.backend.core import HintBox
|
|
13
14
|
from kotonebot.primitives import Rect, Point, is_point
|
|
14
15
|
from .protocol import ClickableObjectProtocol, Commandable, Touchable, Screenshotable, AndroidCommandable, WindowsCommandable
|
|
@@ -78,6 +79,31 @@ class Device:
|
|
|
78
79
|
"""
|
|
79
80
|
设备平台名称。
|
|
80
81
|
"""
|
|
82
|
+
self.target_resolution: tuple[int, int] | None = None
|
|
83
|
+
"""
|
|
84
|
+
目标分辨率。
|
|
85
|
+
|
|
86
|
+
若设置,则在截图、点击、滑动等时会缩放到目标分辨率。
|
|
87
|
+
仅支持等比例缩放,若无法等比例缩放,则会抛出异常 `UnscalableResolutionError`。
|
|
88
|
+
"""
|
|
89
|
+
self.match_rotation: bool = True
|
|
90
|
+
"""
|
|
91
|
+
分辨率缩放是否自动匹配旋转。
|
|
92
|
+
|
|
93
|
+
当目标与真实分辨率的宽高比不一致时,是否允许通过旋转(交换宽高)后再进行匹配。
|
|
94
|
+
为 True 则忽略方向差异,只要宽高比一致就视为可缩放;False 则必须匹配旋转。
|
|
95
|
+
|
|
96
|
+
例如,当目标分辨率为 1920x1080,而真实分辨率为 1080x1920 时,
|
|
97
|
+
``match_rotation`` 为 True 则认为可以缩放,为 False 则会抛出异常。
|
|
98
|
+
"""
|
|
99
|
+
self.aspect_ratio_tolerance: float = 0.1
|
|
100
|
+
"""
|
|
101
|
+
宽高比容差阈值。
|
|
102
|
+
|
|
103
|
+
判断两分辨率宽高比差异是否接受的阈值。
|
|
104
|
+
该值越小,对比例一致性的要求越严格。
|
|
105
|
+
默认为 0.1(即 10% 容差)。
|
|
106
|
+
"""
|
|
81
107
|
|
|
82
108
|
@property
|
|
83
109
|
def adb(self) -> AdbUtilsDevice:
|
|
@@ -89,6 +115,50 @@ class Device:
|
|
|
89
115
|
def adb(self, value: AdbUtilsDevice) -> None:
|
|
90
116
|
self._adb = value
|
|
91
117
|
|
|
118
|
+
def _scale_pos_real_to_target(self, real_x: int, real_y: int) -> tuple[int, int]:
|
|
119
|
+
"""将真实屏幕坐标缩放到目标逻辑坐标"""
|
|
120
|
+
if self.target_resolution is None:
|
|
121
|
+
return real_x, real_y
|
|
122
|
+
|
|
123
|
+
real_w, real_h = self.screen_size
|
|
124
|
+
target_w, target_h = self.target_resolution
|
|
125
|
+
|
|
126
|
+
# 校验分辨率是否可缩放并获取调整后的目标分辨率
|
|
127
|
+
adjusted_target_w, adjusted_target_h = self.__assert_scalable((real_w, real_h), (target_w, target_h))
|
|
128
|
+
|
|
129
|
+
scale_w = adjusted_target_w / real_w
|
|
130
|
+
scale_h = adjusted_target_h / real_h
|
|
131
|
+
|
|
132
|
+
return int(real_x * scale_w), int(real_y * scale_h)
|
|
133
|
+
|
|
134
|
+
def _scale_pos_target_to_real(self, target_x: int, target_y: int) -> tuple[int, int]:
|
|
135
|
+
"""将目标逻辑坐标缩放到真实屏幕坐标"""
|
|
136
|
+
if self.target_resolution is None:
|
|
137
|
+
return target_x, target_y # 输入坐标已是真实坐标
|
|
138
|
+
|
|
139
|
+
real_w, real_h = self.screen_size
|
|
140
|
+
target_w, target_h = self.target_resolution
|
|
141
|
+
|
|
142
|
+
# 校验分辨率是否可缩放并获取调整后的目标分辨率
|
|
143
|
+
adjusted_target_w, adjusted_target_h = self.__assert_scalable((real_w, real_h), (target_w, target_h))
|
|
144
|
+
|
|
145
|
+
scale_to_real_w = real_w / adjusted_target_w
|
|
146
|
+
scale_to_real_h = real_h / adjusted_target_h
|
|
147
|
+
|
|
148
|
+
return int(target_x * scale_to_real_w), int(target_y * scale_to_real_h)
|
|
149
|
+
|
|
150
|
+
def __scale_image (self, img: MatLike) -> MatLike:
|
|
151
|
+
if self.target_resolution is None:
|
|
152
|
+
return img
|
|
153
|
+
|
|
154
|
+
target_w, target_h = self.target_resolution
|
|
155
|
+
h, w = img.shape[:2]
|
|
156
|
+
|
|
157
|
+
# 校验分辨率是否可缩放并获取调整后的目标分辨率
|
|
158
|
+
adjusted_target = self.__assert_scalable((w, h), (target_w, target_h))
|
|
159
|
+
|
|
160
|
+
return cv2.resize(img, adjusted_target)
|
|
161
|
+
|
|
92
162
|
@overload
|
|
93
163
|
def click(self) -> None:
|
|
94
164
|
"""
|
|
@@ -161,7 +231,12 @@ class Device:
|
|
|
161
231
|
logger.debug(f"Executing click hook before: ({x}, {y})")
|
|
162
232
|
x, y = hook(x, y)
|
|
163
233
|
logger.debug(f"Click hook before result: ({x}, {y})")
|
|
164
|
-
|
|
234
|
+
if self.target_resolution is not None:
|
|
235
|
+
# 输入坐标为逻辑坐标,需要转换为真实坐标
|
|
236
|
+
real_x, real_y = self._scale_pos_target_to_real(x, y)
|
|
237
|
+
else:
|
|
238
|
+
real_x, real_y = x, y
|
|
239
|
+
logger.debug(f"Click: {x}, {y}%s", f"(Physical: {real_x}, {real_y})" if self.target_resolution is not None else "")
|
|
165
240
|
from ..backend.context import ContextStackVars
|
|
166
241
|
if ContextStackVars.current() is not None:
|
|
167
242
|
image = ContextStackVars.ensure_current()._screenshot
|
|
@@ -169,9 +244,11 @@ class Device:
|
|
|
169
244
|
image = np.array([])
|
|
170
245
|
if image is not None and image.size > 0:
|
|
171
246
|
cv2.circle(image, (x, y), 10, (0, 0, 255), -1)
|
|
172
|
-
message = f"
|
|
247
|
+
message = f"Point: ({x}, {y})"
|
|
248
|
+
if self.target_resolution is not None:
|
|
249
|
+
message += f" physical: ({real_x}, {real_y})"
|
|
173
250
|
result("device.click", image, message)
|
|
174
|
-
self._touch.click(
|
|
251
|
+
self._touch.click(real_x, real_y)
|
|
175
252
|
|
|
176
253
|
def __click_point_tuple(self, point: Point) -> None:
|
|
177
254
|
self.click(point[0], point[1])
|
|
@@ -232,6 +309,10 @@ class Device:
|
|
|
232
309
|
"""
|
|
233
310
|
滑动屏幕
|
|
234
311
|
"""
|
|
312
|
+
if self.target_resolution is not None:
|
|
313
|
+
# 输入坐标为逻辑坐标,需要转换为真实坐标
|
|
314
|
+
x1, y1 = self._scale_pos_target_to_real(x1, y1)
|
|
315
|
+
x2, y2 = self._scale_pos_target_to_real(x2, y2)
|
|
235
316
|
self._touch.swipe(x1, y1, x2, y2, duration)
|
|
236
317
|
|
|
237
318
|
def swipe_scaled(self, x1: float, y1: float, x2: float, y2: float, duration: float|None = None) -> None:
|
|
@@ -258,6 +339,7 @@ class Device:
|
|
|
258
339
|
logger.debug("screenshot hook before returned image")
|
|
259
340
|
return img
|
|
260
341
|
img = self.screenshot_raw()
|
|
342
|
+
img = self.__scale_image(img)
|
|
261
343
|
if self.screenshot_hook_after is not None:
|
|
262
344
|
img = self.screenshot_hook_after(img)
|
|
263
345
|
return img
|
|
@@ -296,8 +378,15 @@ class Device:
|
|
|
296
378
|
`self.orientation` 属性默认为竖屏。如果需要自动检测,
|
|
297
379
|
调用 `self.detect_orientation()` 方法。
|
|
298
380
|
如果已知方向,也可以直接设置 `self.orientation` 属性。
|
|
381
|
+
|
|
382
|
+
即使设置了 `self.target_resolution`,返回的分辨率仍然是真实分辨率。
|
|
299
383
|
"""
|
|
300
|
-
|
|
384
|
+
size = self._screenshot.screen_size
|
|
385
|
+
if self.orientation == 'landscape':
|
|
386
|
+
size = sorted(size, reverse=True)
|
|
387
|
+
else:
|
|
388
|
+
size = sorted(size, reverse=False)
|
|
389
|
+
return size[0], size[1]
|
|
301
390
|
|
|
302
391
|
def detect_orientation(self) -> Literal['portrait', 'landscape'] | None:
|
|
303
392
|
"""
|
|
@@ -307,6 +396,68 @@ class Device:
|
|
|
307
396
|
"""
|
|
308
397
|
return self._screenshot.detect_orientation()
|
|
309
398
|
|
|
399
|
+
def __aspect_ratio_compatible(self, src_size: tuple[int, int], tgt_size: tuple[int, int]) -> bool:
|
|
400
|
+
"""
|
|
401
|
+
判断两个尺寸在宽高比意义上是否兼容
|
|
402
|
+
|
|
403
|
+
若 ``self.match_rotation`` 为 True,忽略方向(长边/短边)进行比较。
|
|
404
|
+
判断标准由 ``self.aspect_ratio_tolerance`` 决定(默认 0.1)。
|
|
405
|
+
"""
|
|
406
|
+
src_w, src_h = src_size
|
|
407
|
+
tgt_w, tgt_h = tgt_size
|
|
408
|
+
|
|
409
|
+
# 尺寸必须为正
|
|
410
|
+
if src_w <= 0 or src_h <= 0:
|
|
411
|
+
raise ValueError(f"Source size dimensions must be positive for scaling: {src_size}")
|
|
412
|
+
if tgt_w <= 0 or tgt_h <= 0:
|
|
413
|
+
raise ValueError(f"Target size dimensions must be positive for scaling: {tgt_size}")
|
|
414
|
+
|
|
415
|
+
tolerant = self.aspect_ratio_tolerance
|
|
416
|
+
|
|
417
|
+
# 直接比较宽高比
|
|
418
|
+
if abs((tgt_w / src_w) - (tgt_h / src_h)) <= tolerant:
|
|
419
|
+
return True
|
|
420
|
+
|
|
421
|
+
# 尝试忽略方向差异
|
|
422
|
+
if self.match_rotation:
|
|
423
|
+
ratio_src = max(src_w, src_h) / min(src_w, src_h)
|
|
424
|
+
ratio_tgt = max(tgt_w, tgt_h) / min(tgt_w, tgt_h)
|
|
425
|
+
return abs(ratio_src - ratio_tgt) <= tolerant
|
|
426
|
+
|
|
427
|
+
return False
|
|
428
|
+
|
|
429
|
+
def __assert_scalable(self, source: tuple[int, int], target: tuple[int, int]) -> tuple[int, int]:
|
|
430
|
+
"""
|
|
431
|
+
校验分辨率是否可缩放,并返回调整后的目标分辨率。
|
|
432
|
+
|
|
433
|
+
当 match_rotation 为 True 且源分辨率与目标分辨率的旋转方向不一致时,
|
|
434
|
+
自动交换目标分辨率的宽高,使其与源分辨率的方向保持一致。
|
|
435
|
+
|
|
436
|
+
:param src_size: 源分辨率 (width, height)
|
|
437
|
+
:param tgt_size: 目标分辨率 (width, height)
|
|
438
|
+
:return: 调整后的目标分辨率 (width, height)
|
|
439
|
+
:raises UnscalableResolutionError: 若宽高比不兼容
|
|
440
|
+
"""
|
|
441
|
+
# 智能调整目标分辨率方向
|
|
442
|
+
adjusted_tgt_size = target
|
|
443
|
+
if self.match_rotation:
|
|
444
|
+
src_w, src_h = source
|
|
445
|
+
tgt_w, tgt_h = target
|
|
446
|
+
|
|
447
|
+
# 判断源分辨率和目标分辨率的方向
|
|
448
|
+
src_is_landscape = src_w > src_h
|
|
449
|
+
tgt_is_landscape = tgt_w > tgt_h
|
|
450
|
+
|
|
451
|
+
# 如果方向不一致,交换目标分辨率的宽高
|
|
452
|
+
if src_is_landscape != tgt_is_landscape:
|
|
453
|
+
adjusted_tgt_size = (tgt_h, tgt_w)
|
|
454
|
+
|
|
455
|
+
# 校验调整后的分辨率是否兼容
|
|
456
|
+
if not self.__aspect_ratio_compatible(source, adjusted_tgt_size):
|
|
457
|
+
raise UnscalableResolutionError(target, source)
|
|
458
|
+
|
|
459
|
+
return adjusted_tgt_size
|
|
460
|
+
|
|
310
461
|
|
|
311
462
|
class AndroidDevice(Device):
|
|
312
463
|
def __init__(self, adb_connection: AdbUtilsDevice | None = None) -> None:
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
from abc import ABC
|
|
2
|
+
from typing import Any, Literal, TypeGuard, TypeVar, get_args
|
|
3
|
+
from typing_extensions import assert_never
|
|
4
|
+
|
|
5
|
+
from adbutils import adb
|
|
6
|
+
from adbutils._device import AdbDevice
|
|
7
|
+
from kotonebot import logging
|
|
8
|
+
from kotonebot.client.device import AndroidDevice
|
|
9
|
+
from .protocol import Instance, AdbHostConfig, Device
|
|
10
|
+
|
|
11
|
+
logger = logging.getLogger(__name__)
|
|
12
|
+
AdbRecipes = Literal['adb', 'adb_raw', 'uiautomator2']
|
|
13
|
+
|
|
14
|
+
def is_adb_recipe(recipe: Any) -> TypeGuard[AdbRecipes]:
|
|
15
|
+
return recipe in get_args(AdbRecipes)
|
|
16
|
+
|
|
17
|
+
def connect_adb(
|
|
18
|
+
ip: str,
|
|
19
|
+
port: int,
|
|
20
|
+
connect: bool = True,
|
|
21
|
+
disconnect: bool = True,
|
|
22
|
+
timeout: float = 180,
|
|
23
|
+
device_serial: str | None = None
|
|
24
|
+
) -> AdbDevice:
|
|
25
|
+
"""
|
|
26
|
+
创建 ADB 连接。
|
|
27
|
+
"""
|
|
28
|
+
if disconnect:
|
|
29
|
+
logger.debug('adb disconnect %s:%d', ip, port)
|
|
30
|
+
adb.disconnect(f'{ip}:{port}')
|
|
31
|
+
if connect:
|
|
32
|
+
logger.debug('adb connect %s:%d', ip, port)
|
|
33
|
+
result = adb.connect(f'{ip}:{port}')
|
|
34
|
+
if 'cannot connect to' in result:
|
|
35
|
+
raise ValueError(result)
|
|
36
|
+
serial = device_serial or f'{ip}:{port}'
|
|
37
|
+
logger.debug('adb wait for %s', serial)
|
|
38
|
+
adb.wait_for(serial, timeout=timeout)
|
|
39
|
+
devices = adb.device_list()
|
|
40
|
+
logger.debug('adb device_list: %s', devices)
|
|
41
|
+
d = [d for d in devices if d.serial == serial]
|
|
42
|
+
if len(d) == 0:
|
|
43
|
+
raise ValueError(f"Device {serial} not found")
|
|
44
|
+
d = d[0]
|
|
45
|
+
return d
|
|
46
|
+
|
|
47
|
+
class CommonAdbCreateDeviceMixin(ABC):
|
|
48
|
+
"""
|
|
49
|
+
通用 ADB 创建设备的 Mixin。
|
|
50
|
+
该 Mixin 定义了创建 ADB 设备的通用接口。
|
|
51
|
+
"""
|
|
52
|
+
def __init__(self, *args, **kwargs) -> None:
|
|
53
|
+
super().__init__(*args, **kwargs)
|
|
54
|
+
# 下面的属性只是为了让类型检查通过,无实际实现
|
|
55
|
+
self.adb_ip: str
|
|
56
|
+
self.adb_port: int
|
|
57
|
+
self.adb_name: str
|
|
58
|
+
|
|
59
|
+
def create_device(self, recipe: AdbRecipes, config: AdbHostConfig) -> Device:
|
|
60
|
+
"""
|
|
61
|
+
创建 ADB 设备。
|
|
62
|
+
"""
|
|
63
|
+
connection = connect_adb(
|
|
64
|
+
self.adb_ip,
|
|
65
|
+
self.adb_port,
|
|
66
|
+
connect=True,
|
|
67
|
+
disconnect=True,
|
|
68
|
+
timeout=config.timeout,
|
|
69
|
+
device_serial=self.adb_name
|
|
70
|
+
)
|
|
71
|
+
d = AndroidDevice(connection)
|
|
72
|
+
match recipe:
|
|
73
|
+
case 'adb':
|
|
74
|
+
from kotonebot.client.implements.adb import AdbImpl
|
|
75
|
+
impl = AdbImpl(connection)
|
|
76
|
+
d._screenshot = impl
|
|
77
|
+
d._touch = impl
|
|
78
|
+
d.commands = impl
|
|
79
|
+
case 'adb_raw':
|
|
80
|
+
from kotonebot.client.implements.adb_raw import AdbRawImpl
|
|
81
|
+
impl = AdbRawImpl(connection)
|
|
82
|
+
d._screenshot = impl
|
|
83
|
+
d._touch = impl
|
|
84
|
+
d.commands = impl
|
|
85
|
+
case 'uiautomator2':
|
|
86
|
+
from kotonebot.client.implements.uiautomator2 import UiAutomator2Impl
|
|
87
|
+
from kotonebot.client.implements.adb import AdbImpl
|
|
88
|
+
impl = UiAutomator2Impl(connection)
|
|
89
|
+
d._screenshot = impl
|
|
90
|
+
d._touch = impl
|
|
91
|
+
d.commands = AdbImpl(connection)
|
|
92
|
+
case _:
|
|
93
|
+
assert_never(f'Unsupported ADB recipe: {recipe}')
|
|
94
|
+
return d
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import subprocess
|
|
3
3
|
from psutil import process_iter
|
|
4
|
-
from .protocol import Instance, AdbHostConfig
|
|
5
|
-
from typing import ParamSpec, TypeVar
|
|
4
|
+
from .protocol import Instance, AdbHostConfig, HostProtocol
|
|
5
|
+
from typing import ParamSpec, TypeVar
|
|
6
6
|
from typing_extensions import override
|
|
7
7
|
|
|
8
8
|
from kotonebot import logging
|
|
9
|
-
from kotonebot.client import
|
|
10
|
-
from
|
|
11
|
-
from kotonebot.client.registration import AdbBasedImpl, create_device
|
|
12
|
-
from kotonebot.client.implements.adb import AdbImplConfig
|
|
9
|
+
from kotonebot.client import Device
|
|
10
|
+
from .adb_common import AdbRecipes, CommonAdbCreateDeviceMixin
|
|
13
11
|
|
|
14
12
|
logger = logging.getLogger(__name__)
|
|
13
|
+
CustomRecipes = AdbRecipes
|
|
15
14
|
|
|
16
15
|
P = ParamSpec('P')
|
|
17
16
|
T = TypeVar('T')
|
|
18
17
|
|
|
19
|
-
class CustomInstance(Instance[AdbHostConfig]):
|
|
18
|
+
class CustomInstance(CommonAdbCreateDeviceMixin, Instance[AdbHostConfig]):
|
|
20
19
|
def __init__(self, exe_path: str | None, emulator_args: str = "", *args, **kwargs):
|
|
21
20
|
super().__init__(*args, **kwargs)
|
|
22
21
|
self.exe_path: str | None = exe_path
|
|
@@ -69,24 +68,12 @@ class CustomInstance(Instance[AdbHostConfig]):
|
|
|
69
68
|
pass
|
|
70
69
|
|
|
71
70
|
@override
|
|
72
|
-
def create_device(self, impl:
|
|
71
|
+
def create_device(self, impl: CustomRecipes, host_config: AdbHostConfig) -> Device:
|
|
73
72
|
"""为自定义实例创建 Device。"""
|
|
74
73
|
if self.adb_port is None:
|
|
75
74
|
raise ValueError("ADB port is not set and is required.")
|
|
76
75
|
|
|
77
|
-
|
|
78
|
-
if impl in ['adb', 'adb_raw', 'uiautomator2']:
|
|
79
|
-
config = AdbImplConfig(
|
|
80
|
-
addr=f'{self.adb_ip}:{self.adb_port}',
|
|
81
|
-
connect=True,
|
|
82
|
-
disconnect=True,
|
|
83
|
-
device_serial=self.adb_name,
|
|
84
|
-
timeout=host_config.timeout
|
|
85
|
-
)
|
|
86
|
-
impl = cast(AdbBasedImpl, impl) # make pylance happy
|
|
87
|
-
return create_device(impl, config)
|
|
88
|
-
else:
|
|
89
|
-
raise ValueError(f'Unsupported device implementation for Custom: {impl}')
|
|
76
|
+
return super().create_device(impl, host_config)
|
|
90
77
|
|
|
91
78
|
def __repr__(self) -> str:
|
|
92
79
|
return f'CustomInstance(#{self.id}# at "{self.exe_path}" with {self.adb_ip}:{self.adb_port})'
|
|
@@ -99,6 +86,25 @@ def _type_check(ins: Instance) -> CustomInstance:
|
|
|
99
86
|
def create(exe_path: str | None, adb_ip: str, adb_port: int, adb_name: str | None, emulator_args: str = "") -> CustomInstance:
|
|
100
87
|
return CustomInstance(exe_path, emulator_args=emulator_args, id='custom', name='Custom', adb_ip=adb_ip, adb_port=adb_port, adb_name=adb_name)
|
|
101
88
|
|
|
89
|
+
class CustomHost(HostProtocol[CustomRecipes]):
|
|
90
|
+
@staticmethod
|
|
91
|
+
def installed() -> bool:
|
|
92
|
+
# Custom instances don't have a specific installation requirement
|
|
93
|
+
return True
|
|
94
|
+
|
|
95
|
+
@staticmethod
|
|
96
|
+
def list() -> list[Instance]:
|
|
97
|
+
# Custom instances are created manually, not discovered
|
|
98
|
+
return []
|
|
99
|
+
|
|
100
|
+
@staticmethod
|
|
101
|
+
def query(*, id: str) -> Instance | None:
|
|
102
|
+
# Custom instances are created manually, not discovered
|
|
103
|
+
return None
|
|
104
|
+
|
|
105
|
+
@staticmethod
|
|
106
|
+
def recipes() -> 'list[CustomRecipes]':
|
|
107
|
+
return ['adb', 'adb_raw', 'uiautomator2']
|
|
102
108
|
|
|
103
109
|
if __name__ == '__main__':
|
|
104
110
|
ins = create(r'C:\Program Files\BlueStacks_nxt\HD-Player.exe', '127.0.0.1', 5555, '**emulator-name**')
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import subprocess
|
|
3
|
-
from typing import
|
|
3
|
+
from typing import Literal
|
|
4
4
|
from functools import lru_cache
|
|
5
5
|
from typing_extensions import override
|
|
6
6
|
|
|
7
7
|
from kotonebot import logging
|
|
8
|
-
from kotonebot.client import
|
|
9
|
-
from kotonebot.client.device import Device
|
|
10
|
-
from kotonebot.client.registration import AdbBasedImpl, create_device
|
|
11
|
-
from kotonebot.client.implements.adb import AdbImplConfig
|
|
8
|
+
from kotonebot.client import Device
|
|
12
9
|
from kotonebot.util import Countdown, Interval
|
|
13
10
|
from .protocol import HostProtocol, Instance, copy_type, AdbHostConfig
|
|
11
|
+
from .adb_common import AdbRecipes, CommonAdbCreateDeviceMixin
|
|
14
12
|
|
|
15
13
|
logger = logging.getLogger(__name__)
|
|
14
|
+
LeidianRecipes = AdbRecipes
|
|
16
15
|
|
|
17
16
|
if os.name == 'nt':
|
|
18
17
|
from ...interop.win.reg import read_reg
|
|
@@ -21,7 +20,7 @@ else:
|
|
|
21
20
|
"""Stub for read_reg on non-Windows platforms."""
|
|
22
21
|
return default
|
|
23
22
|
|
|
24
|
-
class LeidianInstance(Instance[AdbHostConfig]):
|
|
23
|
+
class LeidianInstance(CommonAdbCreateDeviceMixin, Instance[AdbHostConfig]):
|
|
25
24
|
@copy_type(Instance.__init__)
|
|
26
25
|
def __init__(self, *args, **kwargs):
|
|
27
26
|
super().__init__(*args, **kwargs)
|
|
@@ -64,35 +63,23 @@ class LeidianInstance(Instance[AdbHostConfig]):
|
|
|
64
63
|
it = Interval(5)
|
|
65
64
|
while not cd.expired() and not self.running():
|
|
66
65
|
it.wait()
|
|
66
|
+
self.refresh()
|
|
67
67
|
if not self.running():
|
|
68
68
|
raise TimeoutError(f'Leidian instance "{self.name}" is not available.')
|
|
69
69
|
|
|
70
70
|
@override
|
|
71
71
|
def running(self) -> bool:
|
|
72
|
-
|
|
73
|
-
return result.strip() == 'running'
|
|
72
|
+
return self.is_running
|
|
74
73
|
|
|
75
74
|
@override
|
|
76
|
-
def create_device(self, impl:
|
|
75
|
+
def create_device(self, impl: LeidianRecipes, host_config: AdbHostConfig) -> Device:
|
|
77
76
|
"""为雷电模拟器实例创建 Device。"""
|
|
78
77
|
if self.adb_port is None:
|
|
79
78
|
raise ValueError("ADB port is not set and is required.")
|
|
80
79
|
|
|
81
|
-
|
|
82
|
-
if impl in ['adb', 'adb_raw', 'uiautomator2']:
|
|
83
|
-
config = AdbImplConfig(
|
|
84
|
-
addr=f'{self.adb_ip}:{self.adb_port}',
|
|
85
|
-
connect=False, # 雷电模拟器不需要 adb connect
|
|
86
|
-
disconnect=False,
|
|
87
|
-
device_serial=self.adb_name,
|
|
88
|
-
timeout=host_config.timeout
|
|
89
|
-
)
|
|
90
|
-
impl = cast(AdbBasedImpl, impl) # make pylance happy
|
|
91
|
-
return create_device(impl, config)
|
|
92
|
-
else:
|
|
93
|
-
raise ValueError(f'Unsupported device implementation for Leidian: {impl}')
|
|
80
|
+
return super().create_device(impl, host_config)
|
|
94
81
|
|
|
95
|
-
class LeidianHost(HostProtocol):
|
|
82
|
+
class LeidianHost(HostProtocol[LeidianRecipes]):
|
|
96
83
|
@staticmethod
|
|
97
84
|
@lru_cache(maxsize=1)
|
|
98
85
|
def _read_install_path() -> str | None:
|
|
@@ -197,6 +184,10 @@ class LeidianHost(HostProtocol):
|
|
|
197
184
|
return instance
|
|
198
185
|
return None
|
|
199
186
|
|
|
187
|
+
@staticmethod
|
|
188
|
+
def recipes() -> 'list[LeidianRecipes]':
|
|
189
|
+
return ['adb', 'adb_raw', 'uiautomator2']
|
|
190
|
+
|
|
200
191
|
if __name__ == '__main__':
|
|
201
192
|
logging.basicConfig(level=logging.DEBUG, format='[%(asctime)s] [%(levelname)s] [%(name)s] [%(funcName)s] [%(lineno)d] %(message)s')
|
|
202
193
|
print(LeidianHost._read_install_path())
|