splitsmith 0.77.0__tar.gz → 0.78.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1349) hide show
  1. {splitsmith-0.77.0 → splitsmith-0.78.0}/CHANGELOG.md +14 -0
  2. {splitsmith-0.77.0 → splitsmith-0.78.0}/PKG-INFO +1 -1
  3. {splitsmith-0.77.0 → splitsmith-0.78.0}/pyproject.toml +1 -1
  4. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/__init__.py +1 -1
  5. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/beep_detect.py +7 -1
  6. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/beep_tone.py +121 -12
  7. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/config.py +7 -0
  8. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_history.json +6 -1
  9. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/broadcast-card.html +14 -3
  10. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/broadcast-hud.html +32 -2
  11. splitsmith-0.78.0/src/splitsmith/data/looks/_starters/broadcast-sting.html +90 -0
  12. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/broadcast-summary.html +25 -3
  13. splitsmith-0.78.0/src/splitsmith/data/looks/_starters/broadcast-thumbnail.html +92 -0
  14. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-card.html +138 -0
  15. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-hud.html +224 -0
  16. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-match.html +110 -0
  17. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-sting.html +90 -0
  18. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-summary.html +183 -0
  19. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/broadcast-thumbnail.html +92 -0
  20. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/look.json +107 -0
  21. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/closing-default.png +0 -0
  22. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/closing-end-screen.png +0 -0
  23. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/closing-rise.png +0 -0
  24. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/look.png +0 -0
  25. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/lower_third-default.png +0 -0
  26. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/lower_third-rise.png +0 -0
  27. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-broadcast.webp +0 -0
  28. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-minimal.webp +0 -0
  29. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-pips.webp +0 -0
  30. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-plate.webp +0 -0
  31. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-ticker.webp +0 -0
  32. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/overlay-timeline.webp +0 -0
  33. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/slate-default.png +0 -0
  34. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/slate-rise.png +0 -0
  35. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/title_page-default.png +0 -0
  36. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/title_page-rise.png +0 -0
  37. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/transition-push.webp +0 -0
  38. splitsmith-0.78.0/src/splitsmith/data/looks/broadcast/preview/transition-wipe.webp +0 -0
  39. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/whats_new.json +18 -0
  40. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/events.py +55 -12
  41. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/hud_extras.py +5 -5
  42. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/look_tools.py +21 -5
  43. {splitsmith-0.77.0 → splitsmith-0.78.0}/tests/fixtures/beep_calibration/README.md +6 -0
  44. {splitsmith-0.77.0 → splitsmith-0.78.0}/uv.lock +1 -1
  45. {splitsmith-0.77.0 → splitsmith-0.78.0}/.gitignore +0 -0
  46. {splitsmith-0.77.0 → splitsmith-0.78.0}/LICENSE +0 -0
  47. {splitsmith-0.77.0 → splitsmith-0.78.0}/README.md +0 -0
  48. {splitsmith-0.77.0 → splitsmith-0.78.0}/docs/architecture/README.md +0 -0
  49. {splitsmith-0.77.0 → splitsmith-0.78.0}/docs/google-oauth/README.md +0 -0
  50. {splitsmith-0.77.0 → splitsmith-0.78.0}/docs/local-slim/README.md +0 -0
  51. {splitsmith-0.77.0 → splitsmith-0.78.0}/docs/saas-readiness/README.md +0 -0
  52. {splitsmith-0.77.0 → splitsmith-0.78.0}/site/README.md +0 -0
  53. {splitsmith-0.77.0 → splitsmith-0.78.0}/skills/splitsmith-match/README.md +0 -0
  54. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/access.py +0 -0
  55. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/account_profile.py +0 -0
  56. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/agent.py +0 -0
  57. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/async_bridge.py +0 -0
  58. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/audit.py +0 -0
  59. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/audit_data.py +0 -0
  60. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/audit_revision.py +0 -0
  61. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/auth.py +0 -0
  62. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/automation.py +0 -0
  63. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/backup.py +0 -0
  64. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/beep_calibration.py +0 -0
  65. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/beep_features.py +0 -0
  66. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/beep_windows.py +0 -0
  67. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/camera_select.py +0 -0
  68. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/capabilities.py +0 -0
  69. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/cleanup.py +0 -0
  70. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/cli.py +0 -0
  71. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/coach.py +0 -0
  72. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/coach_distributions.py +0 -0
  73. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/comment_identity.py +0 -0
  74. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/__init__.py +0 -0
  75. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/cards.py +0 -0
  76. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/cli.py +0 -0
  77. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/emitter.py +0 -0
  78. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/filler.py +0 -0
  79. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/free_cell.py +0 -0
  80. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/layout.py +0 -0
  81. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/manifest.py +0 -0
  82. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/mp4_grid.py +0 -0
  83. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/overlay_data.py +0 -0
  84. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/overlay_live.py +0 -0
  85. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/overlay_sprites.py +0 -0
  86. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/overlay_summary.py +0 -0
  87. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compare/project_loader.py +0 -0
  88. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/composition.py +0 -0
  89. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/compute.py +0 -0
  90. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/cross_align.py +0 -0
  91. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/csv_gen.py +0 -0
  92. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/ensemble_calibration.json +0 -0
  93. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/Antonio-OFL.txt +0 -0
  94. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/Antonio-VariableFont.ttf +0 -0
  95. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/BarlowCondensed-OFL.txt +0 -0
  96. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/BarlowCondensed-SemiBold.ttf +0 -0
  97. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/BebasNeue-OFL.txt +0 -0
  98. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/BebasNeue-Regular.ttf +0 -0
  99. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/IBMPlexMono-Bold.ttf +0 -0
  100. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/IBMPlexMono-OFL.txt +0 -0
  101. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/JetBrainsMono-Bold.ttf +0 -0
  102. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/JetBrainsMono-OFL.txt +0 -0
  103. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/Oswald-OFL.txt +0 -0
  104. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/Oswald-VariableFont.ttf +0 -0
  105. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/RobotoMono-OFL.txt +0 -0
  106. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/fonts/RobotoMono-VariableFont.ttf +0 -0
  107. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/brand.js +0 -0
  108. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/cell.js +0 -0
  109. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/credit.js +0 -0
  110. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/event.js +0 -0
  111. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/fit.js +0 -0
  112. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/hud.js +0 -0
  113. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_shared/identity.js +0 -0
  114. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/animated.html +0 -0
  115. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/broadcast-match.html +0 -0
  116. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/hud.html +0 -0
  117. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/lower-third.html +0 -0
  118. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/still.html +0 -0
  119. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/sting.html +0 -0
  120. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_starters/summary.html +0 -0
  121. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/circle.webp +0 -0
  122. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/cover.webp +0 -0
  123. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/dissolve.webp +0 -0
  124. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/fade.webp +0 -0
  125. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/fadeblack.webp +0 -0
  126. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/fadewhite.webp +0 -0
  127. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/hblur.webp +0 -0
  128. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/pixelize.webp +0 -0
  129. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/radial.webp +0 -0
  130. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/reveal.webp +0 -0
  131. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/slide.webp +0 -0
  132. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/smooth.webp +0 -0
  133. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/squeeze.webp +0 -0
  134. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/wind.webp +0 -0
  135. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/wipe.webp +0 -0
  136. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/_transitions/preview/zoomin.webp +0 -0
  137. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/look.json +0 -0
  138. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/closing-default.png +0 -0
  139. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/closing-rise.png +0 -0
  140. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/look.png +0 -0
  141. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/lower_third-default.png +0 -0
  142. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/lower_third-rise.png +0 -0
  143. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/overlay-minimal.webp +0 -0
  144. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/overlay-pips.webp +0 -0
  145. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/overlay-plate.webp +0 -0
  146. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/overlay-ticker.webp +0 -0
  147. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/overlay-timeline.webp +0 -0
  148. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/slate-default.png +0 -0
  149. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/slate-rise.png +0 -0
  150. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/title_page-default.png +0 -0
  151. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/title_page-rise.png +0 -0
  152. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/clean/preview/transition-wipe.webp +0 -0
  153. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/card-end-screen.html +0 -0
  154. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/card-rise.html +0 -0
  155. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/card.html +0 -0
  156. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/hud-minimal.html +0 -0
  157. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/hud-pips.html +0 -0
  158. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/hud-plate.html +0 -0
  159. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/hud-ticker.html +0 -0
  160. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/hud-timeline.html +0 -0
  161. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/look.json +0 -0
  162. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/closing-default.png +0 -0
  163. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/closing-end-screen.png +0 -0
  164. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/closing-rise.png +0 -0
  165. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/look.png +0 -0
  166. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/lower_third-default.png +0 -0
  167. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/lower_third-rise.png +0 -0
  168. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/overlay-minimal.webp +0 -0
  169. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/overlay-pips.webp +0 -0
  170. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/overlay-plate.webp +0 -0
  171. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/overlay-ticker.webp +0 -0
  172. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/overlay-timeline.webp +0 -0
  173. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/slate-default.png +0 -0
  174. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/slate-rise.png +0 -0
  175. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/title_page-default.png +0 -0
  176. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/title_page-rise.png +0 -0
  177. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/preview/transition-wipe.webp +0 -0
  178. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/sting-wipe.html +0 -0
  179. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/looks/splitsmith/thumbnail.html +0 -0
  180. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/share_card_fallback.png +0 -0
  181. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/templates/action-cut.yaml +0 -0
  182. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/templates/match-recap.yaml +0 -0
  183. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/voter_c_gbdt_handheld.onnx +0 -0
  184. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/voter_c_gbdt_headcam.onnx +0 -0
  185. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/data/voter_e_visual_probe.onnx +0 -0
  186. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/__init__.py +0 -0
  187. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/access_requests.py +0 -0
  188. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/account_identity.py +0 -0
  189. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/comments.py +0 -0
  190. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/desktop_commands.py +0 -0
  191. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/desktop_tokens.py +0 -0
  192. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/device_auth.py +0 -0
  193. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/email.py +0 -0
  194. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/engine.py +0 -0
  195. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/export_presets.py +0 -0
  196. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/job_backend.py +0 -0
  197. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/looks.py +0 -0
  198. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/magic_link.py +0 -0
  199. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/matches.py +0 -0
  200. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/migrations.py +0 -0
  201. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/models.py +0 -0
  202. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/profile.py +0 -0
  203. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/project_state.py +0 -0
  204. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/recent_projects.py +0 -0
  205. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/schema_diff.py +0 -0
  206. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/scoreboard_identity.py +0 -0
  207. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/share_guard.py +0 -0
  208. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/share_tokens.py +0 -0
  209. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/signup_policy.py +0 -0
  210. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/whats_new.py +0 -0
  211. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/workers.py +0 -0
  212. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/db/youtube_connections.py +0 -0
  213. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/derived.py +0 -0
  214. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/detection_merge.py +0 -0
  215. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/display_name.py +0 -0
  216. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/division.py +0 -0
  217. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/__init__.py +0 -0
  218. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/agc_state.py +0 -0
  219. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/api.py +0 -0
  220. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/backend.py +0 -0
  221. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/calibration.py +0 -0
  222. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/clap_mel.py +0 -0
  223. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/decoder.py +0 -0
  224. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/features.py +0 -0
  225. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/fixtures.py +0 -0
  226. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/model_bundle.py +0 -0
  227. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/onnx_session.py +0 -0
  228. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/tta.py +0 -0
  229. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/visual.py +0 -0
  230. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ensemble/voters.py +0 -0
  231. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/export_naming.py +0 -0
  232. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/export_presets.py +0 -0
  233. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/export_preview.py +0 -0
  234. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/export_runs.py +0 -0
  235. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/fcp7xml_render.py +0 -0
  236. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/fcpxml_gen.py +0 -0
  237. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/fingerprint.py +0 -0
  238. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/fixture_schema.py +0 -0
  239. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/fonts.py +0 -0
  240. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/footage_sort.py +0 -0
  241. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/identity.py +0 -0
  242. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/lab/__init__.py +0 -0
  243. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/lab/core.py +0 -0
  244. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/lab/inventory.py +0 -0
  245. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/lab/model_map.py +0 -0
  246. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/lab/promote.py +0 -0
  247. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/lab/review_signals.py +0 -0
  248. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/lab/secondary.py +0 -0
  249. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/lab/snap_window.py +0 -0
  250. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/lab/sweeps.py +0 -0
  251. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/lab_cli.py +0 -0
  252. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/logo_placeholder.py +0 -0
  253. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/logo_spots.py +0 -0
  254. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/look_brand.py +0 -0
  255. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/look_motion.py +0 -0
  256. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/look_sandbox.py +0 -0
  257. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/look_sting.py +0 -0
  258. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/look_store.py +0 -0
  259. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/look_template.py +0 -0
  260. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/looks.py +0 -0
  261. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/looks_cli.py +0 -0
  262. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/match_cli.py +0 -0
  263. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/match_model.py +0 -0
  264. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/match_project.py +0 -0
  265. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/match_registry.py +0 -0
  266. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/match_summary.py +0 -0
  267. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/match_trims.py +0 -0
  268. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/mcp/__init__.py +0 -0
  269. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/mcp/__main__.py +0 -0
  270. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/mcp/detect_tools.py +0 -0
  271. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/mcp/export_tools.py +0 -0
  272. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/mcp/sandbox.py +0 -0
  273. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/mcp/server.py +0 -0
  274. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/mcp/tools.py +0 -0
  275. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/mcp/write_tools.py +0 -0
  276. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/media_check.py +0 -0
  277. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/model_cli.py +0 -0
  278. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/models/__init__.py +0 -0
  279. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/models/cache.py +0 -0
  280. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/models/download.py +0 -0
  281. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/models/errors.py +0 -0
  282. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/models/manifest.py +0 -0
  283. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/models/registry.py +0 -0
  284. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/mp4_render.py +0 -0
  285. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/observability.py +0 -0
  286. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_card.py +0 -0
  287. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_clock.py +0 -0
  288. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_html.py +0 -0
  289. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_hud.py +0 -0
  290. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_hud_render.py +0 -0
  291. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_layout.py +0 -0
  292. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_raster.py +0 -0
  293. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_render.py +0 -0
  294. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_single.py +0 -0
  295. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_still.py +0 -0
  296. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_summary_cell.py +0 -0
  297. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_text.py +0 -0
  298. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/overlay_theme.py +0 -0
  299. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/own_fonts.py +0 -0
  300. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/palette_sources.py +0 -0
  301. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/proxy.py +0 -0
  302. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/queue.py +0 -0
  303. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/relink.py +0 -0
  304. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/report.py +0 -0
  305. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/rise_foot.py +0 -0
  306. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/runtime.py +0 -0
  307. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/safe_area.py +0 -0
  308. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/segment_cache.py +0 -0
  309. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/share_card.py +0 -0
  310. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/share_card_html.py +0 -0
  311. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/share_card_render.py +0 -0
  312. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/shooter_book.py +0 -0
  313. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/shot_detect.py +0 -0
  314. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/shot_id.py +0 -0
  315. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/shot_refine.py +0 -0
  316. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/source_cache.py +0 -0
  317. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/stage_summary_data.py +0 -0
  318. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/storage.py +0 -0
  319. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/summary_card.py +0 -0
  320. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/summary_template.py +0 -0
  321. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/__init__.py +0 -0
  322. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/auto.py +0 -0
  323. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/auto_state.py +0 -0
  324. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/base.py +0 -0
  325. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/beep_snippets.py +0 -0
  326. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/client.py +0 -0
  327. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/commands.py +0 -0
  328. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/docs.py +0 -0
  329. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/merge.py +0 -0
  330. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/migrate.py +0 -0
  331. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/plan.py +0 -0
  332. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/pull.py +0 -0
  333. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/push.py +0 -0
  334. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/reconcile.py +0 -0
  335. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/run.py +0 -0
  336. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/state.py +0 -0
  337. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/sync/verify.py +0 -0
  338. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/system_check.py +0 -0
  339. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/templates.py +0 -0
  340. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/thumbnail.py +0 -0
  341. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/thumbnail_card.py +0 -0
  342. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/trim.py +0 -0
  343. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/__init__.py +0 -0
  344. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/access_gate.py +0 -0
  345. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/account_backfill.py +0 -0
  346. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/admin_access_api.py +0 -0
  347. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/audio.py +0 -0
  348. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/auto_sync.py +0 -0
  349. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/beep_tone_check.py +0 -0
  350. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/capabilities.py +0 -0
  351. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/command_runner.py +0 -0
  352. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/comments.py +0 -0
  353. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/device_auth_api.py +0 -0
  354. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/embedded.py +0 -0
  355. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/export_presets_api.py +0 -0
  356. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/export_preview_api.py +0 -0
  357. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/export_storage.py +0 -0
  358. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/exports.py +0 -0
  359. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/exports_api.py +0 -0
  360. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/footage_sort_api.py +0 -0
  361. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/http_errors.py +0 -0
  362. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/identity_media.py +0 -0
  363. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/job_journal.py +0 -0
  364. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/jobs.py +0 -0
  365. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/lab_token.py +0 -0
  366. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/logging_setup.py +0 -0
  367. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/looks_api.py +0 -0
  368. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/match_delete.py +0 -0
  369. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/match_exports.py +0 -0
  370. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/me_identity_api.py +0 -0
  371. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/palette_api.py +0 -0
  372. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/presence.py +0 -0
  373. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/render_bound.py +0 -0
  374. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/render_upload.py +0 -0
  375. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/route_scope.py +0 -0
  376. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/__init__.py +0 -0
  377. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/cache.py +0 -0
  378. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/http.py +0 -0
  379. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/local.py +0 -0
  380. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/models.py +0 -0
  381. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/protocol.py +0 -0
  382. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/scoreboard/reconcile.py +0 -0
  383. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/server.py +0 -0
  384. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/share_og.py +0 -0
  385. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/shooter_move.py +0 -0
  386. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/shooter_roster.py +0 -0
  387. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/stage_edit.py +0 -0
  388. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/sync_api.py +0 -0
  389. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/system_api.py +0 -0
  390. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/whats_new_api.py +0 -0
  391. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui/youtube_api.py +0 -0
  392. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/.gitignore +0 -0
  393. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/01-clean-DUptHvAy.png +0 -0
  394. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/02-go3s-compressed-BR5Rjwao.png +0 -0
  395. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/03-noisy-WRXCitNT.png +0 -0
  396. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/04-separated-lead-in-CoyoPMjZ.png +0 -0
  397. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/05-continuous-lead-in-WSHOoqaO.png +0 -0
  398. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/06-earlier-sound-DJQGeRTD.png +0 -0
  399. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/07-snap-late-Gwr9mBw-.png +0 -0
  400. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Account-CLh0llEc.js +0 -0
  401. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/AdminAccess-BBis3R_b.js +0 -0
  402. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/AdminWorkers-tZgH7wab.js +0 -0
  403. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Audit-DPZUliiN.js +0 -0
  404. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/BeepSection-Bdw1kYt8.js +0 -0
  405. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Breakdown-BgGKQFlu.js +0 -0
  406. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Coach-j2PumSHg.js +0 -0
  407. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/CodeEditor-PQTIbscD.js +0 -0
  408. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Compare-D6Kq5pCJ.js +0 -0
  409. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/CoverageSelect-CLHLzhGZ.js +0 -0
  410. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/CreateMatch-DOC9PifY.js +0 -0
  411. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/DataTable-2x_EqaP3.js +0 -0
  412. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Design-fT7sitU4.js +0 -0
  413. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/DesktopApprove-DWPs0GJI.js +0 -0
  414. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/DevCorpus-B6DGdqQm.js +0 -0
  415. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/DevFixtureDetail-DxRHUQI_.js +0 -0
  416. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/DevModels-BlRpsPzs.js +0 -0
  417. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/DevRetrain-C6xIL6kz.js +0 -0
  418. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/DevReviewQueue-DyybJWfv.js +0 -0
  419. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/DevValidate-BAXvSQhb.js +0 -0
  420. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Export-kNVQpcgS.js +0 -0
  421. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/FootageSort-Cnef1yZu.js +0 -0
  422. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Home-BI4sSOOp.js +0 -0
  423. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Ingest-B2zSjNf2.js +0 -0
  424. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Kbd-CgkRIm2Z.js +0 -0
  425. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Kicker-Dt3rfRsf.js +0 -0
  426. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Login-CU8BiDnX.js +0 -0
  427. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/MergeMatches-BdTutPIs.js +0 -0
  428. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/MobileAudit-CUSh9x3Q.js +0 -0
  429. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/MobileBeepReview-B0BsjAz7.js +0 -0
  430. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/MobileBreakdown-Dlek0zq1.js +0 -0
  431. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/MobileConfirmSheet-CxpduxzD.js +0 -0
  432. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Pick-DJnhOmcx.js +0 -0
  433. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/PipView-DkIYI9Eu.js +0 -0
  434. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/PipelineDots-DeRxX4Bf.js +0 -0
  435. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/PromoteReview-oyQ_P3of.js +0 -0
  436. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/ResultRow-DzEQs1rB.js +0 -0
  437. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Results-CFbwnm9w.js +0 -0
  438. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/ResultsStage-B9eQFmll.js +0 -0
  439. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Review-QR7Mbdcc.js +0 -0
  440. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Section-CgQkRi39.js +0 -0
  441. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Segmented-CMiK3LNJ.js +0 -0
  442. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/ShareDialog-DsXl2Knz.js +0 -0
  443. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Shooters-CT07ociZ.js +0 -0
  444. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Snackbar-i92yYUsG.js +0 -0
  445. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/StageViewer-Bzbg-Ua4.js +0 -0
  446. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Stat-BXXQWAli.js +0 -0
  447. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/StatusPill-DOEWk1i5.js +0 -0
  448. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/TakeOverview-fTB5VJW-.js +0 -0
  449. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/Waveform-BMapfhDn.js +0 -0
  450. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/WaveformTrack-CgIm9BWj.js +0 -0
  451. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/You-BdYa5kPk.js +0 -0
  452. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/access-Bq71eJ7V.js +0 -0
  453. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-500-normal-BdTtxno5.woff2 +0 -0
  454. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-500-normal-BeNL9t92.woff +0 -0
  455. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-600-normal-EPyebSqZ.woff +0 -0
  456. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-600-normal-Yrt7g9vE.woff2 +0 -0
  457. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-700-normal-BY3mCh47.woff +0 -0
  458. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-700-normal-DSH-lEDG.woff2 +0 -0
  459. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-500-normal-CVAgECk3.woff2 +0 -0
  460. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-500-normal-D2GogNzH.woff +0 -0
  461. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-600-normal-CvImt78E.woff +0 -0
  462. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-600-normal-DVBYADYa.woff2 +0 -0
  463. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-700-normal-BdSkr58W.woff +0 -0
  464. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/antonio-latin-ext-700-normal-D-dvgqjr.woff2 +0 -0
  465. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/arrow-left-C-HLNSDL.js +0 -0
  466. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/arrow-right-B2jSqaoa.js +0 -0
  467. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/arrow-up-B8m-gFhe.js +0 -0
  468. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/badge-CNijtGcz.js +0 -0
  469. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/chevron-left-C0E4cG9R.js +0 -0
  470. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/circle-alert-DPxbqXWh.js +0 -0
  471. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/circle-check-Ca4tMh-Y.js +0 -0
  472. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/clock-Crl4rKdj.js +0 -0
  473. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/closing-card-DK2HIYe-.png +0 -0
  474. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/corpusFilter-h4iBsiio.js +0 -0
  475. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/fixtureDoc-CKUgPLae.js +0 -0
  476. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/fixtureReview-LEgX6YkS.js +0 -0
  477. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/folder-8rilcLkD.js +0 -0
  478. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/footageSort-DWAPqAyU.js +0 -0
  479. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-400-normal-Cn3-e5nR.woff +0 -0
  480. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-400-normal-DXusLSnH.woff2 +0 -0
  481. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-500-normal-CBpO5n4G.woff +0 -0
  482. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-500-normal-NWpm63d5.woff2 +0 -0
  483. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-600-normal-BeW5VFD_.woff2 +0 -0
  484. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-600-normal-DjSi8uLI.woff +0 -0
  485. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-700-normal-BSHy2ewF.woff2 +0 -0
  486. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-700-normal-ByQXRVdm.woff +0 -0
  487. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-ext-500-normal-DWocS6Us.woff +0 -0
  488. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-ext-600-normal-DokWo2US.woff +0 -0
  489. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-cyrillic-ext-700-normal-Bkix3SrV.woff +0 -0
  490. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-400-normal-B40WzpMT.woff2 +0 -0
  491. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-400-normal-cWY99Cna.woff +0 -0
  492. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-500-normal-CHEM4JuE.woff +0 -0
  493. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-500-normal-CTWBw9NS.woff2 +0 -0
  494. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-600-normal-BeQEdSAO.woff +0 -0
  495. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-600-normal-CSETrqM2.woff2 +0 -0
  496. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-700-normal-CFi8mLqe.woff2 +0 -0
  497. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-700-normal-RGxhsL9r.woff +0 -0
  498. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-400-normal-CND6cjiG.woff2 +0 -0
  499. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-400-normal-DHhjwYCZ.woff +0 -0
  500. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-500-normal-BovoTgeE.woff2 +0 -0
  501. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-500-normal-MJioTMEP.woff +0 -0
  502. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-600-normal-CVFbg5dS.woff2 +0 -0
  503. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-600-normal-hvJIbBav.woff +0 -0
  504. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-700-normal-BnofTsEi.woff2 +0 -0
  505. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-latin-ext-700-normal-BwiYGq1U.woff +0 -0
  506. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-vietnamese-400-normal-CfO6U8f5.woff +0 -0
  507. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-vietnamese-500-normal-DUFFHuDl.woff +0 -0
  508. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-vietnamese-600-normal-BFUgqsz8.woff2 +0 -0
  509. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-vietnamese-600-normal-DpQesccB.woff +0 -0
  510. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/geist-vietnamese-700-normal-DOqkMreX.woff +0 -0
  511. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/hard-drive-AP_Ntz7P.js +0 -0
  512. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/inbox-CBpgLrDz.js +0 -0
  513. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/index-BtOcvtK9.css +0 -0
  514. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/index-D4eGCWoK.js +0 -0
  515. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  516. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
  517. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff +0 -0
  518. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
  519. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-600-normal-8K4wrrwR.woff +0 -0
  520. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-cyrillic-600-normal-EVf6-Yzo.woff2 +0 -0
  521. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
  522. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  523. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff +0 -0
  524. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
  525. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-600-normal-H7WoG9Et.woff2 +0 -0
  526. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-greek-600-normal-mc2nkWzM.woff +0 -0
  527. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  528. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  529. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  530. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  531. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff +0 -0
  532. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 +0 -0
  533. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  534. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
  535. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
  536. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff +0 -0
  537. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2 +0 -0
  538. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-latin-ext-600-normal-DObL3zCW.woff +0 -0
  539. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
  540. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff +0 -0
  541. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/jetbrains-mono-vietnamese-600-normal-OWROknRo.woff +0 -0
  542. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/keyboard-ryFPwHW9.js +0 -0
  543. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/link-2-ETHE6UGT.js +0 -0
  544. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/list-checks-Bm57hNLY.js +0 -0
  545. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/loader-circle-rbGOlDnR.js +0 -0
  546. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/match-summary-B5irSy24.png +0 -0
  547. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/match-summary-grid-BDvt3pYA.png +0 -0
  548. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/matches-NsN5m6Lk.js +0 -0
  549. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/minus-DidjEG0R.js +0 -0
  550. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/overlay-DDeiqTuw.png +0 -0
  551. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/overview-D1bzUkIA.js +0 -0
  552. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/pencil-CHPja3gM.js +0 -0
  553. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/pip-CjCV0uZd.js +0 -0
  554. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/play-Clmgdpqx.js +0 -0
  555. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/plus-YFOBfRSQ.js +0 -0
  556. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/refresh-cw-BGbWSUhG.js +0 -0
  557. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/reticle--DwuFsQi.js +0 -0
  558. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/reviewZoom-oKqWnL2r.js +0 -0
  559. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/riseFoot-D8pq2oXv.js +0 -0
  560. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/save-B4XyDXsw.js +0 -0
  561. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/search-BzhjRxeq.js +0 -0
  562. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/settings-2-BQPcP3j4.js +0 -0
  563. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/shareCameras-Cw3Zrgus.js +0 -0
  564. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/slugify-DeXwm6AT.js +0 -0
  565. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/splits-DqQruSda.js +0 -0
  566. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/stage-card-lower-third-BTKoaATU.png +0 -0
  567. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/stage-card-slate-BvJFrRHI.png +0 -0
  568. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/summary-hold-Bj0IZYUI.png +0 -0
  569. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/timelineView-D4X8CrMB.js +0 -0
  570. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/title-page-C5ovl-0L.png +0 -0
  571. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/trash-2-D2DlSwoQ.js +0 -0
  572. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/undo-2-DV5SQ0VQ.js +0 -0
  573. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/useActiveShare-CQFff9UF.js +0 -0
  574. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/useDesktopCommands-CaGrI1sx.js +0 -0
  575. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/useLabRun-DJszoI3o.js +0 -0
  576. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/usePip-C-FagHb8.js +0 -0
  577. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/usePrimaryAudio-BppSVcJw.js +0 -0
  578. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/useScrubSource-PbI8QdWd.js +0 -0
  579. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/useYouTubeLogin-D4fd8eQh.js +0 -0
  580. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/you-CT-1EjMG.js +0 -0
  581. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/zoom-in-BVKLJJ_F.js +0 -0
  582. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/assets/zoomKeys-o6PJRMDw.js +0 -0
  583. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/dist/index.html +0 -0
  584. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/eslint.config.js +0 -0
  585. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/index.html +0 -0
  586. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/package.json +0 -0
  587. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/pnpm-lock.yaml +0 -0
  588. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/scripts/grandfather-visual-budget.mjs +0 -0
  589. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.account.test.tsx +0 -0
  590. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.audit.test.tsx +0 -0
  591. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.hosted.test.tsx +0 -0
  592. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.modegate.test.tsx +0 -0
  593. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.pickup.test.tsx +0 -0
  594. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.share.test.tsx +0 -0
  595. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.routes.test.tsx +0 -0
  596. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/App.tsx +0 -0
  597. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/closing-card.png +0 -0
  598. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/match-summary-grid.png +0 -0
  599. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/match-summary.png +0 -0
  600. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/none.png +0 -0
  601. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/overlay.png +0 -0
  602. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/stage-card-lower-third.png +0 -0
  603. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/stage-card-slate.png +0 -0
  604. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/summary-hold.png +0 -0
  605. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/title-page.png +0 -0
  606. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/transition-cut.png +0 -0
  607. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/transition-static.png +0 -0
  608. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/look/transition-zoom.png +0 -0
  609. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/01-clean.png +0 -0
  610. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/02-go3s-compressed.png +0 -0
  611. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/03-noisy.png +0 -0
  612. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/04-separated-lead-in.png +0 -0
  613. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/05-continuous-lead-in.png +0 -0
  614. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/06-earlier-sound.png +0 -0
  615. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/assets/shot-time/07-snap-late.png +0 -0
  616. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/AccountChip.mobile.test.tsx +0 -0
  617. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/AccountChip.tsx +0 -0
  618. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/AppShell.tsx +0 -0
  619. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/AuditControls.tsx +0 -0
  620. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/BeepSection.tsx +0 -0
  621. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/CleanupDialog.test.tsx +0 -0
  622. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/CleanupDialog.tsx +0 -0
  623. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ConfirmDialog.tsx +0 -0
  624. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/DesktopOnlyNotice.tsx +0 -0
  625. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/DropGuard.test.tsx +0 -0
  626. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/DropGuard.tsx +0 -0
  627. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/FolderPicker.test.tsx +0 -0
  628. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/FolderPicker.tsx +0 -0
  629. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/HelpOverlay.tsx +0 -0
  630. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/HitlQueuePanel.tsx +0 -0
  631. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/HostedUploadModal.test.tsx +0 -0
  632. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/HostedUploadModal.tsx +0 -0
  633. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/Jobs.tsx +0 -0
  634. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ListDrawer.tsx +0 -0
  635. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/MarkerGlyph.tsx +0 -0
  636. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/MarkerLayer.test.tsx +0 -0
  637. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/MarkerLayer.tsx +0 -0
  638. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/MobileConfirmSheet.tsx +0 -0
  639. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/RelinkDialog.tsx +0 -0
  640. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/SettingProvenance.tsx +0 -0
  641. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ShooterScopedRoute.tsx +0 -0
  642. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ShotStepper.tsx +0 -0
  643. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/Snackbar.test.tsx +0 -0
  644. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/Snackbar.tsx +0 -0
  645. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/StageTimeSection.tsx +0 -0
  646. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/SweepsCard.tsx +0 -0
  647. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/UploadDock.tsx +0 -0
  648. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/UploadQueueSummary.tsx +0 -0
  649. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/VideoPanel.error.test.tsx +0 -0
  650. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/VideoPanel.firstFrame.test.tsx +0 -0
  651. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/VideoPanel.proxy.test.tsx +0 -0
  652. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/VideoPanel.tsx +0 -0
  653. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/Waveform.tsx +0 -0
  654. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/AccountMenu.test.tsx +0 -0
  655. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/AccountMenu.tsx +0 -0
  656. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/DesktopTokensSection.test.tsx +0 -0
  657. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/DesktopTokensSection.tsx +0 -0
  658. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/DeviceLoginDialog.test.tsx +0 -0
  659. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/DeviceLoginDialog.tsx +0 -0
  660. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/HostedAccountChip.hosted.test.tsx +0 -0
  661. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/HostedAccountChip.test.tsx +0 -0
  662. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/HostedAccountChip.tsx +0 -0
  663. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/YouTubeSection.test.tsx +0 -0
  664. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/account/YouTubeSection.tsx +0 -0
  665. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/admin/RegisterWorkerSheet.tsx +0 -0
  666. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AnomalyChips.test.tsx +0 -0
  667. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AnomalyChips.tsx +0 -0
  668. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AnomalyPins.test.tsx +0 -0
  669. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AnomalyPins.tsx +0 -0
  670. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AuditChrome.test.tsx +0 -0
  671. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/AuditFooter.tsx +0 -0
  672. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepPreview.tsx +0 -0
  673. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepReticle.test.tsx +0 -0
  674. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepReticle.tsx +0 -0
  675. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepStep.remount.test.tsx +0 -0
  676. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepStep.test.tsx +0 -0
  677. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepStep.tsx +0 -0
  678. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepTimeline.test.tsx +0 -0
  679. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/BeepTimeline.tsx +0 -0
  680. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/CamGridModal.tsx +0 -0
  681. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/CamSyncPill.tsx +0 -0
  682. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/CurrentShotLine.tsx +0 -0
  683. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/MultiCamColumn.test.tsx +0 -0
  684. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/MultiCamColumn.tsx +0 -0
  685. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/PrereqGate.tsx +0 -0
  686. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/ShotList.tsx +0 -0
  687. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/SpectrogramTrack.test.tsx +0 -0
  688. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/SpectrogramTrack.tsx +0 -0
  689. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/TransportLine.tsx +0 -0
  690. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/ActionArea.tsx +0 -0
  691. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/AuditTransport.tsx +0 -0
  692. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/CameraStack.tsx +0 -0
  693. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/JumpSheet.test.tsx +0 -0
  694. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/JumpSheet.tsx +0 -0
  695. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/WrappedWaveform.test.tsx +0 -0
  696. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/WrappedWaveform.tsx +0 -0
  697. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/ZoomLane.test.tsx +0 -0
  698. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/ZoomLane.tsx +0 -0
  699. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/audit/mobile/footer.test.tsx +0 -0
  700. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/breakdown/mobile/EdgePad.tsx +0 -0
  701. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/breakdown/mobile/FocusStrip.tsx +0 -0
  702. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/breakdown/mobile/PhoneVideo.tsx +0 -0
  703. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/breakdown/mobile/mobile.test.tsx +0 -0
  704. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/BandSplitter.test.tsx +0 -0
  705. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/BandSplitter.tsx +0 -0
  706. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/BreakdownInspector.tsx +0 -0
  707. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/Coach.components.test.tsx +0 -0
  708. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/CoachShotTable.tsx +0 -0
  709. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/EventCard.tsx +0 -0
  710. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/EventList.tsx +0 -0
  711. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/IntervalClassControl.tsx +0 -0
  712. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/LaneEditor.test.tsx +0 -0
  713. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/LaneEditor.tsx +0 -0
  714. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/ReviewShotList.tsx +0 -0
  715. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/SaveNotice.tsx +0 -0
  716. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/SelectedRegionCard.tsx +0 -0
  717. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/ShotHeading.tsx +0 -0
  718. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/ShotIntervalCard.tsx +0 -0
  719. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/StageBand.tsx +0 -0
  720. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/StageNoteCard.tsx +0 -0
  721. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/StageStrip.test.tsx +0 -0
  722. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/StageStrip.tsx +0 -0
  723. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/StageViewer.tsx +0 -0
  724. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/TimeBudgetBar.tsx +0 -0
  725. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/TimeBudgetCard.tsx +0 -0
  726. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/laneDrag.test.ts +0 -0
  727. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/coach/laneDrag.ts +0 -0
  728. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/comments/CommentPanel.test.tsx +0 -0
  729. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/comments/CommentPanel.tsx +0 -0
  730. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/desktop/DesktopCommandLine.tsx +0 -0
  731. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/desktop/DesktopRequestsSheet.test.tsx +0 -0
  732. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/desktop/DesktopRequestsSheet.tsx +0 -0
  733. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/DeveloperShell.matchContext.test.tsx +0 -0
  734. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/DeveloperShell.test.tsx +0 -0
  735. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/DeveloperShell.tsx +0 -0
  736. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/CompareModelsPanel.tsx +0 -0
  737. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/CorpusFlow.tsx +0 -0
  738. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/CorpusMap.tsx +0 -0
  739. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/FixtureSheet.tsx +0 -0
  740. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/HoldoutPanel.tsx +0 -0
  741. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/ParametersPanel.tsx +0 -0
  742. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/RankerPanel.tsx +0 -0
  743. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/developer/models/VersionTimeline.tsx +0 -0
  744. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/BrandPicker.test.tsx +0 -0
  745. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/BrandPicker.tsx +0 -0
  746. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/BrandingField.test.tsx +0 -0
  747. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/BrandingField.tsx +0 -0
  748. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/CodeEditor.tsx +0 -0
  749. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/CutGroup.tsx +0 -0
  750. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/DetailsGroup.test.tsx +0 -0
  751. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/DetailsGroup.tsx +0 -0
  752. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/DraftPreview.test.tsx +0 -0
  753. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/ExportHistory.test.tsx +0 -0
  754. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/ExportHistory.tsx +0 -0
  755. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/ExportWarnings.test.tsx +0 -0
  756. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/ExportWarnings.tsx +0 -0
  757. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/FontPicker.test.tsx +0 -0
  758. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/FontPicker.tsx +0 -0
  759. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LogoPlanField.test.tsx +0 -0
  760. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LogoPlanField.tsx +0 -0
  761. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LogoSpotsSwitch.tsx +0 -0
  762. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookAdvanced.test.tsx +0 -0
  763. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookAdvanced.tsx +0 -0
  764. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookEditor.tsx +0 -0
  765. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookGallery.test.tsx +0 -0
  766. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookGallery.tsx +0 -0
  767. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookGroup.tsx +0 -0
  768. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookHealth.test.tsx +0 -0
  769. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/LookHealth.tsx +0 -0
  770. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/OutputGroup.tsx +0 -0
  771. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PaletteSuggestions.test.tsx +0 -0
  772. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PaletteSuggestions.tsx +0 -0
  773. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PresetRow.test.tsx +0 -0
  774. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PresetRow.tsx +0 -0
  775. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PreviewPane.test.tsx +0 -0
  776. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/PreviewPane.tsx +0 -0
  777. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/SavePresetSheet.tsx +0 -0
  778. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/Seconds.tsx +0 -0
  779. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/Section.tsx +0 -0
  780. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/SelectField.tsx +0 -0
  781. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/StageTable.tsx +0 -0
  782. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/TemplateEditor.test.tsx +0 -0
  783. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/TemplateEditor.tsx +0 -0
  784. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/YouTubeAccessSheet.test.tsx +0 -0
  785. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/YouTubeAccessSheet.tsx +0 -0
  786. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/YouTubeConnect.test.tsx +0 -0
  787. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/YouTubeConnect.tsx +0 -0
  788. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/useYouTubeLogin.test.tsx +0 -0
  789. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/export/useYouTubeLogin.ts +0 -0
  790. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/AddShooterSheet.tsx +0 -0
  791. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/CamerasPanel.tsx +0 -0
  792. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/ClipSheet.tsx +0 -0
  793. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/CoverageMatrix.tsx +0 -0
  794. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/FileChip.tsx +0 -0
  795. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/Footage.components.test.tsx +0 -0
  796. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/FootageCards.tsx +0 -0
  797. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/Sheets.test.tsx +0 -0
  798. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/ShootersPanel.test.tsx +0 -0
  799. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/ShootersPanel.tsx +0 -0
  800. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/footage/UnassignedPanel.tsx +0 -0
  801. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ingest/CoverageSelect.tsx +0 -0
  802. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ingest/IngestMoveBanner.tsx +0 -0
  803. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ingest/RoleToggles.tsx +0 -0
  804. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/CandidateTable.tsx +0 -0
  805. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/DiffList.tsx +0 -0
  806. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/KeyboardLegend.tsx +0 -0
  807. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/LabelBreakdown.tsx +0 -0
  808. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/LabelDropdown.test.tsx +0 -0
  809. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/LabelDropdown.tsx +0 -0
  810. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/Pin.tsx +0 -0
  811. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/PromoteFromAnchorPanel.tsx +0 -0
  812. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/PromoteStagesPanel.tsx +0 -0
  813. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/SnippetPlayer.tsx +0 -0
  814. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/StepThroughPanel.test.tsx +0 -0
  815. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/StepThroughPanel.tsx +0 -0
  816. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/TuningPanel.tsx +0 -0
  817. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/VoterChips.tsx +0 -0
  818. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/VoterRecallTable.tsx +0 -0
  819. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/ZoomedWaveform.tsx +0 -0
  820. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/corpusFilter.test.ts +0 -0
  821. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/corpusFilter.ts +0 -0
  822. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/labAudio.ts +0 -0
  823. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/labPalette.test.ts +0 -0
  824. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/labPalette.ts +0 -0
  825. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/labels.ts +0 -0
  826. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/useLabRun.test.tsx +0 -0
  827. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/lab/useLabRun.ts +0 -0
  828. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/GlobalBar.hosted.test.tsx +0 -0
  829. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/GlobalBar.mobile.test.tsx +0 -0
  830. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/GlobalBar.test.tsx +0 -0
  831. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/GlobalBar.tsx +0 -0
  832. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/RootLayout.devRedirect.test.tsx +0 -0
  833. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/RootLayout.test.tsx +0 -0
  834. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/RootLayout.tsx +0 -0
  835. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/globalChrome.test.tsx +0 -0
  836. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/shellChromeContext.test.tsx +0 -0
  837. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/layout/shellChromeContext.tsx +0 -0
  838. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/BeepReviewRedirect.tsx +0 -0
  839. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/DefaultShooterRedirect.tsx +0 -0
  840. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/EditStagesDrawer.test.ts +0 -0
  841. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/EditStagesDrawer.tsx +0 -0
  842. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchShell.devFlip.test.tsx +0 -0
  843. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchShell.mobileAccount.test.tsx +0 -0
  844. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchShell.sidebarShortcut.test.tsx +0 -0
  845. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchShell.test.tsx +0 -0
  846. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchShell.tsx +0 -0
  847. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MatchSidebar.tsx +0 -0
  848. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/MobileNav.tsx +0 -0
  849. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/ShooterChipStrip.test.tsx +0 -0
  850. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/ShooterChipStrip.tsx +0 -0
  851. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/StageCompareLink.test.tsx +0 -0
  852. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/StageCompareLink.tsx +0 -0
  853. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/SyncCard.test.tsx +0 -0
  854. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/SyncCard.tsx +0 -0
  855. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/SyncSettingsDialog.test.tsx +0 -0
  856. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/SyncSettingsDialog.tsx +0 -0
  857. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/navItems.test.ts +0 -0
  858. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/match/navItems.tsx +0 -0
  859. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/overview/OverviewCards.tsx +0 -0
  860. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/overview/OverviewTable.test.tsx +0 -0
  861. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/overview/OverviewTable.tsx +0 -0
  862. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/render/CamOptionsPanel.test.tsx +0 -0
  863. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/render/CamOptionsPanel.tsx +0 -0
  864. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ReclassifySheet.test.tsx +0 -0
  865. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ReclassifySheet.tsx +0 -0
  866. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ResultsPlayer.moment.test.tsx +0 -0
  867. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ResultsPlayer.playall.test.tsx +0 -0
  868. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ResultsPlayer.swap.test.tsx +0 -0
  869. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ResultsPlayer.tsx +0 -0
  870. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/Scorecard.tsx +0 -0
  871. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ShareCameras.test.tsx +0 -0
  872. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ShareCameras.tsx +0 -0
  873. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ShareDialog.tsx +0 -0
  874. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ShotTicker.test.tsx +0 -0
  875. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/ShotTicker.tsx +0 -0
  876. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/SplitsCards.tsx +0 -0
  877. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/SplitsList.test.tsx +0 -0
  878. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/SplitsList.tsx +0 -0
  879. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/SplitsTable.test.tsx +0 -0
  880. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/SplitsTable.tsx +0 -0
  881. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/StageStats.test.tsx +0 -0
  882. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/results/StageStats.tsx +0 -0
  883. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/MobileWalk.test.tsx +0 -0
  884. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/MobileWalk.tsx +0 -0
  885. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/Strip.tsx +0 -0
  886. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/Walk.test.tsx +0 -0
  887. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/Walk.tsx +0 -0
  888. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/WalkGuide.tsx +0 -0
  889. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/review/useWalk.ts +0 -0
  890. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/scoreboard/CompetitorRow.tsx +0 -0
  891. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/scoreboard/ConnectMatchDialog.tsx +0 -0
  892. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/scoreboard/ResultRow.tsx +0 -0
  893. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/share/ShareShell.test.tsx +0 -0
  894. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/share/ShareShell.tsx +0 -0
  895. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/shooters/LogoGuide.test.tsx +0 -0
  896. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/shooters/LogoGuide.tsx +0 -0
  897. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/shooters/ShooterSheet.test.tsx +0 -0
  898. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/shooters/ShooterSheet.tsx +0 -0
  899. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/sort/ScrubThumb.test.tsx +0 -0
  900. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/sort/ScrubThumb.tsx +0 -0
  901. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/timeline/Timeline.test.tsx +0 -0
  902. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/timeline/Timeline.tsx +0 -0
  903. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/timeline/WaveformTrack.test.tsx +0 -0
  904. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/timeline/WaveformTrack.tsx +0 -0
  905. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/timeline/types.ts +0 -0
  906. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Avatar.identity.test.tsx +0 -0
  907. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/AvatarStack.tsx +0 -0
  908. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Brand.tsx +0 -0
  909. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Chip.test.tsx +0 -0
  910. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Chip.tsx +0 -0
  911. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/ContextBar.tsx +0 -0
  912. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/DataTable.test.tsx +0 -0
  913. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/DataTable.tsx +0 -0
  914. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/DisplayHeading.tsx +0 -0
  915. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Field.test.tsx +0 -0
  916. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Field.tsx +0 -0
  917. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/IconButton.tsx +0 -0
  918. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Kbd.tsx +0 -0
  919. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Kicker.tsx +0 -0
  920. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Label.test.tsx +0 -0
  921. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Label.tsx +0 -0
  922. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Menu.test.tsx +0 -0
  923. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Menu.tsx +0 -0
  924. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/ModeSwitch.tsx +0 -0
  925. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/PageHeader.test.tsx +0 -0
  926. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/PageHeader.tsx +0 -0
  927. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/PipelineDots.test.tsx +0 -0
  928. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/PipelineDots.tsx +0 -0
  929. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Portal.tsx +0 -0
  930. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/ProgressStrip.test.tsx +0 -0
  931. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/ProgressStrip.tsx +0 -0
  932. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Readout.tsx +0 -0
  933. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Segmented.test.tsx +0 -0
  934. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Segmented.tsx +0 -0
  935. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Sheet.tsx +0 -0
  936. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/ShotTimerShell.tsx +0 -0
  937. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/StageDot.tsx +0 -0
  938. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Stat.test.tsx +0 -0
  939. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Stat.tsx +0 -0
  940. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/StatusPill.tsx +0 -0
  941. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/Tick.tsx +0 -0
  942. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/badge.tsx +0 -0
  943. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/button.test.tsx +0 -0
  944. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/button.tsx +0 -0
  945. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/card.tsx +0 -0
  946. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/chipTicks.test.ts +0 -0
  947. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/chipTicks.ts +0 -0
  948. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/escapeConsumed.test.tsx +0 -0
  949. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/index.ts +0 -0
  950. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/ui/skeleton.tsx +0 -0
  951. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/useConfirm.tsx +0 -0
  952. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/video/PipView.test.tsx +0 -0
  953. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/video/PipView.tsx +0 -0
  954. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/whatsNew/WhatsNew.test.tsx +0 -0
  955. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/components/whatsNew/WhatsNew.tsx +0 -0
  956. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/access.test.ts +0 -0
  957. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/access.ts +0 -0
  958. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/adminAccess.test.ts +0 -0
  959. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/adminAccess.ts +0 -0
  960. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/anomalies.test.ts +0 -0
  961. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/anomalies.ts +0 -0
  962. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.coachPatch.test.ts +0 -0
  963. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.compareGrid.test.ts +0 -0
  964. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.exportBodies.test.ts +0 -0
  965. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.matchScoped.test.ts +0 -0
  966. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.stageCoachSeed.test.ts +0 -0
  967. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.takeBodies.test.ts +0 -0
  968. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.ts +0 -0
  969. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/api.videoStreamUrl.test.ts +0 -0
  970. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/apiErrors.test.ts +0 -0
  971. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-doc.test.ts +0 -0
  972. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-doc.ts +0 -0
  973. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-input.ts +0 -0
  974. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-next-step.ts +0 -0
  975. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-target.test.ts +0 -0
  976. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/audit-target.ts +0 -0
  977. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditBand.test.ts +0 -0
  978. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditBand.ts +0 -0
  979. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditConflict.test.ts +0 -0
  980. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditConflict.ts +0 -0
  981. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditKeys.test.ts +0 -0
  982. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditKeys.ts +0 -0
  983. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditPip.test.ts +0 -0
  984. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditPip.ts +0 -0
  985. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditStep.test.ts +0 -0
  986. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditStep.ts +0 -0
  987. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditVideoSrc.test.ts +0 -0
  988. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auditVideoSrc.ts +0 -0
  989. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/auth.tsx +0 -0
  990. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/authorAmbiguity.test.ts +0 -0
  991. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/authorAmbiguity.ts +0 -0
  992. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/authorKey.test.ts +0 -0
  993. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/authorKey.ts +0 -0
  994. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/beepFilter.test.ts +0 -0
  995. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/beepFilter.ts +0 -0
  996. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/beepQueue.test.ts +0 -0
  997. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/beepQueue.ts +0 -0
  998. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/beepTone.test.ts +0 -0
  999. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/beepTone.ts +0 -0
  1000. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/breakdown.test.ts +0 -0
  1001. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/breakdown.ts +0 -0
  1002. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/breakdownPrefs.ts +0 -0
  1003. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/camOptions.test.ts +0 -0
  1004. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/camOptions.ts +0 -0
  1005. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/camPlayback.test.ts +0 -0
  1006. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/camPlayback.ts +0 -0
  1007. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/cameraPrefs.test.ts +0 -0
  1008. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/cameraPrefs.ts +0 -0
  1009. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/cameraSwitch.test.ts +0 -0
  1010. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/cameraSwitch.ts +0 -0
  1011. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/capabilities.test.ts +0 -0
  1012. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/clipFps.test.ts +0 -0
  1013. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/clipFps.ts +0 -0
  1014. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/coachPatch.test.ts +0 -0
  1015. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/coachPatch.ts +0 -0
  1016. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/coachReview.test.ts +0 -0
  1017. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/coachReview.ts +0 -0
  1018. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/coalescedSeek.test.ts +0 -0
  1019. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/coalescedSeek.ts +0 -0
  1020. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/commentAnchor.test.ts +0 -0
  1021. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/commentAnchor.ts +0 -0
  1022. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/compareAudio.test.ts +0 -0
  1023. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/compareAudio.ts +0 -0
  1024. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/defaultShooter.ts +0 -0
  1025. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/desktopCommands.test.ts +0 -0
  1026. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/desktopCommands.ts +0 -0
  1027. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/deviceApproveStash.test.ts +0 -0
  1028. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/deviceApproveStash.ts +0 -0
  1029. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/dialogFocus.ts +0 -0
  1030. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/dragDepth.test.tsx +0 -0
  1031. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/dragDepth.ts +0 -0
  1032. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/edgeDrag.test.ts +0 -0
  1033. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/edgeDrag.ts +0 -0
  1034. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/events.test.ts +0 -0
  1035. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/events.ts +0 -0
  1036. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportDownloads.test.ts +0 -0
  1037. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportDownloads.ts +0 -0
  1038. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportLabels.test.ts +0 -0
  1039. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportLabels.ts +0 -0
  1040. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportPlan.test.ts +0 -0
  1041. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportPlan.ts +0 -0
  1042. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportPresets.test.ts +0 -0
  1043. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportPresets.ts +0 -0
  1044. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportPreview.test.ts +0 -0
  1045. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/exportPreview.ts +0 -0
  1046. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/features.test.ts +0 -0
  1047. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/features.ts +0 -0
  1048. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/firstFrame.ts +0 -0
  1049. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/fixtureDoc.corpus.test.ts +0 -0
  1050. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/fixtureDoc.test.ts +0 -0
  1051. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/fixtureDoc.ts +0 -0
  1052. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/fixtureReview.test.ts +0 -0
  1053. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/fixtureReview.ts +0 -0
  1054. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/focusWindow.test.ts +0 -0
  1055. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/focusWindow.ts +0 -0
  1056. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/footage.test.ts +0 -0
  1057. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/footage.ts +0 -0
  1058. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/footageSort.test.ts +0 -0
  1059. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/footageSort.ts +0 -0
  1060. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/format.test.ts +0 -0
  1061. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/format.ts +0 -0
  1062. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/identityMark.test.ts +0 -0
  1063. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/identityMark.ts +0 -0
  1064. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobBatch.test.ts +0 -0
  1065. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobBatch.ts +0 -0
  1066. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobLabels.test.ts +0 -0
  1067. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobLabels.ts +0 -0
  1068. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobs.batch.test.tsx +0 -0
  1069. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobs.retry.test.tsx +0 -0
  1070. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobs.settled.test.tsx +0 -0
  1071. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobs.strip.test.ts +0 -0
  1072. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/jobs.ts +0 -0
  1073. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/keyboard.ts +0 -0
  1074. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lazyPage.test.tsx +0 -0
  1075. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lazyPage.tsx +0 -0
  1076. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/logoPlan.test.ts +0 -0
  1077. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/logoPlan.ts +0 -0
  1078. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/logoSpots.ts +0 -0
  1079. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lookEditor.test.ts +0 -0
  1080. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lookEditor.ts +0 -0
  1081. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lookGallery.test.ts +0 -0
  1082. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lookGallery.ts +0 -0
  1083. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/lookHealth.ts +0 -0
  1084. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/looks.test.ts +0 -0
  1085. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/looks.ts +0 -0
  1086. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/matchDelete.test.ts +0 -0
  1087. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/matchDelete.ts +0 -0
  1088. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/matchHref.ts +0 -0
  1089. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/matches.test.ts +0 -0
  1090. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/matches.ts +0 -0
  1091. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/menuPlacement.test.ts +0 -0
  1092. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/menuPlacement.ts +0 -0
  1093. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/mobileAuditNav.test.ts +0 -0
  1094. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/mobileAuditNav.ts +0 -0
  1095. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/mode.tsx +0 -0
  1096. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/modelMap.test.ts +0 -0
  1097. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/modelMap.ts +0 -0
  1098. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/moment.test.ts +0 -0
  1099. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/moment.ts +0 -0
  1100. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/overlayStyle.test.ts +0 -0
  1101. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/overlayStyle.ts +0 -0
  1102. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/overview.test.ts +0 -0
  1103. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/overview.ts +0 -0
  1104. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/palette.test.ts +0 -0
  1105. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/palette.ts +0 -0
  1106. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/peak-snap.test.ts +0 -0
  1107. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/peak-snap.ts +0 -0
  1108. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pending.test.ts +0 -0
  1109. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pending.ts +0 -0
  1110. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/phoneCameraStack.test.ts +0 -0
  1111. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/phoneCameraStack.ts +0 -0
  1112. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pip.test.ts +0 -0
  1113. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pip.ts +0 -0
  1114. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pipPrefs.ts +0 -0
  1115. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pipSync.test.ts +0 -0
  1116. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/pipSync.ts +0 -0
  1117. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/platform.ts +0 -0
  1118. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/promoteDrift.test.ts +0 -0
  1119. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/promoteDrift.ts +0 -0
  1120. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/proposalQueue.test.ts +0 -0
  1121. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/proposalQueue.ts +0 -0
  1122. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/renderOptions.test.ts +0 -0
  1123. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/renderOptions.ts +0 -0
  1124. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/reticle.test.ts +0 -0
  1125. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/reticle.ts +0 -0
  1126. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/reviewZoom.test.ts +0 -0
  1127. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/reviewZoom.ts +0 -0
  1128. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/riseFoot.test.ts +0 -0
  1129. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/riseFoot.ts +0 -0
  1130. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/scrollWithin.test.ts +0 -0
  1131. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/scrollWithin.ts +0 -0
  1132. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/scrub-audio.test.ts +0 -0
  1133. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/scrub-audio.ts +0 -0
  1134. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/scrubSource.test.ts +0 -0
  1135. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/scrubSource.ts +0 -0
  1136. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shareCameras.test.ts +0 -0
  1137. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shareCameras.ts +0 -0
  1138. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shareView.ts +0 -0
  1139. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shellChrome.ts +0 -0
  1140. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shooters.test.ts +0 -0
  1141. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/shooters.ts +0 -0
  1142. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/slugify.test.ts +0 -0
  1143. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/slugify.ts +0 -0
  1144. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/splits.test.ts +0 -0
  1145. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/splits.ts +0 -0
  1146. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/splitsTable.sort.test.ts +0 -0
  1147. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/splitsTable.test.ts +0 -0
  1148. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/splitsTable.ts +0 -0
  1149. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageCameras.test.ts +0 -0
  1150. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageCameras.ts +0 -0
  1151. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageLink.test.ts +0 -0
  1152. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageLink.ts +0 -0
  1153. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageStatus.ts +0 -0
  1154. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageStrip.test.ts +0 -0
  1155. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/stageStrip.ts +0 -0
  1156. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/takeDamage.test.ts +0 -0
  1157. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/takeDamage.ts +0 -0
  1158. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/takes.ts +0 -0
  1159. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/templateEditor.test.ts +0 -0
  1160. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/templateEditor.ts +0 -0
  1161. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/timeBudget.test.ts +0 -0
  1162. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/timeBudget.ts +0 -0
  1163. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/timelinePrefs.test.ts +0 -0
  1164. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/timelinePrefs.ts +0 -0
  1165. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/timelineView.test.ts +0 -0
  1166. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/timelineView.ts +0 -0
  1167. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/uploadStats.test.ts +0 -0
  1168. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/uploadStats.ts +0 -0
  1169. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/uploads.refusal.test.tsx +0 -0
  1170. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/uploads.tsx +0 -0
  1171. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useActiveShare.test.tsx +0 -0
  1172. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useActiveShare.ts +0 -0
  1173. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useAuditPlayback.test.ts +0 -0
  1174. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useAuditPlayback.ts +0 -0
  1175. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useBandSplit.ts +0 -0
  1176. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useBeepQueue.test.tsx +0 -0
  1177. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useBeepQueue.ts +0 -0
  1178. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useDecodedAudio.ts +0 -0
  1179. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useDesktopCommands.ts +0 -0
  1180. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useDevFlipRedirect.test.tsx +0 -0
  1181. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useDevFlipRedirect.ts +0 -0
  1182. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useIsMobile.ts +0 -0
  1183. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useLooks.test.tsx +0 -0
  1184. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useLooks.ts +0 -0
  1185. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useNoteAutosave.test.ts +0 -0
  1186. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useNoteAutosave.ts +0 -0
  1187. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/usePip.ts +0 -0
  1188. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/usePrimaryAudio.test.ts +0 -0
  1189. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/usePrimaryAudio.ts +0 -0
  1190. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useScrubSource.test.tsx +0 -0
  1191. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useScrubSource.ts +0 -0
  1192. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useShareCameraData.ts +0 -0
  1193. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useShortViewport.ts +0 -0
  1194. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useStageEvents.test.tsx +0 -0
  1195. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useStageEvents.ts +0 -0
  1196. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useStageWorkspace.ts +0 -0
  1197. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/useWhatsNew.ts +0 -0
  1198. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/utils.ts +0 -0
  1199. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/walk.test.ts +0 -0
  1200. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/walk.ts +0 -0
  1201. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/whatsNew.test.ts +0 -0
  1202. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/whatsNew.ts +0 -0
  1203. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/you.test.ts +0 -0
  1204. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/you.ts +0 -0
  1205. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/youtubeAccess.ts +0 -0
  1206. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/youtubeRows.test.ts +0 -0
  1207. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/youtubeRows.ts +0 -0
  1208. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/zoomKeys.test.ts +0 -0
  1209. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/lib/zoomKeys.ts +0 -0
  1210. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/main.tsx +0 -0
  1211. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Account.test.tsx +0 -0
  1212. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Account.tsx +0 -0
  1213. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/AdminAccess.test.tsx +0 -0
  1214. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/AdminAccess.tsx +0 -0
  1215. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/AdminWorkers.test.tsx +0 -0
  1216. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/AdminWorkers.tsx +0 -0
  1217. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.fixture.test.tsx +0 -0
  1218. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.recheck.test.tsx +0 -0
  1219. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.refusal.test.tsx +0 -0
  1220. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.reload.test.tsx +0 -0
  1221. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.seat.test.tsx +0 -0
  1222. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.timeline.test.tsx +0 -0
  1223. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Audit.tsx +0 -0
  1224. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Breakdown.navCount.test.tsx +0 -0
  1225. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Breakdown.regions.test.tsx +0 -0
  1226. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Breakdown.test.tsx +0 -0
  1227. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Breakdown.tsx +0 -0
  1228. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Coach.test.tsx +0 -0
  1229. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Coach.tsx +0 -0
  1230. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.cameras.test.tsx +0 -0
  1231. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.isShareView.test.ts +0 -0
  1232. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.playall.test.tsx +0 -0
  1233. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.stickyCameras.test.tsx +0 -0
  1234. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.test.tsx +0 -0
  1235. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Compare.tsx +0 -0
  1236. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/CreateMatch.test.tsx +0 -0
  1237. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/CreateMatch.tsx +0 -0
  1238. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Design.tsx +0 -0
  1239. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/DesktopApprove.test.tsx +0 -0
  1240. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/DesktopApprove.tsx +0 -0
  1241. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.bare.test.tsx +0 -0
  1242. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.cleanup.test.tsx +0 -0
  1243. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.compareGrid.test.tsx +0 -0
  1244. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.desktopRender.test.tsx +0 -0
  1245. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.hostedCopy.test.tsx +0 -0
  1246. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.look.test.tsx +0 -0
  1247. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.presets.test.tsx +0 -0
  1248. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.renderOptions.test.tsx +0 -0
  1249. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.tsx +0 -0
  1250. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Export.youtube.test.tsx +0 -0
  1251. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/FootageSort.test.tsx +0 -0
  1252. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/FootageSort.tsx +0 -0
  1253. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Home.capabilities.test.tsx +0 -0
  1254. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Home.overview.test.tsx +0 -0
  1255. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Home.tsx +0 -0
  1256. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.addFootage.test.tsx +0 -0
  1257. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.emptyState.test.tsx +0 -0
  1258. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.proxyPoll.test.tsx +0 -0
  1259. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.sortAcross.test.tsx +0 -0
  1260. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.swapPrimary.test.tsx +0 -0
  1261. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.takeEdits.test.tsx +0 -0
  1262. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.takeRepair.test.tsx +0 -0
  1263. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Ingest.tsx +0 -0
  1264. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Login.test.tsx +0 -0
  1265. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Login.tsx +0 -0
  1266. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MergeMatches.tsx +0 -0
  1267. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileAudit.desktopCommands.test.tsx +0 -0
  1268. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileAudit.fixture.test.tsx +0 -0
  1269. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileAudit.test.tsx +0 -0
  1270. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileAudit.tsx +0 -0
  1271. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileBeepReview.beforeClip.test.tsx +0 -0
  1272. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileBeepReview.recheck.test.tsx +0 -0
  1273. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileBeepReview.test.tsx +0 -0
  1274. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileBeepReview.tsx +0 -0
  1275. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileBreakdown.test.tsx +0 -0
  1276. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/MobileBreakdown.tsx +0 -0
  1277. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Pick.continue.test.tsx +0 -0
  1278. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Pick.deleteMatch.test.tsx +0 -0
  1279. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Pick.devMode.test.tsx +0 -0
  1280. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Pick.test.tsx +0 -0
  1281. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Pick.tsx +0 -0
  1282. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/PromoteReview.tsx +0 -0
  1283. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Results.test.tsx +0 -0
  1284. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Results.tsx +0 -0
  1285. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ResultsStage.cameras.test.tsx +0 -0
  1286. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ResultsStage.playall.test.tsx +0 -0
  1287. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ResultsStage.test.tsx +0 -0
  1288. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ResultsStage.trimstale.test.tsx +0 -0
  1289. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ResultsStage.tsx +0 -0
  1290. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Review.test.tsx +0 -0
  1291. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Review.tsx +0 -0
  1292. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Shooters.test.tsx +0 -0
  1293. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/Shooters.tsx +0 -0
  1294. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/TakeOverview.access.test.tsx +0 -0
  1295. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/TakeOverview.tsx +0 -0
  1296. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/You.test.tsx +0 -0
  1297. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/You.tsx +0 -0
  1298. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/CameraMenu.tsx +0 -0
  1299. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/CinemaBar.tsx +0 -0
  1300. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/LeaderboardRail.test.tsx +0 -0
  1301. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/LeaderboardRail.tsx +0 -0
  1302. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/TransportDock.moment.test.tsx +0 -0
  1303. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/TransportDock.test.tsx +0 -0
  1304. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/TransportDock.tsx +0 -0
  1305. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/compare/format.ts +0 -0
  1306. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevCorpus.eval.test.tsx +0 -0
  1307. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevCorpus.filterlink.test.tsx +0 -0
  1308. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevCorpus.promote.test.tsx +0 -0
  1309. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevCorpus.tsx +0 -0
  1310. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevFixtureDetail.test.tsx +0 -0
  1311. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevFixtureDetail.tsx +0 -0
  1312. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevModels.tsx +0 -0
  1313. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevRetrain.reattach.test.tsx +0 -0
  1314. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevRetrain.tsx +0 -0
  1315. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevReviewQueue.test.tsx +0 -0
  1316. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevReviewQueue.tsx +0 -0
  1317. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevValidate.tsx +0 -0
  1318. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/dev/DevValidate.tuning.test.tsx +0 -0
  1319. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ingest/model.take.test.ts +0 -0
  1320. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/ingest/model.ts +0 -0
  1321. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/matchExportModel.test.ts +0 -0
  1322. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/pages/matchExportModel.ts +0 -0
  1323. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/styles/index.css +0 -0
  1324. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/test/lazyRoutes.ts +0 -0
  1325. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/test/transitionFamilies.ts +0 -0
  1326. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/testSetup.ts +0 -0
  1327. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/src/vite-env.d.ts +0 -0
  1328. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/tsconfig.app.json +0 -0
  1329. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/tsconfig.app.tsbuildinfo +0 -0
  1330. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/tsconfig.json +0 -0
  1331. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/tsconfig.node.json +0 -0
  1332. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/tsconfig.node.tsbuildinfo +0 -0
  1333. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/ui_static/vite.config.ts +0 -0
  1334. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/user_config.py +0 -0
  1335. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/video_match.py +0 -0
  1336. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/video_probe.py +0 -0
  1337. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/waveform.py +0 -0
  1338. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/whats_new.py +0 -0
  1339. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/worker_channel.py +0 -0
  1340. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/worker_trigger.py +0 -0
  1341. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/youtube/__init__.py +0 -0
  1342. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/youtube/cli.py +0 -0
  1343. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/youtube/client.py +0 -0
  1344. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/youtube/oauth.py +0 -0
  1345. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/youtube/sealed.py +0 -0
  1346. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/youtube/upload.py +0 -0
  1347. {splitsmith-0.77.0 → splitsmith-0.78.0}/src/splitsmith/youtube_sidecar.py +0 -0
  1348. {splitsmith-0.77.0 → splitsmith-0.78.0}/tests/fixtures/corpus/README.md +0 -0
  1349. {splitsmith-0.77.0 → splitsmith-0.78.0}/tests/fixtures/schemas/README.md +0 -0
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.78.0](https://github.com/mandakan/splitsmith/compare/v0.77.0...v0.78.0) (2026-10-17)
4
+
5
+
6
+ ### Features
7
+
8
+ * **beep:** put the detected beep on the timer tone's start; audit the corpus beep labels ([#1532](https://github.com/mandakan/splitsmith/issues/1532)) ([487bb62](https://github.com/mandakan/splitsmith/commit/487bb6274eb95320fb39370b558cdd6d7f4e67dd))
9
+ * **looks:** a Broadcast Look that fills every slot and shows every region ([#1537](https://github.com/mandakan/splitsmith/issues/1537)) ([dc7cf99](https://github.com/mandakan/splitsmith/commit/dc7cf99f80b237b6e99040d72efef579c051a3ae))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **events:** a region before a moved beep starts at the beep; one bad region no longer hides the rest ([#1534](https://github.com/mandakan/splitsmith/issues/1534)) ([6a09a55](https://github.com/mandakan/splitsmith/commit/6a09a5575e485ecb545bde5d825d576b74ad4d86))
15
+ * **hud:** a reload refills to the magazine's capacity, never one over ([#1536](https://github.com/mandakan/splitsmith/issues/1536)) ([753e98d](https://github.com/mandakan/splitsmith/commit/753e98dbd5da6e78a2ab08b618b039d8f90b3456))
16
+
3
17
  ## [0.77.0](https://github.com/mandakan/splitsmith/compare/v0.76.0...v0.77.0) (2026-10-17)
4
18
 
5
19
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: splitsmith
3
- Version: 0.77.0
3
+ Version: 0.78.0
4
4
  Summary: Extract IPSC shot splits from head-mounted camera footage
5
5
  Author: Mathias Axell
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "splitsmith"
3
- version = "0.77.0"
3
+ version = "0.78.0"
4
4
  description = "Extract IPSC shot splits from head-mounted camera footage"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -1,3 +1,3 @@
1
1
  """splitsmith: extract IPSC shot splits from head-mounted camera footage."""
2
2
 
3
- __version__ = "0.77.0"
3
+ __version__ = "0.78.0"
@@ -65,6 +65,7 @@ import soundfile as sf
65
65
  from scipy.fft import next_fast_len
66
66
  from scipy.signal import butter, hilbert, sosfiltfilt
67
67
 
68
+ from . import beep_tone
68
69
  from .beep_features import candidate_features, feature_vector
69
70
  from .config import BeepCandidate, BeepDetectConfig, BeepDetection, BeepFeatures, BeepRankerConfig
70
71
 
@@ -454,9 +455,14 @@ def detect_beep(
454
455
  ranked_models: list[BeepCandidate] = []
455
456
  for run, score, confidence in sorted(scored, key=lambda t: t[1], reverse=True):
456
457
  leading_idx = _rise_foot_leading_edge(env_fine, run.start, run.end, noise_floor)
458
+ time = leading_idx / sample_rate
459
+ if config.tone_onset:
460
+ onset = beep_tone.tone_onset(window, sample_rate, time)
461
+ if onset is not None:
462
+ time = max(0.0, onset)
457
463
  ranked_models.append(
458
464
  BeepCandidate(
459
- time=leading_idx / sample_rate,
465
+ time=time,
460
466
  score=score,
461
467
  peak_amplitude=run.run_peak,
462
468
  duration_ms=(run.end - run.start) * 1000.0 / sample_rate,
@@ -31,6 +31,18 @@ _LEVEL_FRAC = 0.15
31
31
  _TONE_HALF_HZ = 200.0
32
32
  _LINE_PROMINENCE = 4.0
33
33
  _LINE_MIN_SHARE = 0.15
34
+ # A line at a half or a third of the winner's frequency is the fundamental
35
+ # when it stands out in at least this share of the winner's columns.
36
+ _FUNDAMENTAL_SHARE = 0.5
37
+ # Where a line starts (tone_onset): the window and hop of its spectrogram,
38
+ # how long it must keep standing out and in what share of that time, how far
39
+ # from the given time to look, and how close a line start counts as "at" it.
40
+ _ONSET_NPERSEG = 1024
41
+ _ONSET_HOP_S = 0.002
42
+ _ONSET_SUSTAIN_S = 0.1
43
+ _ONSET_SHARE = 0.8
44
+ _ONSET_REACH_S = 0.3
45
+ _ONSET_KEEP_S = 0.04
34
46
 
35
47
 
36
48
  class Spectrogram(BaseModel):
@@ -63,35 +75,132 @@ def default_band() -> tuple[float, float]:
63
75
  return (cfg.tonal_band_lo_hz, cfg.tonal_band_hi_hz)
64
76
 
65
77
 
66
- def tone_band(audio: np.ndarray, sr: int, beep_s: float) -> tuple[float, float]:
67
- """+-``_TONE_HALF_HZ`` around the timer's own frequency: the steadiest
68
- tonal line within 1.5 to 7 kHz from 0.3 s before the beep to 0.5 s after
69
- (the bin that stands ``_LINE_PROMINENCE``x over its +-300 Hz neighbours in
70
- the most columns). The corpus's timers run from 1.6 to 5.4 kHz, so a fixed
71
- band misses some, and a narrow one keeps most of a shot out. The
72
- detector's band when no line stands out (silence, a timer drowned out).
73
- On the 2026-10-17 corpus pass it agreed with the audited beep within 6 ms
74
- on 57 of 66 primaries."""
78
+ def tone_line_hz(audio: np.ndarray, sr: int, beep_s: float) -> float | None:
79
+ """The timer's own frequency near ``beep_s``: the steadiest tonal line
80
+ within 1.5 to 7 kHz from 0.3 s before it to 0.5 s after (the bin that
81
+ stands ``_LINE_PROMINENCE``x over its +-300 Hz neighbours in the most
82
+ columns), else None when no line stands out (silence, a timer drowned
83
+ out). The corpus's timers run from 1.6 to 5.4 kHz.
84
+
85
+ A timer's harmonic can stand out more than the tone itself where the
86
+ noise is quieter up there (Stockholm IPSC Open 6 on an iPhone: a 2.7 kHz
87
+ timer read as 5.4 kHz, and the start measured on the harmonic was 158 ms
88
+ early), so a line at half or a third of the winner's frequency that
89
+ stands out in at least half as many columns is taken instead."""
75
90
  lo = max(0, int(round((beep_s - 0.3) * sr)))
76
91
  hi = min(len(audio), int(round((beep_s + 0.5) * sr)))
77
92
  if hi - lo < 4096:
78
- return default_band()
93
+ return None
79
94
  f, _t, z = stft(audio[lo:hi], fs=sr, nperseg=4096, noverlap=4096 - int(0.01 * sr))
80
95
  keep = (f >= 1500) & (f <= 7000)
81
96
  m, f = np.abs(z[keep]), f[keep]
82
97
  if m.size == 0 or m.max() <= 0:
83
- return default_band()
98
+ return None
84
99
  k = max(1, int(round(300 / (f[1] - f[0]))))
85
100
  pad = np.pad(m, ((k, k), (0, 0)), mode="edge")
86
101
  med = np.stack([np.median(pad[i : i + 2 * k + 1], axis=0) for i in range(m.shape[0])])
87
102
  score = (m / (med + 1e-12) > _LINE_PROMINENCE).mean(axis=1)
88
103
  i = int(score.argmax())
89
104
  if score[i] < _LINE_MIN_SHARE:
105
+ return None
106
+ step = f[1] - f[0]
107
+ for div in (3, 2):
108
+ j = int(round((f[i] / div - f[0]) / step))
109
+ if j < 1 or j >= len(f) - 1:
110
+ continue
111
+ near = j - 1 + int(score[j - 1 : j + 2].argmax())
112
+ if score[near] >= max(_LINE_MIN_SHARE, _FUNDAMENTAL_SHARE * score[i]):
113
+ return float(f[near])
114
+ return float(f[i])
115
+
116
+
117
+ def tone_band(audio: np.ndarray, sr: int, beep_s: float) -> tuple[float, float]:
118
+ """+-``_TONE_HALF_HZ`` around :func:`tone_line_hz`: a fixed band misses
119
+ some timers, and a narrow one keeps most of a shot out. The detector's
120
+ band when no line stands out. On the 2026-10-17 corpus pass it agreed
121
+ with the audited beep within 6 ms on 57 of 66 primaries."""
122
+ hz = tone_line_hz(audio, sr, beep_s)
123
+ if hz is None:
90
124
  return default_band()
91
- hz = float(f[i])
92
125
  return (hz - _TONE_HALF_HZ, hz + _TONE_HALF_HZ)
93
126
 
94
127
 
128
+ def _line_onset(audio: np.ndarray, sr: int, near_s: float, hz: float) -> float | None:
129
+ """The first moment within ``_ONSET_REACH_S`` of ``near_s`` where a line
130
+ at ``hz`` stands ``_LINE_PROMINENCE``x over its +-300 Hz neighbours and
131
+ keeps standing out for ``_ONSET_SHARE`` of the next ``_ONSET_SUSTAIN_S``.
132
+ Prominence, not level: a broadband sound never makes a line, and a quiet
133
+ tone still does."""
134
+ lo = max(0, int((near_s - _ONSET_REACH_S - 0.05) * sr))
135
+ hi = min(len(audio), int((near_s + _ONSET_REACH_S + _ONSET_SUSTAIN_S + 0.05) * sr))
136
+ if hi - lo < _ONSET_NPERSEG:
137
+ return None
138
+ hop = int(_ONSET_HOP_S * sr)
139
+ f, t, z = stft(audio[lo:hi], fs=sr, nperseg=_ONSET_NPERSEG, noverlap=_ONSET_NPERSEG - hop, boundary=None)
140
+ m = np.abs(z)
141
+ step = f[1] - f[0]
142
+ b = int(round(hz / step))
143
+ k = max(2, int(round(300 / step)))
144
+ if b - k < 0 or b + k >= len(f):
145
+ return None
146
+ line = m[b - 1 : b + 2].max(axis=0)
147
+ neigh = np.median(np.concatenate([m[b - k : b - 2], m[b + 3 : b + k + 1]]), axis=0)
148
+ present = line / (neigh + 1e-12) > _LINE_PROMINENCE
149
+ times = lo / sr + t
150
+ n = max(1, int(round(_ONSET_SUSTAIN_S / _ONSET_HOP_S)))
151
+ csum = np.concatenate([[0], np.cumsum(present)])
152
+ for i in range(len(present) - n):
153
+ if times[i] < near_s - _ONSET_REACH_S:
154
+ continue
155
+ if times[i] > near_s + _ONSET_REACH_S:
156
+ break
157
+ if present[i] and csum[i + n] - csum[i] >= _ONSET_SHARE * n:
158
+ # The first window holding the line: the tone entered it about a
159
+ # quarter window before its centre.
160
+ return float(times[i]) - _ONSET_NPERSEG / (4 * sr)
161
+ return None
162
+
163
+
164
+ def tone_onset(audio: np.ndarray, sr: int, near_s: float) -> float | None:
165
+ """Where the timer's tone starts, seconds, when ``near_s`` is clearly off
166
+ it; None to keep ``near_s``.
167
+
168
+ The timer's line (:func:`tone_line_hz`) and its half, double and triple
169
+ are each found where they start (:func:`_line_onset`). When any of them
170
+ starts within ``_ONSET_KEEP_S`` of ``near_s`` it is kept: a weak
171
+ fundamental can rise late where a harmonic is plain (Tallmilan 7). Else
172
+ the fundamental's start, refined to its band's sustained rise
173
+ (:func:`tone_offset_ms`) when that lies within ``_ONSET_KEEP_S``.
174
+
175
+ Taking the earliest line instead moved good beeps early onto stray lines,
176
+ and keeping ``near_s`` when the level rule agreed on any line put back
177
+ confident mistakes: a harmonic passed it at a wrong pick (HFO Masters 6,
178
+ Little Trouble 2). On the corrected 2026-10-17 corpus the detector's
179
+ top-1 went from 284 to 295 of 329, and no wrong beep kept 0.95 or more.
180
+ The three it moved off a right beep are weak tones on two Samsung clips
181
+ and Oden Cup 5, all below 0.7."""
182
+ hz = tone_line_hz(audio, sr, near_s)
183
+ if hz is None:
184
+ return None
185
+ found: list[tuple[float, float]] = []
186
+ for mult in (0.5, 1.0, 2.0, 3.0):
187
+ h = hz * mult
188
+ if 1200 <= h <= 9000:
189
+ onset = _line_onset(audio, sr, near_s, h)
190
+ if onset is not None:
191
+ found.append((onset, h))
192
+ if any(abs(onset - near_s) <= _ONSET_KEEP_S for onset, _h in found):
193
+ return None
194
+ fundamental = [onset for onset, h in found if h == hz]
195
+ if not fundamental:
196
+ return None
197
+ onset = fundamental[0]
198
+ off = tone_offset_ms(audio, sr, onset, (hz - _TONE_HALF_HZ, hz + _TONE_HALF_HZ))
199
+ if off is not None and abs(off) <= _ONSET_KEEP_S * 1000:
200
+ return onset + off / 1000.0
201
+ return onset
202
+
203
+
95
204
  def band_pass(audio: np.ndarray, sr: int, lo_hz: float, hi_hz: float) -> np.ndarray:
96
205
  """Zero-phase 4th-order Butterworth band-pass: zero phase, because a
97
206
  phase shift would move the rise this exists to find."""
@@ -447,6 +447,13 @@ class BeepDetectConfig(BaseModel):
447
447
  # pick the right one without typing a timestamp by hand (issue #22).
448
448
  # ``0`` returns just the winner (legacy behaviour).
449
449
  top_n_candidates: int = 5
450
+ # Place each candidate's time on its timer tone's sustained rise, in the
451
+ # band of the timer's own line (``beep_tone.tone_onset``), instead of
452
+ # the rise foot of the run's envelope in the fixed band above. The run
453
+ # can start on a sound just before the tone, or after its start, and
454
+ # some timers sit outside the fixed band. A candidate with no tonal line
455
+ # keeps its rise foot. ``False`` is the old leading edge.
456
+ tone_onset: bool = True
450
457
  # How candidates are ranked and how confident the winner is (#949).
451
458
  ranker: BeepRankerConfig = Field(default_factory=BeepRankerConfig)
452
459
 
@@ -3,6 +3,8 @@
3
3
  "078cb1ba1108077b5091b2da33000db304d95360ce302b09862854f364984e04": "hud-timeline.html",
4
4
  "085dca804aa72ad344962481bcde0d61ef443188a7982db7ad37a7f47ff3b835": "hud-plate.html",
5
5
  "114b41e43fdc9b455330f3b3d0810313ad119b44e6b6dbb0c16d07764a53bbc4": "hud-ticker.html",
6
+ "12b3711e21b15b89a5b23a9eafa1629b631db82259e4d62edd5f9b684bb5ba2b": "broadcast-summary.html",
7
+ "1f508fbcbb677c41433ee31fa260d06fae5ab2fa96dea0c5d51d9f48f24ad405": "broadcast-sting.html",
6
8
  "21497c1e102d3cdaea8d00ea14b0ccab0219a2f4a8e2ce7bdb90b16da93f189f": "hud-ticker.html",
7
9
  "28e314b3cc5161594500afdd11c78bd75fc9015ea83220d22a1d40890c31eb0a": "hud-minimal.html",
8
10
  "29546017a237c43bb75a0087aed09c80e26eb78b007bd9ccfc31dde0da9f7600": "hud-timeline.html",
@@ -10,18 +12,21 @@
10
12
  "2f00e2f3d38acc96b0203fcac87a93566cbb0a5c0f25d54ed7f0823e7446a368": "card-rise.html",
11
13
  "3015c7885b10a9487b78716642724e6c0eb9b3e0621fb5cc2ef458af2a48fc93": "hud-minimal.html",
12
14
  "396618aceb25094800cda6a874bbc10af39721e39322a0e19ab0e5cdaf91e010": "card.html",
15
+ "3cd64bf59601ca4ed48c6e2e0f9c93256a1d523789a8b5d7102a7c82b3bcbaca": "broadcast-hud.html",
13
16
  "45bf7a97b0abc800703d2f3df4e77619c49d9518e093cb0843121184900d4935": "hud-timeline.html",
17
+ "482876198439541e5a6f13a1129e302d9b1932dfb8730955377c4f9ec1b95406": "broadcast-match.html",
14
18
  "505e9839fc6a08b55d81e1fcaf64ecb1a454ac110183bde1110dc55d20364d54": "hud-plate.html",
15
19
  "54e553f50479c232839d5dbb38bba7d15f287eed977568f527520d9eb2f99989": "sting-wipe.html",
16
- "592cce4db8f1dcd934327658ae923f1ee495e0a9d098989372c5b611c95a4003": "card-end-screen.html",
17
20
  "5bf59a9c746e95c78d5974a3b63a2c4d4908bf4f7b667bdbd5cce9b724e63001": "hud-timeline.html",
18
21
  "5c53273ef918b01dde2b9a884c3857493e8dd546d7d8c864e84ad4b80d04ccd2": "hud-minimal.html",
19
22
  "5df1cfe362897a4ebf5de245cc02b393751be7aa881304809b7c2a60be006a24": "hud-pips.html",
23
+ "60c2a9023f702082c46f8810b558ed136fd570d466c2050e14669840212131ef": "broadcast-thumbnail.html",
20
24
  "60eef66ea3ddb3986aee008d0679b79c3cfe047a989ff78ef0f4e4a537313aee": "sting-wipe.html",
21
25
  "6825d22c6a726616db173f3f563aa78ea059547738504b3993241f08e52d4f59": "hud-plate.html",
22
26
  "6fd82f315f82131839f78eeca7e77a269595f56f9a38ab672fc6dee4c1287358": "hud-plate.html",
23
27
  "7b912f778034187b4d304962a8cc78466ff3121937528f60527b2c2008938e8e": "hud-pips.html",
24
28
  "807c9f5b03254dbcf54f2445c1f1c93a44b8ad3c54ecd035fdc8383c3d487020": "hud-plate.html",
29
+ "81d18ed5ce1525f64dd19757d1bef6e36cab17d3b42e3aabd35a69bf6a2af3bc": "broadcast-card.html",
25
30
  "94ef8c97dbc9d0af6bb927ea6389a20536c6e9735114c3800da3621aae05493d": "hud-minimal.html",
26
31
  "960bf58e6e4f5b39ede144d9b59041d8534df4ccbb1fabf1a255a83bb1422587": "hud-ticker.html",
27
32
  "9f98be911c8212ecb30178a923f03d540f703432c0668fa26b2b68ea66b5cf91": "card-rise.html",
@@ -10,7 +10,8 @@
10
10
 
11
11
  window.splitsmith.data:
12
12
  card { slot ("title_page", "slate", "lower_third", "closing"),
13
- variant, text (the match or the stage name),
13
+ variant ("end-screen" lays the closing card out in the
14
+ left two fifths), text (the match or the stage name),
14
15
  info (the lines under it), duration_seconds }
15
16
  shooters[] { label, accent, club, logo (a file URL or null) }
16
17
  brand { logo, line } your brand: title page and closing card only
@@ -29,6 +30,11 @@
29
30
  #card { position: absolute; display: flex; flex-direction: column; gap: 1.2vh; }
30
31
  #card.full { left: 0; right: 0; top: 0; bottom: 0; align-items: center; justify-content: center; text-align: center; }
31
32
  #card.band { left: 4vh; bottom: 12vh; padding: 1.6vh 2.6vh; border-radius: 0.8vh; }
33
+ /* The closing card's end-screen style: everything in the left two fifths,
34
+ so YouTube's end-screen elements have the right of the frame. */
35
+ #card.end { left: 6vh; top: 0; bottom: 0; width: 38vw; justify-content: center; align-items: flex-start; text-align: left; }
36
+ #card.end #shooters { justify-content: flex-start; flex-wrap: wrap; }
37
+ body.end #credit { left: 6vh; right: auto; text-align: left; }
32
38
  #text { font-family: "Splitsmith Display", sans-serif; font-weight: 700; line-height: 1; white-space: nowrap; }
33
39
  .info { font-family: "Splitsmith Mono", monospace; font-size: 2.6vh; letter-spacing: 0.06em; white-space: nowrap; }
34
40
  #shooters { display: flex; gap: 3vh; justify-content: center; margin-top: 1vh; }
@@ -62,7 +68,10 @@
62
68
  return n;
63
69
  }
64
70
 
65
- el.className = lower ? 'band' : 'full';
71
+ // The closing card's end-screen style (variant "end-screen").
72
+ var endScreen = card.slot === 'closing' && card.variant === 'end-screen';
73
+ el.className = lower ? 'band' : endScreen ? 'end' : 'full';
74
+ if (endScreen) document.body.classList.add('end');
66
75
  if (lower) { el.style.background = T.surface; el.style.color = T.ink; }
67
76
  if (D.event) {
68
77
  var ev = node('img'); ev.id = 'event'; ev.src = D.event.logo; el.appendChild(ev);
@@ -115,7 +124,9 @@
115
124
  window.__splitsmithFit = function () {
116
125
  var size = parseFloat(title.style.fontSize) * S.size.height / 100;
117
126
  title.style.fontSize = size + 'px';
118
- var room = S.size.width * (lower ? 0.6 : 0.9);
127
+ // On an upright video the button column on the right is not room.
128
+ var safeRight = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--safe-right')) || 0;
129
+ var room = (S.size.width - safeRight) * (lower ? 0.6 : endScreen ? 0.38 : 0.9);
119
130
  while (title.scrollWidth > room && size > S.engine.min_font_size) {
120
131
  size -= 1;
121
132
  title.style.fontSize = size + 'px';
@@ -22,7 +22,8 @@
22
22
  stage.beep, stage.stage_time, stage.rounds
23
23
  stage.shots[] t (clip seconds), split, cls, label ("Draw", ...),
24
24
  tier ("good" / "normal" / "slow" / null), moving
25
- stage.events[] confirmed regions: kind, start, end (clip seconds)
25
+ stage.events[] confirmed regions: kind (draw, movement, reload,
26
+ activation), start, end (clip seconds)
26
27
  stage.reloads[] start, end, duration, exposed
27
28
  options speed_colors, class_labels, landing, reload_chip,
28
29
  stage_bar, position (draw nothing a toggle turns off)
@@ -76,6 +77,7 @@
76
77
  <div class="box"><span class="cap" id="splitCap">Split</span><span class="val" id="split">-</span></div>
77
78
  <div class="box" id="stringCell"><span class="cap">String</span><span class="val" id="string">-</span></div>
78
79
  <div class="box" id="hitsCell"><span class="cap">Hits (est.)</span><span class="val hits" id="hits"></span></div>
80
+ <div class="box" id="nowCell"><span class="cap">Now</span><span class="val" id="now"></span></div>
79
81
  </div>
80
82
  </div>
81
83
  <script>
@@ -97,6 +99,11 @@
97
99
  if (!bursts) $('stringCell').style.display = 'none';
98
100
  if (!spread) $('hitsCell').style.display = 'none';
99
101
 
102
+ // A region's colour: the theme's own for draw, movement and reload; an
103
+ // activation in ink_2, the neutral the app draws it in.
104
+ var REGION_COLOUR = { draw: T.draw, movement: T.movement, reload: T.reload, activation: T.ink_2 };
105
+ var REGION_LABEL = { draw: 'Draw', movement: 'Moving', reload: 'Reload', activation: 'Activation' };
106
+
100
107
  // The stage bar: regions as bands, shots as ticks (options.stage_bar).
101
108
  var track = $('track');
102
109
  var span = Math.max(0.1, stage.stage_time);
@@ -107,13 +114,26 @@
107
114
  var band = document.createElement('i');
108
115
  band.style.left = x(e.start) + '%';
109
116
  band.style.width = Math.max(0.5, x(e.end) - x(e.start)) + '%';
110
- band.style.background = ({draw: T.draw, movement: T.movement, reload: T.reload})[e.kind] || T.muted;
117
+ band.style.background = REGION_COLOUR[e.kind] || T.muted;
111
118
  band.style.opacity = '0.8';
112
119
  track.appendChild(band);
113
120
  });
114
121
  } else {
115
122
  track.style.display = 'none';
116
123
  }
124
+ if (!opt.stage_bar) $('nowCell').style.display = 'none';
125
+
126
+ // The region underway at t, with how long it has run: a reload or a draw
127
+ // over a movement reads "on the move".
128
+ function regionAt(t) {
129
+ var on = stage.events.filter(function (e) { return e.start <= t && t <= e.end; });
130
+ if (!on.length) return null;
131
+ var order = ['reload', 'draw', 'activation', 'movement'];
132
+ on.sort(function (a, b) { return order.indexOf(a.kind) - order.indexOf(b.kind); });
133
+ var first = on[0];
134
+ var moving = first.kind !== 'movement' && on.some(function (e) { return e.kind === 'movement'; });
135
+ return { kind: first.kind, label: REGION_LABEL[first.kind] + (moving ? ' on the move' : ''), ran: t - first.start };
136
+ }
117
137
 
118
138
  function tierColour(shot) {
119
139
  if (!opt.speed_colors || !shot.tier) return T.split;
@@ -171,6 +191,16 @@
171
191
  }
172
192
  }
173
193
 
194
+ // The region underway (options.stage_bar), in its colour.
195
+ if (opt.stage_bar) {
196
+ var region = regionAt(t);
197
+ $('nowCell').style.display = region ? 'flex' : 'none';
198
+ if (region) {
199
+ $('now').textContent = region.label + ' ' + region.ran.toFixed(1);
200
+ $('now').style.color = REGION_COLOUR[region.kind] || T.ink;
201
+ }
202
+ }
203
+
174
204
  // The reload chip (options.reload_chip): up through a confirmed reload.
175
205
  var reload = opt.reload_chip ? stage.reloads.filter(function (r) { return r.start <= t && t <= r.end + 0.4; })[0] : null;
176
206
  $('chip').style.display = reload ? 'flex' : 'none';
@@ -0,0 +1,90 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>starter: broadcast sting</title>
6
+ <!--
7
+ The transition between two stages, using every piece of data a sting
8
+ gets. A panel in the Look's surface sweeps across with an accent edge,
9
+ holds over the cut carrying the next stage's name, and sweeps away. It
10
+ is drawn over the boundary's crossfade for the whole transition.
11
+ window.splitsmith.data:
12
+ transition { kind ("sting:<name>"), name, duration_seconds,
13
+ from, to } the labels either side of the cut
14
+ shooters[] { label, accent, club, logo }
15
+ brand { logo, line } when the export puts your brand on the wipe
16
+ duration() must return transition.duration_seconds: the renderer
17
+ samples exactly that long.
18
+ Guide: docs/looks/authoring.md#stings
19
+ -->
20
+ <script>
21
+ document.write('<style>' + window.splitsmith.engine.css + '</style>');
22
+ </script>
23
+ <style>
24
+ html, body { margin: 0; background: transparent; overflow: hidden; width: 100vw; height: 100vh; }
25
+ #panel { position: absolute; top: 0; bottom: 0; left: 0; width: 100vw; display: flex; flex-direction: column;
26
+ justify-content: center; padding: 0 10vh; box-sizing: border-box; gap: 1.4vh; }
27
+ #edge { position: absolute; top: 0; bottom: 0; width: 1.6vh; }
28
+ .cap { font-family: "Splitsmith Mono", monospace; font-size: 2.4vh; letter-spacing: 0.14em; text-transform: uppercase; }
29
+ #to { align-self: flex-start; font-family: "Splitsmith Display", sans-serif; font-weight: 700; font-size: 11vh; line-height: 1; white-space: nowrap; }
30
+ #mark { position: absolute; right: 8vh; top: 50%; transform: translateY(-50%); height: 18vh; max-width: 30vh; object-fit: scale-down; }
31
+ </style>
32
+ </head>
33
+ <body>
34
+ <div id="panel"><div class="cap" id="next">Next</div><div id="to"></div></div>
35
+ <div id="edge"></div>
36
+ <script>
37
+ var S = window.splitsmith, D = S.data, T = S.theme, TR = D.transition || {};
38
+ var LENGTH = TR.duration_seconds || 1;
39
+ var $ = function (id) { return document.getElementById(id); };
40
+ var accent = (D.shooters && D.shooters[0] && D.shooters[0].accent) || T.accent;
41
+
42
+ $('panel').style.background = T.surface;
43
+ $('panel').style.color = T.ink;
44
+ $('next').style.color = T.ink_2;
45
+ $('edge').style.background = accent;
46
+ $('to').textContent = TR.to || '';
47
+ if (!TR.to) $('next').style.display = 'none';
48
+ // Your brand when the export puts it on the wipe; else a single shooter logo.
49
+ var mark = D.brand && D.brand.logo ? D.brand.logo : null;
50
+ if (!mark) {
51
+ var logos = (D.shooters || []).map(function (s) { return s.logo; }).filter(Boolean);
52
+ if (logos.length === 1) mark = logos[0];
53
+ }
54
+ if (mark) {
55
+ var img = document.createElement('img');
56
+ img.id = 'mark';
57
+ img.src = mark;
58
+ $('panel').appendChild(img);
59
+ }
60
+
61
+ // In over the first 40 %, hold, out over the last 40 %: the panel covers
62
+ // the frame across the cut, so the crossfade underneath never shows.
63
+ function ease(p) { return p < 0.5 ? 4 * p * p * p : 1 - Math.pow(-2 * p + 2, 3) / 2; }
64
+ function paint(t) {
65
+ var p = t / LENGTH, x;
66
+ if (p < 0.4) x = -100 + 100 * ease(p / 0.4);
67
+ else if (p > 0.6) x = 100 * ease((p - 0.6) / 0.4);
68
+ else x = 0;
69
+ $('panel').style.transform = 'translateX(' + x + 'vw)';
70
+ // The accent edge leads the panel in and trails it out.
71
+ $('edge').style.left = p < 0.5 ? 'calc(' + (x + 100) + 'vw - 1.6vh)' : x + 'vw';
72
+ $('edge').style.display = x <= -100 || x >= 100 ? 'none' : 'block';
73
+ }
74
+ var now = LENGTH / 2;
75
+ window.duration = function () { return LENGTH; };
76
+ window.poster = function () { return LENGTH / 2; };
77
+ window.seek = function (t) { now = t; paint(t); };
78
+ window.__splitsmithFit = function () {
79
+ var to = $('to'), size = parseFloat(getComputedStyle(to).fontSize);
80
+ // The name's own width (the element hugs its text: align-self above).
81
+ while (to.getBoundingClientRect().width > S.size.width * 0.7 && size > S.engine.min_font_size) {
82
+ size -= 2;
83
+ to.style.fontSize = size + 'px';
84
+ }
85
+ paint(now);
86
+ };
87
+ paint(now);
88
+ </script>
89
+ </body>
90
+ </html>
@@ -20,8 +20,8 @@
20
20
  static / moving (the same, with confirmed movement),
21
21
  reloads {count, avg, exposed}, rounds, min_rounds, dq.
22
22
  A figure that was never read is null.
23
- stage the overlay's stage data with the beep at 0: shots[], events[],
24
- reloads[], stage_time, rounds
23
+ stage the overlay's stage data with the beep at 0: shots[], events[]
24
+ (draw, movement, reload, activation), reloads[], stage_time, rounds
25
25
  scoring, ammo, bursts as an overlay gets them (asked for above)
26
26
  safe_area on an upright video
27
27
  Guide: docs/looks/authoring.md#summaries
@@ -47,6 +47,8 @@
47
47
  #timeline { position: relative; height: 3vh; border-radius: 0.6vh; overflow: hidden; margin-bottom: 1.4vh; }
48
48
  #timeline i { position: absolute; top: 0; bottom: 0; opacity: 0.85; }
49
49
  #timeline b { position: absolute; top: 15%; bottom: 15%; width: 0.3vh; }
50
+ #legend { display: flex; flex-wrap: wrap; gap: 0.6vh 2.4vh; font-size: 1.9vh; margin-bottom: 1.4vh; }
51
+ #legend i { display: inline-block; width: 1.4vh; height: 1.4vh; border-radius: 0.3vh; margin-right: 0.7vh; vertical-align: -0.15vh; }
50
52
  #notes { font-size: 1.8vh; opacity: 0.85; white-space: normal; }
51
53
  body.safe #board { top: 3vh; left: 2vh; transform: none; width: calc(100vw - 4vh - var(--safe-right)); padding: 2vh; }
52
54
  body.safe .figs { grid-template-columns: repeat(3, 1fr); gap: 1vh 1.4vh; }
@@ -61,6 +63,7 @@
61
63
  <div class="figs" id="grid"></div>
62
64
  <div id="counts"></div>
63
65
  <div id="timeline"></div>
66
+ <div id="legend"></div>
64
67
  <div id="notes"></div>
65
68
  </div>
66
69
  <script>
@@ -91,6 +94,7 @@
91
94
  ['Static avg', F.static && F.static.avg, two],
92
95
  ['Moving avg', F.moving && F.moving.avg, two],
93
96
  ['Reloads', F.reloads && F.reloads.count, function (v) { return String(Math.round(v)); }],
97
+ ['Reload avg', F.reloads && F.reloads.avg, function (v) { return two(v) + 's'; }],
94
98
  ['Exposed reload', F.reloads && F.reloads.exposed, function (v) { return two(v) + 's'; }],
95
99
  ['Rounds', F.rounds, function (v) { return Math.round(v) + (F.min_rounds ? ' / ' + F.min_rounds : ''); }]
96
100
  ].filter(function (c) { return c[1] != null; });
@@ -104,6 +108,10 @@
104
108
  return '<span style="color:' + colour[k] + '">' + k + ' ' + F.counts[k] + '</span>';
105
109
  }).join('') + (F.dq ? '<span style="color:' + T.accent + '">DQ</span>' : '');
