ksaa 2025.7.20.0__tar.gz → 2025.7.27.1__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.
Files changed (726) hide show
  1. {ksaa-2025.7.20.0/ksaa.egg-info → ksaa-2025.7.27.1}/PKG-INFO +2 -1
  2. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/WHATS_NEW.md +18 -0
  3. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/bot.py +60 -12
  4. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/context/task_action.py +9 -46
  5. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/dispatch.py +1 -104
  6. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/flow_controller.py +3 -1
  7. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/errors.py +37 -2
  8. ksaa-2025.7.27.1/kotonebot/interop/win/message_box.py +314 -0
  9. ksaa-2025.7.27.1/kotonebot/interop/win/task_dialog.py +469 -0
  10. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/produce.py +8 -6
  11. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/schema.py +2 -0
  12. ksaa-2025.7.27.1/kotonebot/kaa/errors.py +38 -0
  13. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/main/gr.py +22 -5
  14. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/metadata.py +18 -0
  15. ksaa-2025.7.27.1/kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
  16. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/game.db +0 -0
  17. ksaa-2025.7.27.1/kotonebot/kaa/resources/game_ver.txt +0 -0
  18. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/R.py +126 -126
  19. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/daily/contest.py +39 -8
  20. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/daily/purchase.py +0 -1
  21. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/end_game.py +4 -3
  22. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/produce/in_purodyuusu.py +30 -29
  23. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/produce/produce.py +2 -1
  24. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/start_game.py +2 -0
  25. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/ui/user.py +43 -13
  26. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1/ksaa.egg-info}/PKG-INFO +2 -1
  27. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/ksaa.egg-info/SOURCES.txt +129 -126
  28. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/ksaa.egg-info/requires.txt +1 -0
  29. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/pyproject.toml +1 -0
  30. ksaa-2025.7.27.1/version +1 -0
  31. ksaa-2025.7.20.0/kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
  32. ksaa-2025.7.20.0/kotonebot/kaa/resources/game_ver.txt +0 -0
  33. ksaa-2025.7.20.0/version +0 -1
  34. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/LICENSE +0 -0
  35. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/MANIFEST.in +0 -0
  36. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/README.md +0 -0
  37. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/__init__.py +0 -0
  38. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/__init__.py +0 -0
  39. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/color.py +0 -0
  40. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/context/__init__.py +0 -0
  41. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/context/context.py +0 -0
  42. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/core.py +0 -0
  43. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/debug/__init__.py +0 -0
  44. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/debug/entry.py +0 -0
  45. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/debug/mock.py +0 -0
  46. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/debug/server.py +0 -0
  47. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/debug/vars.py +0 -0
  48. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/image.py +0 -0
  49. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/loop.py +0 -0
  50. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/ocr.py +0 -0
  51. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/backend/preprocessor.py +0 -0
  52. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/__init__.py +0 -0
  53. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/device.py +0 -0
  54. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/fast_screenshot.py +0 -0
  55. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/host/__init__.py +0 -0
  56. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/host/adb_common.py +0 -0
  57. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/host/custom.py +0 -0
  58. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/host/leidian_host.py +0 -0
  59. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/host/mumu12_host.py +0 -0
  60. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/host/protocol.py +0 -0
  61. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/host/windows_common.py +0 -0
  62. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/implements/__init__.py +0 -0
  63. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/implements/adb.py +0 -0
  64. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/implements/adb_raw.py +0 -0
  65. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/implements/nemu_ipc/__init__.py +0 -0
  66. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/implements/nemu_ipc/external_renderer_ipc.py +0 -0
  67. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/implements/nemu_ipc/nemu_ipc.py +0 -0
  68. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/implements/remote_windows.py +0 -0
  69. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/implements/uiautomator2.py +0 -0
  70. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/implements/windows.py +0 -0
  71. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/protocol.py +0 -0
  72. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/client/registration.py +0 -0
  73. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/config/__init__.py +0 -0
  74. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/config/base_config.py +0 -0
  75. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/config/manager.py +0 -0
  76. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/debug_entry.py +0 -0
  77. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/interop/win/__init__.py +0 -0
  78. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/interop/win/reg.py +0 -0
  79. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/__init__.py +0 -0
  80. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/common.py +0 -0
  81. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/__init__.py +0 -0
  82. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/const.py +0 -0
  83. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/migrations/__init__.py +0 -0
  84. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/migrations/_idol.py +0 -0
  85. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/migrations/_v1_to_v2.py +0 -0
  86. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/migrations/_v2_to_v3.py +0 -0
  87. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/migrations/_v3_to_v4.py +0 -0
  88. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/migrations/_v4_to_v5.py +0 -0
  89. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/migrations/_v5_to_v6.py +0 -0
  90. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/config/upgrade.py +0 -0
  91. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/db/__init__.py +0 -0
  92. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/db/constants.py +0 -0
  93. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/db/idol_card.py +0 -0
  94. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/db/sqlite.py +0 -0
  95. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/game_ui/__init__.py +0 -0
  96. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/game_ui/badge.py +0 -0
  97. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/game_ui/common.py +0 -0
  98. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/game_ui/commu_event_buttons.py +0 -0
  99. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/game_ui/dialog.py +0 -0
  100. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/game_ui/idols_overview.py +0 -0
  101. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/game_ui/primary_button.py +0 -0
  102. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/game_ui/schedule.py +0 -0
  103. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/game_ui/scrollable.py +0 -0
  104. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/game_ui/toolbar.py +0 -0
  105. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/image_db/__init__.py +0 -0
  106. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/image_db/db.py +0 -0
  107. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/image_db/descriptors/__init__.py +0 -0
  108. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/image_db/descriptors/hist.py +0 -0
  109. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/kaa_context.py +0 -0
  110. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/main/__init__.py +0 -0
  111. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/main/cli.py +0 -0
  112. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/main/dmm_host.py +0 -0
  113. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/main/kaa.py +0 -0
  114. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/__init__.py +0 -0
  115. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-000_0.png +0 -0
  116. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-000_1.png +0 -0
  117. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-001_0.png +0 -0
  118. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-001_1.png +0 -0
  119. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-2-000_0.png +0 -0
  120. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-2-000_1.png +0 -0
  121. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-000_0.png +0 -0
  122. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-000_1.png +0 -0
  123. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-001_0.png +0 -0
  124. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-001_1.png +0 -0
  125. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-002_0.png +0 -0
  126. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-002_1.png +0 -0
  127. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-003_0.png +0 -0
  128. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-003_1.png +0 -0
  129. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-005_0.png +0 -0
  130. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-005_1.png +0 -0
  131. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-006_0.png +0 -0
  132. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-006_1.png +0 -0
  133. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-007_0.png +0 -0
  134. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-007_1.png +0 -0
  135. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-008_0.png +0 -0
  136. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-008_1.png +0 -0
  137. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-009_0.png +0 -0
  138. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-009_1.png +0 -0
  139. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-010_0.png +0 -0
  140. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-010_1.png +0 -0
  141. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-011_0.png +0 -0
  142. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-011_1.png +0 -0
  143. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-012_0.png +0 -0
  144. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-012_1.png +0 -0
  145. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-000_0.png +0 -0
  146. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-000_1.png +0 -0
  147. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-001_0.png +0 -0
  148. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-001_1.png +0 -0
  149. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-2-000_0.png +0 -0
  150. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-2-000_1.png +0 -0
  151. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-000_0.png +0 -0
  152. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-000_1.png +0 -0
  153. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-001_0.png +0 -0
  154. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-001_1.png +0 -0
  155. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-002_0.png +0 -0
  156. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-002_1.png +0 -0
  157. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-003_0.png +0 -0
  158. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-003_1.png +0 -0
  159. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-005_0.png +0 -0
  160. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-005_1.png +0 -0
  161. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-006_0.png +0 -0
  162. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-006_1.png +0 -0
  163. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-007_0.png +0 -0
  164. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-007_1.png +0 -0
  165. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-008_0.png +0 -0
  166. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-008_1.png +0 -0
  167. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-009_0.png +0 -0
  168. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-009_1.png +0 -0
  169. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-010_0.png +0 -0
  170. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-010_1.png +0 -0
  171. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-011_0.png +0 -0
  172. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-011_1.png +0 -0
  173. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-012_0.png +0 -0
  174. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-012_1.png +0 -0
  175. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-014_0.png +0 -0
  176. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-014_1.png +0 -0
  177. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-000_0.png +0 -0
  178. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-000_1.png +0 -0
  179. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-001_0.png +0 -0
  180. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-001_1.png +0 -0
  181. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-2-000_0.png +0 -0
  182. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-2-000_1.png +0 -0
  183. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-000_0.png +0 -0
  184. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-000_1.png +0 -0
  185. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-001_0.png +0 -0
  186. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-001_1.png +0 -0
  187. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-005_0.png +0 -0
  188. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-005_1.png +0 -0
  189. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-000_0.png +0 -0
  190. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-000_1.png +0 -0
  191. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-001_0.png +0 -0
  192. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-001_1.png +0 -0
  193. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-2-000_0.png +0 -0
  194. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-2-000_1.png +0 -0
  195. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-000_0.png +0 -0
  196. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-000_1.png +0 -0
  197. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-001_0.png +0 -0
  198. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-001_1.png +0 -0
  199. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-002_0.png +0 -0
  200. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-002_1.png +0 -0
  201. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-003_0.png +0 -0
  202. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-003_1.png +0 -0
  203. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-004_0.png +0 -0
  204. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-004_1.png +0 -0
  205. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-005_0.png +0 -0
  206. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-005_1.png +0 -0
  207. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-006_0.png +0 -0
  208. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-006_1.png +0 -0
  209. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-007_0.png +0 -0
  210. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-007_1.png +0 -0
  211. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-008_0.png +0 -0
  212. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-008_1.png +0 -0
  213. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-009_0.png +0 -0
  214. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-009_1.png +0 -0
  215. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-010_0.png +0 -0
  216. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-010_1.png +0 -0
  217. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-011_0.png +0 -0
  218. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-011_1.png +0 -0
  219. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-012_0.png +0 -0
  220. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-012_1.png +0 -0
  221. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-000_0.png +0 -0
  222. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-000_1.png +0 -0
  223. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-001_0.png +0 -0
  224. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-001_1.png +0 -0
  225. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-2-000_0.png +0 -0
  226. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-2-000_1.png +0 -0
  227. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-000_0.png +0 -0
  228. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-000_1.png +0 -0
  229. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-001_0.png +0 -0
  230. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-001_1.png +0 -0
  231. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-002_0.png +0 -0
  232. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-002_1.png +0 -0
  233. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-003_0.png +0 -0
  234. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-003_1.png +0 -0
  235. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-005_0.png +0 -0
  236. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-005_1.png +0 -0
  237. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-006_0.png +0 -0
  238. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-006_1.png +0 -0
  239. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-007_0.png +0 -0
  240. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-007_1.png +0 -0
  241. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-008_0.png +0 -0
  242. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-008_1.png +0 -0
  243. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-009_0.png +0 -0
  244. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-009_1.png +0 -0
  245. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-010_0.png +0 -0
  246. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-010_1.png +0 -0
  247. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-011_0.png +0 -0
  248. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-011_1.png +0 -0
  249. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-012_0.png +0 -0
  250. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-012_1.png +0 -0
  251. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-013_0.png +0 -0
  252. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-013_1.png +0 -0
  253. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-000_0.png +0 -0
  254. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-000_1.png +0 -0
  255. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-001_0.png +0 -0
  256. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-001_1.png +0 -0
  257. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-2-000_0.png +0 -0
  258. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-2-000_1.png +0 -0
  259. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-000_0.png +0 -0
  260. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-000_1.png +0 -0
  261. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-001_0.png +0 -0
  262. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-001_1.png +0 -0
  263. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-002_0.png +0 -0
  264. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-002_1.png +0 -0
  265. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-004_0.png +0 -0
  266. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-004_1.png +0 -0
  267. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-005_0.png +0 -0
  268. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-005_1.png +0 -0
  269. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-006_0.png +0 -0
  270. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-006_1.png +0 -0
  271. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-011_0.png +0 -0
  272. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-011_1.png +0 -0
  273. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-013_0.png +0 -0
  274. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-013_1.png +0 -0
  275. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-000_0.png +0 -0
  276. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-000_1.png +0 -0
  277. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-001_0.png +0 -0
  278. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-001_1.png +0 -0
  279. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-2-000_0.png +0 -0
  280. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-2-000_1.png +0 -0
  281. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-000_0.png +0 -0
  282. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-000_1.png +0 -0
  283. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-002_0.png +0 -0
  284. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-002_1.png +0 -0
  285. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-003_0.png +0 -0
  286. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-003_1.png +0 -0
  287. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-004_0.png +0 -0
  288. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-004_1.png +0 -0
  289. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-005_0.png +0 -0
  290. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-005_1.png +0 -0
  291. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-006_0.png +0 -0
  292. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-006_1.png +0 -0
  293. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-007_0.png +0 -0
  294. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-007_1.png +0 -0
  295. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-010_0.png +0 -0
  296. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-010_1.png +0 -0
  297. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-012_0.png +0 -0
  298. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-012_1.png +0 -0
  299. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-000_0.png +0 -0
  300. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-000_1.png +0 -0
  301. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-001_0.png +0 -0
  302. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-001_1.png +0 -0
  303. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-2-000_0.png +0 -0
  304. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-2-000_1.png +0 -0
  305. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-000_0.png +0 -0
  306. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-000_1.png +0 -0
  307. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-001_0.png +0 -0
  308. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-001_1.png +0 -0
  309. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-002_0.png +0 -0
  310. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-002_1.png +0 -0
  311. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-003_0.png +0 -0
  312. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-003_1.png +0 -0
  313. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-004_0.png +0 -0
  314. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-004_1.png +0 -0
  315. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-005_0.png +0 -0
  316. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-005_1.png +0 -0
  317. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-006_0.png +0 -0
  318. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-006_1.png +0 -0
  319. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-007_0.png +0 -0
  320. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-007_1.png +0 -0
  321. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-008_0.png +0 -0
  322. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-008_1.png +0 -0
  323. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-009_0.png +0 -0
  324. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-009_1.png +0 -0
  325. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-010_0.png +0 -0
  326. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-010_1.png +0 -0
  327. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-011_0.png +0 -0
  328. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-011_1.png +0 -0
  329. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-012_0.png +0 -0
  330. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-012_1.png +0 -0
  331. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-000_0.png +0 -0
  332. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-000_1.png +0 -0
  333. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-001_0.png +0 -0
  334. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-001_1.png +0 -0
  335. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-2-000_0.png +0 -0
  336. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-2-000_1.png +0 -0
  337. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-000_0.png +0 -0
  338. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-000_1.png +0 -0
  339. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-001_0.png +0 -0
  340. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-001_1.png +0 -0
  341. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-002_0.png +0 -0
  342. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-002_1.png +0 -0
  343. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-004_0.png +0 -0
  344. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-004_1.png +0 -0
  345. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-005_0.png +0 -0
  346. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-005_1.png +0 -0
  347. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-006_0.png +0 -0
  348. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-006_1.png +0 -0
  349. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-007_0.png +0 -0
  350. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-007_1.png +0 -0
  351. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-008_0.png +0 -0
  352. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-008_1.png +0 -0
  353. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-009_0.png +0 -0
  354. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-009_1.png +0 -0
  355. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-010_0.png +0 -0
  356. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-010_1.png +0 -0
  357. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-011_0.png +0 -0
  358. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-011_1.png +0 -0
  359. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-012_0.png +0 -0
  360. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-012_1.png +0 -0
  361. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-000_0.png +0 -0
  362. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-000_1.png +0 -0
  363. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-001_0.png +0 -0
  364. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-001_1.png +0 -0
  365. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-2-000_0.png +0 -0
  366. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-2-000_1.png +0 -0
  367. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-000_0.png +0 -0
  368. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-000_1.png +0 -0
  369. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-001_0.png +0 -0
  370. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-001_1.png +0 -0
  371. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-002_0.png +0 -0
  372. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-002_1.png +0 -0
  373. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-003_0.png +0 -0
  374. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-003_1.png +0 -0
  375. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-004_0.png +0 -0
  376. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-004_1.png +0 -0
  377. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-006_0.png +0 -0
  378. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-006_1.png +0 -0
  379. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-007_0.png +0 -0
  380. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-007_1.png +0 -0
  381. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-008_0.png +0 -0
  382. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-008_1.png +0 -0
  383. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-009_0.png +0 -0
  384. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-009_1.png +0 -0
  385. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-010_0.png +0 -0
  386. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-010_1.png +0 -0
  387. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-011_0.png +0 -0
  388. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-011_1.png +0 -0
  389. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-012_0.png +0 -0
  390. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-012_1.png +0 -0
  391. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-013_0.png +0 -0
  392. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-013_1.png +0 -0
  393. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-000_0.png +0 -0
  394. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-000_1.png +0 -0
  395. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-001_0.png +0 -0
  396. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-001_1.png +0 -0
  397. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-2-000_0.png +0 -0
  398. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-2-000_1.png +0 -0
  399. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-000_0.png +0 -0
  400. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-000_1.png +0 -0
  401. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-001_0.png +0 -0
  402. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-001_1.png +0 -0
  403. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-002_0.png +0 -0
  404. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-002_1.png +0 -0
  405. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-003_0.png +0 -0
  406. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-003_1.png +0 -0
  407. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-005_0.png +0 -0
  408. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-005_1.png +0 -0
  409. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-006_0.png +0 -0
  410. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-006_1.png +0 -0
  411. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-007_0.png +0 -0
  412. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-007_1.png +0 -0
  413. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-008_0.png +0 -0
  414. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-008_1.png +0 -0
  415. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-009_0.png +0 -0
  416. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-009_1.png +0 -0
  417. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-010_0.png +0 -0
  418. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-010_1.png +0 -0
  419. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-011_0.png +0 -0
  420. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-011_1.png +0 -0
  421. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-012_0.png +0 -0
  422. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-012_1.png +0 -0
  423. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-013_0.png +0 -0
  424. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-013_1.png +0 -0
  425. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-000_0.png +0 -0
  426. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-000_1.png +0 -0
  427. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-001_0.png +0 -0
  428. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-001_1.png +0 -0
  429. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-2-000_0.png +0 -0
  430. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-2-000_1.png +0 -0
  431. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-000_0.png +0 -0
  432. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-000_1.png +0 -0
  433. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-001_0.png +0 -0
  434. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-001_1.png +0 -0
  435. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-002_0.png +0 -0
  436. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-002_1.png +0 -0
  437. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-003_0.png +0 -0
  438. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-003_1.png +0 -0
  439. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-004_0.png +0 -0
  440. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-004_1.png +0 -0
  441. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-006_0.png +0 -0
  442. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-006_1.png +0 -0
  443. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-007_0.png +0 -0
  444. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-007_1.png +0 -0
  445. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-008_0.png +0 -0
  446. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-008_1.png +0 -0
  447. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-009_0.png +0 -0
  448. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-009_1.png +0 -0
  449. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-010_0.png +0 -0
  450. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-010_1.png +0 -0
  451. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-011_0.png +0 -0
  452. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-011_1.png +0 -0
  453. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-012_0.png +0 -0
  454. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-012_1.png +0 -0
  455. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-013_0.png +0 -0
  456. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-013_1.png +0 -0
  457. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/00551158-fee9-483f-b034-549139a96f58.png +0 -0
  458. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/d56feb26-d560-423f-b5f8-dc06f7a3c8a1.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/03821ecf-fdd2-4e89-8249-fc7288ac79be.png +0 -0
  459. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/0554264f-0474-44d0-9209-8135d8840c53.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/04c9d1c8-09b9-402d-b688-796253fdaf0c.png +0 -0
  460. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/05890a1b-8764-4e9f-9d21-65d292c22e13.png +0 -0
  461. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/94021aa4-fb87-41e7-920a-988a360f8321.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/05903cc9-9f7a-43ac-88e4-988a68311e05.png +0 -0
  462. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/5aef61f9-d616-42f2-ae8d-5c5a033231d3.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/093c3fb8-036e-4cf4-917b-d70cabebf571.png +0 -0
  463. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/0949c622-9067-4f0d-bac2-3f938a1d2ed2.png +0 -0
  464. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/0bf5e34e-afc6-4447-bbac-67026ce2ad26.png +0 -0
  465. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/0c0627be-4a09-4450-a078-1858d3ace532.png +0 -0
  466. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/0d9ac648-eefa-4869-ac99-1b0c83649681.png +0 -0
  467. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/0f7d581d-cea3-4039-9205-732e4cd29293.png +0 -0
  468. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/562f176f-af1e-4352-aeed-62e362177f9f.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/0f986eac-1e3c-48ed-9850-cae529b30503.png +0 -0
  469. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/e281792b-000b-4048-afb7-e8bb0dbd88b3.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/116bf963-ad4a-401a-91f7-e3a56a4848b9.png +0 -0
  470. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/9e0492b7-3b66-48a2-b589-91e7fd16106d.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/14283368-d85d-458a-8f2c-b112bd02256e.png +0 -0
  471. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/401966c8-2095-4eef-b92a-764122de02d9.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/15ee94ce-1930-4eff-9ce2-0ebe947aaa05.png +0 -0
  472. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/1652f06a-5417-49ef-8949-4854772d9ab7.png +0 -0
  473. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/16fbc93d-b294-4001-b4e9-ee2af181415f.png +0 -0
  474. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/185f7838-92a7-460b-9340-f60858948ce9.png +0 -0
  475. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/1926f2f9-4bd7-48eb-9eba-28ec4efb0606.png +0 -0
  476. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/d54fc8f5-e50d-45dd-b123-92414f93488c.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/1b2a0de3-34cc-42b2-8af3-bfeb8d0d679c.png +0 -0
  477. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/b25627d6-3352-4fe8-93c2-b653efe104d4.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/1c14e581-b664-488c-9d29-f5228ee6d328.png +0 -0
  478. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/ddae5592-adc3-4c36-bfdd-6c6d91823296.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/1d457687-ff10-41b0-95e1-6c1b3868b2a0.png +0 -0
  479. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/0002785c-3caa-4c8f-8d47-f29aee04a588.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/1f5f5454-eb1c-45c3-8467-80c224d528e6.png +0 -0
  480. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/213016c2-c3a2-43d8-86a3-ab4d27666ced.png +0 -0
  481. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/23d88465-65d9-4718-8725-8dbf0a98a5a4.png +0 -0
  482. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/24dc7158-036c-4a66-9280-e934f470be53.png +0 -0
  483. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/24e99232-9434-457f-a9a0-69dd7ecf675f.png +0 -0
  484. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/dd699396-5500-43ad-8470-cf7a8ba013ec.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/252f1cd3-8e09-4b34-b5ba-47b1137a19c1.png +0 -0
  485. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/fda67b44-d46d-4789-89a3-0786c60987ab.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/2585cb7b-af94-46ac-a31d-f50bd09f40a6.png +0 -0
  486. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/25f00ee3-8dfe-42d1-a67e-191fa5c3df4b.png +0 -0
  487. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/05a23a4a-9b93-4fbd-b4e9-15a7c4a91fdc.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/28e5138d-bcd4-40d2-9e2f-0c845004b8ae.png +0 -0
  488. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/c5774fb4-be11-4b28-8f58-299ae8872cc1.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/29fc852e-4c61-416d-80ff-f28c5a64abc1.png +0 -0
  489. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/9449ff36-7adb-42d5-b89d-bf9147d62811.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/2a539cb4-827f-449b-9780-14a94678948b.png +0 -0
  490. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/2bd6fe88-99fa-443d-8e42-bb3de5881213.png +0 -0
  491. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/bcc433e0-8a4e-455f-b625-4583cea19c1c.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/2c2ff5ed-3b1a-4dcc-89a9-9457908cb184.png +0 -0
  492. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/fd77088d-652a-472e-9f84-dcc83d40a6bf.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/2d902d81-5500-4265-9867-c5c4cac573d7.png +0 -0
  493. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/2ededcf5-1d80-4e2a-9c83-2a31998331ce.png +0 -0
  494. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/303cccc1-c674-4d3a-8c89-19ea729fdbef.png +0 -0
  495. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/30a6f399-6999-4f04-bb77-651e0214112f.png +0 -0
  496. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/9d80c1ef-0f42-4622-ab9a-bfcc077dace6.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/31122061-ea7a-419e-8072-8552013a8255.png +0 -0
  497. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/d14633f5-9682-4b59-a4ef-e92a2d26d86b.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/31745cd7-226e-4e11-b96d-2e202a7097e7.png +0 -0
  498. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/83f9e9a0-54dd-4601-8e54-3091c2892e67.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/34dcd41c-b800-43b4-b24f-c569bae59db2.png +0 -0
  499. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/d627ba81-9c86-4b53-9ab9-86c8748d8daa.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/360bcb7f-c710-49d5-9942-2812ed03a447.png +0 -0
  500. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/0aa4472c-b533-46cc-a072-9d165d955424.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/36e02aa6-f858-4248-b39e-e16686d6baf1.png +0 -0
  501. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/3942ae40-7f22-412c-aebe-4b064f68db9b.png +0 -0
  502. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/d83f2631-b9d8-4fd6-ab1c-50b0a013f3f0.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/39882ba6-c9d9-4742-b92d-206781c5f60e.png +0 -0
  503. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/0e29489c-6728-46cd-bd13-2b9d9e74b2da.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/3ace2c73-cf00-4706-9aac-1a0229b1b3f5.png +0 -0
  504. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/3b473fe6-e147-477f-b088-9b8fb042a4f6.png +0 -0
  505. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/04feeecc-a607-402d-bbc4-a71af87c7fc2.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/3bd19f01-57f8-4f8b-98b7-b5dd0779f77d.png +0 -0
  506. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/3c8b477a-8eda-407e-9e9f-7540c8808f89.png +0 -0
  507. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/a009c9de-029e-4999-b728-e6877374325a.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/3cd5382a-a679-4f06-ab83-6328a943148d.png +0 -0
  508. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/f16d6f1e-b9ff-4cff-aed3-dd150caf8f07.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/3d7d1e3f-29c7-431d-8621-3f31b8880492.png +0 -0
  509. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/681157d7-b37f-442f-b784-86fa9029ecdb.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/3e558d01-1d7d-4ed3-9200-738252539dc1.png +0 -0
  510. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/8a2938ad-5657-4f66-8447-4bc7fa45b857.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/3ea31c2c-1421-421c-a7fa-7994c06e4bca.png +0 -0
  511. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/3f637e86-6b74-4693-9131-1fe411fc21e5.png +0 -0
  512. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/4096cffa-a889-4622-852e-760fc7022d93.png +0 -0
  513. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/39f88061-a997-4a8a-b09e-4a2425f4a83a.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/432df4be-4970-4ac0-8465-a698bce6fe65.png +0 -0
  514. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/447d0e44-5d87-4b7c-8e60-edb111fe1639.png +0 -0
  515. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/44ba8515-4a60-42c9-8878-b42e4e34ee15.png +0 -0
  516. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/4503db6b-7224-4b81-9971-e7cfa56e10f2.png +0 -0
  517. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/4622e955-7bb1-450d-a776-01543540fde3.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/464c3d3a-c772-4f85-94d5-970f46c8d213.png +0 -0
  518. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/4695f96b-c4f5-4bb6-a021-a13b6ceb2883.png +0 -0
  519. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/1609d037-a3fc-485b-96c6-cf1790434c01.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/47f4b0a5-5792-4e82-b597-d58ea0b1f494.png +0 -0
  520. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/4883c564-f950-4a29-9f5f-6f924123cd22.png +0 -0
  521. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/143db8eb-fdde-4de0-a946-a14123b9262e.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/4c444aaf-a2d1-44f1-aacc-b737f262a746.png +0 -0
  522. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/9b696383-10dd-4a35-8546-1ccdb8891373.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/4ced1b5f-bbd2-4230-8555-233d082f4d05.png +0 -0
  523. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/4d78add6-1027-4939-bb51-f99fca7db2ce.png +0 -0
  524. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/7f4accdd-bd72-45e6-8469-692e27986486.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/4de619fd-ed06-4210-b1f0-11556deb4dd9.png +0 -0
  525. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/5031808b-5525-4118-92b4-317ec8bda985.png +0 -0
  526. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/9a9d9398-15df-46ea-a247-04ba01f61603.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/5033ca17-1327-4554-b939-968b8a78f10a.png +0 -0
  527. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/50e23c8a-7ba2-4c9c-9cfb-196c260fa1d5.png +0 -0
  528. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/bc01675d-453c-43f2-9075-f9567c8aa6f9.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/52ae79ea-f4a4-4c19-9fe8-327f285ace1e.png +0 -0
  529. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/55f7db71-0a18-4b3d-b847-57959b8d2e32.png +0 -0
  530. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/71d6a37d-45df-456f-b673-d1e8b35ee619.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/566e641a-a364-415c-a17b-2db7862f2714.png +0 -0
  531. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/582d36c0-0916-4706-9833-4fbc026701f5.png +0 -0
  532. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/e89c23b0-ca58-49d1-b439-967a4a4a431d.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/5a0d6f90-3758-4baa-94fc-a4a412284628.png +0 -0
  533. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/b66e13a1-636c-4478-9d72-7d200ff670a9.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/5ba7d61f-282d-4ad0-881a-842c26e7f66c.png +0 -0
  534. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/5d36b880-7b3f-49b1-a018-7de59867d376.png +0 -0
  535. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/5ebcde3b-f0fd-4e5d-b3de-ada8f0b5e03b.png +0 -0
  536. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/3645c21a-acd8-4ec4-a286-d9031736342c.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/5f3937f7-a5de-4a11-bcf9-da586596bf47.png +0 -0
  537. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/6cacdb8f-2ea3-4e3c-a124-b957b75ea427.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/60cfef80-cd08-4205-8088-8d0b22a59b5a.png +0 -0
  538. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/49ccf947-13a5-4839-8f85-d0fe40094e77.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/61f56d51-8d30-4aed-857a-8eff6fab27c1.png +0 -0
  539. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/dcc214f3-9707-4a2c-aaff-3834e6f12f0b.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/6468ab50-2d25-4b18-b555-2a56397968b0.png +0 -0
  540. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/04425af8-ba28-407d-ad18-8c3a2483025d.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/6597b7fd-3c5b-442f-a327-d18b555de544.png +0 -0
  541. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/38c0ed08-5af3-4fca-a37f-27d66fd35a4c.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/661d0e8d-379d-401d-9f29-147e70123adf.png +0 -0
  542. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/f543861e-c3d5-4bc9-a677-47f9e86918ea.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/66c7e6df-5c90-4b3a-9b51-78cff1357ed7.png +0 -0
  543. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/0e4b4481-6805-4a1b-a3d8-913681968662.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/6a033af8-222c-459a-9ab9-a9a69b27822d.png +0 -0
  544. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/6b58d90d-2e5e-4b7f-bc01-941f2633de89.png +0 -0
  545. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/9dbc5d76-8c6a-4638-b0c2-eba79542ec58.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/6c151fbe-7cf9-4629-b47a-da7be835bb4b.png +0 -0
  546. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/6cd80be8-c9b3-4ba5-bf17-3ffc9b000743.png +0 -0
  547. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/6e59d072-06f8-488f-a453-8ba60a05d691.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/6d225f8d-efc0-42a5-93af-7b81e24377c5.png +0 -0
  548. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/e36ec591-8bf5-4deb-9f28-3977576de931.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/749bd918-8dfb-4393-bf91-b39e285f1d75.png +0 -0
  549. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/74ec3510-583d-4a76-ac69-38480fbf1387.png +0 -0
  550. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/a3384f38-334c-440a-ab06-405bad293bab.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/75cad2af-b8c5-4f5f-8398-acd90eb4348e.png +0 -0
  551. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/966bcfd4-fefc-4704-907d-45bc6098d3f4.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/76acc2b6-6649-4b1a-bd52-18ab9a2341d0.png +0 -0
  552. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/79abd239-5eed-4195-9fa8-d729daa874ca.png +0 -0
  553. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/2cff833f-10bd-478c-8760-99162c71e9e3.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/7a8c4af3-2ac1-4295-b844-350ad00f2c50.png +0 -0
  554. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/610ea09a-d623-428f-ac97-1b51dc5e9202.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/7b552e56-0065-45d8-a0dc-bfe3be62b91f.png +0 -0
  555. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/d6314592-b8a4-4025-9875-b135bf986cf7.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/7c7cbe5a-37f0-4cf3-8376-4ceeb7a662b0.png +0 -0
  556. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/20733b9b-1df7-42af-ab55-3364e8623602.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/7dcc9134-9e5f-433b-ae5c-7530484f3f5f.png +0 -0
  557. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/c3562fef-44f7-43d2-a4e6-e7ee21f8bdc5.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/7dfdefa7-d95f-4348-9e0b-640ed17e138f.png +0 -0
  558. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/a4553bb1-27b9-47c4-8f51-1cff2129df8e.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/7e4a2554-c05b-458f-b31f-ac6930e8078e.png +0 -0
  559. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/1bb92c94-af17-492e-9d22-393c12b7f346.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/7e614cff-b492-4c4d-bbfe-0853ff65fcec.png +0 -0
  560. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/87c7532f-2394-403e-a6d8-7a216043ec13.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/7fcc8f4c-9d06-4747-8c1e-aaba3a61cc0e.png +0 -0
  561. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/e075c8cb-7eef-47cf-b9fe-9e3d1bd98e85.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/80c6d473-1eb2-4d65-8e8d-8f267ab61cd9.png +0 -0
  562. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/81c97cd3-df53-44d3-bf3d-1eb4dc67b62a.png +0 -0
  563. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/40f04ad0-44c0-4913-89aa-bc466bfd6ace.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/81fec353-ad18-4223-9ea3-8d128a4a3e77.png +0 -0
  564. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/835489e2-b29b-426c-b4c9-3bb9f8eb6195.png +0 -0
  565. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/83d0a033-466c-463a-bb8c-be0f2953e9b2.png +0 -0
  566. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/8424ecdd-8857-4764-9fd0-d4bfa440c128.png +0 -0
  567. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/f0952cb2-dadb-4d9a-933e-cabcbf8850fb.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/88e4e3c6-3f6b-4192-83c7-4b20a51ad53a.png +0 -0
  568. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/79226566-26e2-4c2f-8f6a-4e4deb9fa9ea.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/8938249c-94d3-4f20-8013-85d481a54d87.png +0 -0
  569. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/8c179a21-be6f-4db8-a9b0-9afeb5c36b1c.png +0 -0
  570. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/1737a9e0-f8c4-416e-bbad-cb97a658ae9a.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/8cbbfa8e-17aa-42e7-92f7-319a02c8f7fa.png +0 -0
  571. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/8ded6c98-85ea-4858-a66d-4fc8caecb7c5.png +0 -0
  572. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/8e0964c4-6e34-43cb-a333-d60bceae7f11.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/8ed3eab8-779b-4b66-bc24-06b0b1dfac18.png +0 -0
  573. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/8f8b7b46-53bb-42ab-907a-4ea87eb09ab4.png +0 -0
  574. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/921eefeb-730e-46fc-9924-d338fb286592.png +0 -0
  575. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/9340b854-025c-40da-9387-385d38433bef.png +0 -0
  576. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/3e34e821-ae69-49aa-9d04-bc34b3037cd5.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/967b207a-79bb-479a-b50e-b2a04cf7ed54.png +0 -0
  577. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/a514ce10-bff1-4aa0-9625-bf560dcb8be5.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/96b12d02-c634-4e9c-a465-7ee61d5fc0bd.png +0 -0
  578. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/2dab2877-c6c3-45d9-849f-fb2d79b7b74e.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/9a0c8f11-33f0-4c53-a911-556f3481d952.png +0 -0
  579. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/67f00dd1-86c9-4a49-a37c-87879171a46a.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/9b439501-e57d-4912-9f57-67c4534060f7.png +0 -0
  580. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/a77c1724-eb8f-4a1a-8997-516deb75ae78.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/9f2a6935-f462-4726-b56e-8cf23aae3982.png +0 -0
  581. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/9fd0753f-c607-4d49-82d1-40bda27e014f.png +0 -0
  582. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/__init__.py +0 -0
  583. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/a0bd6a5f-784d-4f0a-9d66-10f4b80c8d3e.png +0 -0
  584. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/b6f5243b-cfb4-42d2-b4eb-2fd1a9d33ab7.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/a148b768-8c8d-4fee-b29f-11d73240a3d0.png +0 -0
  585. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/c577c19e-aa5d-4670-b44c-1c0b3d72451a.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/a1791427-52af-4d1e-8e95-e0533cb66d3c.png +0 -0
  586. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/a1df3af1-a3e7-4521-a085-e4dc3cd1cc57.png +0 -0
  587. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/25f18ff9-dbae-4aed-87b4-c05ca6c4ebf4.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/a2d9b907-f68e-47c7-8aa6-31c07c272d94.png +0 -0
  588. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/10a329df-2515-4551-a130-07e86058abdf.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/a3d5b052-526f-45ef-a2ed-5bba8ca9e4b1.png +0 -0
  589. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/a48324ae-7c1a-489e-b3c4-93d12267f88d.png +0 -0
  590. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/6ac4a3b5-66d2-4429-8cd1-945fbb48280c.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/a66625f6-f80c-48e4-a344-e48036085e2b.png +0 -0
  591. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/1f9f101b-2647-4d14-931e-7a8307495475.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/a6bd2250-81b5-4f54-b6d9-bf9a5a4876d1.png +0 -0
  592. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/a5d3efa4-ec3e-4637-835a-147af973bbf8.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/a7e31af5-a896-47bb-af4b-e71936ac6334.png +0 -0
  593. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/a9fcaf04-0c1f-4b0f-bb5b-ede9da96180f.png +0 -0
  594. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/64298c97-baac-48b9-be7d-cb14091aa3cb.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/aab26578-b548-41e5-8996-40ef821ca041.png +0 -0
  595. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/9169bf8e-5907-42e5-b102-47da3bf9a0b1.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/ac0b1f47-ce60-479a-9c5d-d8ced42ec0e0.png +0 -0
  596. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/12151e09-e5f1-4b1d-a211-63cb300cb082.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/acff3d83-f570-4c65-9bb3-db69cd525262.png +0 -0
  597. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/88945ecf-9ac5-46dc-8af6-b21dbfded665.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/ad9cc197-c83d-4d39-b187-7105cde60ef5.png +0 -0
  598. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/f2d8a534-8afd-475c-ac20-738c7efffc90.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/adc38fcc-84d2-4f7c-846d-4fe96dd5d08a.png +0 -0
  599. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/adc533a7-970b-4c5b-a037-2181531a35d6.png +0 -0
  600. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/ae9fe233-9acc-4e96-ba8e-1fb1d9bc2ea5.png +0 -0
  601. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/b0283997-7931-476d-a92f-d7569f6ea34c.png +0 -0
  602. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/b2af59e9-60e3-4d97-8c72-c7ba092113a3.png +0 -0
  603. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/b2e1bf3c-2c36-4fb5-9db7-c10a29563a37.png +0 -0
  604. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/10d9a788-24a2-42e1-9284-78f507986606.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/b5a58c56-3f09-47e5-ab61-57bab752e735.png +0 -0
  605. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/b62bf889-da3c-495a-8707-f3bde73efe92.png +0 -0
  606. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/b6b94f21-ef4b-4425-9c7e-ca2b574b0add.png +0 -0
  607. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/3e613561-8dbd-4094-9889-53f08541a716.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/b92c4308-3778-47aa-8a0b-222d32721beb.png +0 -0
  608. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/bab6c393-692c-4681-ac0d-76c0d9dabea6.png +0 -0
  609. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/cab0b1ff-b40a-42a8-b799-75e309b2dee3.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/bba3cd68-3023-4a7b-9fe9-36ec7adbfc89.png +0 -0
  610. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/bc7155ac-18c9-4335-9ec2-c8762d37a057.png +0 -0
  611. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/f217d7cf-acf5-44eb-9f99-025bbcaea866.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/bd04472b-eeeb-4ad7-b385-8347b7053887.png +0 -0
  612. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/8fb17c7f-778d-4cd5-8d2f-dbf21d264297.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/c157661d-de06-4e34-bc3b-7d79c987e26d.png +0 -0
  613. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/89d3c0a6-266e-486e-998d-ecd0d2536814.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/c2e3d6ac-00b6-4d2a-a30b-52a1190f5f05.png +0 -0
  614. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/df9d09c3-8f15-4caf-bb21-f69644fb4705.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/c370b930-9750-4782-9564-5ce4cd609bdd.png +0 -0
  615. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/c3f536d6-a04a-4651-b3f9-dd2c22593f7f.png +0 -0
  616. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/c5b7d67e-7260-4f08-a0e9-4d31ce9bbecf.png +0 -0
  617. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/c78c38cc-7b61-4dc4-820d-0a5b684ef52e.png +0 -0
  618. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/12d0271c-1a86-4d2c-b379-b7df847fe20b.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/c84eada8-ff68-4d73-802b-6de88e73ec6d.png +0 -0
  619. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/97a543a8-a859-4a1e-8e33-602f600db389.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/c8f444cc-e809-44c2-86a3-3cbb5bcd0356.png +0 -0
  620. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/c948f136-416f-447e-8152-54a1cd1d1329.png +0 -0
  621. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/c954e153-d3e9-4488-869f-d00cfdfac5ee.png +0 -0
  622. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/cb3d0ca7-8d14-408a-a2f5-2e25f7b86d6c.png +0 -0
  623. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/cbf4ce9c-f8d8-4fb7-a197-15bb9847df04.png +0 -0
  624. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/cc60b509-2ed5-493d-bb9f-333c6d2a6006.png +0 -0
  625. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/cc8a495d-330d-447d-8a80-a8a6ecc409c5.png +0 -0
  626. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/ccbcb114-7f73-43d1-904a-3a7ae660c531.png +0 -0
  627. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/ce1d1d6f-38f2-48bf-98bd-6e091c7ca5b8.png +0 -0
  628. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/cfc9c8e8-cbe1-49f0-9afa-ead7f9455a2e.png +0 -0
  629. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/41f0e90a-a352-450c-a788-0303d038227a.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/d0881e29-6da6-4823-b65c-eefa9f9f2208.png +0 -0
  630. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/fef40be1-5b75-4023-9977-df46cd211a86.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/d0ad5222-0ee0-412e-819f-3217f9fd854b.png +0 -0
  631. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/d271a24f-efe8-424d-8fd5-f6b3756ba4ca.png +0 -0
  632. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/e04331fe-d62e-4f77-953d-78515ee5686e.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/d32f8851-4fd2-4484-8ae8-66a375a43f3d.png +0 -0
  633. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/d3424d31-0502-4623-996e-f0194e5085ce.png +0 -0
  634. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/d3cc3323-51af-4882-ae12-49e7384b746d.png +0 -0
  635. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/5d3b3a20-89bb-4cf2-9973-25581c32e91c.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/d5a9d7f7-a065-4ff3-ae4c-b027f348ef54.png +0 -0
  636. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/b169172d-8ce2-432a-bed6-1dfc30bcc95c.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/d6235144-ce78-4884-88b4-d1a12b76155f.png +0 -0
  637. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/d6b64759-26b7-45b1-bf8e-5c0d98611e0d.png +0 -0
  638. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/d7667903-7149-4f2f-9c15-d8a4b5f4d347.png +0 -0
  639. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/0a4c6cbe-f42e-4301-9c1a-101fc33421d2.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/d77a936b-c0ae-4dbd-8b44-82288a0957d6.png +0 -0
  640. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/d83f338d-dde3-494b-9bea-cae511e3517c.png +0 -0
  641. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/15fe6944-396c-467b-80db-476bbdf65a80.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/d94ce829-a7ab-44aa-bc0c-a4801b650088.png +0 -0
  642. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/d982d2b5-4bc0-4ae9-a516-f29c2848d64b.png +0 -0
  643. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/da439e8c-3b74-4371-9657-0736d826c7d1.png +0 -0
  644. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/daf3d823-b7f1-4584-acf3-90b9d880332c.png +0 -0
  645. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/db7d3f03-1f7f-43bf-8125-f7c2d345fca2.png +0 -0
  646. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/92a42da1-d8d2-4233-b6d0-5997a72f3d03.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/dc64e856-2f31-48b1-b17d-32b499f819ce.png +0 -0
  647. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/3fc47270-febf-492e-b8fc-0a9793bc0d56.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/dd5ffd48-2ab0-4795-8193-8a8310101574.png +0 -0
  648. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/6582463d-b4fa-40a1-b771-664c7f71fe9c.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/ddc8f913-e9ae-46dc-a91a-d3ee79e9f32d.png +0 -0
  649. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/de325534-3fd3-480a-9eb8-eb47960a753a.png +0 -0
  650. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/df991b42-ed8e-4f2c-bf0c-aa7522f147b6.png +0 -0
  651. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/1aed664e-ceb3-4a1d-a338-df08dc8ebbd3.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/e049018e-9d2b-4537-add1-e902cf8ac69a.png +0 -0
  652. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/2cea06ca-99f6-4bc5-8dd0-2bba80b07b17.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/e25468f5-929a-4a49-a2e0-4527075353b5.png +0 -0
  653. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/e4683def-8d1d-472b-a5ab-bb3885c0c98e.png +0 -0
  654. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/32907971-0e98-4adc-91b8-ac0308c11c3c.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/e54b7482-a348-4252-a373-2ee69b3805b5.png +0 -0
  655. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/e5e84f9e-28da-4cf4-bcba-c9145fe39b07.png +0 -0
  656. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/f58c3a84-60ea-415b-ac63-4b534dc8cb6c.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/e62afa2c-1c5b-426e-8ff1-ea51f75d0f20.png +0 -0
  657. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/e6b45405-cd9f-4c6e-a9f1-6ec953747c65.png +0 -0
  658. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/731ed76d-6d6c-48b9-82c3-045cc1ecc419.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/e7a0ea00-2a72-4d74-8664-53726e3e1078.png +0 -0
  659. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/e88c9ad1-ec37-4fcd-b086-862e1e7ce8fd.png +0 -0
  660. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/e9ee330d-dfca-440e-8b8c-0a3b4e8c8730.png +0 -0
  661. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/ea1ba124-9cb3-4427-969a-bacd47e7d920.png +0 -0
  662. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/eaba6ebe-f0df-4918-aee5-ef4e3ffedcf0.png +0 -0
  663. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/487ae483-2787-4982-93b0-4847665683e9.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/eb67d908-13f8-4cef-9a86-9770e342ab77.png +0 -0
  664. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/3a595ec9-d813-4c09-b8b8-be8f5da88faa.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/ebb662bb-62b4-404c-bb8f-4a7d5feccaa8.png +0 -0
  665. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/ee4e512b-4982-49b6-9c71-31984b58e1d0.png +0 -0
  666. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/c92a2935-cf41-4f56-911a-bc40f122cbf3.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/ee8a6029-63b3-4c13-bdc5-9bd8546d3316.png +0 -0
  667. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/d81b7022-5c81-4533-b949-7e9d75a5b8b4.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/eea2af85-94b2-4c41-8f51-393059dcc43c.png +0 -0
  668. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/f5727018-9a23-40de-840e-610d6e5dfa9d.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/eec4d7d6-3084-4bab-99c1-10e3a9459393.png +0 -0
  669. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/eef25cf9-afd0-43b1-b9c5-fbd997bd5fe0.png +0 -0
  670. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/be83e205-8ec5-452f-b42b-b98156516aa8.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/efb31647-3760-4b76-8b5d-ec4b5fb7a975.png +0 -0
  671. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/951ae4be-40f3-4ccc-8578-77aca7f25eef.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/f03739ee-31e1-40ca-9aaf-6c0447d426a4.png +0 -0
  672. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/9dfa46c9-54ec-4dd7-8f2e-e1e66c1206f1.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/f08044bf-8a33-4d6b-8791-94470678efa6.png +0 -0
  673. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/f1f21925-3e22-4dd1-b53b-bb52bcf26c2b.png +0 -0
  674. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/183df82f-acea-4d40-87a8-18fc8ddab6d0.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/f23cb531-18b5-4852-bb11-56dc621e56cc.png +0 -0
  675. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/f43c313b-8a7b-467b-8442-fc5bcb8b4388.png +0 -0
  676. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/f5c16d2f-ebc5-4617-9b96-971696af7c52.png +0 -0
  677. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/f6ca6bd3-543f-4779-8367-c5c883f04b95.png +0 -0
  678. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/377857a9-c37f-4a90-afa9-00c4ff7b24ae.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/f7a4208f-0373-4f26-907f-84c3f2b810fc.png +0 -0
  679. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/2bb9dbf7-6cb2-426a-a35c-7228a1320220.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/f88f9f3b-e0e7-498c-ad1c-e92a719164f3.png +0 -0
  680. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/70671b9e-9ebb-4dee-bc5a-dbcb70364adf.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/f93c7a24-157d-43ef-adcc-3873d313c6d7.png +0 -0
  681. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/63cd694d-343e-468d-a53f-360c97f71ee6.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/f957fbb8-ba30-47c0-97b8-ff531d6e3831.png +0 -0
  682. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/sprites/fad5eec2-5fd5-412f-9abb-987a3087dc54.png +0 -0
  683. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/dcc2da94-2c9d-4248-bce5-731651e391ae.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/fbbf4921-ece5-4dc0-875d-8f7182596d4f.png +0 -0
  684. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/131fb7e1-6eb9-4722-9943-76ff05c5baee.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/ff361c63-3f3d-48df-a26f-7698bd459219.png +0 -0
  685. /ksaa-2025.7.20.0/kotonebot/kaa/sprites/e4a92c92-0974-40e0-b488-16ea7a4c1a29.png → /ksaa-2025.7.27.1/kotonebot/kaa/sprites/ff5a0417-229f-41bd-8121-708b08417114.png +0 -0
  686. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/__init__.py +0 -0
  687. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/actions/__init__.py +0 -0
  688. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/actions/commu.py +0 -0
  689. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/actions/loading.py +0 -0
  690. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/actions/scenes.py +0 -0
  691. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/actions/stats.py +0 -0
  692. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/clear_logs.py +0 -0
  693. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/daily/__init__.py +0 -0
  694. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/daily/acquire_activity_funds.py +0 -0
  695. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/daily/acquire_presents.py +0 -0
  696. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/daily/assignment.py +0 -0
  697. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/daily/capsule_toys.py +0 -0
  698. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/daily/club_reward.py +0 -0
  699. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/daily/mission_reward.py +0 -0
  700. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/daily/upgrade_support_card.py +0 -0
  701. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/produce/__init__.py +0 -0
  702. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/produce/cards.py +0 -0
  703. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/produce/common.py +0 -0
  704. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/produce/non_lesson_actions.py +0 -0
  705. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/tasks/produce/p_drink.py +0 -0
  706. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/util/paths.py +0 -0
  707. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/kaa/util/trace.py +0 -0
  708. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/logging/__init__.py +0 -0
  709. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/logging/log.py +0 -0
  710. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/primitives/__init__.py +0 -0
  711. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/primitives/geometry.py +0 -0
  712. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/primitives/visual.py +0 -0
  713. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/tools/__init__.py +0 -0
  714. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/tools/mirror.py +0 -0
  715. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/ui/__init__.py +0 -0
  716. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/ui/file_host/sensio.py +0 -0
  717. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/ui/file_host/tmp_send.py +0 -0
  718. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/ui/pushkit/__init__.py +0 -0
  719. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/ui/pushkit/image_host.py +0 -0
  720. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/ui/pushkit/protocol.py +0 -0
  721. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/ui/pushkit/wxpusher.py +0 -0
  722. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/kotonebot/util.py +0 -0
  723. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/ksaa.egg-info/dependency_links.txt +0 -0
  724. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/ksaa.egg-info/entry_points.txt +0 -0
  725. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/ksaa.egg-info/top_level.txt +0 -0
  726. {ksaa-2025.7.20.0 → ksaa-2025.7.27.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ksaa
3
- Version: 2025.7.20.0
3
+ Version: 2025.7.27.1
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
@@ -26,6 +26,7 @@ Requires-Dist: onnxruntime==1.14.0
26
26
  Requires-Dist: numpy<2.0
27
27
  Requires-Dist: pywin32==310
28
28
  Requires-Dist: ahk==1.8.3
29
+ Requires-Dist: win11toast==0.35
29
30
  Dynamic: license-file
30
31
 
31
32
  # Kotone's Auto Assistant 琴音小助手
@@ -1,5 +1,23 @@
1
1
  # 更新日志
2
2
  ## kaa
3
+ ### v2025.7.27.1
4
+ 脚本:
5
+ * [修复] 修复检测培育阶段函数过早返回的问题(#de1328c)
6
+
7
+ ### v2025.7.27.0
8
+ 脚本:
9
+ * [修复] 修复竞赛总是卡在跳过页面(#738ec9e)
10
+ * [修复] 修复 DMM 版启动游戏的过程中无法中断的问题(#ceaaed7)
11
+ * [新增] 即使执行任务出错也会执行关闭游戏任务(#9c9e4af)
12
+ * [新增] 优化培育方案错误与选人未找到错误的提示(#b51f9cd)
13
+ * [新增] 竞赛未编成时支持暂停与通知(#3be8485)
14
+
15
+ 框架:
16
+ * [新增] Task 新增 pre、post、regular、manual 四种 run_at 类型(#0b7054e)
17
+ * [新增] 新增 MessageBox 与 TaskDialog 的 Win32API 封装(#3e544e9)
18
+ * [新增] 支持任务执行中只跳过或停止当前任务(#a167cbf)
19
+ * [重构] 移除了废弃的 dispatcher 与 action 分发器重载(#09252c5)
20
+
3
21
  ### v2025.7.20.0
4
22
  脚本:
5
23
  * [修复] 修复商店购买中购买推荐商品时点击推荐标签不生效的问题(#b07d4d3)
@@ -12,6 +12,15 @@ from kotonebot.client import Device
12
12
  from kotonebot.client.host.protocol import Instance
13
13
  from kotonebot.backend.context import init_context, vars
14
14
  from kotonebot.backend.context import task_registry, action_registry, Task, Action
15
+ from kotonebot.errors import StopCurrentTask, UserFriendlyError
16
+ from kotonebot.interop.win.task_dialog import TaskDialog
17
+
18
+
19
+ @dataclass
20
+ class PostTaskContext:
21
+ has_error: bool
22
+ exception: Exception | None
23
+
15
24
 
16
25
  log_stream = io.StringIO()
17
26
  stream_handler = logging.StreamHandler(log_stream)
@@ -19,10 +28,11 @@ stream_handler.setFormatter(logging.Formatter('[%(asctime)s] [%(levelname)s] [%(
19
28
  logging.getLogger('kotonebot').addHandler(stream_handler)
20
29
  logger = logging.getLogger(__name__)
21
30
 
31
+ TaskStatusValue = Literal['pending', 'running', 'finished', 'error', 'cancelled', 'stopped']
22
32
  @dataclass
23
33
  class TaskStatus:
24
34
  task: Task
25
- status: Literal['pending', 'running', 'finished', 'error', 'cancelled']
35
+ status: TaskStatusValue
26
36
 
27
37
  @dataclass
28
38
  class RunStatus:
@@ -73,7 +83,7 @@ class Event(Generic[Params, Return]):
73
83
  class KotoneBotEvents:
74
84
  def __init__(self):
75
85
  self.task_status_changed = Event[
76
- [Task, Literal['pending', 'running', 'finished', 'error', 'cancelled']], None
86
+ [Task, TaskStatusValue], None
77
87
  ]()
78
88
  self.task_error = Event[
79
89
  [Task, Exception], None
@@ -171,42 +181,80 @@ class KotoneBot:
171
181
  self._on_after_init_context()
172
182
  vars.flow.clear_interrupt()
173
183
 
184
+ pre_tasks = [task for task in tasks if task.run_at == 'pre']
185
+ regular_tasks = [task for task in tasks if task.run_at == 'regular']
186
+ post_tasks = [task for task in tasks if task.run_at == 'post']
187
+
174
188
  if by_priority:
175
- tasks = sorted(tasks, key=lambda x: x.priority, reverse=True)
176
- for task in tasks:
189
+ pre_tasks = sorted(pre_tasks, key=lambda x: x.priority, reverse=True)
190
+ regular_tasks = sorted(regular_tasks, key=lambda x: x.priority, reverse=True)
191
+ post_tasks = sorted(post_tasks, key=lambda x: x.priority, reverse=True)
192
+
193
+ all_tasks = pre_tasks + regular_tasks + post_tasks
194
+ for task in all_tasks:
177
195
  self.events.task_status_changed.trigger(task, 'pending')
178
196
 
179
- for task in tasks:
197
+ has_error = False
198
+ exception: Exception | None = None
199
+
200
+ for task in all_tasks:
180
201
  logger.info(f'Task started: {task.name}')
181
202
  self.events.task_status_changed.trigger(task, 'running')
182
203
 
183
204
  if self.debug:
184
- task.func()
205
+ if task.run_at == 'post':
206
+ task.func(PostTaskContext(has_error, exception))
207
+ else:
208
+ task.func()
185
209
  else:
186
210
  try:
187
- task.func()
211
+ if task.run_at == 'post':
212
+ task.func(PostTaskContext(has_error, exception))
213
+ else:
214
+ task.func()
188
215
  self.events.task_status_changed.trigger(task, 'finished')
216
+ except StopCurrentTask:
217
+ logger.info(f'Task skipped/stopped: {task.name}')
218
+ self.events.task_status_changed.trigger(task, 'stopped')
189
219
  # 用户中止
190
220
  except KeyboardInterrupt as e:
191
221
  logger.exception('Keyboard interrupt detected.')
192
- for task1 in tasks[tasks.index(task):]:
222
+ for task1 in all_tasks[all_tasks.index(task):]:
193
223
  self.events.task_status_changed.trigger(task1, 'cancelled')
194
224
  vars.flow.clear_interrupt()
195
225
  break
226
+ # 用户可以自行处理的错误
227
+ except UserFriendlyError as e:
228
+ logger.error(f'Task failed: {task.name}')
229
+ logger.exception(f'Error: ')
230
+ has_error = True
231
+ exception = e
232
+ dialog = TaskDialog(
233
+ title='琴音小助手',
234
+ common_buttons=0,
235
+ main_instruction='任务执行失败',
236
+ content=e.message,
237
+ custom_buttons=e.action_buttons,
238
+ main_icon='error'
239
+ )
240
+ result_custom, _, _ = dialog.show()
241
+ e.invoke(result_custom)
196
242
  # 其他错误
197
243
  except Exception as e:
198
244
  logger.error(f'Task failed: {task.name}')
199
245
  logger.exception(f'Error: ')
246
+ has_error = True
247
+ exception = e
200
248
  report_path = None
201
249
  if self.auto_save_error_report:
202
250
  raise NotImplementedError
203
251
  self.events.task_status_changed.trigger(task, 'error')
204
252
  if not self.resume_on_error:
205
- for task1 in tasks[tasks.index(task)+1:]:
253
+ for task1 in all_tasks[all_tasks.index(task)+1:]:
206
254
  self.events.task_status_changed.trigger(task1, 'cancelled')
207
255
  break
208
- logger.info(f'Task finished: {task.name}')
209
- logger.info('All tasks finished.')
256
+ logger.info(f'Task ended: {task.name}')
257
+ logger.info('All tasks ended.')
210
258
  self.events.finished.trigger()
211
259
 
212
260
  def run_all(self) -> None:
@@ -228,7 +276,7 @@ class KotoneBot:
228
276
  self.events.finished -= _on_finished
229
277
  self.events.task_status_changed -= _on_task_status_changed
230
278
 
231
- def _on_task_status_changed(task: Task, status: Literal['pending', 'running', 'finished', 'error', 'cancelled']):
279
+ def _on_task_status_changed(task: Task, status: TaskStatusValue):
232
280
  def _find(task: Task) -> TaskStatus:
233
281
  for task_status in run_status.tasks:
234
282
  if task_status.task == task:
@@ -1,19 +1,18 @@
1
1
  import logging
2
- from typing import Callable, ParamSpec, TypeVar, overload, Concatenate, Literal
2
+ from typing import Callable, ParamSpec, TypeVar, overload, Literal
3
3
  from dataclasses import dataclass
4
- from typing_extensions import deprecated
5
4
 
6
- import cv2
7
- from cv2.typing import MatLike
8
5
 
9
6
  from .context import ContextStackVars, ScreenshotMode
10
- from ..dispatch import dispatcher as dispatcher_decorator, DispatcherContext
11
7
  from ...errors import TaskNotFoundError
12
8
 
13
9
  P = ParamSpec('P')
14
10
  R = TypeVar('R')
15
11
  logger = logging.getLogger(__name__)
16
12
 
13
+ TaskRunAtType = Literal['pre', 'post', 'manual', 'regular'] | str
14
+
15
+
17
16
  @dataclass
18
17
  class Task:
19
18
  name: str
@@ -24,6 +23,8 @@ class Task:
24
23
  """
25
24
  任务优先级,数字越大优先级越高。
26
25
  """
26
+ run_at: TaskRunAtType = 'regular'
27
+
27
28
 
28
29
  @dataclass
29
30
  class Action:
@@ -51,6 +52,7 @@ def task(
51
52
  pass_through: bool = False,
52
53
  priority: int = 0,
53
54
  screenshot_mode: ScreenshotMode = 'auto',
55
+ run_at: TaskRunAtType = 'regular'
54
56
  ):
55
57
  """
56
58
  `task` 装饰器,用于标记一个函数为任务函数。
@@ -62,6 +64,7 @@ def task(
62
64
  默认情况下, @task 装饰器会包裹任务函数,跟踪其执行情况。
63
65
  如果不想跟踪,则设置此参数为 False。
64
66
  :param priority: 任务优先级,数字越大优先级越高。
67
+ :param run_at: 任务运行时间。
65
68
  """
66
69
  # 设置 ID
67
70
  # 获取 caller 信息
@@ -70,7 +73,7 @@ def task(
70
73
  description = description or func.__doc__ or ''
71
74
  # TODO: task_id 冲突检测
72
75
  task_id = task_id or func.__name__
73
- task = Task(name, task_id, description, _placeholder, priority)
76
+ task = Task(name, task_id, description, _placeholder, priority, run_at)
74
77
  task_registry[name] = task
75
78
  logger.debug(f'Task "{name}" registered.')
76
79
  if pass_through:
@@ -98,7 +101,6 @@ def action(
98
101
  pass_through: bool = False,
99
102
  priority: int = 0,
100
103
  screenshot_mode: ScreenshotMode | None = None,
101
- dispatcher: Literal[False] = False,
102
104
  ) -> Callable[[Callable[P, R]], Callable[P, R]]:
103
105
  """
104
106
  `action` 装饰器,用于标记一个函数为动作函数。
@@ -110,38 +112,6 @@ def action(
110
112
  如果不想跟踪,则设置此参数为 False。
111
113
  :param priority: 动作优先级,数字越大优先级越高。
112
114
  :param screenshot_mode: 截图模式。
113
- :param dispatcher:
114
- 是否为分发器模式。默认为假。
115
- 如果使用分发器,则函数的第一个参数必须为 `ctx: DispatcherContext`。
116
- """
117
- ...
118
-
119
- @overload
120
- @deprecated('使用普通 while 循环代替')
121
- def action(
122
- name: str,
123
- *,
124
- description: str|None = None,
125
- pass_through: bool = False,
126
- priority: int = 0,
127
- screenshot_mode: ScreenshotMode | None = None,
128
- dispatcher: Literal[True, 'fragment'] = True,
129
- ) -> Callable[[Callable[Concatenate[DispatcherContext, P], R]], Callable[P, R]]:
130
- """
131
- `action` 装饰器,用于标记一个函数为动作函数。
132
-
133
- 此重载启用了分发器模式。被装饰函数的第一个参数必须为 `ctx: DispatcherContext`。
134
-
135
- :param name: 动作名称。如果为 None,则使用函数的名称作为名称。
136
- :param description: 动作描述。如果为 None,则使用函数的 docstring 作为描述。
137
- :param pass_through:
138
- 默认情况下, @action 装饰器会包裹动作函数,跟踪其执行情况。
139
- 如果不想跟踪,则设置此参数为 False。
140
- :param priority: 动作优先级,数字越大优先级越高。
141
- :param screenshot_mode: 截图模式,必须为 `'manual' / None`。
142
- :param dispatcher:
143
- 是否为分发器模式。默认为假。
144
- 如果使用分发器,则函数的第一个参数必须为 `ctx: DispatcherContext`。
145
115
  """
146
116
  ...
147
117
 
@@ -176,11 +146,6 @@ def action(*args, **kwargs):
176
146
  pass_through = kwargs.get('pass_through', False)
177
147
  priority = kwargs.get('priority', 0)
178
148
  screenshot_mode = kwargs.get('screenshot_mode', None)
179
- dispatcher = kwargs.get('dispatcher', False)
180
- if dispatcher == True or dispatcher == 'fragment':
181
- if not (screenshot_mode is None or screenshot_mode == 'manual'):
182
- raise ValueError('`screenshot_mode` must be None or "manual" when `dispatcher=True`.')
183
- screenshot_mode = 'manual'
184
149
  def _action_decorator(func: Callable):
185
150
  nonlocal pass_through
186
151
  action = _register(_placeholder, name, description)
@@ -188,8 +153,6 @@ def action(*args, **kwargs):
188
153
  if pass_through:
189
154
  return func
190
155
  else:
191
- if dispatcher:
192
- func = dispatcher_decorator(func, fragment=(dispatcher == 'fragment')) # type: ignore
193
156
  def _wrapper(*args: P.args, **kwargs: P.kwargs):
194
157
  current_callstack.append(action)
195
158
  vars = ContextStackVars.push(screenshot_mode=screenshot_mode)
@@ -1,12 +1,7 @@
1
1
  import time
2
- import uuid
3
2
  import logging
4
- import inspect
5
- from logging import Logger
6
- from types import CodeType
7
3
  from dataclasses import dataclass
8
- from typing import Annotated, Any, Callable, Concatenate, Sequence, TypeVar, ParamSpec, Literal, Protocol, cast
9
- from typing_extensions import deprecated
4
+ from typing import Any, Callable, Literal
10
5
 
11
6
  from dataclasses import dataclass
12
7
 
@@ -16,104 +11,6 @@ from kotonebot.primitives import Rect, is_rect
16
11
  from .core import Image
17
12
 
18
13
  logger = logging.getLogger(__name__)
19
- P = ParamSpec('P')
20
- R = TypeVar('R')
21
- ThenAction = Literal['click', 'log']
22
- DoAction = Literal['click']
23
- # TODO: 需要找个地方统一管理这些属性名
24
- ATTR_DISPATCHER_MARK = '__kb_dispatcher_mark'
25
- ATTR_ORIGINAL_FUNC = '_kb_inner'
26
-
27
-
28
- class DispatchFunc: pass
29
-
30
- wrapper_to_func: dict[Callable, Callable] = {}
31
-
32
- class DispatcherContext:
33
- def __init__(self):
34
- self.finished: bool = False
35
- self._first_run: bool = True
36
-
37
- def finish(self):
38
- """标记已完成 dispatcher 循环。循环将在下次条件检测时退出。"""
39
- self.finished = True
40
-
41
- def expand(self, func: Annotated[Callable[[], Any], DispatchFunc], ignore_finish: bool = True):
42
- """
43
- 调用其他 dispatcher 函数。
44
-
45
- 使用 `expand` 和直接调用的区别是:
46
- * 直接调用会执行 while 循环,直到满足结束条件
47
- * 而使用 `expand` 则只会执行一次。效果类似于将目标函数里的代码直接复制粘贴过来。
48
- """
49
- # 获取原始函数
50
- original_func = func
51
- while not getattr(original_func, ATTR_DISPATCHER_MARK, False):
52
- original_func = getattr(original_func, ATTR_ORIGINAL_FUNC)
53
- original_func = getattr(original_func, ATTR_ORIGINAL_FUNC)
54
-
55
- if not original_func:
56
- raise ValueError(f'{repr(func)} is not a dispatcher function.')
57
- elif not callable(original_func):
58
- raise ValueError(f'{repr(original_func)} is not callable.')
59
- original_func = cast(Callable[[DispatcherContext], Any], original_func)
60
-
61
- old_finished = self.finished
62
- ret = original_func(self)
63
- if ignore_finish:
64
- self.finished = old_finished
65
- return ret
66
-
67
- @property
68
- def beginning(self) -> bool:
69
- """是否为第一次运行"""
70
- return self._first_run
71
-
72
- @property
73
- def finishing(self) -> bool:
74
- """是否即将结束运行"""
75
- return self.finished
76
-
77
- @deprecated('使用 SimpleDispatcher 类或 while 循环替代')
78
- def dispatcher(
79
- func: Callable[Concatenate[DispatcherContext, P], R],
80
- *,
81
- fragment: bool = False
82
- ) -> Annotated[Callable[P, R], DispatchFunc]:
83
- """
84
- 注意:\n
85
- 此装饰器必须在应用 @action/@task 装饰器后再应用,且 `screenshot_mode='manual'` 参数必须设置。
86
- 或者也可以使用 @action/@task 装饰器中的 `dispatcher=True` 参数,
87
- 那么就没有上面两个要求了。
88
-
89
- :param fragment:
90
- 片段模式,默认不启用。
91
- 启用后,被装饰函数将会只执行依次,
92
- 而不会一直循环到 ctx.finish() 被调用。
93
- """
94
- def wrapper(*args: P.args, **kwargs: P.kwargs):
95
- ctx = DispatcherContext()
96
- while not ctx.finished:
97
- from kotonebot import device
98
- device.screenshot()
99
- ret = func(ctx, *args, **kwargs)
100
- ctx._first_run = False
101
- return ret
102
- def fragment_wrapper(*args: P.args, **kwargs: P.kwargs):
103
- ctx = DispatcherContext()
104
- from kotonebot import device
105
- device.screenshot()
106
- return func(ctx, *args, **kwargs)
107
- setattr(wrapper, ATTR_ORIGINAL_FUNC, func)
108
- setattr(fragment_wrapper, ATTR_ORIGINAL_FUNC, func)
109
- setattr(wrapper, ATTR_DISPATCHER_MARK, True)
110
- setattr(fragment_wrapper, ATTR_DISPATCHER_MARK, True)
111
- wrapper_to_func[wrapper] = func
112
- if fragment:
113
- return fragment_wrapper
114
-
115
- else:
116
- return wrapper
117
14
 
118
15
  @dataclass
119
16
  class ClickParams:
@@ -95,7 +95,7 @@ class FlowController:
95
95
  logger.info('Interrupt requested.')
96
96
  self.interrupt_event.set()
97
97
 
98
- def request_pause(self) -> None:
98
+ def request_pause(self, *, wait_resume: bool = False) -> None:
99
99
  """
100
100
  请求暂停任务。
101
101
 
@@ -106,6 +106,8 @@ class FlowController:
106
106
  if not self.paused:
107
107
  logger.info('Pause requested.')
108
108
  self.paused = True
109
+ if wait_resume:
110
+ self.check()
109
111
 
110
112
  def request_resume(self) -> None:
111
113
  """
@@ -1,9 +1,41 @@
1
+ from typing import Callable
2
+
3
+
1
4
  class KotonebotError(Exception):
2
5
  pass
3
6
 
4
7
  class KotonebotWarning(Warning):
5
8
  pass
6
9
 
10
+ class UserFriendlyError(KotonebotError):
11
+ def __init__(
12
+ self,
13
+ message: str,
14
+ actions: list[tuple[int, str, Callable[[], None]]] = [],
15
+ *args, **kwargs
16
+ ) -> None:
17
+ super().__init__(*args, **kwargs)
18
+ self.message = message
19
+ self.actions = actions or []
20
+
21
+ @property
22
+ def action_buttons(self) -> list[tuple[int, str]]:
23
+ """
24
+ 以 (id: int, btn_text: str) 的形式返回所有按钮定义。
25
+ """
26
+ return [(id, text) for id, text, _ in self.actions]
27
+
28
+ def invoke(self, action_id: int):
29
+ """
30
+ 执行指定 ID 的 action。
31
+ """
32
+ for id, _, func in self.actions:
33
+ if id == action_id:
34
+ func()
35
+ break
36
+ else:
37
+ raise ValueError(f'Action with id {action_id} not found.')
38
+
7
39
  class UnrecoverableError(KotonebotError):
8
40
  pass
9
41
 
@@ -31,7 +63,10 @@ class UnscalableResolutionError(KotonebotError):
31
63
  self.screen_size = screen_size
32
64
  super().__init__(f'Cannot scale to target resolution {target_resolution}. '
33
65
  f'Screen size: {screen_size}')
34
-
66
+
35
67
  class ContextNotInitializedError(KotonebotError):
36
68
  def __init__(self, msg: str = 'Context not initialized'):
37
- super().__init__(msg)
69
+ super().__init__(msg)
70
+
71
+ class StopCurrentTask(KotonebotError):
72
+ pass