106
110
 
111
+ // A region's colour: the theme's own for draw, movement and reload; an
112
+ // activation in ink_2, the neutral the app draws it in.
113
+ var REGION_COLOUR = { draw: T.draw, movement: T.movement, reload: T.reload, activation: T.ink_2 };
114
+
107
115
  // The run itself, from data.stage: regions as bands, shots as ticks.
108
116
  var span = Math.max(0.1, stage.stage_time);
109
117
  var line = $('timeline');
@@ -113,9 +121,23 @@
113
121
  var band = document.createElement('i');
114
122
  band.style.left = x(e.start) + '%';
115
123
  band.style.width = Math.max(0.5, x(e.end) - x(e.start)) + '%';
116
- band.style.background = ({draw: T.draw, movement: T.movement, reload: T.reload})[e.kind] || T.muted;
124
+ band.style.background = REGION_COLOUR[e.kind] || T.muted;
117
125
  line.appendChild(band);
118
126
  });
127
+
128
+ // The legend: each kind of region the stage has, in its colour, with what
129
+ // it took. The draw is the Draw figure; the rest are counts and time.
130
+ var legend = [];
131
+ ['draw', 'movement', 'reload', 'activation'].forEach(function (kind) {
132
+ var mine = stage.events.filter(function (e) { return e.kind === kind; });
133
+ if (!mine.length) return;
134
+ var total = mine.reduce(function (s, e) { return s + (e.end - e.start); }, 0);
135
+ var text = kind === 'draw' ? 'Draw ' + two(F.draw != null ? F.draw : total)
136
+ : ({ movement: 'Moving', reload: 'Reload', activation: 'Activation' })[kind] + ' ' + mine.length + ' x, ' +
137
+ total.toFixed(1) + 's';
138
+ legend.push('<span><i style="background:' + REGION_COLOUR[kind] + '"></i>' + text + '</span>');
139
+ });
140
+ $('legend').innerHTML = legend.join('');
119
141
  stage.shots.forEach(function (shot) {
120
142
  var tick = document.createElement('b');
121
143
  tick.style.left = x(shot.t) + '%';