chesspal 0.0.1 → 0.2.0

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 (273) hide show
  1. package/README.md +99 -2
  2. package/dist/cli/chat-hook.d.ts +2 -0
  3. package/dist/cli/chat-hook.js +33 -0
  4. package/dist/cli/cli.d.ts +2 -0
  5. package/dist/cli/cli.js +28 -0
  6. package/dist/cli/command-line.d.ts +7 -0
  7. package/dist/cli/command-line.js +177 -0
  8. package/dist/commands/agents.d.ts +26 -0
  9. package/dist/commands/agents.js +72 -0
  10. package/dist/commands/ai-move.d.ts +28 -0
  11. package/dist/commands/ai-move.js +85 -0
  12. package/dist/commands/ai-say.d.ts +22 -0
  13. package/dist/commands/ai-say.js +58 -0
  14. package/dist/commands/analyse-game.d.ts +65 -0
  15. package/dist/commands/analyse-game.js +265 -0
  16. package/dist/commands/annotate-game.d.ts +39 -0
  17. package/dist/commands/annotate-game.js +131 -0
  18. package/dist/commands/answer-lines.d.ts +28 -0
  19. package/dist/commands/answer-lines.js +144 -0
  20. package/dist/commands/clock.d.ts +15 -0
  21. package/dist/commands/clock.js +45 -0
  22. package/dist/commands/coach.d.ts +45 -0
  23. package/dist/commands/coach.js +344 -0
  24. package/dist/commands/context.d.ts +67 -0
  25. package/dist/commands/context.js +37 -0
  26. package/dist/commands/delete-game.d.ts +7 -0
  27. package/dist/commands/delete-game.js +30 -0
  28. package/dist/commands/delete-review.d.ts +8 -0
  29. package/dist/commands/delete-review.js +34 -0
  30. package/dist/commands/draw-offer.d.ts +10 -0
  31. package/dist/commands/draw-offer.js +43 -0
  32. package/dist/commands/drawings.d.ts +13 -0
  33. package/dist/commands/drawings.js +25 -0
  34. package/dist/commands/end-game.d.ts +23 -0
  35. package/dist/commands/end-game.js +67 -0
  36. package/dist/commands/export-game.d.ts +14 -0
  37. package/dist/commands/export-game.js +27 -0
  38. package/dist/commands/game-summary.d.ts +78 -0
  39. package/dist/commands/game-summary.js +102 -0
  40. package/dist/commands/index.d.ts +18 -0
  41. package/dist/commands/index.js +64 -0
  42. package/dist/commands/init.d.ts +15 -0
  43. package/dist/commands/init.js +73 -0
  44. package/dist/commands/lead-input.d.ts +8 -0
  45. package/dist/commands/lead-input.js +21 -0
  46. package/dist/commands/levels.d.ts +9 -0
  47. package/dist/commands/levels.js +25 -0
  48. package/dist/commands/look.d.ts +31 -0
  49. package/dist/commands/look.js +64 -0
  50. package/dist/commands/new-game.d.ts +68 -0
  51. package/dist/commands/new-game.js +218 -0
  52. package/dist/commands/opening-book.d.ts +13 -0
  53. package/dist/commands/opening-book.js +84 -0
  54. package/dist/commands/page-link.d.ts +11 -0
  55. package/dist/commands/page-link.js +28 -0
  56. package/dist/commands/past-games.d.ts +11 -0
  57. package/dist/commands/past-games.js +47 -0
  58. package/dist/commands/play-move.d.ts +37 -0
  59. package/dist/commands/play-move.js +94 -0
  60. package/dist/commands/player-move.d.ts +13 -0
  61. package/dist/commands/player-move.js +51 -0
  62. package/dist/commands/player-say.d.ts +5 -0
  63. package/dist/commands/player-say.js +16 -0
  64. package/dist/commands/ponder.d.ts +52 -0
  65. package/dist/commands/ponder.js +179 -0
  66. package/dist/commands/position.d.ts +14 -0
  67. package/dist/commands/position.js +130 -0
  68. package/dist/commands/profiles.d.ts +69 -0
  69. package/dist/commands/profiles.js +163 -0
  70. package/dist/commands/registry.d.ts +59 -0
  71. package/dist/commands/registry.js +62 -0
  72. package/dist/commands/say.d.ts +16 -0
  73. package/dist/commands/say.js +84 -0
  74. package/dist/commands/speech.d.ts +8 -0
  75. package/dist/commands/speech.js +20 -0
  76. package/dist/commands/status.d.ts +35 -0
  77. package/dist/commands/status.js +128 -0
  78. package/dist/commands/study-games.d.ts +5 -0
  79. package/dist/commands/study-games.js +40 -0
  80. package/dist/commands/study.d.ts +38 -0
  81. package/dist/commands/study.js +106 -0
  82. package/dist/commands/view.d.ts +14 -0
  83. package/dist/commands/view.js +125 -0
  84. package/dist/core/board-text.d.ts +7 -0
  85. package/dist/core/board-text.js +18 -0
  86. package/dist/core/book.json +1 -0
  87. package/dist/core/clock.d.ts +45 -0
  88. package/dist/core/clock.js +109 -0
  89. package/dist/core/facts.d.ts +55 -0
  90. package/dist/core/facts.js +175 -0
  91. package/dist/core/game.d.ts +95 -0
  92. package/dist/core/game.js +352 -0
  93. package/dist/core/illegal.d.ts +19 -0
  94. package/dist/core/illegal.js +141 -0
  95. package/dist/core/index.d.ts +20 -0
  96. package/dist/core/index.js +12 -0
  97. package/dist/core/lead.d.ts +15 -0
  98. package/dist/core/lead.js +40 -0
  99. package/dist/core/levels.d.ts +20 -0
  100. package/dist/core/levels.js +33 -0
  101. package/dist/core/material.d.ts +9 -0
  102. package/dist/core/material.js +12 -0
  103. package/dist/core/moods.d.ts +21 -0
  104. package/dist/core/moods.js +45 -0
  105. package/dist/core/openings.d.ts +35 -0
  106. package/dist/core/openings.js +98 -0
  107. package/dist/core/openings.json +1 -0
  108. package/dist/core/pgn.d.ts +10 -0
  109. package/dist/core/pgn.js +213 -0
  110. package/dist/core/profile.d.ts +117 -0
  111. package/dist/core/profile.js +232 -0
  112. package/dist/core/record.d.ts +21 -0
  113. package/dist/core/record.js +25 -0
  114. package/dist/core/review.d.ts +80 -0
  115. package/dist/core/review.js +146 -0
  116. package/dist/games/ai-model.d.ts +5 -0
  117. package/dist/games/ai-model.js +15 -0
  118. package/dist/games/analysis.d.ts +12 -0
  119. package/dist/games/analysis.js +26 -0
  120. package/dist/games/archive.d.ts +63 -0
  121. package/dist/games/archive.js +242 -0
  122. package/dist/games/chat-start.d.ts +16 -0
  123. package/dist/games/chat-start.js +26 -0
  124. package/dist/games/coach.d.ts +57 -0
  125. package/dist/games/coach.js +144 -0
  126. package/dist/games/current-game.d.ts +56 -0
  127. package/dist/games/current-game.js +134 -0
  128. package/dist/games/files.d.ts +9 -0
  129. package/dist/games/files.js +53 -0
  130. package/dist/games/index.d.ts +11 -0
  131. package/dist/games/index.js +12 -0
  132. package/dist/games/plans.d.ts +9 -0
  133. package/dist/games/plans.js +23 -0
  134. package/dist/games/table-talk.d.ts +12 -0
  135. package/dist/games/table-talk.js +25 -0
  136. package/dist/games/talk.d.ts +36 -0
  137. package/dist/games/talk.js +131 -0
  138. package/dist/games/thoughts.d.ts +15 -0
  139. package/dist/games/thoughts.js +60 -0
  140. package/dist/home/data-folder.d.ts +12 -0
  141. package/dist/home/data-folder.js +55 -0
  142. package/dist/home/index.d.ts +2 -0
  143. package/dist/home/index.js +3 -0
  144. package/dist/home/open-folder.d.ts +2 -0
  145. package/dist/home/open-folder.js +14 -0
  146. package/dist/host-files/agents.d.ts +20 -0
  147. package/dist/host-files/agents.js +53 -0
  148. package/dist/host-files/host-files.d.ts +15 -0
  149. package/dist/host-files/host-files.js +182 -0
  150. package/dist/host-files/index.d.ts +2 -0
  151. package/dist/host-files/index.js +3 -0
  152. package/dist/index.d.ts +2 -0
  153. package/dist/index.js +3 -0
  154. package/dist/page/app/anchor.js +88 -0
  155. package/dist/page/app/app.js +458 -0
  156. package/dist/page/app/keys.js +94 -0
  157. package/dist/page/app/phase.js +30 -0
  158. package/dist/page/app/served.js +73 -0
  159. package/dist/page/avatars/avatars.js +19 -0
  160. package/dist/page/avatars/beanie.webp +0 -0
  161. package/dist/page/avatars/beard.webp +0 -0
  162. package/dist/page/avatars/bun.webp +0 -0
  163. package/dist/page/avatars/cat.webp +0 -0
  164. package/dist/page/avatars/curls.webp +0 -0
  165. package/dist/page/avatars/glasses.webp +0 -0
  166. package/dist/page/avatars/moustache.webp +0 -0
  167. package/dist/page/avatars/owl.webp +0 -0
  168. package/dist/page/avatars/short-hair.webp +0 -0
  169. package/dist/page/avatars/silver-bob.webp +0 -0
  170. package/dist/page/avatars/thought.js +10 -0
  171. package/dist/page/avatars/torretta.js +38 -0
  172. package/dist/page/base.css +160 -0
  173. package/dist/page/board/board.css +959 -0
  174. package/dist/page/board/board.js +125 -0
  175. package/dist/page/board/explain.js +58 -0
  176. package/dist/page/board/marks.js +160 -0
  177. package/dist/page/board/motion.js +71 -0
  178. package/dist/page/board/pointer.js +239 -0
  179. package/dist/page/board/squares.js +26 -0
  180. package/dist/page/dialogs/analyses.js +195 -0
  181. package/dist/page/dialogs/dialog.js +26 -0
  182. package/dist/page/dialogs/dialogs.css +1228 -0
  183. package/dist/page/dialogs/new-game.js +42 -0
  184. package/dist/page/dialogs/profiles.js +152 -0
  185. package/dist/page/dialogs/search.js +31 -0
  186. package/dist/page/dialogs/settings.js +42 -0
  187. package/dist/page/dialogs/studied.js +39 -0
  188. package/dist/page/dialogs/study.js +51 -0
  189. package/dist/page/game/badges.js +50 -0
  190. package/dist/page/game/browse.js +17 -0
  191. package/dist/page/game/card-fold.js +40 -0
  192. package/dist/page/game/column.js +51 -0
  193. package/dist/page/game/ending.js +73 -0
  194. package/dist/page/game/game.css +577 -0
  195. package/dist/page/game/move-list.js +72 -0
  196. package/dist/page/game/opening-book.js +14 -0
  197. package/dist/page/game/plies.js +82 -0
  198. package/dist/page/game/result-tile.js +14 -0
  199. package/dist/page/helps/helps.css +689 -0
  200. package/dist/page/helps/helps.js +220 -0
  201. package/dist/page/helps/view.js +127 -0
  202. package/dist/page/layout/fold-tab.js +11 -0
  203. package/dist/page/layout/folds.js +43 -0
  204. package/dist/page/layout/header.js +28 -0
  205. package/dist/page/layout/layout.css +834 -0
  206. package/dist/page/lead/lead.js +82 -0
  207. package/dist/page/lead/view.js +38 -0
  208. package/dist/page/main.js +8 -0
  209. package/dist/page/pieces/CREDITS.md +19 -0
  210. package/dist/page/pieces/capablanca-small.svg +20 -0
  211. package/dist/page/pieces/capablanca.svg +22 -0
  212. package/dist/page/pieces/nitida-small.svg +20 -0
  213. package/dist/page/pieces/nitida.svg +21 -0
  214. package/dist/page/pieces/pieces.js +28 -0
  215. package/dist/page/pieces/torretta-small.svg +20 -0
  216. package/dist/page/pieces/torretta.svg +21 -0
  217. package/dist/page/players/card.js +56 -0
  218. package/dist/page/players/clock-time.js +12 -0
  219. package/dist/page/players/model-name.js +20 -0
  220. package/dist/page/profile/profile.js +99 -0
  221. package/dist/page/profile/settings.js +77 -0
  222. package/dist/page/sounds/capture.ogg +0 -0
  223. package/dist/page/sounds/check.ogg +0 -0
  224. package/dist/page/sounds/draw.ogg +0 -0
  225. package/dist/page/sounds/flag.ogg +0 -0
  226. package/dist/page/sounds/mate.ogg +0 -0
  227. package/dist/page/sounds/move.ogg +0 -0
  228. package/dist/page/sounds/offer.ogg +0 -0
  229. package/dist/page/sounds/resign.ogg +0 -0
  230. package/dist/page/sounds/sounds.js +105 -0
  231. package/dist/page/style.css +9 -0
  232. package/dist/page/talk/talk.css +958 -0
  233. package/dist/page/talk/talk.js +165 -0
  234. package/dist/page/talk/voice.js +38 -0
  235. package/dist/page/text.js +711 -0
  236. package/dist/page/theme.css +292 -0
  237. package/dist/profiles/avatar.d.ts +23 -0
  238. package/dist/profiles/avatar.js +84 -0
  239. package/dist/profiles/front-matter.d.ts +9 -0
  240. package/dist/profiles/front-matter.js +33 -0
  241. package/dist/profiles/index.d.ts +3 -0
  242. package/dist/profiles/index.js +5 -0
  243. package/dist/profiles/profiles.d.ts +69 -0
  244. package/dist/profiles/profiles.js +254 -0
  245. package/dist/profiles/settings.d.ts +12 -0
  246. package/dist/profiles/settings.js +46 -0
  247. package/dist/server/bell.d.ts +68 -0
  248. package/dist/server/bell.js +225 -0
  249. package/dist/server/caller.d.ts +21 -0
  250. package/dist/server/caller.js +132 -0
  251. package/dist/server/mcp.d.ts +13 -0
  252. package/dist/server/mcp.js +207 -0
  253. package/dist/server/page/analyses.d.ts +23 -0
  254. package/dist/server/page/analyses.js +65 -0
  255. package/dist/server/page/files.d.ts +5 -0
  256. package/dist/server/page/files.js +92 -0
  257. package/dist/server/page/game.d.ts +6 -0
  258. package/dist/server/page/game.js +381 -0
  259. package/dist/server/page/http.d.ts +29 -0
  260. package/dist/server/page/http.js +68 -0
  261. package/dist/server/page/page.d.ts +41 -0
  262. package/dist/server/page/page.js +229 -0
  263. package/dist/server/page/profiles.d.ts +19 -0
  264. package/dist/server/page/profiles.js +215 -0
  265. package/dist/version.d.ts +2 -0
  266. package/dist/version.js +3 -0
  267. package/instructions/analysis.md +4 -0
  268. package/instructions/analyst-agent.md +8 -0
  269. package/instructions/analyst.md +4 -0
  270. package/instructions/coach.md +11 -0
  271. package/instructions/opponent.md +15 -0
  272. package/instructions/ponder.md +9 -0
  273. package/package.json +66 -5
@@ -0,0 +1,21 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 200" width="600" height="200">
2
+ <!-- Chesspal, the set "Nitida", drawn with Codex. © 2026 Stefano Caronia, Chesspal (https://github.com/stefanocaronia/chesspal), under the licence CC BY 4.0
3
+ (https://creativecommons.org/licenses/by/4.0/): free to use, share and adapt, also commercially, crediting "Stefano Caronia, Chesspal".
4
+ A symbol for each piece, wK to bP, on a grid of 100, traced from the drawing. Each piece is its silhouette and its light areas; the page colours them with CSS variables: piece-fill and piece-edge on White, piece-fill and
5
+ piece-detail on Black. -->
6
+ <defs>
7
+ <symbol id="wK" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 46.67 8.7 C 45.6 9.04 45.25 9.69 45.14 11.52 C 45.01 13.95 44.7 14.18 41.58 14.26 C 38.18 14.35 37.98 14.56 37.92 18.15 C 37.88 20.67 37.97 21.26 38.46 21.86 C 39.08 22.62 39.43 22.72 41.68 22.79 C 44.81 22.89 45.09 23.14 45.09 25.82 C 45.09 28.68 44.98 28.75 40.5 28.86 C 34.89 29 28.8 29.6 27.01 30.2 C 22.4 31.74 20.82 36.25 22.75 42.37 C 22.95 43.01 23.27 43.59 24.09 44.82 C 25.85 47.46 26.68 49.3 27.24 51.79 C 27.51 53.01 27.64 59.6 27.43 61.94 C 26.93 67.6 24.6 74.85 21.71 79.75 C 20.91 81.1 20.37 81.59 18.84 82.35 C 16.67 83.42 15.44 84.88 15.11 86.77 C 14.96 87.62 15.03 89.92 15.22 90.53 C 15.52 91.53 16.5 92.49 17.53 92.81 C 18.37 93.06 82.29 93 83.02 92.74 C 84.7 92.16 85.55 90.42 85.38 87.93 C 85.19 85.07 84.24 83.72 81.4 82.32 C 79.23 81.25 78.89 80.86 77.21 77.41 C 74.45 71.78 73.03 65.97 72.84 59.57 C 72.62 51.9 73.21 49.21 76.1 44.86 C 77.3 43.05 77.51 42.53 77.72 40.72 C 77.91 39.15 77.85 36.25 77.6 35.08 C 77.12 32.84 74.84 30.65 72.3 29.98 C 70.69 29.55 64.46 28.97 60.44 28.86 C 56.25 28.75 56.1 28.65 56.1 25.82 C 56.1 23.14 56.38 22.89 59.5 22.79 C 61.62 22.73 61.9 22.66 62.51 22.11 C 63.15 21.53 63.22 21.2 63.26 18.74 C 63.33 14.74 63.03 14.37 59.67 14.25 C 56.6 14.15 55.94 13.63 55.94 11.35 C 55.94 9.89 55.42 9.01 54.37 8.7 C 53.65 8.48 47.37 8.48 46.67 8.7"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 48.16 11.16 C 47.68 11.41 47.59 11.79 47.54 13.78 C 47.49 16.37 47.39 16.51 45.8 16.39 C 45.2 16.34 44.81 16.37 44.43 16.49 C 44.14 16.58 43.23 16.69 42.41 16.73 C 40.43 16.84 40.44 16.83 40.44 18.53 C 40.44 20.23 40.44 20.23 42.36 20.33 C 43.15 20.37 44.55 20.4 45.49 20.41 C 47.13 20.42 47.19 20.43 47.34 20.66 C 47.55 20.99 47.65 25.53 47.52 28.63 C 47.39 31.74 47.8 31.43 43.65 31.44 C 35.64 31.45 29.65 31.9 27.71 32.63 C 25.44 33.48 24.57 34.88 24.64 37.59 C 24.69 39.92 24.8 39.99 27.3 39.39 C 30.17 38.69 33.45 38.3 37.8 38.13 C 39.25 38.07 40.86 37.98 41.36 37.92 C 44.74 37.54 53.6 37.54 59.18 37.92 C 60.04 37.98 62.03 38.09 63.61 38.18 C 66.37 38.33 67.88 38.5 69.71 38.84 C 74.58 39.74 74.8 39.73 75.05 38.67 C 75.6 36.27 74.65 33.84 72.78 32.89 C 71.01 31.99 65.08 31.45 56.95 31.44 C 53.57 31.44 53.86 31.65 53.74 29.1 C 53.57 25.62 53.68 21.1 53.94 20.68 C 54.08 20.46 54.2 20.45 57.03 20.38 C 60.89 20.28 60.83 20.31 60.78 18.4 C 60.73 16.89 60.69 16.84 59.05 16.74 C 58.38 16.7 57.5 16.58 57.09 16.49 C 56.68 16.39 55.89 16.32 55.29 16.32 C 53.82 16.32 53.78 16.28 53.78 14.72 C 53.78 13.28 53.47 11.64 53.14 11.31 C 52.85 11.02 48.67 10.9 48.16 11.16 M 46 41.43 C 45.74 41.46 44.13 41.52 42.44 41.58 C 37.96 41.75 35.31 41.9 33.96 42.08 C 33.31 42.16 32.22 42.31 31.53 42.39 C 30.85 42.48 30 42.6 29.64 42.66 C 29.29 42.72 28.56 42.82 28.03 42.89 C 26.67 43.07 26.31 43.46 26.75 44.24 C 26.86 44.43 27.23 45.08 27.59 45.7 C 29.56 49.15 30.24 52.25 30.24 57.83 C 30.23 65.3 28.58 72.28 25.14 79.39 C 24.2 81.32 24.16 81.55 24.73 81.84 C 24.94 81.95 30.1 81.97 50.18 81.95 C 74.77 81.93 75.36 81.92 75.58 81.72 C 75.94 81.4 75.86 81 75.16 79.59 C 72.75 74.79 71.09 69.2 70.34 63.4 C 70.12 61.67 70.02 55.51 70.19 53.83 C 70.52 50.51 71.52 47.55 73.27 44.67 C 73.96 43.52 73.65 43.03 72.06 42.78 C 66.74 41.95 66.29 41.91 59.34 41.64 C 55.32 41.48 47.03 41.35 46 41.43 M 49.37 49.93 C 48.38 51.96 47.19 53.74 45.69 55.45 C 45.01 56.22 45.01 56.22 45.71 57.04 C 46.96 58.51 47.23 58.85 47.82 59.79 C 48.15 60.32 48.82 61.51 49.3 62.43 C 49.84 63.49 50.23 64.12 50.35 64.14 C 50.49 64.17 50.69 63.84 51.24 62.7 C 52.05 60.98 53.32 59.04 54.32 57.95 C 55.98 56.17 55.94 56.29 55.1 55.38 C 53.37 53.5 52.12 51.58 50.81 48.8 C 50.44 48 50.22 48.18 49.37 49.93 M 34.12 55.6 C 34.12 55.77 34.17 56.07 34.23 56.27 C 34.36 56.72 34.7 58.69 34.93 60.3 C 35.61 65.09 33.9 73.03 31.22 77.6 C 30.45 78.92 30.49 78.96 32.91 78.96 L 34.79 78.96 35.09 78.64 C 35.66 78.03 36.46 75.86 37.24 72.8 C 38.59 67.55 37.77 60.67 35.32 56.65 C 34.57 55.43 34.12 55.03 34.12 55.6 M 65.74 55.58 C 64.87 56.52 63.5 59.49 62.96 61.63 C 62.16 64.74 62.17 69.43 62.96 72.68 C 63.59 75.26 64.69 78.04 65.34 78.68 L 65.67 79.01 67.41 78.98 C 69.66 78.94 69.78 78.84 69.07 77.67 C 67.67 75.36 65.95 69.94 65.5 66.45 C 65.13 63.49 65.31 59.58 65.93 56.94 C 66.32 55.31 66.28 55 65.74 55.58 M 20.72 84.85 C 19.04 85.38 18.07 86.88 18.16 88.85 C 18.19 89.67 18.22 89.78 18.49 90.05 L 18.79 90.35 49.99 90.38 C 70.18 90.4 81.29 90.37 81.47 90.3 C 81.97 90.11 82.18 89.6 82.18 88.61 C 82.18 86.71 81.31 85.34 79.81 84.89 C 79.14 84.69 21.35 84.65 20.72 84.85"/></symbol>
8
+ <symbol id="wQ" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 49.31 7.79 C 48.08 8 46.84 8.95 46.26 10.13 C 45.98 10.7 45.95 10.85 45.95 11.94 C 45.95 13.37 46.22 14.05 47.26 15.24 C 48.34 16.46 48.45 16.97 48 18.48 C 46.65 23.01 44.19 28.99 42.82 31.05 C 41.91 32.42 40.9 32.43 39.87 31.08 C 38.89 29.81 35.9 24.99 34.74 22.81 C 34.01 21.45 34 21.01 34.67 19.56 C 35.47 17.8 35.39 16.23 34.44 14.98 C 32.04 11.86 27.06 13.46 27.05 17.34 C 27.05 19.18 27.83 20.28 29.9 21.34 C 31.74 22.28 31.96 22.73 31.96 25.56 C 31.96 29.7 30.5 33.38 28.85 33.38 C 27.75 33.38 24.76 30.48 21.88 26.63 C 20.37 24.61 20.25 24.13 20.84 22.6 C 21.64 20.52 21.45 19.12 20.18 17.77 C 19.3 16.84 18.67 16.59 17.22 16.59 C 14.67 16.59 13.12 18.1 13.12 20.58 C 13.12 22.38 13.89 23.53 15.66 24.33 C 17.95 25.39 17.75 25.08 19.53 30.16 C 21.12 34.67 23.5 40.76 26.43 47.8 C 28.89 53.72 29.35 54.92 29.63 56.29 C 30.89 62.38 28.41 71.79 23.67 78.93 C 22.21 81.14 21.61 81.65 19.92 82.14 C 16.38 83.15 14.91 84.98 14.9 88.36 C 14.9 91.1 15.78 92.5 17.76 92.88 C 18.24 92.97 26.85 93 50.7 92.97 L 82.99 92.94 83.53 92.69 C 84.88 92.08 85.42 91.09 85.5 89.11 C 85.67 85.38 84.18 83.21 80.79 82.23 C 78.96 81.7 78.31 81.14 76.77 78.79 C 71.54 70.83 69.13 60.85 71.01 54.87 C 71.39 53.68 72.34 51.19 74.21 46.51 C 75.05 44.43 76.33 41.09 77.06 39.1 C 77.79 37.11 78.73 34.58 79.15 33.46 C 79.57 32.35 79.92 31.4 79.92 31.34 C 79.92 31.11 81.67 26.29 81.87 25.96 C 82.2 25.43 82.9 24.88 83.56 24.63 C 84.99 24.1 85.92 23.34 86.46 22.28 C 86.91 21.4 86.92 19.82 86.49 18.89 C 85.27 16.3 81.84 15.68 79.83 17.69 C 78.57 18.94 78.32 20.35 79 22.32 C 79.67 24.24 79.59 24.58 78.02 26.68 C 76.25 29.04 73.53 31.95 72.3 32.79 C 71.64 33.24 71.12 33.31 70.56 33.02 C 69.36 32.4 68.04 28.12 68.04 24.85 C 68.04 22.76 68.37 22.19 70.11 21.31 C 70.74 20.99 71.46 20.54 71.7 20.31 C 75.12 16.99 71.15 11.63 66.92 13.86 C 64.87 14.95 64.3 17.19 65.42 19.71 C 66.24 21.54 66.01 22.14 62.1 28.47 C 59.87 32.1 59.47 32.46 58.41 31.92 C 57.44 31.41 54.72 25.67 52.85 20.16 C 51.76 16.93 51.77 16.6 53.05 15.17 C 54.67 13.36 54.88 11.33 53.63 9.58 C 52.84 8.47 51.08 7.56 49.95 7.69 C 49.89 7.7 49.6 7.74 49.31 7.79"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 49.7 22.07 C 49.58 22.2 49.16 23.16 48.77 24.2 C 46.71 29.76 44.46 34.01 42.4 36.26 C 41.77 36.96 41.45 37.01 40.88 36.5 C 40.24 35.94 38.17 33.22 36.75 31.09 C 36.01 29.97 35.32 29.01 35.21 28.95 C 34.64 28.65 34.3 28.98 33.96 30.18 C 33.3 32.47 31.72 35.2 30.32 36.46 C 29.74 36.98 29.42 37.11 28.99 37.01 C 28.74 36.94 26.43 35.15 25.41 34.23 C 24.91 33.77 24.69 33.72 24.32 33.98 C 23.88 34.29 24.04 34.96 25.33 38.02 C 25.64 38.77 26.19 40.15 26.56 41.1 C 28.18 45.31 28.89 47.11 29.32 48.07 C 31.83 53.69 32.5 56.2 32.5 59.94 C 32.5 64.39 31.02 71.1 29.27 74.52 C 28.98 75.09 28.98 75.62 29.28 75.89 C 29.5 76.09 30.02 76.09 49.98 76.12 C 61.25 76.14 70.62 76.13 70.82 76.09 C 71.03 76.06 71.24 75.92 71.35 75.76 C 71.56 75.44 71.55 75.42 70.74 73.45 C 67.98 66.78 67.12 60.03 68.35 54.76 C 68.6 53.66 70.43 48.64 71.33 46.56 C 72.33 44.25 75.91 34.79 75.92 34.46 C 75.92 34.14 75.59 33.81 75.27 33.81 C 75.03 33.81 74.75 34 74.06 34.63 C 72.28 36.27 71.02 37.12 70.6 36.99 C 69.33 36.59 67.08 33.19 66.36 30.57 C 65.98 29.21 65.92 29.08 65.61 28.93 C 65.12 28.71 64.89 28.94 63.74 30.81 C 61.88 33.82 59.74 36.67 59.23 36.79 C 58.57 36.96 57.85 36.22 56.07 33.52 C 54.61 31.3 51.86 25.51 50.98 22.78 C 50.69 21.88 50.15 21.58 49.7 22.07 M 49.85 35.45 C 49.75 35.59 49.68 35.73 49.68 35.78 C 49.68 35.97 48.65 38.26 48.1 39.28 C 47.4 40.6 46.36 42.2 45.73 42.95 C 44.82 44.02 44.78 43.84 46.35 45.88 C 47.76 47.71 48.53 49.03 49.24 50.81 C 50.15 53.1 50.32 53.16 51.09 51.42 C 51.91 49.54 53.49 46.89 54.77 45.22 C 55.64 44.1 55.67 43.9 55.11 43.21 C 53.52 41.23 52.38 39.39 51.29 37.05 C 50.41 35.15 50.21 34.93 49.85 35.45 M 29.26 41.66 C 29.26 41.76 29.79 42.38 30.44 43.04 C 35.24 47.95 40.32 55.84 43.09 62.7 C 44.24 65.54 45.9 71.83 45.9 73.33 C 45.9 73.86 46.22 74.1 46.96 74.1 C 47.94 74.1 48.01 74.01 47.97 72.67 C 47.76 64.84 45.7 58.33 41.66 52.68 C 39.4 49.52 36.13 46.32 32.07 43.3 C 29.67 41.51 29.26 41.27 29.26 41.66 M 70.41 41.94 C 65.99 44.89 61.8 48.86 59.25 52.52 C 55.24 58.28 53.09 64.75 52.74 72.13 C 52.65 73.99 52.71 74.1 53.81 74.1 C 54.82 74.1 54.85 74.06 55.09 72.36 C 56.13 65.2 59.43 57.47 64.73 49.85 C 66.16 47.8 69.14 44.07 70.54 42.59 C 71.62 41.44 71.56 41.18 70.41 41.94 M 27.32 79.14 C 26.42 79.6 25.65 81.27 26.13 81.71 C 26.37 81.92 26.54 81.93 50.29 81.93 L 74.21 81.93 74.43 81.66 C 74.72 81.3 74.63 80.93 74.06 80.11 C 73.23 78.91 76.02 79.04 50.23 78.99 C 28.82 78.95 27.68 78.96 27.32 79.14 M 20.57 85.14 C 19.61 85.47 18.78 86.34 18.47 87.32 C 18.05 88.68 18.25 89.82 18.97 90.09 C 19.36 90.24 81.06 90.24 81.46 90.09 C 81.94 89.9 82.12 89.49 82.13 88.58 C 82.13 87.05 81.43 85.88 80.15 85.25 L 79.54 84.95 50.38 84.93 L 21.22 84.91 20.57 85.14"/></symbol>
9
+ <symbol id="wR" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 22.57 16.52 C 21.83 16.75 21.35 17.14 20.99 17.83 C 20.79 18.19 20.79 18.68 20.79 29.38 L 20.79 40.56 21.03 41.16 C 21.17 41.48 21.52 42.09 21.81 42.51 C 24.87 46.82 25.53 48.93 25.51 54.44 C 25.48 65.76 23.48 75.21 20.05 80.23 C 19.37 81.23 18.9 81.63 17.66 82.27 C 15.13 83.58 14.51 84.89 14.6 88.82 C 14.65 91.11 14.74 91.44 15.55 92.17 C 16.49 93.01 13.38 92.94 50.27 92.94 L 83.43 92.94 83.91 92.72 C 85.27 92.09 85.67 91.2 85.73 88.73 C 85.82 84.92 85.19 83.57 82.73 82.25 C 81.41 81.54 80.79 80.9 79.93 79.4 C 77.48 75.08 75.74 69.04 75.14 62.8 C 74.91 60.44 74.95 51.19 75.2 49.9 C 75.7 47.22 76.63 45.12 78.24 42.98 C 79.19 41.74 79.53 41.08 79.69 40.24 C 79.77 39.81 79.81 36.22 79.81 29.11 C 79.81 17.39 79.84 17.89 79.07 17.15 C 78.36 16.45 78.16 16.42 73.28 16.42 C 68.37 16.42 68.15 16.45 67.47 17.15 C 66.84 17.8 66.81 17.95 66.75 20.91 C 66.68 24.03 66.62 24.25 65.76 24.74 L 65.28 25.01 61.88 25.01 L 58.48 25.01 58 24.74 C 57.14 24.25 57.08 24.02 57.02 20.96 C 56.95 17.71 56.83 17.33 55.67 16.71 C 55.25 16.48 55.15 16.48 50.16 16.48 L 45.08 16.48 44.54 16.75 C 44.16 16.95 43.91 17.18 43.68 17.56 L 43.36 18.08 43.28 20.83 C 43.16 25.12 43.3 24.99 38.75 25.04 C 33.78 25.1 33.69 25.02 33.69 20.76 C 33.69 17.72 33.41 16.99 32.05 16.59 C 31.45 16.41 23.13 16.35 22.57 16.52"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 23.76 19.04 C 23.21 19.33 23.21 19.24 23.24 26.44 L 23.27 33.16 23.52 33.4 L 23.76 33.65 50.22 33.65 L 76.67 33.65 76.92 33.4 L 77.16 33.16 77.16 26.31 L 77.16 19.45 76.92 19.21 C 76.53 18.82 69.91 18.82 69.52 19.21 C 69.28 19.45 69.28 19.48 69.22 23.29 L 69.17 27.14 68.92 27.34 C 68.57 27.62 55.07 27.67 54.69 27.39 C 54.49 27.25 54.48 27.01 54.37 23.35 C 54.27 19.51 54.26 19.45 54.02 19.21 C 53.78 18.96 53.76 18.96 50.19 18.93 C 46.31 18.9 46.18 18.92 45.92 19.47 C 45.83 19.67 45.77 20.82 45.72 23.4 C 45.64 27.02 45.64 27.06 45.4 27.3 L 45.15 27.55 38.42 27.55 C 32.77 27.55 31.65 27.52 31.47 27.39 C 31.27 27.25 31.26 27.04 31.21 23.35 C 31.15 19.47 31.15 19.45 30.91 19.21 C 30.66 18.96 30.63 18.96 27.34 18.93 C 24.82 18.91 23.96 18.94 23.76 19.04 M 23.76 38.16 C 22.93 38.58 23.07 40.3 23.97 40.75 C 24.56 41.04 75.88 41.04 76.45 40.75 C 77.22 40.36 77.49 38.9 76.91 38.32 L 76.67 38.08 50.35 38.05 C 29.37 38.03 23.97 38.05 23.76 38.16 M 28.53 43.86 C 26.83 43.91 26.75 43.92 26.55 44.16 C 26.28 44.51 26.28 44.54 26.82 45.88 C 27.93 48.59 28.12 50.6 27.96 57.9 C 27.82 64.16 27.09 69.31 25.69 73.99 C 25.31 75.23 25.3 75.61 25.6 75.89 C 25.83 76.09 26.41 76.09 50.06 76.12 C 65.79 76.14 74.38 76.11 74.56 76.04 C 75.14 75.82 75.14 75.55 74.59 73.8 C 72.94 68.56 72.27 62.6 72.39 54.28 C 72.45 49.47 72.66 48.17 73.71 45.77 C 74.47 44.04 74.34 43.92 71.51 43.88 C 67.05 43.83 30.21 43.8 28.53 43.86 M 34.93 52.72 C 34.45 53 34.45 52.99 34.45 57.19 C 34.45 60.46 34.48 61.24 34.6 61.41 C 34.91 61.83 39.82 61.84 40.13 61.41 C 40.3 61.18 40.36 58.88 40.3 55.2 C 40.25 52.42 40.52 52.67 37.5 52.63 C 35.89 52.61 35.08 52.64 34.93 52.72 M 49.86 52.71 C 47.68 52.76 47.49 52.78 47.35 52.98 C 47.22 53.15 47.19 53.91 47.19 57.22 L 47.19 61.25 47.47 61.54 L 47.76 61.82 50.17 61.75 C 52.73 61.69 52.97 61.64 53.1 61.16 C 53.15 61 53.18 59.12 53.16 56.98 L 53.14 53.09 52.86 52.85 C 52.71 52.71 52.5 52.61 52.4 52.63 C 52.3 52.64 51.15 52.68 49.86 52.71 M 60.31 52.86 C 60.01 53.08 59.96 53.85 59.95 57.65 C 59.94 61.29 59.96 61.46 60.5 61.69 C 61.11 61.94 65.56 61.74 65.8 61.45 C 66.11 61.07 66.08 53.24 65.77 52.93 C 65.49 52.65 60.68 52.59 60.31 52.86 M 26.56 79.05 C 23.99 79.13 24.02 79.12 23.4 80.15 C 22.94 80.94 22.89 81.41 23.23 81.72 C 23.45 81.92 24.05 81.93 50.29 81.93 L 77.13 81.93 77.34 81.66 C 77.48 81.49 77.54 81.3 77.5 81.12 C 77.42 80.69 76.65 79.38 76.38 79.2 C 76.12 79.03 31.76 78.9 26.56 79.05 M 19.3 84.85 C 18.04 85.24 17.38 86.42 17.38 88.28 C 17.38 89.5 17.55 90.03 18.03 90.27 C 18.25 90.37 24.85 90.4 50.29 90.38 L 82.29 90.35 82.53 90.1 C 82.87 89.76 82.96 87.22 82.66 86.43 C 82.39 85.72 81.84 85.16 81.15 84.9 C 80.56 84.68 80.51 84.68 50.18 84.69 C 23.82 84.69 19.75 84.72 19.3 84.85"/></symbol>
10
+ <symbol id="wB" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 49.03 11.45 C 46.3 12.03 44.61 15.31 45.77 17.79 C 45.94 18.16 46.31 18.8 46.59 19.22 C 47.47 20.5 47.4 21.1 46.21 22.4 C 42.05 26.96 32.31 37.8 31.86 38.36 C 29.03 41.91 28.39 46.77 30.18 51.28 C 31 53.35 31.07 53.76 31.06 56.32 C 31.06 59.51 30.72 61.25 29.23 65.7 C 27.83 69.9 25.94 73.75 23.43 77.55 C 21.44 80.56 20.95 81 18.8 81.73 C 15.13 82.97 13.82 84.87 13.98 88.72 C 14.06 90.73 14.44 91.65 15.48 92.35 C 16.52 93.04 14.05 93 50.57 92.97 L 83.86 92.94 84.43 92.68 C 85.88 92.01 86.39 90.92 86.39 88.47 C 86.39 84.75 84.91 82.72 81.57 81.83 C 81 81.68 80.3 81.44 80.01 81.3 C 77.75 80.23 72.91 72.23 70.96 66.37 C 69.33 61.45 68.82 58.91 68.82 55.71 L 68.81 53.63 69.51 51.61 C 70.43 48.95 70.55 48.42 70.63 46.55 C 70.77 43.26 70.21 41.22 68.23 37.84 C 67.67 36.89 66.88 35.45 66.48 34.65 C 65.5 32.68 64.95 31.99 63.28 30.6 C 62.5 29.95 61.83 29.42 61.79 29.42 C 61.74 29.42 59.27 32.39 56.29 36.02 C 53.31 39.65 50.84 42.63 50.8 42.65 C 50.68 42.7 48.26 40.65 48.29 40.52 C 48.31 40.46 50.75 37.46 53.71 33.85 C 56.67 30.25 59.1 27.26 59.1 27.22 C 59.1 27.18 59.03 27.09 58.94 27.02 C 57.22 25.67 53.52 22.61 53.12 22.22 C 52.19 21.28 52.24 20.62 53.35 19.14 C 54.26 17.92 54.49 17.28 54.49 16.02 C 54.48 13.17 51.74 10.87 49.03 11.45"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 49.45 22.75 C 49.32 22.92 49.21 23.09 49.21 23.13 C 49.21 23.24 48.58 23.95 41.69 31.57 C 34.34 39.69 33.94 40.15 33.36 41.11 C 32.6 42.39 31.92 44.7 31.92 45.97 C 31.92 47.33 32.5 49.81 33.15 51.27 C 33.79 52.68 33.87 53.18 33.87 55.76 C 33.87 62.72 30.79 71.62 25.6 79.68 C 25.11 80.44 25.05 80.94 25.41 81.27 C 25.64 81.48 26.23 81.48 49.82 81.51 C 75.78 81.54 74.36 81.57 74.7 80.96 C 74.9 80.61 74.78 80.35 73.52 78.28 C 71.87 75.59 71.72 75.3 69.83 71.22 C 68.85 69.11 67.4 64.78 66.97 62.67 C 66.27 59.25 66.25 58.98 66.24 55.87 L 66.23 52.95 66.6 51.94 C 68.65 46.42 68.47 43.74 65.78 39.19 C 65.4 38.55 64.69 37.24 64.22 36.3 C 63.42 34.73 62.28 33.14 62.1 33.35 C 62.08 33.38 59.61 36.39 56.61 40.04 L 51.17 46.67 47.73 43.86 C 45.84 42.31 44.28 41.02 44.28 40.98 C 44.28 40.95 46.72 37.94 49.72 34.3 C 52.71 30.66 55.16 27.65 55.16 27.61 C 55.16 27.58 54.31 26.86 53.27 26.02 C 51.35 24.47 50.65 23.78 50.19 22.97 C 49.88 22.41 49.75 22.38 49.45 22.75 M 49.79 56.75 C 49.72 56.84 49.54 57.3 49.38 57.79 C 48.64 60.1 47.6 61.64 45.77 63.13 C 44.84 63.9 44.74 64.17 45.25 64.62 C 45.42 64.77 45.87 65.15 46.24 65.47 C 47.69 66.72 48.55 68.07 49.28 70.27 C 49.93 72.24 50.11 72.25 50.78 70.29 C 51.59 67.9 52.77 66.17 54.38 64.99 C 55.39 64.25 55.44 63.98 54.64 63.43 C 52.64 62.03 51.57 60.57 50.72 58.02 C 50.25 56.64 50.08 56.4 49.79 56.75 M 36.92 56.93 C 36.89 56.98 36.88 58.43 36.89 60.15 C 36.92 63.87 36.79 64.95 35.92 68.35 C 35.38 70.49 34 73.84 32.85 75.83 C 30.94 79.12 30.91 79 33.75 78.94 C 35.76 78.89 35.71 78.93 36.78 76.79 C 38.25 73.87 38.97 71.31 39.34 67.72 C 39.53 65.9 39.28 63.17 38.71 60.82 C 38.02 57.93 37.29 56.34 36.92 56.93 M 62.48 57.03 C 62.23 57.5 61.46 59.66 61.2 60.65 C 59.79 65.88 60.48 71.21 63.35 77.18 C 64.23 79 64.15 78.96 66.4 78.96 C 68.9 78.96 68.93 78.9 67.75 76.99 C 66.75 75.35 66.48 74.82 65.44 72.33 C 63.34 67.3 63.03 65.33 63.03 56.91 C 63.03 56.74 62.58 56.84 62.48 57.03 M 22.87 84.68 C 19.28 84.75 19.11 84.79 18.21 85.76 C 16.96 87.12 16.81 89.37 17.93 89.9 C 18.52 90.18 81.68 90.19 82.27 89.91 C 83.86 89.15 82.89 85.84 80.8 84.87 L 80.27 84.63 53.14 84.62 C 38.23 84.62 24.6 84.64 22.87 84.68"/></symbol>
11
+ <symbol id="wN" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 45.08 12.95 C 44.43 13.35 44.29 13.58 42.07 17.61 C 39.45 22.37 37.49 25.49 36.11 27.06 C 35.35 27.92 30.8 32.18 27.32 35.27 C 26.46 36.04 24.55 37.76 23.07 39.1 C 20.38 41.54 19.54 42.28 16.84 44.63 C 13.04 47.93 12.4 48.87 12.39 51.2 C 12.37 56.56 15.11 61.12 19.01 62.21 C 21.52 62.91 23.5 62.54 27.54 60.6 C 31.05 58.91 31.7 58.76 35.42 58.77 C 38.72 58.77 39.3 58.9 39.57 59.66 C 39.74 60.15 39.41 60.6 37.84 62.01 C 33.52 65.9 30.25 71.05 27.91 77.62 C 26.77 80.83 26.71 80.88 23.76 81.02 C 19.03 81.23 16.27 82.84 15.29 85.97 C 14.24 89.28 15.55 92.25 18.32 92.84 C 19.45 93.08 81.51 93.08 82.43 92.84 C 84.64 92.26 85.55 89.97 84.99 86.41 C 84.52 83.48 82.13 81.69 77.86 81.06 C 75.14 80.66 74.89 80.14 75.75 76.7 C 77.07 71.47 78.19 63.65 78.19 59.62 C 78.19 57.8 78.66 57.24 81.48 55.74 C 83.79 54.51 84.2 54.21 84.6 53.47 C 85.67 51.51 84.14 44.77 81.52 39.86 C 76.41 30.3 67.26 24.27 56.43 23.34 C 54 23.13 53.65 22.91 52.43 20.85 C 51.22 18.81 48.23 14.35 47.64 13.7 C 46.78 12.76 45.84 12.49 45.08 12.95"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 45.65 16.47 C 45.55 16.55 44.82 17.75 44.05 19.14 C 41.25 24.13 39.43 27 38.1 28.52 C 36.94 29.83 33.42 33.15 29.33 36.77 C 28.73 37.3 26.81 39.03 25.07 40.61 C 23.32 42.19 21.01 44.25 19.94 45.19 C 15.05 49.47 14.9 49.65 14.9 51.37 C 14.9 55.7 16.95 59.2 19.89 59.89 C 21.77 60.33 23.22 59.98 26.89 58.17 C 30.5 56.4 32.97 55.95 37.84 56.18 C 40.74 56.31 41.39 56.27 43.29 55.78 C 46.15 55.06 48.94 52.81 50.48 49.99 C 50.94 49.15 51.02 49.08 51.26 49.27 C 51.5 49.47 51.39 50.76 50.98 52.51 C 50.45 54.77 49.38 56.67 47.76 58.23 C 46.78 59.17 46.52 59.36 44.28 60.76 C 40.56 63.08 39.01 64.32 37.08 66.52 C 34.35 69.63 32.11 73.63 30.55 78.19 C 30.18 79.28 30.16 79.61 30.46 79.88 C 30.83 80.22 61.51 80.21 61.88 79.87 C 62.91 78.95 65.14 71.58 65.73 67.13 C 65.97 65.34 66 59.13 65.79 57.3 C 64.93 50.14 61.84 43.35 56.59 37.11 C 56 36.4 55.51 35.78 55.51 35.73 C 55.51 35.06 59.53 38.26 61.74 40.7 C 67.81 47.38 71.05 57 70.54 66.79 C 70.32 70.89 69.8 73.74 68.45 78.12 C 67.69 80.59 67.74 80.69 69.85 80.68 C 71.09 80.68 71.39 80.59 71.73 80.13 C 72.1 79.64 72.97 76.38 74.04 71.45 C 74.9 67.45 75.33 64.14 75.48 60.33 C 75.54 58.78 75.62 57.02 75.64 56.41 C 75.79 53.16 74.85 49.1 73.12 45.53 C 69.85 38.75 63.74 33.34 55.94 30.31 C 53.07 29.2 53.02 28.89 55.72 29.16 C 58.3 29.41 60.57 30.07 63.54 31.44 C 71.5 35.11 77.4 43.07 78.74 51.94 C 79 53.68 79.43 53.9 80.96 53.09 C 82.5 52.28 82.52 52.23 82.24 50.21 C 81.44 44.28 78.28 38.16 73.8 33.81 C 68.43 28.6 62.2 25.97 54.65 25.75 C 51.96 25.66 52.34 25.94 50.6 22.86 C 49.25 20.47 46.89 16.82 46.51 16.51 C 46.23 16.28 45.91 16.27 45.65 16.47 M 35.35 36.28 C 33.81 36.81 32.81 38.54 33.19 40.02 C 34.06 43.35 38.68 43.15 39.42 39.74 C 39.9 37.55 37.52 35.53 35.35 36.28 M 23.14 83.71 C 20.44 84.07 18.89 85.11 18.25 86.98 C 17.82 88.27 18.13 89.63 18.94 90.02 C 19.43 90.25 80.97 90.28 81.42 90.05 C 82.18 89.66 82.42 88.3 81.98 86.86 C 81.43 85.04 80.03 84.17 76.98 83.77 C 75.6 83.59 24.49 83.54 23.14 83.71"/></symbol>
12
+ <symbol id="wP" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 48.12 20.54 C 43.13 21.23 38.57 24.78 36.71 29.44 C 35.97 31.29 35.82 32.13 35.81 34.51 C 35.79 37.97 36.34 39.86 38.22 42.77 C 39.41 44.61 38.99 45.47 36.92 45.48 C 33.61 45.48 31.62 47.54 32.06 50.5 C 32.3 52.14 33.01 53.29 34.6 54.65 C 36.24 56.05 36.45 56.52 36.36 58.48 C 36.15 62.77 33.06 69.88 27.99 77.77 C 25.81 81.17 25.55 81.44 23.91 82.09 C 21.31 83.12 19.95 84.56 19.5 86.75 C 18.91 89.64 19.81 92.08 21.73 92.75 C 22.27 92.93 23.51 92.94 50.65 92.94 C 66.24 92.94 79.17 92.9 79.39 92.86 C 80.92 92.53 81.64 91.19 81.64 88.67 C 81.64 84.96 80.27 83.13 76.69 82.08 C 75.01 81.58 74.47 81.1 72.52 78.26 C 67.32 70.71 64.1 63.1 64.09 58.38 C 64.09 56.35 64.23 56.03 65.67 54.79 C 68.22 52.6 68.98 49.7 67.59 47.51 C 66.71 46.12 65.66 45.62 63.32 45.48 C 61.8 45.39 61.36 45.21 61.17 44.62 C 60.99 44.08 61.13 43.65 61.82 42.59 C 66.6 35.23 64.06 25.85 56.21 21.91 C 53.87 20.73 50.66 20.18 48.12 20.54"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 48.92 23.19 C 44.06 23.96 40.86 26.35 39.16 30.48 C 37.39 34.79 38.47 39.59 42 43.08 C 45.13 46.18 50.27 47.18 54.39 45.48 C 58.35 43.86 60.91 40.31 61.45 35.68 C 61.73 33.28 60.95 30.19 59.57 28.26 C 59.04 27.52 57.08 25.59 56.36 25.09 C 54.38 23.73 50.98 22.87 48.92 23.19 M 49.14 26.22 C 48.24 26.34 48.36 26.66 49.44 27.02 C 54.05 28.53 57.13 32.13 57.67 36.62 C 57.87 38.31 58.15 38.42 58.73 37.03 C 60.66 32.34 58.11 27.84 52.73 26.46 C 51.91 26.25 49.88 26.11 49.14 26.22 M 35.86 48.47 C 34.78 49.03 34.9 50.7 36.11 51.91 C 36.49 52.28 36.87 52.54 37.29 52.7 L 37.91 52.93 50.31 52.93 L 62.71 52.93 63.38 52.59 C 65.09 51.74 65.61 49.03 64.19 48.43 C 63.57 48.18 36.37 48.21 35.86 48.47 M 39.74 55.87 C 39.31 56.09 39.2 56.45 39.2 57.63 C 39.19 62.57 35.73 71.08 30.33 79.46 C 29.36 80.96 29.25 81.27 29.57 81.66 L 29.78 81.93 50.11 81.93 L 70.43 81.93 70.65 81.66 C 70.98 81.25 70.86 80.98 69.46 78.82 C 64.18 70.68 61.48 63.87 61.25 58.09 C 61.18 56.4 61.16 56.26 60.93 56.03 L 60.69 55.79 50.35 55.76 C 42.19 55.74 39.95 55.77 39.74 55.87 M 43.54 58.85 C 43.46 58.9 43.26 59.64 43.09 60.5 C 41.95 66.11 39.94 71.04 36.16 77.46 C 35.06 79.34 35.09 79.39 37.33 79.39 C 38.59 79.39 38.87 79.36 39.15 79.19 C 39.94 78.7 42.05 73.98 43.03 70.5 C 43.93 67.29 44.1 66.06 44.11 62.86 C 44.12 59.6 43.97 58.58 43.54 58.85 M 56.62 59.05 C 56.37 59.43 56.33 65.08 56.57 67.02 C 56.94 70.03 58.25 73.95 60.02 77.38 C 61.13 79.52 61.02 79.45 63.16 79.41 C 65.45 79.36 65.45 79.36 64.43 77.86 C 60.73 72.4 58.01 65.53 57.19 59.5 C 57.09 58.82 56.88 58.65 56.62 59.05 M 24.86 85.01 C 24.15 85.36 23.37 86.13 23.07 86.78 C 22.61 87.75 22.63 89.43 23.11 89.91 L 23.33 90.13 50.59 90.13 L 77.86 90.13 78.1 89.89 C 78.31 89.68 78.36 89.51 78.39 88.74 C 78.46 87 77.83 85.84 76.41 85.11 L 75.67 84.73 50.6 84.71 L 25.52 84.68 24.86 85.01"/></symbol>
13
+ <symbol id="bK" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 46.82 9.04 C 45.84 9.39 45.57 9.94 45.47 11.74 C 45.33 14.21 45.06 14.4 41.68 14.48 C 39.46 14.53 39.34 14.55 38.88 14.8 C 37.85 15.38 37.66 16 37.71 18.68 C 37.74 20.63 37.75 20.7 38.03 21.18 C 38.57 22.1 38.88 22.19 41.63 22.26 C 45.17 22.34 45.38 22.51 45.45 25.32 C 45.53 28.74 45.29 28.95 41.14 29.07 C 36.72 29.21 29.47 29.9 27.43 30.37 C 25.51 30.82 23.32 32.5 22.53 34.14 C 21.11 37.07 21.74 41.57 24.02 44.82 C 28.96 51.86 29.46 58.46 25.92 69.66 C 24.76 73.29 23.59 76.25 21.96 79.59 C 20.8 81.98 20.36 82.46 18.73 83.16 C 15.71 84.44 14.91 85.85 14.9 89.85 C 14.9 92.16 14.97 92.49 15.63 93.22 C 16.54 94.23 12.7 94.13 50.11 94.13 L 83.1 94.13 83.59 93.9 C 84.2 93.62 84.74 93.08 85.02 92.46 C 85.3 91.84 85.42 88.74 85.21 87.51 C 84.86 85.44 83.61 84.11 81.09 83.13 C 79.27 82.43 79.12 82.23 77.15 77.91 C 72.7 68.12 70.89 60.18 71.76 54.21 C 72.26 50.82 73.22 48.47 75.53 45.05 C 76.9 43.02 77.35 42.06 77.59 40.67 C 77.78 39.58 77.81 36.93 77.65 35.86 C 77.28 33.51 75.03 31.17 72.46 30.47 C 70.54 29.95 61.7 29.06 58.47 29.06 C 55.12 29.06 54.7 28.65 54.77 25.4 C 54.83 22.53 55.03 22.36 58.48 22.24 C 62.36 22.1 62.64 21.85 62.64 18.37 C 62.64 14.85 62.35 14.58 58.59 14.49 C 55.15 14.4 54.89 14.21 54.75 11.74 C 54.65 9.9 54.31 9.29 53.19 8.98 C 52.5 8.8 47.36 8.84 46.82 9.04"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 45.79 36.48 C 41.98 36.64 37.19 36.94 35.64 37.11 C 35.37 37.14 33.9 37.29 32.37 37.43 C 26.67 37.99 25.16 38.59 25.16 40.3 C 25.16 41.11 25.66 42.15 26.15 42.35 C 26.49 42.49 26.68 42.47 29.1 42.07 C 30.43 41.85 33.35 41.51 35.15 41.36 C 37.48 41.17 63.25 41.16 65.47 41.35 C 66.34 41.42 68.46 41.67 70.17 41.91 C 73.21 42.34 73.28 42.34 73.54 42.14 C 74.33 41.56 74.82 40.19 74.49 39.49 C 73.94 38.34 71.86 37.69 67.55 37.33 C 67.13 37.29 65.72 37.17 64.42 37.05 C 63.11 36.94 61.09 36.79 59.94 36.73 C 58.78 36.66 57.1 36.56 56.21 36.51 C 54.77 36.42 47.63 36.4 45.79 36.48 M 49.87 48.36 C 49.79 48.47 49.33 49.26 48.87 50.12 C 47.66 52.36 46.96 53.35 45.37 55.04 C 44.37 56.11 44.37 56.14 45.52 57.37 C 46.78 58.71 47.53 59.79 48.68 61.89 C 49.22 62.87 49.74 63.81 49.83 63.97 C 50.16 64.57 50.35 64.38 51.17 62.7 C 52.01 60.98 53.51 58.7 54.74 57.28 C 55.73 56.13 55.73 56.06 54.73 54.99 C 53.47 53.65 52.14 51.69 51.24 49.83 C 50.4 48.11 50.23 47.94 49.87 48.36 M 32.55 50.7 C 32.52 50.77 32.73 51.64 33.03 52.61 C 33.97 55.77 34.16 57.17 34.16 61.14 C 34.16 62.83 34.11 64.37 34.03 64.92 C 33.51 68.55 32.41 72.06 30.71 75.51 C 29.39 78.2 29.34 78.12 32.27 78.07 C 34.78 78.03 34.7 78.06 35.43 76.53 C 37.67 71.77 38.45 66.96 37.85 61.5 C 37.42 57.58 35.65 53.6 33.16 50.96 C 32.76 50.52 32.64 50.47 32.55 50.7 M 66.52 50.96 C 65.5 52.11 63.76 55.12 63.19 56.71 C 61.23 62.17 61.21 67.44 63.13 73.23 C 63.64 74.77 65 77.55 65.39 77.85 C 65.72 78.11 66.78 78.16 68.94 78 C 70.31 77.9 70.3 77.94 69.3 75.81 C 67.61 72.18 66.77 69.47 66.06 65.35 C 65.3 60.9 65.72 55.03 67.06 51.65 C 67.49 50.54 67.2 50.17 66.52 50.96 M 25.55 80.48 C 25.2 80.76 24.3 82.27 24.3 82.6 C 24.29 83.14 23.07 83.11 49.78 83.11 C 63.54 83.11 74.92 83.08 75.08 83.03 C 75.63 82.88 75.64 82.62 75.15 81.69 C 74.91 81.23 74.59 80.72 74.45 80.58 L 74.19 80.31 50.01 80.28 L 25.84 80.25 25.55 80.48 M 21.19 86.04 C 20.14 86.56 19.65 87.46 19.65 88.86 C 19.65 89.56 19.68 89.69 19.92 89.92 L 20.18 90.19 50.14 90.19 L 80.09 90.19 80.33 89.94 C 80.53 89.73 80.56 89.56 80.56 88.84 C 80.56 87.79 80.33 87.26 79.58 86.58 C 78.58 85.68 81.46 85.76 49.89 85.76 L 21.75 85.76 21.19 86.04"/></symbol>
14
+ <symbol id="bQ" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 49.03 8.06 C 47.12 8.59 45.95 10.16 45.95 12.16 C 45.95 13.47 46.25 14.22 47.24 15.34 C 48.61 16.9 48.63 17.18 47.5 20.62 C 45.45 26.92 43.21 31.79 42.1 32.36 C 41 32.93 40.37 32.31 37.45 27.76 C 33.93 22.28 33.81 21.93 34.69 19.91 C 35.32 18.46 35.36 17.22 34.8 16.08 C 32.9 12.23 27.06 13.51 27.05 17.78 C 27.05 19.52 27.87 20.71 29.72 21.66 C 31.75 22.71 31.89 22.96 31.94 25.6 C 32 28.3 31.63 30.24 30.7 32.16 C 29.86 33.89 28.86 34.25 27.6 33.28 C 25.64 31.77 20.99 26.32 20.56 25.03 C 20.35 24.41 20.41 24.02 20.85 22.96 C 21.69 20.92 21.4 19.33 19.96 17.99 C 17.27 15.5 12.88 17.54 13.09 21.18 C 13.18 22.87 14.03 23.99 15.87 24.86 C 17.77 25.77 17.75 25.74 19.22 29.98 C 21.11 35.41 22.93 40.01 26.16 47.47 C 29.9 56.15 30.07 56.69 30.06 60.49 C 30.05 65.39 28.41 70.76 24.97 77.12 C 23.17 80.45 22.98 80.65 20.96 81.23 C 17.85 82.13 15.83 83.97 15.15 86.52 C 14.88 87.54 14.88 90.56 15.15 91.34 C 15.41 92.09 16.05 92.8 16.76 93.12 L 17.33 93.37 50.22 93.37 L 83.1 93.37 83.59 93.15 C 84.91 92.54 85.43 91.39 85.42 89.05 C 85.41 84.92 83.68 82.59 79.66 81.28 C 77.32 80.53 77.28 80.48 74.6 75.44 C 71.65 69.89 70.26 64.97 70.26 60.11 C 70.26 56.22 70.35 55.89 73.19 48.82 C 74.23 46.24 75.65 42.64 76.36 40.83 C 77.06 39.02 77.96 36.71 78.36 35.7 C 78.76 34.69 79.63 32.33 80.3 30.45 C 81.98 25.74 81.99 25.72 83.83 24.95 C 85.86 24.09 86.77 22.85 86.77 20.96 C 86.77 17.28 82.38 15.51 79.81 18.15 C 78.57 19.42 78.33 20.79 78.99 22.7 C 79.66 24.65 79.58 24.96 77.84 27.28 C 74.77 31.37 72.1 33.86 71 33.66 C 69.47 33.37 67.99 29.44 68 25.66 C 68 22.97 68.33 22.38 70.21 21.66 C 71.22 21.27 72.11 20.45 72.6 19.47 C 73.53 17.56 72.63 15.1 70.65 14.17 C 69.72 13.74 67.92 13.75 67.08 14.19 C 64.88 15.35 64.28 17.53 65.46 20.15 C 66.29 21.99 66.15 22.43 63.1 27.33 C 60.14 32.09 59.8 32.52 58.91 32.52 C 58.02 32.52 57.51 31.82 55.9 28.43 C 54.32 25.11 52.85 21.23 52.17 18.64 C 51.76 17.08 51.9 16.55 53.02 15.29 C 54.58 13.55 54.85 11.63 53.76 9.92 C 52.77 8.37 50.76 7.57 49.03 8.06"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 50.02 33.8 C 49.95 33.84 49.68 34.39 49.42 35.02 C 48.43 37.41 46.78 40.08 45.32 41.67 C 44.33 42.74 44.32 42.83 45.07 43.62 C 46.61 45.24 48.24 47.95 49.35 50.77 C 50.08 52.62 50.19 52.61 51.02 50.71 C 52.17 48.06 53.96 45.11 55.21 43.79 C 56.19 42.76 56.19 42.7 55.13 41.57 C 53.83 40.16 51.83 36.99 50.96 34.95 C 50.55 33.97 50.28 33.64 50.02 33.8 M 25.48 38.31 C 25.48 38.52 26.5 40.54 26.78 40.91 C 26.89 41.05 27.48 41.55 28.09 42.04 C 34.15 46.82 40.28 55.82 43.09 64.03 C 44.9 69.32 45.94 74.37 45.37 75.07 L 45.16 75.34 37.38 75.39 L 29.59 75.45 29.33 75.72 C 28.96 76.09 28.08 77.74 28.08 78.05 C 28.08 78.19 28.16 78.35 28.26 78.4 C 28.38 78.46 36.98 78.49 50.17 78.49 C 73.23 78.47 72.25 78.49 72.25 77.99 C 72.25 77.62 71.14 75.71 70.83 75.55 C 70.58 75.42 69.33 75.39 62.91 75.39 C 53.71 75.39 54.72 75.66 55.02 73.28 C 55.8 67.14 57.99 61 61.64 54.71 C 64.13 50.42 66.41 47.51 70.43 43.51 L 73.01 40.95 73.61 39.73 C 74.48 37.93 74.33 37.75 72.82 38.79 C 66.22 43.31 63.87 45.41 60.46 49.85 C 56.52 54.97 53.57 62.26 52.71 68.97 C 52.65 69.44 52.5 70.57 52.38 71.48 C 52.26 72.39 52.13 73.55 52.09 74.06 C 51.99 75.39 51.98 75.39 50.16 75.39 C 48.12 75.39 48.27 75.6 48.02 72.37 C 47.57 66.42 46.78 62.73 45.12 58.82 C 41.6 50.56 35.91 44.27 27.01 38.82 C 25.87 38.12 25.48 37.99 25.48 38.31 M 24.63 83.62 C 23.29 83.79 22.2 84.28 21.43 85.05 C 20.35 86.13 19.94 87.25 20.44 87.75 L 20.72 88.03 49.95 88.03 C 79.55 88.03 79.48 88.03 79.73 87.66 C 79.87 87.44 79.8 86.57 79.6 86.12 C 78.97 84.75 77.51 83.87 75.42 83.61 C 74.2 83.46 25.82 83.47 24.63 83.62"/></symbol>
15
+ <symbol id="bR" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 23.09 16.68 C 22.4 16.87 21.88 17.29 21.58 17.91 L 21.33 18.42 21.33 29.28 L 21.33 40.13 21.62 40.76 C 21.78 41.1 22.2 41.78 22.55 42.27 C 26.02 47.07 26.79 50.74 26.14 59.28 C 25.66 65.57 24.63 70.28 22.38 76.47 C 20.96 80.39 20.87 80.52 18.91 81.54 C 15.58 83.27 14.65 84.89 14.64 89 C 14.63 91.4 14.75 91.89 15.54 92.6 C 16.49 93.45 12.93 93.37 50.22 93.37 L 83.43 93.37 84 93.12 C 85.18 92.58 85.63 91.69 85.72 89.7 C 85.91 85.32 84.79 83.22 81.36 81.53 C 79.28 80.51 79.2 80.4 77.92 76.74 C 75.81 70.73 75.11 67.98 74.36 62.7 C 73.95 59.82 73.87 58.5 73.87 54.96 C 73.87 49.31 74.37 47.3 76.56 44.07 C 78.21 41.66 78.5 41.19 78.69 40.62 C 79 39.69 79 18.52 78.69 17.94 C 77.98 16.6 77.92 16.59 73 16.59 C 68.43 16.59 68.4 16.59 67.75 17.3 C 67.15 17.97 67.13 18.09 67.07 21.34 C 67 24.82 66.96 25 66.08 25.5 L 65.61 25.77 61.99 25.77 L 58.37 25.77 57.89 25.5 C 57.02 25 56.97 24.82 56.91 21.39 C 56.82 16.45 56.93 16.53 50.24 16.53 C 45.82 16.53 45.49 16.56 44.79 17.04 C 43.98 17.6 43.91 17.91 43.84 21.34 C 43.78 24.82 43.74 25 42.86 25.5 L 42.39 25.77 38.91 25.8 C 33.49 25.85 33.63 25.96 33.52 21.34 C 33.44 17.65 33.25 17.12 31.86 16.71 C 31.1 16.48 23.91 16.46 23.09 16.68"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 24.51 33.27 C 24.31 33.47 24.3 33.63 24.3 35.22 C 24.3 36.8 24.31 36.96 24.51 37.16 C 24.85 37.5 75.47 37.5 75.81 37.17 C 76.1 36.87 76.17 36.35 76.11 34.91 C 76.04 33.48 75.99 33.29 75.63 33.16 C 75.47 33.1 65.26 33.06 50.05 33.06 C 24.87 33.06 24.73 33.06 24.51 33.27 M 25.7 40.4 C 25.56 40.54 25.52 40.68 25.57 40.8 C 25.76 41.26 26.85 42.92 27.09 43.11 C 27.45 43.4 72.78 43.44 73.19 43.15 C 73.5 42.94 74.95 40.84 74.95 40.62 C 74.95 40.17 75.7 40.18 50.3 40.18 C 26.16 40.18 25.91 40.19 25.7 40.4 M 34.5 52.65 L 34.23 52.92 34.23 56.87 C 34.23 60.67 34.24 60.82 34.45 61.03 C 34.65 61.23 34.81 61.24 37.26 61.24 C 39.7 61.24 39.86 61.23 40.06 61.03 C 40.32 60.77 40.3 61.07 40.29 56.44 C 40.29 52.82 40.28 52.76 40.05 52.58 C 39.85 52.41 39.54 52.39 37.29 52.39 L 34.76 52.39 34.5 52.65 M 47.43 52.64 C 47.19 52.89 47.19 52.93 47.19 56.83 C 47.19 60.22 47.22 60.8 47.36 61 C 47.53 61.24 47.56 61.24 50.12 61.24 L 52.71 61.24 52.97 60.98 L 53.24 60.71 53.24 56.79 L 53.24 52.86 52.99 52.62 C 52.59 52.25 47.78 52.26 47.43 52.64 M 60.17 52.64 C 59.82 53.01 59.8 60.68 60.15 61.03 C 60.36 61.23 60.51 61.24 62.91 61.24 C 65.3 61.24 65.46 61.23 65.66 61.03 C 65.87 60.82 65.88 60.67 65.88 56.82 C 65.88 52.96 65.87 52.81 65.66 52.6 C 65.3 52.24 60.51 52.27 60.17 52.64 M 26.25 76.43 C 26.11 76.53 25.81 77.01 25.59 77.49 C 25.03 78.69 25 79.06 25.44 79.26 C 25.64 79.36 31.86 79.39 50.28 79.39 C 74.7 79.39 74.84 79.39 75.06 79.17 C 75.17 79.05 75.27 78.88 75.27 78.79 C 75.27 78.43 74.48 76.67 74.22 76.47 C 73.83 76.16 26.69 76.13 26.25 76.43 M 28.83 83.51 C 23.91 83.58 23.53 83.63 22.28 84.24 C 20.56 85.1 19.47 86.99 20.24 87.76 L 20.51 88.03 48.46 88.03 C 78.14 88.03 79.72 88.01 80.04 87.69 C 80.73 87 79.66 84.93 78.26 84.26 C 76.79 83.55 77.01 83.56 67.98 83.53 C 49.38 83.45 32.94 83.44 28.83 83.51"/></symbol>
16
+ <symbol id="bB" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 48.71 11.6 C 45.52 12.66 44.43 15.98 46.37 18.68 C 47.26 19.92 47.3 20 47.3 20.54 C 47.3 21.2 47.23 21.3 45.27 23.44 C 41.47 27.58 33.21 36.79 32.47 37.7 C 28.96 42.05 28.3 46.31 30.33 51.4 C 31.01 53.1 31.07 53.53 31.07 56.44 C 31.07 59.35 30.92 60.61 30.29 63.13 C 29 68.26 26.81 73.18 23.41 78.54 C 21.97 80.82 21.23 81.45 19.45 81.93 C 16.48 82.73 14.56 84.67 14.16 87.3 C 14.01 88.28 14.09 90.87 14.29 91.46 C 14.49 92.06 15.19 92.81 15.82 93.12 L 16.36 93.39 50.17 93.39 L 83.98 93.39 84.48 93.15 C 85.79 92.55 86.2 91.73 86.26 89.56 C 86.34 86.55 85.94 85.34 84.33 83.83 C 83.2 82.75 82.38 82.33 80.6 81.87 C 78.35 81.3 78.11 81.04 74.92 75.72 C 70.67 68.64 68.48 62.11 68.48 56.55 C 68.48 54.02 68.61 53.32 69.45 51.28 C 71.59 46.04 71.11 41.76 67.84 36.87 C 67.42 36.24 66.75 35.11 66.35 34.36 C 65.95 33.61 65.41 32.72 65.16 32.39 C 64.76 31.88 63.17 30.42 62.73 30.17 C 62.66 30.13 60.3 32.91 56.79 37.18 C 53.59 41.07 50.94 44.24 50.89 44.22 C 50.52 44.09 46.63 40.73 46.72 40.62 C 46.77 40.55 49.38 37.37 52.51 33.55 C 55.64 29.74 58.2 26.57 58.2 26.52 C 58.2 26.46 57.15 25.56 55.87 24.5 C 51.89 21.24 51.79 21.03 53.23 19.11 C 54.33 17.64 54.44 17.36 54.44 15.89 C 54.44 14.42 54.17 13.72 53.25 12.8 C 52.11 11.67 50.11 11.14 48.71 11.6"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 64.56 55.69 C 64.26 56.02 63.32 58.42 62.94 59.81 C 61.68 64.42 62.02 69.36 63.94 74.52 C 64.71 76.58 66.45 79.86 67.08 80.44 L 67.41 80.75 69.5 80.75 C 72.21 80.75 72.43 80.62 71.63 79.53 C 70.84 78.45 68.32 73.92 67.69 72.44 C 65.86 68.16 64.58 62.16 64.77 58.68 C 64.81 57.88 64.88 56.89 64.93 56.49 C 65.05 55.48 64.95 55.26 64.56 55.69 M 35 56.3 C 35.04 56.68 35.13 57.3 35.2 57.67 C 35.5 59.3 35.34 63.56 34.89 66.06 C 34.16 70.06 31.96 75.58 29.66 79.13 C 28.61 80.75 28.61 80.75 31.33 80.75 C 33.87 80.75 33.8 80.78 34.71 79.31 C 37.48 74.83 38.72 67.47 37.64 61.94 C 37.12 59.29 35.64 55.59 35.1 55.59 C 34.95 55.59 34.94 55.7 35 56.3 M 49.91 56.19 C 49.85 56.26 49.66 56.78 49.49 57.33 C 48.67 60.03 47.47 61.82 45.45 63.37 C 44.41 64.17 44.41 64.29 45.37 65.01 C 47.27 66.41 48.3 67.89 49.33 70.64 C 50.09 72.67 50.14 72.67 50.79 70.73 C 51.71 67.96 53.09 66.04 55.03 64.82 C 55.47 64.54 55.62 64.38 55.62 64.18 C 55.62 63.98 55.47 63.82 55.03 63.53 C 52.68 62.03 51.44 60.18 50.51 56.81 C 50.34 56.18 50.11 55.94 49.91 56.19 M 22.8 84.57 C 21.99 84.71 21.3 85.07 20.7 85.67 C 19.81 86.56 19.4 88 19.9 88.5 C 20.12 88.73 20.27 88.73 50.22 88.73 C 80.18 88.73 80.33 88.73 80.55 88.5 C 81.34 87.72 80.15 85.5 78.55 84.76 L 78.02 84.52 50.67 84.5 C 35.63 84.49 23.09 84.52 22.8 84.57"/></symbol>
17
+ <symbol id="bN" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 45.52 13.19 C 44.66 13.37 44.43 13.68 42.33 17.61 C 40.49 21.06 38.37 24.67 36.9 26.88 C 36.03 28.2 35.68 28.6 33.7 30.56 C 29.37 34.84 22.92 40.58 18.03 44.5 C 12.73 48.75 12.35 49.26 12.38 52.06 C 12.43 58.26 15.72 62.07 21 62.04 C 23.36 62.03 24.44 61.63 28.22 59.36 C 31.64 57.31 32.1 57.18 35.8 57.22 C 41.52 57.28 44.2 56.38 47.35 53.36 C 48.63 52.13 49.12 51.85 49.52 52.11 C 50.02 52.44 49.96 53.1 49.29 54.7 C 48.19 57.31 46.73 59.06 44.18 60.81 C 36.48 66.1 34.96 67.58 31.01 73.52 C 29.17 76.29 28.58 77.32 27.86 78.99 C 26.6 81.94 26.55 81.97 23.43 82.1 C 20.04 82.23 18.52 82.77 16.85 84.45 C 15.38 85.92 15.03 86.83 14.93 89.38 C 14.83 92.09 15.31 93.19 16.9 93.88 C 17.33 94.07 81.9 94.15 82.8 93.96 C 83.66 93.78 84.33 93.28 84.72 92.52 L 85.05 91.88 85.04 89.6 C 85.04 87.6 85.01 87.25 84.81 86.67 C 83.97 84.16 81.27 82.46 77.7 82.19 C 74.96 81.98 74.63 81.55 75.27 79.01 C 76.8 72.95 77.71 66.89 78.03 60.6 C 78.17 57.85 78.41 57.54 81.61 55.88 C 84.94 54.16 85.14 53.74 84.35 50.28 C 82.44 42.03 77.75 35.15 70.06 29.32 C 66.3 26.48 61.04 24.53 56.05 24.15 C 53.61 23.96 53.42 23.79 50.83 19.44 C 47.35 13.59 46.78 12.92 45.52 13.19"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 53.48 29.17 C 52.73 29.41 53.02 29.56 55.18 30.08 C 57.79 30.69 59.67 31.54 62.58 33.41 C 70.1 38.23 74.94 45.13 77.32 54.41 C 77.5 55.11 77.76 55.12 78.87 54.45 C 80.1 53.71 80.12 53.64 79.81 51.93 C 78.47 44.66 74.49 38.38 68.36 33.85 C 65.5 31.73 61.98 30.2 58.1 29.37 C 56.92 29.12 54.05 29 53.48 29.17 M 54.97 35.38 C 54.97 35.47 55.28 35.89 55.67 36.32 C 60.87 42.1 63.98 48.07 65.32 54.82 C 66.14 58.94 66.16 64.71 65.38 69.02 C 64.79 72.24 63.16 77.45 62.58 77.96 L 62.3 78.2 47.23 78.2 C 30.48 78.2 31.68 78.15 31.23 78.93 C 30.93 79.47 30.56 80.47 30.56 80.74 C 30.56 81.24 29.81 81.22 49.14 81.22 C 70.24 81.22 67.8 81.38 68.3 80.01 C 69.2 77.53 70.32 72.44 70.65 69.34 C 70.86 67.34 70.83 61.91 70.59 60.22 C 69.6 53.12 67.48 47.84 63.46 42.45 C 61.76 40.17 57.85 36.66 55.82 35.6 C 55 35.16 54.97 35.16 54.97 35.38 M 34.57 36.19 C 32.27 37.02 31.56 39.69 33.2 41.33 C 34.58 42.71 36.61 42.65 37.89 41.2 C 39.96 38.85 37.49 35.14 34.57 36.19 M 47.3 84.89 C 21.33 84.96 23.64 84.89 22.25 85.59 C 20.67 86.4 19.56 88.48 20.3 89.27 L 20.55 89.54 50.02 89.54 C 82.24 89.54 80.04 89.58 80.2 88.94 C 80.47 87.85 79.38 86.11 78.03 85.48 C 76.54 84.79 77.94 84.81 47.3 84.89"/></symbol>
18
+ <symbol id="bP" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 48.49 20.96 C 43.31 21.68 39.18 24.71 36.93 29.41 C 36.03 31.29 35.82 32.29 35.81 34.68 C 35.79 37.88 36.51 40.23 38.31 42.85 C 39.9 45.16 39.62 45.9 37.14 45.91 C 33.94 45.91 32.33 47.18 32.2 49.82 C 32.11 51.78 32.68 52.93 34.67 54.77 C 36.27 56.26 36.34 56.42 36.33 58.38 C 36.3 62.9 33.54 69.48 27.58 79.28 C 25.84 82.13 25.59 82.4 23.97 83 C 20.83 84.18 19.81 85.61 19.68 89 C 19.58 91.87 20.17 93.02 22.01 93.49 C 23.03 93.75 78.82 93.67 79.4 93.41 C 80.7 92.82 81.22 91.89 81.29 90 C 81.44 86.24 80.14 84.21 76.81 83.02 C 74.76 82.29 74.59 82.13 72.55 79.01 C 66.8 70.24 63.81 63.17 63.78 58.27 C 63.77 56.54 63.89 56.29 65.48 54.66 C 67.21 52.88 67.73 51.87 67.74 50.17 C 67.76 47.43 66.27 46.12 62.91 45.92 C 61.33 45.82 60.91 45.68 60.63 45.14 C 60.37 44.62 60.51 44.2 61.38 42.91 C 62.4 41.4 62.65 40.96 63.11 39.83 C 66.41 31.86 61.36 22.79 52.7 21.13 C 51.59 20.91 49.45 20.83 48.49 20.96"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 49.51 25.89 C 48.75 26.05 48.27 26.28 48.27 26.47 C 48.27 26.6 48.21 26.58 49.57 26.95 C 53.93 28.14 57.25 32.38 57.62 37.24 C 57.66 37.79 57.74 38.27 57.8 38.31 C 57.99 38.43 58.39 37.91 58.84 36.96 C 61.63 31.1 56.07 24.5 49.51 25.89 M 37.04 48.96 C 36.04 49.47 36.11 50.99 37.17 52.04 C 38.04 52.88 37.07 52.82 50.07 52.82 C 61.65 52.82 61.71 52.82 62.17 52.59 C 63.67 51.87 64.24 49.59 63.07 48.99 C 62.64 48.76 37.48 48.74 37.04 48.96 M 42.46 56.26 C 42.31 56.4 42.24 56.7 42.19 57.3 C 41.82 61.65 39.05 68.88 35.16 75.63 C 34.06 77.55 34.02 77.65 34.31 77.94 C 34.56 78.19 37.8 78.08 38.21 77.81 C 38.7 77.49 40.78 72.88 41.61 70.26 C 42.02 68.98 42.82 65.77 43.03 64.54 C 43.14 63.94 43.27 63.22 43.33 62.92 C 43.39 62.62 43.46 61.06 43.49 59.45 C 43.55 56.57 43.54 56.52 43.32 56.29 C 43.04 56.01 42.72 56 42.46 56.26 M 56.79 56.27 C 56.26 56.69 56.44 61.98 57.08 65.23 C 57.99 69.81 60.91 77.39 61.95 77.86 C 62.71 78.21 66 77.97 65.98 77.57 C 65.98 77.48 65.13 75.89 64 73.82 C 61.15 68.6 58.42 61.28 57.88 57.42 C 57.71 56.14 57.38 55.79 56.79 56.27 M 30.8 80.41 C 30.5 80.66 29.68 81.97 29.53 82.41 C 29.49 82.54 29.55 82.7 29.68 82.83 C 29.89 83.04 30.17 83.04 49.99 83.05 C 71.83 83.07 70.85 83.09 70.84 82.5 C 70.84 82.14 70.05 80.76 69.65 80.43 L 69.32 80.14 50.22 80.14 L 31.12 80.14 30.8 80.41 M 26.08 86.01 C 24.69 86.66 23.79 88.72 24.55 89.48 L 24.83 89.76 50.41 89.76 L 75.99 89.76 76.23 89.51 C 76.73 88.97 76.4 87.36 75.62 86.57 C 74.74 85.68 77.33 85.76 50.49 85.76 L 26.62 85.76 26.08 86.01"/></symbol>
19
+ </defs>
20
+ <rect x="0" y="0" width="100" height="100" fill="#eaf1f8"/><use href="#wK" x="0" y="0" width="100" height="100"/><rect x="0" y="100" width="100" height="100" fill="#86abd0"/><use href="#bK" x="0" y="100" width="100" height="100"/><rect x="100" y="0" width="100" height="100" fill="#86abd0"/><use href="#wQ" x="100" y="0" width="100" height="100"/><rect x="100" y="100" width="100" height="100" fill="#eaf1f8"/><use href="#bQ" x="100" y="100" width="100" height="100"/><rect x="200" y="0" width="100" height="100" fill="#eaf1f8"/><use href="#wR" x="200" y="0" width="100" height="100"/><rect x="200" y="100" width="100" height="100" fill="#86abd0"/><use href="#bR" x="200" y="100" width="100" height="100"/><rect x="300" y="0" width="100" height="100" fill="#86abd0"/><use href="#wB" x="300" y="0" width="100" height="100"/><rect x="300" y="100" width="100" height="100" fill="#eaf1f8"/><use href="#bB" x="300" y="100" width="100" height="100"/><rect x="400" y="0" width="100" height="100" fill="#eaf1f8"/><use href="#wN" x="400" y="0" width="100" height="100"/><rect x="400" y="100" width="100" height="100" fill="#86abd0"/><use href="#bN" x="400" y="100" width="100" height="100"/><rect x="500" y="0" width="100" height="100" fill="#86abd0"/><use href="#wP" x="500" y="0" width="100" height="100"/><rect x="500" y="100" width="100" height="100" fill="#eaf1f8"/><use href="#bP" x="500" y="100" width="100" height="100"/>
21
+ </svg>
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx } from "preact/jsx-runtime";
2
+ // The pieces, drawn from a set: one vector map with a symbol for each piece, wK to bP (D-49): Nitida, the Torretta (D-46), or Capablanca (D-94), as the
3
+ // settings choose (D-56). The pieces taken and the moves show the set's small pieces: one silhouette each, in fixed colours (D-50).
4
+ import { createContext } from "preact";
5
+ import { useContext } from "preact/hooks";
6
+ /** The set the player chose, for every piece the page draws. */
7
+ export const ChosenSet = createContext("nitida");
8
+ const folder = "/page/pieces/";
9
+ /**
10
+ * A piece by its FEN letter, uppercase for White, drawn to fill its box from the chosen set, or from `set`; our sets take their colours from the settings.
11
+ * A `small` piece is the set's silhouette, in plain white or black, for the sizes where the full drawing blurs.
12
+ */
13
+ export function Piece({ letter, set, small = false }) {
14
+ const chosen = useContext(ChosenSet);
15
+ const white = letter === letter.toUpperCase();
16
+ return _jsx(Drawing, { href: `${folder}${set ?? chosen}${small ? "-small" : ""}.svg#${white ? "w" : "b"}${letter.toUpperCase()}`, class: `piece ${white ? "white" : "black"}` });
17
+ }
18
+ /** A piece as the notation shows it (D-50): the chosen set's small piece, White's white and Black's black. */
19
+ export function Figurine({ letter, side }) {
20
+ const chosen = useContext(ChosenSet);
21
+ return _jsx(Drawing, { href: `${folder}${chosen}-small.svg#${side === "white" ? "w" : "b"}${letter.toUpperCase()}`, class: `figurine ${side}` });
22
+ }
23
+ function Drawing({ href, class: name }) {
24
+ if (!/#[wb][KQRBNP]$/.test(href)) {
25
+ return null;
26
+ }
27
+ return (_jsx("svg", { class: name, viewBox: "0 0 100 100", "aria-hidden": "true", children: _jsx("use", { href: href }) }));
28
+ }
@@ -0,0 +1,20 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 200" width="600" height="200">
2
+ <!-- Chesspal, the small pieces of the set "torretta", drawn from the set's pieces. © 2026 Stefano Caronia, Chesspal (https://github.com/stefanocaronia/chesspal), under the licence CC BY 4.0
3
+ (https://creativecommons.org/licenses/by/4.0/): free to use, share and adapt, also commercially, crediting "Stefano Caronia, Chesspal".
4
+ One solid silhouette each, without inner lines, for the pieces taken and the moves; White and Black share the shape. Fixed colours: White edged black, Black edged mid grey (#9aa3ad). -->
5
+ <defs>
6
+ <symbol id="wK" viewBox="0 0 100 100"><path fill="#ffffff" stroke="#000000" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 45.77 6.64 C 45.66 6.75 45.63 7.67 45.63 10.05 C 45.63 12.43 45.59 13.35 45.48 13.45 C 45.38 13.56 44.2 13.59 40.9 13.59 C 37.6 13.59 36.42 13.63 36.31 13.73 C 36.11 13.94 36.11 20.81 36.31 21.02 C 36.42 21.12 37.6 21.16 40.9 21.16 C 44.2 21.16 45.38 21.19 45.48 21.3 C 45.69 21.5 45.69 32.16 45.48 32.36 C 45.38 32.47 44.57 32.51 42.58 32.51 L 39.82 32.51 39.65 32.91 C 39.39 33.54 39.18 33.57 34.7 33.57 C 28.57 33.58 27.87 33.7 25.82 35.16 C 23.45 36.86 22.75 38.63 22.75 42.97 C 22.76 48.2 23.22 49.85 25.51 52.9 C 26.8 54.63 27.02 55.15 26.89 56.17 C 26.63 58.26 24.34 71.24 23.58 75 C 22.93 78.18 22.65 78.52 20.33 78.89 C 17.34 79.37 15.5 80.89 14.88 83.39 C 14.65 84.32 14.69 88.4 14.94 89.36 C 15.38 91.07 16.96 92.64 18.79 93.21 C 19.4 93.39 21.65 93.41 49.65 93.47 L 79.85 93.53 80.73 93.26 C 83.5 92.44 84.95 90.8 85.22 88.18 C 85.72 83.47 84.78 80.78 82.24 79.57 C 81.49 79.21 79.99 78.84 79.28 78.84 C 78.19 78.84 77.37 78.36 77.01 77.51 C 76.48 76.24 73.16 57.37 73.17 55.65 C 73.17 55.07 73.61 54.24 74.76 52.66 C 76.87 49.74 77.15 48.69 77.27 43.32 C 77.35 39.71 77.29 39.29 76.52 37.71 C 75.9 36.44 74.53 35.1 73.17 34.42 C 71.57 33.62 71.17 33.57 65.82 33.57 C 60.68 33.57 60.56 33.55 60.5 32.93 L 60.46 32.56 57.46 32.53 C 55.48 32.51 54.4 32.46 54.29 32.37 C 54.08 32.19 54.06 21.52 54.28 21.3 C 54.38 21.19 55.57 21.16 58.87 21.16 C 62.16 21.16 63.35 21.12 63.45 21.02 C 63.65 20.81 63.65 13.94 63.45 13.73 C 63.35 13.63 62.16 13.59 58.87 13.59 C 55.57 13.59 54.38 13.56 54.28 13.45 C 54.18 13.35 54.14 12.43 54.14 10.05 C 54.14 7.67 54.1 6.75 54 6.64 C 53.79 6.44 45.97 6.44 45.77 6.64"/></symbol>
7
+ <symbol id="wQ" viewBox="0 0 100 100"><path fill="#ffffff" stroke="#000000" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 48.44 16.26 C 46.58 16.76 44.9 18.32 44.28 20.13 C 43.69 21.83 43.84 23.28 44.81 25.32 L 45.48 26.72 45.21 27.46 C 44.8 28.6 43.92 30.33 43.61 30.62 C 43.11 31.09 42.87 30.9 41.36 28.87 C 38.32 24.79 37.95 24.47 36.32 24.47 C 34.23 24.47 33.61 25.15 31.98 29.32 C 30.38 33.39 30.49 33.34 28.29 31.11 C 26.54 29.34 26.41 29.07 26.63 27.85 C 27.23 24.63 26.18 22.11 23.69 20.75 C 21.98 19.82 19.32 19.86 17.65 20.84 C 16.39 21.57 15.24 23.16 14.89 24.61 C 14.24 27.37 15.36 29.87 17.95 31.43 C 19.56 32.4 19.28 31.87 22.81 40.72 C 26.45 49.84 26.62 50.18 29.07 53.01 C 30.04 54.14 30.43 54.8 30.43 55.36 C 30.44 56.68 26.11 73.63 25.11 76.19 C 24.29 78.29 23.87 78.58 21.22 78.9 C 18.66 79.22 17.97 79.51 16.68 80.84 C 15.26 82.31 15.03 83.17 15.09 86.75 L 15.13 89.19 15.51 89.99 C 16.24 91.52 17.6 92.65 19.47 93.26 L 20.26 93.52 49.79 93.46 C 69.96 93.42 79.57 93.37 80.12 93.28 C 81.96 92.99 83.59 91.74 84.43 89.99 L 84.87 89.07 84.91 86.56 C 84.97 83.11 84.72 82.11 83.51 80.81 C 82.34 79.56 81.1 79.08 78.43 78.85 C 75.86 78.62 75.31 78.23 74.65 76.17 C 74.04 74.27 71.7 64.99 70.03 57.85 C 69.37 55.01 69.43 54.74 71.22 52.78 C 73.71 50.05 74.09 49.26 78.63 37.53 C 79.63 34.93 80.59 32.63 80.75 32.41 C 80.91 32.2 81.51 31.72 82.07 31.34 C 84.54 29.67 85.49 27.8 85.17 25.22 C 84.66 21.15 79.98 18.82 76.19 20.74 C 74.04 21.83 72.76 24.43 73.12 26.98 C 73.4 29.05 73.4 29.14 73.08 29.69 C 72.91 29.97 72.19 30.77 71.48 31.47 C 69.48 33.44 69.5 33.45 67.94 29.08 C 67.08 26.65 66.76 26.05 65.96 25.32 C 64.9 24.35 63.67 24.18 62.37 24.83 C 61.53 25.25 61.08 25.74 58.86 28.65 C 58.03 29.74 57.22 30.72 57.06 30.82 C 56.46 31.21 56.05 30.68 55.1 28.29 C 54.54 26.89 54.55 26.77 55.33 25.23 C 56.13 23.64 56.33 22.64 56.12 21.21 C 55.62 17.73 51.89 15.33 48.44 16.26"/></symbol>
8
+ <symbol id="wR" viewBox="0 0 100 100"><path fill="#ffffff" stroke="#000000" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 26.51 21.63 C 24.41 21.83 22.57 23.33 21.85 25.41 C 21.64 26.03 21.63 26.47 21.66 33.27 C 21.72 46.99 21.78 47.4 24.28 50.95 C 25.49 52.66 25.75 53.19 25.8 54.08 C 25.9 55.71 23.97 70.31 23.03 75 C 22.43 78.05 22.18 78.38 19.84 79.26 C 17.77 80.04 16.44 81.33 15.88 83.13 C 15.58 84.07 15.45 87.22 15.65 88.54 C 15.94 90.42 17.13 92.04 18.84 92.88 L 19.73 93.32 24.93 93.41 C 27.8 93.46 41.18 93.49 54.67 93.46 C 76.78 93.43 79.28 93.4 80 93.23 C 82.17 92.71 83.82 91 84.29 88.79 C 84.49 87.85 84.51 84.8 84.33 83.69 C 84.16 82.61 83.62 81.56 82.77 80.66 C 81.94 79.78 81.34 79.43 79.78 78.97 C 78.33 78.54 78.12 78.39 77.9 77.63 C 77.6 76.58 76.42 68.23 75.24 58.92 C 74.55 53.43 74.58 53.18 76.14 50.87 C 78.46 47.43 78.44 47.51 78.51 38.53 C 78.54 34.6 78.52 30.07 78.46 28.47 L 78.36 25.56 77.92 24.67 C 77.39 23.61 76.32 22.53 75.28 22.04 C 73.83 21.35 66.98 21.34 65.49 22.03 C 63.65 22.87 62.47 24.84 62.47 27.08 C 62.47 28.05 62.25 28.95 61.94 29.26 C 61.32 29.88 59.1 29.89 58.48 29.28 C 58.19 28.98 58.14 28.74 57.87 26.25 C 57.67 24.33 56.58 22.77 54.94 22.02 C 53.78 21.49 47.54 21.34 45.74 21.81 C 44.91 22.03 43.97 22.63 43.3 23.39 C 42.43 24.38 42.21 25.07 42.03 27.33 C 41.85 29.5 41.7 29.66 39.86 29.67 C 37.97 29.67 37.84 29.52 37.64 27.11 C 37.47 25.03 37.15 24.24 36.03 23.14 C 34.93 22.07 34.07 21.73 32.16 21.62 C 30.3 21.51 27.76 21.51 26.51 21.63"/></symbol>
9
+ <symbol id="wB" viewBox="0 0 100 100"><path fill="#ffffff" stroke="#000000" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 48.64 19.98 C 46.7 20.38 44.52 22.38 43.77 24.41 C 43.42 25.37 43.34 27.29 43.61 28.41 C 43.84 29.4 43.84 29.82 43.63 30.24 C 43.38 30.7 42.07 31.94 38.06 35.53 C 29.16 43.48 28.93 43.82 29.05 48.88 C 29.12 52.07 29.44 53.09 31.35 56.32 C 32.4 58.11 32.5 58.46 32.28 59.53 C 31.7 62.23 28.08 73.91 27.02 76.45 C 26.2 78.44 25.41 79.01 23.17 79.26 C 20.69 79.52 18.86 80.63 17.97 82.41 C 17.37 83.6 17.29 84.2 17.34 86.98 L 17.38 89.42 17.76 90.23 C 18.27 91.31 19.34 92.38 20.45 92.91 L 21.28 93.31 29.31 93.41 C 39.04 93.54 77.13 93.43 78.15 93.28 C 80.28 92.95 82.22 91.07 82.56 88.99 C 82.74 87.88 82.71 84.61 82.51 83.67 C 81.93 80.9 80.01 79.54 76.25 79.2 C 74.05 79 73.7 78.77 73.05 77.07 C 72.13 74.65 68.52 61.99 68.07 59.58 C 67.84 58.32 67.9 58.09 68.97 56.21 C 69.41 55.43 69.92 54.45 70.09 54.05 C 71.16 51.47 71.39 46.7 70.57 44.13 C 69.97 42.25 69.55 41.69 66.56 38.7 C 64.09 36.22 63.42 35.65 63.21 35.86 C 63.17 35.9 63.2 36.06 63.28 36.23 C 63.35 36.39 63.38 36.59 63.35 36.67 C 63.24 36.93 50.99 44.1 50.78 44.03 C 50.51 43.94 48.72 40.82 48.83 40.63 C 48.88 40.55 49.01 40.42 49.12 40.34 C 49.23 40.26 49.35 40.03 49.39 39.82 C 49.5 39.31 50 38.86 53.11 36.44 C 57.3 33.18 57.48 32.95 57.33 30.97 C 57.28 30.29 57.24 29.51 57.24 29.25 C 57.24 28.99 57.26 28.01 57.28 27.07 C 57.32 24.51 56.91 23.47 55.21 21.81 C 54.25 20.88 53.5 20.43 52.47 20.15 C 51.62 19.93 49.37 19.83 48.64 19.98"/></symbol>
10
+ <symbol id="wN" viewBox="0 0 100 100"><path fill="#ffffff" stroke="#000000" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 46.69 18.38 C 45.17 18.87 43.96 20.48 39.07 28.49 C 36.24 33.12 36.45 32.88 32.33 36.33 C 21.2 45.63 16.04 50.27 15.33 51.63 C 14.25 53.71 14.43 56.09 15.96 59.99 C 17.62 64.24 19.52 66.05 23.01 66.73 C 25.07 67.13 32.48 67.23 34.97 66.89 C 36 66.75 36.49 66.88 36.6 67.35 C 36.75 67.92 34.1 74.01 33.01 75.6 C 32.48 76.39 31.55 77.3 30.68 77.89 C 29.7 78.56 29.02 78.71 26.09 78.84 C 24.41 78.92 23.23 79.03 22.81 79.15 C 21.08 79.65 19.57 80.9 18.82 82.46 L 18.38 83.39 18.38 86.35 L 18.38 89.3 18.77 90.1 C 19.57 91.73 21.27 93.01 23 93.29 C 24.23 93.48 79.03 93.48 80.32 93.28 C 82.6 92.94 84.34 91.52 85.02 89.45 C 85.23 88.81 85.27 88.42 85.27 86.41 C 85.27 83.06 84.94 81.9 83.64 80.57 C 82.6 79.5 81.47 79.07 79.15 78.85 C 77.6 78.7 77.1 78.49 76.79 77.86 L 76.57 77.4 77.06 73.9 C 77.98 67.36 78.72 62.99 79.01 62.34 C 79.26 61.8 79.43 61.63 80.54 60.88 C 84.53 58.17 84.67 55.79 81.36 47.4 C 79.48 42.61 77.7 39.9 74.45 36.82 C 70.35 32.94 65.98 30.43 60.65 28.89 C 58 28.12 58.16 28.24 55.96 25.4 C 52.5 20.93 50.9 19.19 49.69 18.6 C 48.88 18.21 47.53 18.11 46.69 18.38"/></symbol>
11
+ <symbol id="wP" viewBox="0 0 100 100"><path fill="#ffffff" stroke="#000000" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 47.28 25.29 C 44.39 25.91 42.25 27.12 39.94 29.42 C 35.73 33.61 34.41 39.17 36.29 44.7 C 36.55 45.46 36.76 46.18 36.76 46.31 C 36.76 46.67 36.28 47.01 35.4 47.27 C 34.34 47.58 33.68 48.01 32.84 48.91 C 31.26 50.63 31.15 52.98 32.45 57.09 C 33.07 59.04 33.07 58.99 32.46 60.94 C 31.58 63.8 27.98 75.06 27.7 75.89 C 26.94 78.05 26.58 78.42 24.66 79.02 C 22.02 79.84 20.5 81.38 20.08 83.63 C 19.85 84.89 20 88.93 20.31 89.73 C 21.17 91.92 22.92 93.14 25.58 93.4 C 27.1 93.55 72.98 93.44 74.77 93.28 C 76.88 93.1 78.61 91.9 79.52 89.99 L 79.96 89.07 80.01 86.7 C 80.07 83.09 79.83 82.13 78.46 80.67 C 77.61 79.75 76.69 79.27 75.36 79.02 C 73.27 78.62 72.92 78.43 72.47 77.42 C 72.27 76.95 69.51 67.87 67.85 62.18 C 66.98 59.18 66.97 58.96 67.7 56.79 C 68.44 54.59 68.6 53.72 68.54 52.07 C 68.45 49.55 67.22 47.95 64.82 47.22 C 63.4 46.78 63.23 46.45 63.72 45.16 C 64.89 42.09 65 37.98 64 34.93 C 62.63 30.72 58.98 27.15 54.51 25.65 C 52.67 25.03 49.27 24.86 47.28 25.29"/></symbol>
12
+ <symbol id="bK" viewBox="0 0 100 100"><path fill="#000000" stroke="#9aa3ad" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 45.77 6.64 C 45.66 6.75 45.63 7.67 45.63 10.05 C 45.63 12.43 45.59 13.35 45.48 13.45 C 45.38 13.56 44.2 13.59 40.9 13.59 C 37.6 13.59 36.42 13.63 36.31 13.73 C 36.11 13.94 36.11 20.81 36.31 21.02 C 36.42 21.12 37.6 21.16 40.9 21.16 C 44.2 21.16 45.38 21.19 45.48 21.3 C 45.69 21.5 45.69 32.16 45.48 32.36 C 45.38 32.47 44.57 32.51 42.58 32.51 L 39.82 32.51 39.65 32.91 C 39.39 33.54 39.18 33.57 34.7 33.57 C 28.57 33.58 27.87 33.7 25.82 35.16 C 23.45 36.86 22.75 38.63 22.75 42.97 C 22.76 48.2 23.22 49.85 25.51 52.9 C 26.8 54.63 27.02 55.15 26.89 56.17 C 26.63 58.26 24.34 71.24 23.58 75 C 22.93 78.18 22.65 78.52 20.33 78.89 C 17.34 79.37 15.5 80.89 14.88 83.39 C 14.65 84.32 14.69 88.4 14.94 89.36 C 15.38 91.07 16.96 92.64 18.79 93.21 C 19.4 93.39 21.65 93.41 49.65 93.47 L 79.85 93.53 80.73 93.26 C 83.5 92.44 84.95 90.8 85.22 88.18 C 85.72 83.47 84.78 80.78 82.24 79.57 C 81.49 79.21 79.99 78.84 79.28 78.84 C 78.19 78.84 77.37 78.36 77.01 77.51 C 76.48 76.24 73.16 57.37 73.17 55.65 C 73.17 55.07 73.61 54.24 74.76 52.66 C 76.87 49.74 77.15 48.69 77.27 43.32 C 77.35 39.71 77.29 39.29 76.52 37.71 C 75.9 36.44 74.53 35.1 73.17 34.42 C 71.57 33.62 71.17 33.57 65.82 33.57 C 60.68 33.57 60.56 33.55 60.5 32.93 L 60.46 32.56 57.46 32.53 C 55.48 32.51 54.4 32.46 54.29 32.37 C 54.08 32.19 54.06 21.52 54.28 21.3 C 54.38 21.19 55.57 21.16 58.87 21.16 C 62.16 21.16 63.35 21.12 63.45 21.02 C 63.65 20.81 63.65 13.94 63.45 13.73 C 63.35 13.63 62.16 13.59 58.87 13.59 C 55.57 13.59 54.38 13.56 54.28 13.45 C 54.18 13.35 54.14 12.43 54.14 10.05 C 54.14 7.67 54.1 6.75 54 6.64 C 53.79 6.44 45.97 6.44 45.77 6.64"/></symbol>
13
+ <symbol id="bQ" viewBox="0 0 100 100"><path fill="#000000" stroke="#9aa3ad" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 48.44 16.26 C 46.58 16.76 44.9 18.32 44.28 20.13 C 43.69 21.83 43.84 23.28 44.81 25.32 L 45.48 26.72 45.21 27.46 C 44.8 28.6 43.92 30.33 43.61 30.62 C 43.11 31.09 42.87 30.9 41.36 28.87 C 38.32 24.79 37.95 24.47 36.32 24.47 C 34.23 24.47 33.61 25.15 31.98 29.32 C 30.38 33.39 30.49 33.34 28.29 31.11 C 26.54 29.34 26.41 29.07 26.63 27.85 C 27.23 24.63 26.18 22.11 23.69 20.75 C 21.98 19.82 19.32 19.86 17.65 20.84 C 16.39 21.57 15.24 23.16 14.89 24.61 C 14.24 27.37 15.36 29.87 17.95 31.43 C 19.56 32.4 19.28 31.87 22.81 40.72 C 26.45 49.84 26.62 50.18 29.07 53.01 C 30.04 54.14 30.43 54.8 30.43 55.36 C 30.44 56.68 26.11 73.63 25.11 76.19 C 24.29 78.29 23.87 78.58 21.22 78.9 C 18.66 79.22 17.97 79.51 16.68 80.84 C 15.26 82.31 15.03 83.17 15.09 86.75 L 15.13 89.19 15.51 89.99 C 16.24 91.52 17.6 92.65 19.47 93.26 L 20.26 93.52 49.79 93.46 C 69.96 93.42 79.57 93.37 80.12 93.28 C 81.96 92.99 83.59 91.74 84.43 89.99 L 84.87 89.07 84.91 86.56 C 84.97 83.11 84.72 82.11 83.51 80.81 C 82.34 79.56 81.1 79.08 78.43 78.85 C 75.86 78.62 75.31 78.23 74.65 76.17 C 74.04 74.27 71.7 64.99 70.03 57.85 C 69.37 55.01 69.43 54.74 71.22 52.78 C 73.71 50.05 74.09 49.26 78.63 37.53 C 79.63 34.93 80.59 32.63 80.75 32.41 C 80.91 32.2 81.51 31.72 82.07 31.34 C 84.54 29.67 85.49 27.8 85.17 25.22 C 84.66 21.15 79.98 18.82 76.19 20.74 C 74.04 21.83 72.76 24.43 73.12 26.98 C 73.4 29.05 73.4 29.14 73.08 29.69 C 72.91 29.97 72.19 30.77 71.48 31.47 C 69.48 33.44 69.5 33.45 67.94 29.08 C 67.08 26.65 66.76 26.05 65.96 25.32 C 64.9 24.35 63.67 24.18 62.37 24.83 C 61.53 25.25 61.08 25.74 58.86 28.65 C 58.03 29.74 57.22 30.72 57.06 30.82 C 56.46 31.21 56.05 30.68 55.1 28.29 C 54.54 26.89 54.55 26.77 55.33 25.23 C 56.13 23.64 56.33 22.64 56.12 21.21 C 55.62 17.73 51.89 15.33 48.44 16.26"/></symbol>
14
+ <symbol id="bR" viewBox="0 0 100 100"><path fill="#000000" stroke="#9aa3ad" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 26.51 21.63 C 24.41 21.83 22.57 23.33 21.85 25.41 C 21.64 26.03 21.63 26.47 21.66 33.27 C 21.72 46.99 21.78 47.4 24.28 50.95 C 25.49 52.66 25.75 53.19 25.8 54.08 C 25.9 55.71 23.97 70.31 23.03 75 C 22.43 78.05 22.18 78.38 19.84 79.26 C 17.77 80.04 16.44 81.33 15.88 83.13 C 15.58 84.07 15.45 87.22 15.65 88.54 C 15.94 90.42 17.13 92.04 18.84 92.88 L 19.73 93.32 24.93 93.41 C 27.8 93.46 41.18 93.49 54.67 93.46 C 76.78 93.43 79.28 93.4 80 93.23 C 82.17 92.71 83.82 91 84.29 88.79 C 84.49 87.85 84.51 84.8 84.33 83.69 C 84.16 82.61 83.62 81.56 82.77 80.66 C 81.94 79.78 81.34 79.43 79.78 78.97 C 78.33 78.54 78.12 78.39 77.9 77.63 C 77.6 76.58 76.42 68.23 75.24 58.92 C 74.55 53.43 74.58 53.18 76.14 50.87 C 78.46 47.43 78.44 47.51 78.51 38.53 C 78.54 34.6 78.52 30.07 78.46 28.47 L 78.36 25.56 77.92 24.67 C 77.39 23.61 76.32 22.53 75.28 22.04 C 73.83 21.35 66.98 21.34 65.49 22.03 C 63.65 22.87 62.47 24.84 62.47 27.08 C 62.47 28.05 62.25 28.95 61.94 29.26 C 61.32 29.88 59.1 29.89 58.48 29.28 C 58.19 28.98 58.14 28.74 57.87 26.25 C 57.67 24.33 56.58 22.77 54.94 22.02 C 53.78 21.49 47.54 21.34 45.74 21.81 C 44.91 22.03 43.97 22.63 43.3 23.39 C 42.43 24.38 42.21 25.07 42.03 27.33 C 41.85 29.5 41.7 29.66 39.86 29.67 C 37.97 29.67 37.84 29.52 37.64 27.11 C 37.47 25.03 37.15 24.24 36.03 23.14 C 34.93 22.07 34.07 21.73 32.16 21.62 C 30.3 21.51 27.76 21.51 26.51 21.63"/></symbol>
15
+ <symbol id="bB" viewBox="0 0 100 100"><path fill="#000000" stroke="#9aa3ad" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 48.64 19.98 C 46.7 20.38 44.52 22.38 43.77 24.41 C 43.42 25.37 43.34 27.29 43.61 28.41 C 43.84 29.4 43.84 29.82 43.63 30.24 C 43.38 30.7 42.07 31.94 38.06 35.53 C 29.16 43.48 28.93 43.82 29.05 48.88 C 29.12 52.07 29.44 53.09 31.35 56.32 C 32.4 58.11 32.5 58.46 32.28 59.53 C 31.7 62.23 28.08 73.91 27.02 76.45 C 26.2 78.44 25.41 79.01 23.17 79.26 C 20.69 79.52 18.86 80.63 17.97 82.41 C 17.37 83.6 17.29 84.2 17.34 86.98 L 17.38 89.42 17.76 90.23 C 18.27 91.31 19.34 92.38 20.45 92.91 L 21.28 93.31 29.31 93.41 C 39.04 93.54 77.13 93.43 78.15 93.28 C 80.28 92.95 82.22 91.07 82.56 88.99 C 82.74 87.88 82.71 84.61 82.51 83.67 C 81.93 80.9 80.01 79.54 76.25 79.2 C 74.05 79 73.7 78.77 73.05 77.07 C 72.13 74.65 68.52 61.99 68.07 59.58 C 67.84 58.32 67.9 58.09 68.97 56.21 C 69.41 55.43 69.92 54.45 70.09 54.05 C 71.16 51.47 71.39 46.7 70.57 44.13 C 69.97 42.25 69.55 41.69 66.56 38.7 C 64.09 36.22 63.42 35.65 63.21 35.86 C 63.17 35.9 63.2 36.06 63.28 36.23 C 63.35 36.39 63.38 36.59 63.35 36.67 C 63.24 36.93 50.99 44.1 50.78 44.03 C 50.51 43.94 48.72 40.82 48.83 40.63 C 48.88 40.55 49.01 40.42 49.12 40.34 C 49.23 40.26 49.35 40.03 49.39 39.82 C 49.5 39.31 50 38.86 53.11 36.44 C 57.3 33.18 57.48 32.95 57.33 30.97 C 57.28 30.29 57.24 29.51 57.24 29.25 C 57.24 28.99 57.26 28.01 57.28 27.07 C 57.32 24.51 56.91 23.47 55.21 21.81 C 54.25 20.88 53.5 20.43 52.47 20.15 C 51.62 19.93 49.37 19.83 48.64 19.98"/></symbol>
16
+ <symbol id="bN" viewBox="0 0 100 100"><path fill="#000000" stroke="#9aa3ad" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 46.69 18.38 C 45.17 18.87 43.96 20.48 39.07 28.49 C 36.24 33.12 36.45 32.88 32.33 36.33 C 21.2 45.63 16.04 50.27 15.33 51.63 C 14.25 53.71 14.43 56.09 15.96 59.99 C 17.62 64.24 19.52 66.05 23.01 66.73 C 25.07 67.13 32.48 67.23 34.97 66.89 C 36 66.75 36.49 66.88 36.6 67.35 C 36.75 67.92 34.1 74.01 33.01 75.6 C 32.48 76.39 31.55 77.3 30.68 77.89 C 29.7 78.56 29.02 78.71 26.09 78.84 C 24.41 78.92 23.23 79.03 22.81 79.15 C 21.08 79.65 19.57 80.9 18.82 82.46 L 18.38 83.39 18.38 86.35 L 18.38 89.3 18.77 90.1 C 19.57 91.73 21.27 93.01 23 93.29 C 24.23 93.48 79.03 93.48 80.32 93.28 C 82.6 92.94 84.34 91.52 85.02 89.45 C 85.23 88.81 85.27 88.42 85.27 86.41 C 85.27 83.06 84.94 81.9 83.64 80.57 C 82.6 79.5 81.47 79.07 79.15 78.85 C 77.6 78.7 77.1 78.49 76.79 77.86 L 76.57 77.4 77.06 73.9 C 77.98 67.36 78.72 62.99 79.01 62.34 C 79.26 61.8 79.43 61.63 80.54 60.88 C 84.53 58.17 84.67 55.79 81.36 47.4 C 79.48 42.61 77.7 39.9 74.45 36.82 C 70.35 32.94 65.98 30.43 60.65 28.89 C 58 28.12 58.16 28.24 55.96 25.4 C 52.5 20.93 50.9 19.19 49.69 18.6 C 48.88 18.21 47.53 18.11 46.69 18.38"/></symbol>
17
+ <symbol id="bP" viewBox="0 0 100 100"><path fill="#000000" stroke="#9aa3ad" stroke-width="7" stroke-linejoin="round" paint-order="stroke" d="M 47.28 25.29 C 44.39 25.91 42.25 27.12 39.94 29.42 C 35.73 33.61 34.41 39.17 36.29 44.7 C 36.55 45.46 36.76 46.18 36.76 46.31 C 36.76 46.67 36.28 47.01 35.4 47.27 C 34.34 47.58 33.68 48.01 32.84 48.91 C 31.26 50.63 31.15 52.98 32.45 57.09 C 33.07 59.04 33.07 58.99 32.46 60.94 C 31.58 63.8 27.98 75.06 27.7 75.89 C 26.94 78.05 26.58 78.42 24.66 79.02 C 22.02 79.84 20.5 81.38 20.08 83.63 C 19.85 84.89 20 88.93 20.31 89.73 C 21.17 91.92 22.92 93.14 25.58 93.4 C 27.1 93.55 72.98 93.44 74.77 93.28 C 76.88 93.1 78.61 91.9 79.52 89.99 L 79.96 89.07 80.01 86.7 C 80.07 83.09 79.83 82.13 78.46 80.67 C 77.61 79.75 76.69 79.27 75.36 79.02 C 73.27 78.62 72.92 78.43 72.47 77.42 C 72.27 76.95 69.51 67.87 67.85 62.18 C 66.98 59.18 66.97 58.96 67.7 56.79 C 68.44 54.59 68.6 53.72 68.54 52.07 C 68.45 49.55 67.22 47.95 64.82 47.22 C 63.4 46.78 63.23 46.45 63.72 45.16 C 64.89 42.09 65 37.98 64 34.93 C 62.63 30.72 58.98 27.15 54.51 25.65 C 52.67 25.03 49.27 24.86 47.28 25.29"/></symbol>
18
+ </defs>
19
+ <rect x="0" y="0" width="100" height="100" fill="#f4f6f8"/><use href="#wK" x="0" y="0" width="100" height="100"/><rect x="0" y="100" width="100" height="100" fill="#3a4048"/><use href="#bK" x="0" y="100" width="100" height="100"/><rect x="100" y="0" width="100" height="100" fill="#3a4048"/><use href="#wQ" x="100" y="0" width="100" height="100"/><rect x="100" y="100" width="100" height="100" fill="#f4f6f8"/><use href="#bQ" x="100" y="100" width="100" height="100"/><rect x="200" y="0" width="100" height="100" fill="#f4f6f8"/><use href="#wR" x="200" y="0" width="100" height="100"/><rect x="200" y="100" width="100" height="100" fill="#3a4048"/><use href="#bR" x="200" y="100" width="100" height="100"/><rect x="300" y="0" width="100" height="100" fill="#3a4048"/><use href="#wB" x="300" y="0" width="100" height="100"/><rect x="300" y="100" width="100" height="100" fill="#f4f6f8"/><use href="#bB" x="300" y="100" width="100" height="100"/><rect x="400" y="0" width="100" height="100" fill="#f4f6f8"/><use href="#wN" x="400" y="0" width="100" height="100"/><rect x="400" y="100" width="100" height="100" fill="#3a4048"/><use href="#bN" x="400" y="100" width="100" height="100"/><rect x="500" y="0" width="100" height="100" fill="#3a4048"/><use href="#wP" x="500" y="0" width="100" height="100"/><rect x="500" y="100" width="100" height="100" fill="#f4f6f8"/><use href="#bP" x="500" y="100" width="100" height="100"/>
20
+ </svg>
@@ -0,0 +1,21 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 200" width="600" height="200">
2
+ <!-- Chesspal, the set "Torretta", drawn with Codex. © 2026 Stefano Caronia, Chesspal (https://github.com/stefanocaronia/chesspal), under the licence CC BY 4.0
3
+ (https://creativecommons.org/licenses/by/4.0/): free to use, share and adapt, also commercially, crediting "Stefano Caronia, Chesspal".
4
+ A symbol for each piece, wK to bP, on a grid of 100, traced from the drawing. Each piece is its silhouette and its light areas; the page colours them with CSS variables: piece-fill and
5
+ piece-edge on White, piece-fill and piece-detail on Black. -->
6
+ <defs>
7
+ <symbol id="wK" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 47.7 10.7 C 45.74 10.95 44.72 11.72 43.64 13.72 C 42.88 15.15 42.6 15.36 41.19 15.51 C 38.1 15.85 36.26 17.27 35.54 19.9 C 35.31 20.73 35.28 23.56 35.49 24.4 C 36.1 26.82 37.86 28.43 40.33 28.81 C 41.6 29 42.16 29.41 41.92 29.95 C 41.64 30.57 41.88 30.54 34.85 30.6 C 27.57 30.67 27.76 30.65 26.02 31.55 C 22.6 33.31 21.45 36.03 21.79 41.55 C 22.08 46.23 22.59 47.69 25.01 50.69 C 26.4 52.41 26.46 52.75 25.96 55.9 C 24.95 62.13 22.92 73.35 22.4 75.57 C 21.92 77.59 21.16 78.31 19.27 78.51 C 15.96 78.87 14.02 80.47 13.44 83.31 C 13.19 84.54 13.28 88.18 13.58 89.11 C 14.16 90.89 15.64 92.24 17.6 92.77 C 18.22 92.94 19.96 92.95 49.95 92.95 L 81.65 92.95 82.5 92.73 C 84.75 92.13 86.11 90.84 86.72 88.75 C 87.03 87.68 87.06 84.01 86.77 82.85 C 86.1 80.14 84.27 78.78 80.93 78.51 C 78.96 78.35 78.41 77.92 77.95 76.13 C 77.36 73.88 75.29 62.04 74.29 55.2 C 73.93 52.73 74.02 52.43 75.74 50.16 C 77.92 47.28 78.3 46.01 78.5 40.95 C 78.61 37.98 78.55 37.09 78.16 35.85 C 77.31 33.17 74.88 31.17 71.9 30.7 C 71.51 30.64 68.95 30.6 65.55 30.6 C 59.59 30.6 59.3 30.58 58.91 30.16 C 58.4 29.62 58.92 29.1 60.14 28.89 C 62.96 28.43 64.71 26.94 65.31 24.5 C 65.56 23.5 65.5 20.31 65.22 19.4 C 64.47 17.01 62.77 15.76 59.91 15.51 C 58.24 15.37 57.99 15.19 57.14 13.51 C 56.36 11.98 55.12 11.05 53.45 10.75 C 52.6 10.6 48.73 10.56 47.7 10.7"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 47.22 13.31 C 46.36 13.74 45.9 14.62 45.9 15.84 C 45.89 16.98 45.47 17.64 44.57 17.91 C 44.4 17.97 43.38 18.03 42.31 18.05 C 39.95 18.1 39.59 18.19 38.84 18.94 C 38.04 19.75 37.87 20.38 37.91 22.38 C 37.95 23.92 37.96 23.97 38.28 24.62 C 38.94 25.97 39.66 26.3 42.14 26.39 C 44.23 26.46 44.43 26.53 44.97 27.34 C 45.47 28.08 45.55 28.47 45.55 30.32 L 45.55 31.99 45.25 32.3 C 45.09 32.47 44.72 32.72 44.43 32.86 L 43.91 33.12 36.62 33.11 C 29.73 33.1 29.29 33.11 28.58 33.29 C 26.81 33.75 25.55 34.71 24.83 36.16 L 24.45 36.94 24.42 38.49 C 24.29 44.63 24.85 46.65 27.46 49.5 C 29.19 51.38 29.23 51.66 28.41 56.65 C 27.4 62.82 26.4 68.84 26.35 69 C 26.32 69.08 26.12 70.14 25.91 71.36 C 25.09 75.89 24.54 77.85 23.85 78.79 C 22.8 80.22 21.39 80.92 19.25 81.1 C 17.98 81.2 17.31 81.48 16.71 82.17 C 15.99 82.98 15.9 83.4 15.9 85.78 C 15.9 88.72 16.17 89.41 17.6 90.09 L 18.15 90.35 50.05 90.35 L 81.95 90.35 82.51 90.08 C 84.12 89.34 84.35 88.78 84.35 85.7 C 84.35 83 84.31 82.85 83.43 81.97 C 82.78 81.32 82.24 81.14 80.7 81.07 C 77.75 80.93 76.18 79.82 75.56 77.44 C 74.9 74.9 72.44 60.78 71.64 55 C 71.23 52.03 71.43 51.15 72.83 49.63 C 74.31 48.02 75.19 46.54 75.61 44.95 C 75.88 43.93 76.08 38.5 75.9 37.38 C 75.59 35.54 74.39 34.18 72.41 33.41 L 71.75 33.15 64.05 33.1 L 56.35 33.05 55.9 32.8 C 55.25 32.44 55.23 32.34 55.29 29.98 L 55.35 27.92 55.65 27.48 C 56.22 26.67 56.79 26.48 58.83 26.41 C 61.26 26.32 62.01 25.95 62.69 24.5 C 63.07 23.68 63.13 21.33 62.79 20.28 C 62.23 18.51 61.63 18.2 58.57 18.08 C 56.64 18 56.29 17.96 55.91 17.78 C 55.41 17.54 55.11 17 55.1 16.34 C 55.1 15 54.51 13.85 53.6 13.38 L 53.08 13.1 50.36 13.1 C 47.8 13.1 47.63 13.11 47.22 13.31 M 49.49 15.68 C 48.64 16.12 48.4 16.7 48.33 18.36 C 48.24 20.46 48.1 20.62 46.14 20.7 C 44.4 20.78 43.76 21.18 43.55 22.32 C 43.31 23.58 44.31 24.39 46.1 24.4 C 48.13 24.4 48.38 24.89 48.4 28.8 C 48.41 30.84 48.85 31.45 50.35 31.45 C 51.33 31.45 51.82 31.19 52.26 30.44 C 52.53 29.98 52.53 29.96 52.57 27.81 C 52.62 24.46 52.56 24.56 54.71 24.41 C 56.05 24.31 56.5 24.14 56.86 23.6 C 57.25 23.01 57.32 22.63 57.15 22.05 C 56.86 21.04 56.22 20.7 54.58 20.7 C 52.78 20.7 52.5 20.39 52.5 18.4 C 52.5 17.04 52.4 16.62 51.97 16.13 C 51.31 15.37 50.39 15.21 49.49 15.68 M 35.78 37.95 C 35.04 38.72 38.48 40.5 42.1 41.23 C 45.63 41.95 52.49 42.11 56.15 41.56 C 59.94 41 62.35 40.22 63.87 39.09 C 64.52 38.6 64.68 38.34 64.46 38.12 C 64.32 37.98 64 37.97 61.23 38.08 C 55.87 38.29 42.36 38.22 37.15 37.94 C 36.44 37.91 35.82 37.91 35.78 37.95 M 69.85 42.67 C 59.82 45.86 46.41 46.56 35.8 44.44 C 34.22 44.12 31.8 43.44 29.95 42.8 C 28.47 42.28 28.36 42.27 28.32 42.61 C 28.29 42.89 29.17 44.17 29.81 44.77 C 32.52 47.29 38.17 49.27 44.35 49.86 C 55.95 50.96 67.45 48.14 71.12 43.3 C 72 42.14 71.8 42.04 69.85 42.67 M 32.26 52.78 C 32.23 52.88 32.27 53.81 32.35 54.85 C 32.63 58.44 32.48 61.73 31.84 66.2 C 30.8 73.35 28.63 78.75 25.83 81.15 C 24.83 82 24.76 82.1 24.94 82.28 C 25.14 82.48 26.71 82.24 28 81.81 C 33.43 79.99 36.71 75.89 37.71 69.7 C 37.95 68.26 37.89 64.51 37.61 63.11 C 36.9 59.53 35.52 56.34 33.49 53.64 C 32.71 52.6 32.39 52.37 32.26 52.78 M 19.92 84.47 C 18.78 85.03 18.73 86.71 19.83 87.23 C 20.42 87.51 79.69 87.5 80.32 87.22 C 81.48 86.71 81.6 85.34 80.56 84.56 L 80.29 84.35 50.27 84.33 C 22.63 84.31 20.22 84.32 19.92 84.47"/></symbol>
8
+ <symbol id="wQ" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 49.5 12.19 C 46.5 12.6 44.21 15.43 44.43 18.44 C 44.5 19.41 44.76 20.21 45.31 21.12 C 46.27 22.75 46.25 23.05 45 25.68 C 44.07 27.62 43.83 27.89 43.08 27.9 C 42.54 27.9 42.29 27.64 40.38 25.02 C 37.7 21.37 37.23 20.95 35.8 20.95 C 33.92 20.96 33.28 21.78 31.56 26.34 C 30.58 28.93 30.39 29.33 29.94 29.6 C 29.2 30.06 28.87 29.88 26.98 27.95 C 24.83 25.75 24.7 25.47 25.09 23.83 C 25.61 21.59 25.16 19.71 23.75 18.21 C 20.92 15.21 15.96 15.9 14.16 19.54 C 12.69 22.52 13.78 25.84 16.75 27.42 C 18.37 28.29 18.55 28.55 20.05 32.4 C 21.81 36.89 25.2 45.29 25.57 46.08 C 26.08 47.16 27.15 48.7 28.3 50 C 30.51 52.5 30.49 52.42 29.54 56.4 C 25.76 72.16 24.66 75.97 23.54 77.28 C 22.79 78.16 22.27 78.36 20.25 78.55 C 17.69 78.8 16.72 79.17 15.55 80.34 C 14.79 81.11 14.34 81.89 14.04 83 C 13.77 83.96 13.77 87.88 14.03 88.74 C 14.67 90.79 15.96 92.03 18.2 92.72 L 18.95 92.95 48.05 92.98 C 77.39 93.01 81.38 92.97 82.5 92.66 C 84.52 92.1 85.93 90.75 86.55 88.8 C 86.81 88 86.88 84.49 86.67 83.27 C 86.13 80.17 84.12 78.71 80.1 78.51 C 77.72 78.39 76.92 77.95 76.2 76.37 C 75.76 75.39 74.65 71.24 73.11 64.8 C 72.56 62.52 71.89 59.73 71.61 58.6 C 70.11 52.44 70.1 52.52 72.01 50.45 C 75.04 47.17 75 47.26 80.75 32.35 C 81.28 30.98 81.79 29.66 81.88 29.42 C 82.21 28.6 82.69 28.09 83.8 27.4 C 85.04 26.63 85.93 25.78 86.37 24.95 C 88.46 20.98 85.6 16.35 81.05 16.35 C 77.13 16.35 74.4 19.98 75.39 23.87 C 75.85 25.67 75.72 25.99 73.66 28.08 C 72.06 29.71 71.81 29.9 71.28 29.9 C 70.4 29.9 70.13 29.47 68.99 26.19 C 68.55 24.91 68.06 23.6 67.91 23.26 C 67.01 21.29 65.37 20.52 63.73 21.29 C 62.88 21.7 62.5 22.1 60.43 24.86 C 58.37 27.6 57.99 28 57.41 28 C 56.66 28 56.39 27.64 55.37 25.24 C 54.45 23.09 54.44 22.77 55.31 21.33 C 56.43 19.48 56.64 17.85 56 16.03 C 55.1 13.47 52.29 11.81 49.5 12.19"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 49.16 14.84 C 46.22 16.08 46.15 19.79 49.05 21.11 C 49.89 21.49 49.9 21.54 49.29 22.84 C 47.1 27.56 46.6 28.66 46 30.09 C 45.11 32.22 44.86 32.65 44.35 32.96 C 43.6 33.4 42.88 33.2 42.32 32.4 C 42.17 32.19 41.83 31.69 41.55 31.29 C 41.28 30.89 40.52 29.84 39.87 28.96 C 39.23 28.07 38.24 26.72 37.68 25.95 C 35.71 23.24 35.71 23.25 34.37 26.6 C 33.9 27.79 33.15 29.78 32.71 31.02 C 31.69 33.92 31.53 34.21 30.77 34.49 C 29.99 34.79 29.82 34.66 25.37 30.25 C 21.59 26.5 21.49 26.41 21.1 26.8 C 20.84 27.06 20.84 27.15 21.21 28.07 C 21.58 29 22.65 31.73 23.08 32.85 C 23.26 33.29 23.6 34.19 23.84 34.85 C 24.54 36.73 26.83 42.41 27.64 44.29 C 28.6 46.49 29.24 47.44 31.03 49.22 C 32.24 50.43 32.52 50.83 32.75 51.62 C 33.1 52.84 33.04 53.19 31.59 59.05 C 27.26 76.5 27 77.29 25.15 79.17 C 23.75 80.58 22.43 81.1 20.22 81.1 C 18.47 81.1 17.28 81.76 16.67 83.07 C 16.41 83.64 16.28 87.49 16.5 88.25 C 16.77 89.17 17.5 89.88 18.49 90.17 C 19.41 90.44 81.59 90.38 82.3 90.11 C 83.03 89.83 83.55 89.37 83.87 88.72 C 84.15 88.15 84.15 88.14 84.18 85.86 L 84.21 83.57 83.9 82.94 C 83.23 81.57 82.54 81.24 79.9 81.05 C 77.11 80.84 76.1 80.49 74.94 79.34 C 73.83 78.24 73.5 77.29 71.7 69.94 C 71.21 67.91 70.53 65.19 70.2 63.9 C 69.09 59.5 67.87 54.17 67.75 53.2 C 67.59 51.9 68.13 50.76 69.65 49.2 C 72.52 46.24 72.74 45.86 75.48 38.65 C 75.92 37.49 76.38 36.32 76.5 36.05 C 76.62 35.78 77.24 34.2 77.87 32.55 C 78.49 30.9 79.24 28.98 79.52 28.28 C 80.06 26.93 80.09 26.61 79.69 26.39 C 79.58 26.33 79.38 26.31 79.27 26.34 C 79.06 26.39 76.2 29.24 72.9 32.67 C 71.32 34.32 70.81 34.7 70.19 34.7 C 69.6 34.7 68.96 34.12 68.75 33.4 C 68.45 32.32 66.3 26.38 65.62 24.75 C 65.3 23.98 64.95 23.66 64.63 23.86 C 64.34 24.03 63.18 25.52 61.86 27.4 C 58.1 32.76 57.72 33.2 56.87 33.2 C 56.01 33.2 55.68 32.81 54.92 30.9 C 54.64 30.21 54.23 29.24 53.99 28.75 C 53.76 28.26 53.36 27.36 53.1 26.75 C 51.84 23.85 51.19 22.38 51.05 22.09 C 50.8 21.61 50.92 21.34 51.47 21.16 C 52.91 20.68 53.96 19.06 53.75 17.61 C 53.46 15.47 51.08 14.04 49.16 14.84 M 18.27 19.02 C 16.42 19.66 15.52 21.79 16.34 23.58 C 16.94 24.87 18.02 25.5 19.63 25.5 L 20.56 25.5 21.18 25.04 C 22.7 23.91 23.17 22.29 22.41 20.75 C 21.63 19.17 19.91 18.45 18.27 19.02 M 80.05 18.97 C 77.18 20.01 76.87 23.22 79.45 25.16 L 80.2 25.72 81.04 25.62 C 83.09 25.38 84.36 24.17 84.48 22.36 C 84.62 20.1 82.15 18.22 80.05 18.97 M 50.08 29.27 C 50 29.37 49.76 29.97 49.55 30.6 C 48.27 34.46 46.31 36.36 43.6 36.35 C 41.11 36.34 39.43 35.07 37.55 31.77 C 36.67 30.23 36.58 30.22 36.19 31.72 C 35.22 35.44 33.04 37.52 30.38 37.25 C 29.79 37.2 29.69 37.21 29.63 37.36 C 29.55 37.57 29.86 38.15 30.23 38.46 L 30.52 38.7 50.55 38.7 C 64.8 38.7 70.66 38.67 70.83 38.59 C 71.1 38.47 71.8 37.46 71.8 37.19 C 71.8 36.89 71.65 36.89 70.94 37.16 C 69.04 37.87 66.95 36.97 65.74 34.91 C 65.46 34.43 65.12 33.59 64.79 32.56 C 64.13 30.48 64.13 30.48 63.93 30.52 C 63.84 30.54 63.51 31 63.2 31.55 C 61.59 34.45 60.17 35.78 58.14 36.3 C 54.91 37.13 52.26 34.97 50.8 30.35 C 50.44 29.19 50.31 29.01 50.08 29.27 M 67.9 43.21 C 56.94 46.29 42.61 46.26 32.54 43.14 C 31.92 42.96 31.35 42.8 31.27 42.8 C 30.17 42.8 33.12 45.7 35.39 46.84 C 41.34 49.84 51.87 50.63 60.18 48.69 C 61.82 48.31 64.6 47.36 65.71 46.8 C 67.61 45.84 70.28 43.33 69.95 42.81 C 69.86 42.66 69.88 42.66 67.9 43.21 M 36.32 52.62 C 36.23 52.71 36.2 53.31 36.2 54.71 C 36.2 58.06 35.64 61.39 34.05 67.52 C 32.13 74.93 30.66 78.04 27.79 80.82 C 26.57 81.99 26.73 82.15 28.66 81.64 C 34.39 80.16 38.66 75.31 40.34 68.38 C 41.53 63.45 40.66 58.24 37.95 54.15 C 37.06 52.81 36.58 52.36 36.32 52.62 M 27.25 84.09 C 20.08 84.16 20.35 84.13 19.84 84.89 C 19.25 85.79 19.56 86.83 20.54 87.2 C 21.06 87.39 79.61 87.34 80.08 87.14 C 81.58 86.52 81.45 84.75 79.87 84.23 C 79.31 84.05 41.82 83.95 27.25 84.09"/></symbol>
9
+ <symbol id="wR" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 25.06 18.01 C 22.88 18.37 21.32 19.7 20.67 21.75 C 20.39 22.61 20.31 23.77 20.36 26.3 C 20.38 27.65 20.45 31.67 20.5 35.25 C 20.58 39.98 20.64 42.01 20.75 42.7 C 21.02 44.48 21.74 46.18 22.92 47.8 C 24.77 50.34 24.92 50.67 24.91 52.05 C 24.9 53.99 23.1 67.7 22.15 73.05 C 21.36 77.51 21.08 77.95 18.41 78.89 C 16.1 79.7 14.83 80.97 14.25 83.05 C 13.99 83.96 13.93 87.17 14.14 88.3 C 14.55 90.52 16 92.09 18.25 92.77 C 18.82 92.94 20.33 92.95 48.6 92.98 C 78.68 93.01 80.42 92.99 81.7 92.65 C 83.87 92.07 85.35 90.38 85.76 88 C 85.97 86.79 85.91 83.78 85.66 82.85 C 85.26 81.37 84.29 80.03 83.09 79.33 C 82.6 79.04 82.25 78.92 80.48 78.45 C 79.78 78.26 79.24 77.82 78.99 77.23 C 78.77 76.72 78.27 73.41 77.4 66.85 C 77.07 64.32 76.68 61.44 76.55 60.45 C 75.92 55.81 75.67 53.41 75.66 52 C 75.65 50.24 75.71 50.08 77.1 48.14 C 78.57 46.1 79.24 44.51 79.5 42.47 C 79.67 41.11 79.63 23.34 79.45 22.35 C 79.08 20.29 77.71 18.77 75.65 18.13 C 74.63 17.82 68.01 17.86 67.1 18.18 C 64.8 19.01 63.61 20.88 63.6 23.66 C 63.6 26.08 62.95 26.67 60.4 26.58 C 58.33 26.52 58 26.15 57.89 23.76 C 57.78 21.39 57.42 20.4 56.28 19.35 C 54.93 18.1 54.42 17.98 50.39 17.92 C 45.93 17.87 45.01 18.06 43.61 19.35 C 42.5 20.38 42.13 21.4 42.01 23.71 C 41.89 26.27 41.61 26.55 39.2 26.55 C 36.81 26.55 36.51 26.26 36.39 23.76 C 36.3 22.12 36.17 21.5 35.67 20.55 C 34.99 19.27 33.63 18.33 32.05 18.05 C 31.16 17.89 25.94 17.86 25.06 18.01"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 24.52 20.81 C 23.77 21.18 23.35 21.67 23.13 22.4 C 22.96 23 23 35.9 23.2 40.55 C 23.34 43.88 23.7 44.81 25.8 47.3 C 27.29 49.07 27.79 50.47 27.6 52.38 C 27.47 53.67 27.24 55.67 27.1 56.7 C 27.05 57.11 26.89 58.42 26.75 59.6 C 26.12 64.8 25.18 70.89 24.29 75.55 C 23.63 78.98 22.42 80.43 19.64 81.16 C 18.14 81.54 17.45 82.05 16.96 83.09 C 16.64 83.79 16.64 88.02 16.96 88.7 C 17.25 89.31 17.74 89.78 18.4 90.09 L 18.95 90.35 49.8 90.34 C 84.72 90.33 81.4 90.41 82.3 89.51 C 83.11 88.7 83.2 88.31 83.2 85.62 C 83.2 83.44 83.19 83.33 82.96 82.85 C 82.46 81.8 81.74 81.32 80.25 81.06 C 77.03 80.51 76.51 79.73 75.8 74.45 C 75.68 73.57 75.5 72.27 75.4 71.55 C 75.21 70.28 75.03 68.95 74.75 66.75 C 74.67 66.15 74.52 64.93 74.4 64.05 C 74 60.93 73.71 58.64 73.61 57.7 C 73.55 57.18 73.41 55.96 73.3 55 C 72.73 50.16 72.86 49.47 74.84 46.95 C 76.97 44.23 76.9 44.74 76.9 32.49 C 76.9 21.92 76.92 22.27 76.31 21.43 C 75.7 20.59 75.53 20.55 71.62 20.52 C 67.85 20.49 67.79 20.5 67.03 21.14 C 66.27 21.78 66.2 22.12 66.2 25.14 C 66.2 28.18 66.15 28.44 65.49 28.91 L 65.15 29.15 60.91 29.18 C 54.95 29.22 55.37 29.51 55.3 25.25 C 55.25 22.1 55.23 22 54.64 21.31 C 53.99 20.54 53.77 20.5 49.95 20.5 C 46.22 20.5 46.17 20.51 45.43 21.14 C 44.71 21.75 44.66 22.02 44.6 25.26 L 44.55 28.17 44.26 28.54 C 43.76 29.2 43.76 29.2 39.23 29.2 C 33.48 29.2 33.87 29.48 33.8 25.3 L 33.75 22.45 33.47 21.87 C 32.84 20.59 32.51 20.5 28.4 20.5 L 25.13 20.5 24.52 20.81 M 27.48 27.89 L 27.15 28.18 27.12 32.33 C 27.09 37 27.11 37.17 27.86 37.94 C 28.6 38.7 29.25 38.86 31.95 38.95 C 32.94 38.98 34.49 39.05 35.4 39.1 C 41.54 39.44 64.39 39.49 68.15 39.16 C 71.52 38.87 72.31 38.66 72.98 37.84 C 73.48 37.24 73.5 37.03 73.5 32.75 C 73.5 27.46 73.62 27.7 70.98 27.7 C 68.7 27.7 68.6 27.81 68.6 30.48 C 68.6 32.27 68.5 32.63 67.96 32.85 C 67.38 33.1 54.29 33.07 53.8 32.82 C 53.2 32.53 53.1 32.18 53.1 30.4 C 53.1 27.75 52.93 27.6 50.05 27.6 C 47.15 27.6 47.05 27.7 47.05 30.47 C 47.05 32.34 46.99 32.57 46.39 32.87 C 45.96 33.1 32.85 33.05 32.4 32.82 C 31.82 32.54 31.72 32.19 31.64 30.22 C 31.53 27.62 31.52 27.6 29.28 27.6 L 27.8 27.6 27.48 27.89 M 28.5 43.46 C 28.12 43.91 31.58 46.28 34 47.23 C 38.24 48.89 41.22 49.56 46.25 49.95 C 55.92 50.71 66.39 48.27 70.93 44.2 C 71.87 43.35 71.69 43.19 70.3 43.61 C 68.85 44.05 66.07 44.77 64.95 44.99 C 53.75 47.23 37.88 46.63 29.67 43.66 C 28.52 43.24 28.66 43.26 28.5 43.46 M 33.72 52.62 C 33.63 52.71 33.6 53.37 33.6 55 C 33.6 59.69 33.03 63.91 31.63 69.6 C 30.25 75.22 28.52 78.58 25.66 81.26 C 24.87 81.99 24.68 82.22 24.77 82.31 C 25.07 82.61 27.69 81.91 29.57 81.04 C 36.68 77.75 40.32 68.89 38.14 60.19 C 37.56 57.87 36.37 55.43 34.87 53.47 C 34.16 52.55 33.95 52.39 33.72 52.62 M 29.15 84.3 L 20.65 84.35 20.33 84.58 C 19.35 85.28 19.46 86.72 20.53 87.2 C 20.94 87.39 21.57 87.4 49.89 87.4 L 78.84 87.4 79.27 87.19 C 80.15 86.76 80.44 85.87 79.95 85.05 C 79.44 84.17 81.65 84.25 58.3 84.25 C 46.94 84.25 33.83 84.27 29.15 84.3"/></symbol>
10
+ <symbol id="wB" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 49.55 16.19 C 47.97 16.45 47.02 16.95 45.85 18.14 C 44.08 19.93 43.46 22.22 44.1 24.65 C 44.64 26.69 44.61 26.73 40.65 30.26 C 37.24 33.29 33.78 36.41 32.47 37.64 C 29.41 40.5 28.56 42.29 28.57 45.85 C 28.57 48.81 29.21 50.94 30.93 53.67 C 32.53 56.22 32.54 56.34 31.59 59.75 C 29.65 66.67 26.93 75.1 26.17 76.54 C 25.34 78.1 24.34 78.74 22.45 78.9 C 18.93 79.21 16.94 80.76 16.36 83.62 C 16.15 84.63 16.14 87.77 16.34 88.72 C 16.76 90.67 18.23 92.18 20.3 92.77 C 21.29 93.05 79.07 93.05 80.1 92.77 C 82.13 92.23 83.55 90.96 84.12 89.21 C 84.41 88.3 84.5 85 84.27 83.67 C 83.74 80.62 81.73 79.09 78.02 78.9 C 75.83 78.79 75.14 78.46 74.5 77.2 C 74.03 76.27 72.34 70.72 70.46 63.9 C 68.32 56.1 68.33 56.38 69.79 53.97 C 71.41 51.29 71.95 49.46 72.07 46.3 C 72.19 42.98 71.67 40.85 70.22 38.8 C 69.97 38.44 68.68 37.07 67.36 35.74 C 64.72 33.1 64.16 32.7 62.96 32.55 C 61.6 32.38 61.22 32.62 53.97 38.18 C 51.58 40.02 51.07 40.03 49.71 38.32 C 48.41 36.7 48.62 36.31 52.25 33.51 C 53.35 32.66 54.71 31.6 55.28 31.16 C 57.39 29.53 57.85 28.76 57.6 27.32 C 57.36 25.94 57.34 25.62 57.42 25.03 C 57.88 21.8 57.38 19.97 55.55 18.15 C 54.54 17.13 53.84 16.72 52.57 16.4 C 51.67 16.17 50.27 16.08 49.55 16.19"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 49.71 18.91 C 48.64 19.1 47.43 20.06 46.9 21.16 C 46.59 21.81 46.5 23.32 46.73 24.11 C 47.2 25.71 47.13 26.86 46.49 28.12 C 46.06 28.98 45.58 29.46 41.3 33.28 C 31.49 42.07 31.6 41.94 31.3 44.73 C 31.01 47.34 31.62 49.72 33.24 52.3 C 35.25 55.49 35.34 56.31 34.19 60.44 C 31.51 70.03 29.14 77.03 28 78.7 C 26.79 80.49 25.13 81.38 22.56 81.61 C 20.36 81.81 19.44 82.43 19.04 84.01 C 18.81 84.92 18.87 88.2 19.14 88.7 C 19.6 89.57 20.29 90.04 21.37 90.2 C 21.83 90.27 31.11 90.3 50.7 90.28 L 79.35 90.25 79.87 90.04 C 81.44 89.39 81.65 88.92 81.65 86.04 L 81.65 83.84 81.35 83.25 C 80.74 82.06 79.99 81.71 77.75 81.59 C 73.99 81.39 72.61 80.24 71.26 76.19 C 70.24 73.14 67.43 63.26 66.5 59.47 C 65.72 56.33 65.88 55.25 67.49 52.56 C 69.02 50.02 69.34 48.78 69.34 45.5 C 69.33 41.77 68.94 41.01 64.99 37.14 C 63.13 35.32 62.84 35.12 62.36 35.31 C 62.07 35.43 59.49 37.35 55.65 40.29 C 53.44 41.99 52.55 42.39 51.24 42.27 C 48.54 42.02 45.91 38.72 46.38 36.19 C 46.7 34.48 47.25 33.9 52.44 29.95 C 53.37 29.24 54.32 28.48 54.56 28.25 L 55 27.85 54.84 27.15 C 54.64 26.28 54.63 25.07 54.8 24.14 C 55.41 20.82 53 18.34 49.71 18.91 M 63.31 50.76 C 59.03 52.17 54.51 52.76 48.8 52.67 C 43.47 52.58 40.04 52.09 36.55 50.9 C 35.14 50.42 35.07 50.74 36.27 52.23 C 37.68 53.99 40.25 55.38 43.55 56.19 C 47.22 57.09 52.63 57.09 56.72 56.2 C 60.47 55.38 63.57 53.53 65.08 51.19 C 65.83 50.03 65.65 49.99 63.31 50.76 M 37.86 58.55 C 37.83 58.63 37.74 59.25 37.65 59.92 C 37.38 62.06 36.79 64.62 36.02 67.1 C 35.86 67.62 35.51 68.75 35.25 69.6 C 33.56 75.17 31.77 78.48 29.2 80.82 C 28.16 81.76 28.14 81.95 29.08 81.87 C 29.87 81.79 32 81.23 32.92 80.85 C 40.51 77.69 44.18 66.59 39.79 60.06 C 38.94 58.8 38.04 58.09 37.86 58.55 M 22.12 84.71 C 20.58 85.47 20.51 87.39 21.99 88.17 L 22.44 88.4 50.24 88.34 C 77.77 88.28 78.05 88.28 78.48 88.08 C 79.92 87.4 79.86 85.43 78.37 84.71 L 77.94 84.5 50.24 84.5 L 22.55 84.5 22.12 84.71"/></symbol>
11
+ <symbol id="wN" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 45.34 14.49 C 44.73 14.64 44.07 15.04 43.5 15.59 C 42.71 16.37 39.86 20.74 36.7 26 C 34.34 29.93 34.4 29.86 31 32.66 C 25.23 37.39 14.12 47.03 13.13 48.14 C 10.87 50.71 10.93 53.39 13.41 59.14 C 14.77 62.32 16.84 64.07 19.95 64.69 C 22.22 65.14 29.79 65.24 32.35 64.85 C 33.94 64.61 34.54 64.76 34.81 65.47 C 34.98 65.93 34.9 66.22 33.84 68.78 C 31.65 74.12 30.69 75.66 28.65 77.18 C 27.16 78.28 26.67 78.41 23.4 78.5 C 21.23 78.57 20.61 78.62 19.99 78.78 C 17.72 79.39 16.13 80.9 15.53 83.01 C 15.26 83.96 15.27 87.97 15.53 88.85 C 16.13 90.79 17.6 92.17 19.7 92.77 C 20.63 93.03 79.01 93.04 80.35 92.78 C 83.09 92.24 84.71 90.63 85.11 88.08 C 85.33 86.68 85.18 83.28 84.87 82.37 C 84 79.84 82.23 78.69 78.96 78.51 C 76.76 78.39 76 77.81 76 76.26 C 76 75.37 78.12 61.32 78.37 60.55 C 78.58 59.91 79.22 59.23 80.13 58.69 C 83.2 56.88 84.12 54.8 83.25 51.6 C 81.76 46.08 79.41 40.55 77.47 37.98 C 72.92 31.98 66.13 27.39 59.14 25.6 C 56.71 24.97 56.57 24.87 54.5 22.15 C 52.71 19.8 50.18 16.71 49.46 16 C 48.1 14.66 46.73 14.16 45.34 14.49"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 45.95 16.97 C 45.57 17.07 45.3 17.33 44.72 18.18 C 43.65 19.75 38.39 28.26 37.42 29.98 C 36.93 30.86 36.15 31.69 34.64 32.97 C 34.19 33.34 32.9 34.44 31.76 35.4 C 30.62 36.36 29.25 37.5 28.72 37.94 C 27.83 38.66 27.2 39.2 24.82 41.31 C 24.36 41.72 23.66 42.31 23.27 42.63 C 22.87 42.95 22.19 43.54 21.75 43.93 C 21.31 44.33 19.74 45.71 18.25 47 C 14.2 50.52 14.06 50.7 14.05 52.35 C 14.05 54.04 15.91 58.98 17.11 60.43 C 17.49 60.89 18.45 61.53 19.18 61.8 C 21.51 62.68 29.06 62.89 33.29 62.19 C 35.06 61.9 35.69 61.67 37.1 60.83 C 38.58 59.96 40.3 59.07 43.17 57.72 C 45.46 56.64 46.67 55.99 48.04 55.08 C 49.59 54.07 49.38 54.71 47.56 56.59 C 45.01 59.21 42.78 60.9 40.3 62.07 C 39.56 62.42 38.86 62.76 38.74 62.81 C 38.42 62.97 38.24 63.36 37.95 64.5 C 37.58 65.95 36.71 68.57 36.23 69.65 C 36.01 70.15 35.66 70.96 35.45 71.45 C 33.84 75.28 31.99 77.95 29.98 79.31 C 28.16 80.55 26.81 80.9 23.4 81 C 21.63 81.06 20.7 81.13 20.37 81.23 C 19.29 81.57 18.34 82.48 18.04 83.47 C 17.8 84.27 17.85 87.75 18.11 88.44 C 18.39 89.19 19.01 89.81 19.76 90.1 L 20.35 90.32 50.15 90.31 C 70.78 90.3 80.07 90.26 80.35 90.19 C 81.34 89.92 82.08 89.29 82.4 88.42 C 82.73 87.56 82.7 83.56 82.36 82.85 C 81.76 81.57 81.05 81.21 78.76 81.04 C 76.36 80.85 75.43 80.54 74.48 79.59 C 73.5 78.61 73.18 77.5 73.39 75.84 C 73.58 74.41 74.47 68.34 74.85 65.95 C 75.04 64.74 75.29 63.1 75.4 62.3 C 75.97 58.36 76.32 57.74 78.59 56.6 C 80.33 55.73 81.11 54.71 80.97 53.51 C 80.86 52.62 79.74 48.85 78.98 46.8 C 78 44.16 76.42 40.9 75.47 39.57 C 74.81 38.64 71.02 34.83 69.72 33.78 C 65.79 30.63 61.79 28.73 56.68 27.61 C 54.96 27.24 54.83 27.16 54.24 26.28 C 52.2 23.18 47.56 17.49 46.75 17.1 C 46.33 16.89 46.29 16.89 45.95 16.97 M 46.86 27.18 C 46.65 27.82 47.69 30.15 48.78 31.51 C 50.04 33.08 51.33 33.97 54.5 35.45 C 59.61 37.83 61.88 39.31 64.84 42.2 C 69.35 46.59 72.31 52.34 73.15 58.33 C 73.31 59.51 73.34 59.6 73.56 59.6 C 73.83 59.6 75 56.24 75.42 54.25 C 75.92 51.88 75.67 48.77 74.79 46.36 C 73.33 42.4 69.46 38.09 64.97 35.43 C 61.88 33.59 59.51 32.62 55.98 31.74 C 51.88 30.72 50.02 29.8 48.1 27.86 C 47.25 27 46.96 26.84 46.86 27.18 M 35.69 37.62 C 31.51 39.09 32.41 45.05 36.8 45.05 C 40.46 45.05 42.1 40.47 39.22 38.31 C 38.11 37.47 36.83 37.23 35.69 37.62 M 22.44 49.29 C 20.76 49.9 19.27 51.48 18.91 53.06 C 18.52 54.72 20.19 55.13 22.28 53.88 C 25.35 52.04 25.48 48.2 22.44 49.29 M 48.62 58.63 C 47.5 60.89 45.44 63.12 43.2 64.5 C 42.32 65.03 42.01 65.38 41.84 66 C 39.79 73.24 37 77.97 33.15 80.69 C 32.09 81.45 31.96 81.58 32.11 81.77 C 32.53 82.26 36.33 81.35 38.65 80.2 C 43.06 78.02 46.05 73.75 48.08 66.75 C 49.21 62.86 49.92 57.4 49.3 57.4 C 49.25 57.4 48.95 57.95 48.62 58.63 M 23.7 84.29 C 22.18 84.35 22.02 84.37 21.72 84.58 C 20.64 85.36 20.98 86.94 22.31 87.3 C 22.64 87.39 29.21 87.41 50.45 87.38 L 78.15 87.34 78.61 87.13 C 79.95 86.53 79.87 84.94 78.48 84.36 C 78.1 84.2 28.19 84.14 23.7 84.29"/></symbol>
12
+ <symbol id="wP" viewBox="0 0 100 100"><path style="fill:var(--piece-edge,#000);fill-rule:evenodd" d="M 48.35 21.75 C 42.8 22.77 38.19 26.8 36.4 32.19 C 35.28 35.54 35.38 38.82 36.69 42.21 C 37.43 44.1 37.2 44.59 35.35 45.09 C 34.28 45.39 33.67 45.73 32.95 46.45 C 31.19 48.21 31.04 50.72 32.45 54.76 C 33.23 56.97 33.22 57.03 32.21 60.13 C 31.54 62.18 30.18 66.43 27.71 74.25 C 26.69 77.49 26.14 78.13 23.93 78.69 C 21.45 79.32 19.98 80.75 19.39 83.1 C 19.17 83.96 19.2 87.85 19.42 88.68 C 20.1 91.12 21.82 92.55 24.5 92.9 C 26.07 93.11 75.94 92.98 77 92.76 C 79.28 92.31 80.92 90.86 81.57 88.75 C 81.84 87.86 81.84 83.54 81.57 82.66 C 80.81 80.2 79.19 78.91 76.42 78.55 C 74.53 78.3 74.05 77.88 73.46 75.97 C 72.82 73.9 70.19 65.08 69.12 61.45 C 67.8 56.94 67.8 56.95 68.59 54.86 C 70.13 50.76 70.03 48.16 68.25 46.34 C 67.55 45.63 66.88 45.26 65.87 45.03 C 64.1 44.64 63.73 44 64.39 42.44 C 66.09 38.41 65.94 33.64 63.98 29.75 C 62.02 25.85 58.03 22.82 53.6 21.85 C 52.53 21.61 49.41 21.56 48.35 21.75"/><path style="fill:var(--piece-fill,#fff);fill-rule:evenodd" d="M 49.27 24.25 C 44.43 24.94 40.41 28.37 38.84 33.18 C 37.63 36.88 38.19 40.45 40.48 43.63 C 41.25 44.71 41.43 44.82 42.93 45.19 C 44.13 45.49 45.18 45.83 47.35 46.62 C 48.07 46.89 48.25 46.99 48.25 47.15 C 48.25 47.35 48.15 47.35 42.05 47.4 L 35.85 47.45 35.38 47.73 C 33.71 48.71 33.64 50.81 35.15 54.39 C 36.14 56.73 36.17 56.47 34.27 62.3 C 33.63 64.25 32.96 66.37 32.77 67 C 31.35 71.69 29.5 77.3 29.13 78.05 C 28.28 79.74 26.74 80.83 24.8 81.11 C 23.5 81.3 22.54 82.02 22.09 83.16 C 21.76 83.98 21.73 87.6 22.04 88.49 C 22.29 89.21 22.89 89.81 23.66 90.1 L 24.25 90.33 50.5 90.31 C 80.18 90.29 77.33 90.38 78.26 89.46 C 79.1 88.61 79.22 88.1 79.18 85.48 C 79.15 83.38 79.15 83.34 78.87 82.78 C 78.36 81.74 77.45 81.19 76 81.06 C 74.66 80.94 73.42 80.5 72.55 79.85 C 71.75 79.23 71.55 78.74 69.82 72.9 C 69.27 71.06 68.43 68.27 67.95 66.7 C 67.47 65.13 66.88 63.18 66.64 62.35 C 66.4 61.53 65.99 60.15 65.74 59.3 C 65.35 57.98 65.28 57.62 65.27 56.85 C 65.27 55.88 65.25 55.95 66.19 53.83 C 67.5 50.87 67.35 48.45 65.81 47.63 L 65.37 47.4 59.55 47.4 C 52.43 47.4 52.55 47.43 55.13 46.43 C 55.91 46.13 57.27 45.64 58.15 45.34 C 60.12 44.66 60.03 44.73 60.82 43.53 C 63.42 39.65 63.73 35.26 61.7 31.15 C 59.37 26.42 54.19 23.55 49.27 24.25 M 62.75 50.71 C 62.31 50.81 61.5 50.96 60.95 51.05 C 54.31 52.05 46.06 52.03 40.1 51 C 39.47 50.89 38.65 50.75 38.28 50.69 C 37.15 50.49 37 50.82 37.71 51.89 C 39.4 54.42 44.16 55.92 50.55 55.94 C 56.66 55.96 61.02 54.72 63.2 52.33 C 64.02 51.44 64.28 50.8 63.91 50.6 C 63.68 50.48 63.76 50.47 62.75 50.71 M 38.75 59.03 C 38.72 59.15 38.66 59.72 38.6 60.3 C 38.25 63.95 35.8 72.61 34.14 76.08 C 33.19 78.07 31.74 80.18 30.56 81.28 C 29.7 82.09 30.02 82.23 31.71 81.81 C 35.79 80.78 38.71 78.48 40.73 74.7 C 43.34 69.84 43.17 63.68 40.33 59.9 C 39.55 58.86 38.88 58.48 38.75 59.03 M 26.01 84.33 C 24.43 84.83 24.53 86.84 26.15 87.29 C 26.63 87.42 73.07 87.44 74.33 87.31 C 76.23 87.11 76.8 85.23 75.2 84.43 L 74.76 84.2 50.55 84.21 C 33.57 84.22 26.25 84.25 26.01 84.33"/></symbol>
13
+ <symbol id="bK" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 47.15 10.7 C 46.11 10.92 45.33 11.36 44.67 12.09 C 44.31 12.49 44.17 12.74 43.52 14.21 C 43.05 15.27 42.57 15.52 40.89 15.64 C 37.33 15.89 35.47 18.33 35.63 22.55 C 35.75 25.85 37.22 27.78 40.11 28.44 C 41.37 28.73 41.55 28.79 41.78 29 C 42.09 29.29 42.16 29.65 41.95 29.96 C 41.6 30.5 41.58 30.5 35.38 30.5 C 30.86 30.5 29.45 30.53 28.68 30.65 C 25.35 31.15 22.82 33.27 21.97 36.27 C 21.77 36.98 21.76 37.27 21.76 39.5 C 21.78 44.87 22.34 46.76 24.89 49.95 C 26.57 52.04 26.56 51.8 25.19 60.5 C 24.08 67.5 22.57 75.74 22.15 77 C 21.74 78.22 21.07 78.6 19.13 78.71 C 16.05 78.88 14.27 80.2 13.54 82.85 C 13.29 83.75 13.23 87.58 13.44 88.59 C 13.93 90.89 15.57 92.45 17.95 92.85 C 19.44 93.1 81.47 93.02 82.4 92.77 C 84.79 92.12 86.3 90.62 86.74 88.48 C 86.95 87.47 86.95 84.19 86.75 83.06 C 86.4 81.09 84.98 79.54 83 78.96 C 82.7 78.87 81.85 78.75 81.12 78.7 C 78.88 78.54 78.4 78.16 77.9 76.11 C 76.83 71.77 74.53 58.44 74.1 54.1 C 73.93 52.32 74.16 51.55 75.33 49.99 C 77.69 46.86 78.21 45.28 78.41 40.7 C 78.52 38.04 78.46 37.14 78.09 35.92 C 77.44 33.8 75.77 32.04 73.6 31.17 C 72.11 30.58 71.98 30.57 65.3 30.51 C 58.54 30.44 58.76 30.47 58.48 29.84 C 58.21 29.26 58.8 28.78 60.02 28.6 C 62.22 28.28 63.9 27.19 64.7 25.57 C 65.52 23.89 65.54 20.41 64.74 18.71 C 63.88 16.87 62.18 15.85 59.58 15.61 C 58.02 15.46 57.72 15.24 57.1 13.81 C 56.43 12.22 55.48 11.27 54.16 10.83 C 53.58 10.64 47.92 10.53 47.15 10.7"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 49.35 15.39 C 48.56 15.73 48.24 16.54 48.16 18.47 C 48.07 20.46 48.06 20.47 46.1 20.52 C 44.34 20.56 43.55 21.04 43.43 22.14 C 43.26 23.64 44.07 24.34 46.17 24.5 C 48.07 24.64 48.1 24.69 48.1 27.54 C 48.1 29.94 48.16 30.27 48.75 30.85 C 49.73 31.83 51.29 31.69 52.18 30.53 L 52.45 30.17 52.5 27.64 L 52.55 25.1 52.83 24.83 C 53.09 24.56 53.15 24.55 54.43 24.5 C 55.9 24.43 56.31 24.3 56.77 23.76 C 57.38 23.04 57.46 22.15 56.97 21.41 C 56.57 20.82 56.04 20.6 54.89 20.59 C 52.54 20.57 52.56 20.59 52.5 18.42 C 52.44 16.53 52.35 16.21 51.66 15.66 C 51.31 15.37 51.22 15.35 50.42 15.33 C 49.94 15.31 49.46 15.34 49.35 15.39 M 35.92 37.91 C 35.61 38.23 36.14 38.74 37.53 39.43 C 42.63 41.99 53.64 42.38 60.48 40.25 C 62.29 39.68 63.96 38.84 64.21 38.38 C 64.46 37.92 64.45 37.92 57.95 38.03 C 52.22 38.13 38.46 38 36.65 37.84 C 36.23 37.8 36.01 37.82 35.92 37.91 M 28.47 42.17 C 28.08 42.55 29.47 44.24 31.15 45.42 C 35.23 48.3 41.5 49.79 49.5 49.8 C 59.44 49.81 67.5 47.37 70.97 43.31 C 72.06 42.03 71.86 41.87 69.93 42.46 C 61.37 45.08 49.87 46.09 41.1 44.99 C 36.34 44.4 32.95 43.65 29.67 42.46 C 28.63 42.08 28.57 42.06 28.47 42.17 M 32.4 51.96 C 32.3 52.08 32.29 52.46 32.39 53.83 C 32.67 58.03 32.48 61.46 31.68 66.45 C 30.58 73.42 28.66 77.99 25.61 80.94 C 24.53 81.98 24.64 82.13 26.25 81.81 C 32.97 80.46 37.32 75.21 37.9 67.78 C 38.3 62.62 36.37 56.26 33.23 52.43 C 32.77 51.87 32.56 51.75 32.4 51.96 M 19.62 84.71 C 17.99 85.52 18.34 87.81 20.15 88.2 C 20.5 88.27 29.67 88.3 50.35 88.28 L 80.05 88.25 80.53 88.01 C 82.02 87.28 81.98 85.18 80.47 84.61 C 80.27 84.53 71.08 84.5 50.12 84.5 L 20.05 84.5 19.62 84.71"/></symbol>
14
+ <symbol id="bQ" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 48.86 12.16 C 46.35 12.77 44.4 15.26 44.4 17.87 C 44.4 18.89 44.55 19.5 45.13 20.75 C 45.88 22.35 45.86 22.8 45.02 24.89 C 44.01 27.35 43.76 27.7 43 27.7 C 42.43 27.7 42.17 27.42 40.25 24.78 C 37.62 21.16 37.27 20.85 35.75 20.85 C 34.94 20.85 34.8 20.88 34.31 21.15 C 33.21 21.76 32.93 22.28 31.64 26.14 C 30.46 29.67 30.28 29.96 29.39 29.94 C 28.87 29.92 28.62 29.71 26.86 27.85 C 24.75 25.62 24.64 25.35 25.11 23.49 C 26.56 17.79 19.19 13.86 15.1 18.16 C 12.3 21.11 13.11 25.53 16.8 27.44 C 18.02 28.07 18.38 28.36 18.78 29.03 C 19.16 29.66 22.77 38.23 24.55 42.74 C 25.93 46.24 26.77 47.72 28.59 49.83 C 30.59 52.16 30.59 52.2 29.15 58.45 C 27.77 64.4 25.85 71.62 24.75 74.97 C 23.7 78.14 23.01 78.7 20.08 78.7 C 16.66 78.7 14.37 80.42 13.85 83.37 C 13.66 84.44 13.66 87.45 13.85 88.44 C 14.25 90.55 15.76 92.16 17.9 92.77 C 18.88 93.04 80.84 93.05 82.2 92.78 C 84.61 92.29 86.27 90.63 86.67 88.32 C 86.92 86.88 86.81 83.49 86.48 82.48 C 85.9 80.72 84.64 79.52 82.8 78.95 C 82.44 78.84 81.62 78.76 80.4 78.7 C 78.13 78.59 77.78 78.49 76.99 77.71 C 76.36 77.08 76.22 76.77 75.59 74.6 C 74.54 71.04 72.44 62.43 71.3 57.1 C 70.25 52.17 70.27 52.04 72.2 49.94 C 74.65 47.29 74.71 47.16 78.9 36.5 C 82.35 27.71 81.9 28.51 84.02 27.36 C 86.03 26.27 87.05 24.55 87.05 22.25 C 87.05 16.46 79.52 14.09 76.27 18.86 C 75.23 20.39 75.01 21.86 75.51 23.96 C 75.89 25.57 75.76 25.87 73.8 28 C 72.13 29.82 71.87 30.03 71.28 30.03 C 70.49 30.03 70.29 29.67 69.16 26.34 C 68.04 23.01 67.85 22.59 67.24 21.91 C 65.95 20.47 63.96 20.48 62.63 21.94 C 62.37 22.23 61.55 23.31 60.81 24.36 C 58.49 27.62 58.32 27.8 57.61 27.8 C 57 27.8 56.64 27.28 55.87 25.31 C 54.82 22.62 54.81 22.51 55.59 20.8 C 56.34 19.16 56.51 18.18 56.26 16.8 C 55.67 13.51 52.22 11.35 48.86 12.16"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 50.13 28.42 C 50.07 28.49 49.84 29.11 49.61 29.8 C 48.1 34.25 45.64 36.49 42.94 35.86 C 40.73 35.34 39.18 33.92 37.39 30.76 C 37.07 30.21 36.86 29.94 36.72 29.92 C 36.5 29.89 36.49 29.91 36.19 31.15 C 35.05 35.77 32.69 37.19 29.8 34.99 C 29.44 34.72 28.61 33.91 27.96 33.2 C 26.89 32.04 26.4 31.66 26.4 32 C 26.4 32.23 27.45 34.17 29.26 37.26 C 29.92 38.39 30.15 38.7 30.4 38.8 C 30.65 38.9 31.52 38.92 34.53 38.86 C 44.66 38.69 54.18 38.67 60.53 38.81 C 64.12 38.89 67.8 38.95 68.72 38.95 L 70.4 38.95 70.69 38.65 C 71.67 37.65 74.85 31.9 74.43 31.9 C 74.37 31.9 73.55 32.7 72.59 33.68 C 70.27 36.04 69.52 36.5 68.23 36.37 C 66.48 36.19 65.38 34.66 64.44 31.1 C 64.13 29.93 64 29.92 63.31 31.08 C 61.01 34.96 58.07 36.69 55.48 35.7 C 53.53 34.97 52.13 33.12 50.99 29.8 C 50.57 28.57 50.45 28.3 50.3 28.3 C 50.26 28.3 50.18 28.36 50.13 28.42 M 31.04 42.84 C 30.88 43.24 32.47 44.98 33.77 45.84 C 37.69 48.41 42.87 49.6 50.16 49.6 C 57.99 49.6 63.33 48.38 67.29 45.71 C 68.67 44.76 70.1 43.36 70.1 42.93 C 70.1 42.6 69.93 42.62 67.35 43.29 C 62.85 44.45 60 44.89 54.7 45.25 C 46.67 45.79 37.47 44.87 32.13 42.99 C 31.2 42.66 31.11 42.65 31.04 42.84 M 36.32 51.53 C 36.26 51.6 36.23 52.25 36.24 53.15 C 36.27 55.08 36.17 56.24 35.8 58.4 C 35.23 61.81 34.92 63.23 33.84 67.55 C 32.25 73.87 30.23 78.04 27.47 80.72 C 26.73 81.43 26.67 81.52 26.82 81.66 C 27 81.85 28.02 81.64 29.55 81.1 C 35.68 78.93 40.26 72.29 41.25 64.15 C 41.8 59.67 40.03 54.18 37.3 51.91 C 36.67 51.38 36.49 51.31 36.32 51.53 M 20.35 84.41 C 18.68 84.8 18.28 86.78 19.68 87.75 L 20.12 88.05 46.43 88.1 C 77.01 88.16 79.87 88.14 80.43 87.86 C 81.9 87.13 81.6 84.93 79.96 84.45 C 79.37 84.27 21.1 84.24 20.35 84.41"/></symbol>
15
+ <symbol id="bR" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 47.05 17.88 C 45.1 18.04 43.58 18.94 42.82 20.38 C 42.39 21.19 42.29 21.64 42.16 23.51 C 41.96 26.22 41.73 26.45 39.2 26.45 C 36.71 26.45 36.42 26.18 36.28 23.7 C 36.11 20.69 35.42 19.36 33.57 18.46 C 32.52 17.94 31.91 17.88 28.08 17.92 C 24.86 17.95 24.73 17.96 24.17 18.19 C 22.37 18.91 21.29 20.32 20.99 22.33 C 20.92 22.83 20.92 26.16 20.98 33.05 L 21.07 43.05 21.33 44.03 C 21.7 45.41 22.43 46.84 23.44 48.15 C 25.52 50.85 25.6 51.05 25.41 53.15 C 24.89 58.8 22.87 71.66 21.84 75.88 C 21.28 78.18 20.81 78.68 18.85 79.09 C 16.43 79.6 14.85 81.02 14.24 83.25 C 13.99 84.15 13.93 87.46 14.13 88.65 C 14.52 90.85 15.89 92.32 18.07 92.87 C 18.88 93.07 79.81 93.09 81.09 92.89 C 83.69 92.48 85.4 90.74 85.81 88.08 C 85.99 86.91 85.87 83.93 85.6 83 C 84.98 80.86 83.4 79.48 81.09 79.05 C 79.68 78.8 79.21 78.49 78.81 77.6 C 78.12 76.05 75.28 55.86 75.26 52.4 C 75.25 50.78 75.36 50.48 76.71 48.59 C 78.2 46.52 78.81 45.38 79.21 43.95 C 79.42 43.17 79.43 42.93 79.51 36.25 C 79.61 27.39 79.57 22.73 79.4 22 C 78.94 19.98 77.6 18.58 75.58 18.02 C 74.77 17.8 68.8 17.82 67.68 18.05 C 66.26 18.34 65.01 19.26 64.37 20.48 C 63.89 21.39 63.79 21.88 63.71 23.65 C 63.6 26.19 63.32 26.45 60.75 26.45 C 58.16 26.45 57.91 26.21 57.79 23.56 C 57.68 21.26 57.41 20.46 56.43 19.39 C 55.76 18.67 54.81 18.17 53.83 18.01 C 53.23 17.92 47.82 17.81 47.05 17.88"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 28.05 27.7 C 27.94 27.74 27.71 27.92 27.55 28.1 L 27.25 28.41 27.22 32.52 C 27.19 37.16 27.2 37.23 27.91 38.04 C 28.78 39.02 29.58 39.14 37.6 39.49 C 45.23 39.82 59.94 39.88 64.85 39.61 C 70.72 39.27 71.4 39.18 72.33 38.53 C 73.4 37.79 73.5 37.29 73.5 32.56 C 73.5 27.42 73.59 27.6 70.98 27.6 C 68.59 27.6 68.5 27.71 68.5 30.45 C 68.5 32.48 68.43 32.75 67.77 33.18 L 67.36 33.45 60.96 33.48 C 56.76 33.5 54.43 33.48 54.2 33.41 C 53.3 33.15 53.13 32.54 53.11 29.55 C 53.09 27.72 52.91 27.6 50.05 27.6 C 46.92 27.6 47 27.53 47 30.47 C 47 32.26 46.98 32.48 46.8 32.77 C 46.41 33.42 46.69 33.4 39.48 33.4 C 31.13 33.4 31.88 33.69 31.8 30.42 C 31.73 27.59 31.74 27.6 29.57 27.61 C 28.84 27.61 28.16 27.65 28.05 27.7 M 28.7 44.09 C 28.7 44.51 30.65 45.94 32.7 47.03 C 34.73 48.11 38 49.19 40.76 49.7 C 41.36 49.81 42.08 49.94 42.35 50 C 46.69 50.84 53.11 50.86 57.8 50.04 C 62.7 49.18 66.43 47.82 69.63 45.71 C 71.73 44.33 72.03 43.79 70.39 44.35 C 67.97 45.18 64.09 46.05 61.7 46.3 C 55.45 46.96 55.71 46.94 50.55 46.93 C 45.07 46.92 41.7 46.69 37.6 46.06 C 35.7 45.77 31.42 44.74 30.07 44.25 C 28.94 43.85 28.7 43.82 28.7 44.09 M 33.83 51.48 C 33.73 51.54 33.69 52.39 33.66 55.01 C 33.61 60.04 33.18 63 31.7 68.55 C 30.08 74.6 28.3 78.15 25.48 80.91 C 24.26 82.11 24.33 82.26 25.92 81.89 C 28.32 81.33 30.16 80.47 31.87 79.09 C 37.69 74.43 40.68 65.29 38.64 58.4 C 37.77 55.48 36.39 53.22 34.57 51.78 C 34.05 51.37 34.02 51.36 33.83 51.48 M 19.79 84.93 C 18.51 85.61 18.39 87.21 19.54 88.14 L 19.92 88.45 49.8 88.45 L 79.68 88.45 80.11 88.15 C 81.34 87.28 81.23 85.63 79.9 84.93 L 79.47 84.7 49.85 84.7 L 20.23 84.7 19.79 84.93"/></symbol>
16
+ <symbol id="bB" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 49.55 16.19 C 47.97 16.45 47.02 16.95 45.85 18.14 C 44.08 19.93 43.46 22.22 44.1 24.65 C 44.64 26.69 44.61 26.73 40.65 30.26 C 37.24 33.29 33.78 36.41 32.47 37.64 C 29.41 40.5 28.56 42.29 28.57 45.85 C 28.57 48.81 29.21 50.94 30.93 53.67 C 32.53 56.22 32.54 56.34 31.59 59.75 C 29.65 66.67 26.93 75.1 26.17 76.54 C 25.34 78.1 24.34 78.74 22.45 78.9 C 18.93 79.21 16.94 80.76 16.36 83.62 C 16.15 84.63 16.14 87.77 16.34 88.72 C 16.76 90.67 18.23 92.18 20.3 92.77 C 21.29 93.05 79.07 93.05 80.1 92.77 C 82.13 92.23 83.55 90.96 84.12 89.21 C 84.41 88.3 84.5 85 84.27 83.67 C 83.74 80.62 81.73 79.09 78.02 78.9 C 75.83 78.79 75.14 78.46 74.5 77.2 C 74.03 76.27 72.34 70.72 70.46 63.9 C 68.32 56.1 68.33 56.38 69.79 53.97 C 71.41 51.29 71.95 49.46 72.07 46.3 C 72.19 42.98 71.67 40.85 70.22 38.8 C 69.97 38.44 68.68 37.07 67.36 35.74 C 64.72 33.1 64.16 32.7 62.96 32.55 C 61.6 32.38 61.22 32.62 53.97 38.18 C 51.58 40.02 51.07 40.03 49.71 38.32 C 48.41 36.7 48.62 36.31 52.25 33.51 C 53.35 32.66 54.71 31.6 55.28 31.16 C 57.39 29.53 57.85 28.76 57.6 27.32 C 57.36 25.94 57.34 25.62 57.42 25.03 C 57.88 21.8 57.38 19.97 55.55 18.15 C 54.54 17.13 53.84 16.72 52.57 16.4 C 51.67 16.17 50.27 16.08 49.55 16.19"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 63.31 50.76 C 59.03 52.17 54.51 52.76 48.8 52.67 C 43.47 52.58 40.04 52.09 36.55 50.9 C 35.14 50.42 35.07 50.74 36.27 52.23 C 37.68 53.99 40.25 55.38 43.55 56.19 C 47.22 57.09 52.63 57.09 56.72 56.2 C 60.47 55.38 63.57 53.53 65.08 51.19 C 65.83 50.03 65.65 49.99 63.31 50.76 M 37.86 58.55 C 37.83 58.63 37.74 59.25 37.65 59.92 C 37.38 62.06 36.79 64.62 36.02 67.1 C 35.86 67.62 35.51 68.75 35.25 69.6 C 33.56 75.17 31.77 78.48 29.2 80.82 C 28.16 81.76 28.14 81.95 29.08 81.87 C 29.87 81.79 32 81.23 32.92 80.85 C 40.51 77.69 44.18 66.59 39.79 60.06 C 38.94 58.8 38.04 58.09 37.86 58.55 M 22.12 84.71 C 20.58 85.47 20.51 87.39 21.99 88.17 L 22.44 88.4 50.24 88.34 C 77.77 88.28 78.05 88.28 78.48 88.08 C 79.92 87.4 79.86 85.43 78.37 84.71 L 77.94 84.5 50.24 84.5 L 22.55 84.5 22.12 84.71"/></symbol>
17
+ <symbol id="bN" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 44.97 14.24 C 43.85 14.7 43.27 15.35 41.43 18.2 C 39.94 20.52 37.88 23.88 36.45 26.35 C 35.75 27.56 35.02 28.79 34.82 29.09 C 34.29 29.87 34.04 30.1 22.01 40.7 C 19.69 42.74 16.03 46.07 14.81 47.25 C 11.83 50.14 11.49 51.44 12.72 55.2 C 14.42 60.41 16.48 62.83 19.99 63.78 C 20.94 64.03 20.98 64.04 25.65 64.08 C 29.08 64.11 30.77 64.08 31.9 63.99 C 34.38 63.77 34.94 63.79 35.27 64.13 C 35.71 64.56 35.65 65.19 35.05 66.45 C 34.79 67 34.06 68.67 33.43 70.15 C 31.31 75.12 30.65 76.17 28.87 77.39 C 27.35 78.43 26.58 78.6 23.05 78.7 C 20.3 78.77 20.11 78.79 19.34 79.04 C 17.43 79.66 16.08 81.06 15.53 83.01 C 15.21 84.13 15.27 88.21 15.61 89.16 C 16.14 90.61 17.06 91.63 18.44 92.3 C 20.01 93.06 17.57 93.01 50.55 92.98 L 80.05 92.95 80.85 92.72 C 83.02 92.11 84.37 90.87 84.97 88.95 C 85.23 88.09 85.24 83.77 84.98 82.82 C 84.59 81.44 83.79 80.31 82.66 79.58 C 81.74 78.98 80.99 78.8 79.2 78.71 C 77.13 78.61 76.57 78.32 76.36 77.22 C 76.29 76.8 78.37 62.55 78.76 60.82 C 79.04 59.59 79.38 59.17 80.9 58.24 C 83.2 56.83 84.19 55.24 84.07 53.11 C 83.91 50.05 80.95 41.6 78.98 38.58 C 78.36 37.63 75.25 34.31 73.76 33.01 C 69.27 29.09 64.56 26.45 59.46 24.98 C 57.12 24.31 57.01 24.23 55.28 21.98 C 52.45 18.29 49.92 15.5 48.65 14.67 C 47.59 13.97 46.06 13.8 44.97 14.24"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 47.2 25.99 C 47.2 26.48 47.6 27.6 48.16 28.7 C 49.37 31.06 51.3 32.64 54.86 34.15 C 59.77 36.24 63.12 38.41 66.25 41.55 C 70.62 45.91 73.03 50.78 73.95 57.11 C 74.31 59.63 74.44 59.58 75.47 56.55 C 77.39 50.86 77.12 46.55 74.58 42.33 C 70.92 36.24 64.33 31.97 55.65 30.06 C 52.37 29.33 49.97 28.15 48.25 26.41 C 47.49 25.63 47.2 25.52 47.2 25.99 M 36.12 37.29 C 32.06 38.69 32.77 44.46 37 44.45 C 39.19 44.44 40.65 42.96 40.65 40.75 C 40.65 39.56 40.43 39.04 39.62 38.28 C 38.56 37.29 37.22 36.91 36.12 37.29 M 22.75 48.73 C 21.61 49.11 20.44 49.92 19.85 50.74 C 18.62 52.47 18.52 53.72 19.58 54.17 C 20.54 54.57 22.83 53.53 23.94 52.17 C 24.81 51.11 25.04 49.6 24.43 48.99 C 24.06 48.62 23.41 48.52 22.75 48.73 M 49.18 57.58 C 49.1 57.67 48.79 58.2 48.5 58.75 C 47.32 60.99 45.38 63.07 43.08 64.57 C 41.98 65.28 41.93 65.36 41.55 66.75 C 40.43 70.87 38.56 74.78 36.6 77.11 C 35.5 78.42 33.55 80.32 32.7 80.91 C 31.5 81.74 31.78 81.93 33.63 81.57 C 37.7 80.77 40.36 79.39 42.88 76.75 C 46.05 73.43 48.45 67.41 49.34 60.6 C 49.68 57.95 49.63 57.05 49.18 57.58 M 24.35 84.5 C 21.84 84.55 21.74 84.56 21.37 84.78 C 20.03 85.62 20.11 87.35 21.52 88.04 L 22.05 88.3 50.25 88.28 L 78.45 88.25 78.93 88.01 C 79.81 87.58 80.19 86.64 79.86 85.75 C 79.65 85.23 79.01 84.63 78.56 84.55 C 78.16 84.48 27.75 84.43 24.35 84.5"/></symbol>
18
+ <symbol id="bP" viewBox="0 0 100 100"><path style="fill:var(--piece-fill,#000);fill-rule:evenodd" d="M 48.25 22.29 C 45.04 22.88 42.54 24.24 40.19 26.66 C 35.94 31.05 34.64 36.87 36.7 42.24 C 37.35 43.92 37.04 44.53 35.26 45.02 C 31.66 46.01 30.52 49.69 32.35 54.41 C 33.55 57.52 33.58 57 31.84 62.9 C 31.42 64.3 30.8 66.37 30.45 67.5 C 30.1 68.63 29.45 70.72 29.01 72.16 C 27.14 78.22 27 78.42 24.46 78.86 C 20.76 79.5 19.2 81.65 19.2 86.12 C 19.2 89.9 20.35 91.87 23.06 92.71 L 23.85 92.95 50.3 92.95 C 75.33 92.95 76.78 92.94 77.4 92.77 C 79.78 92.12 81.24 90.61 81.67 88.37 C 81.87 87.3 81.8 83.85 81.56 83 C 80.83 80.43 79.08 79.08 76.09 78.8 C 74.65 78.66 73.96 78.29 73.5 77.4 C 73.11 76.65 70.17 66.7 68.58 60.8 C 67.74 57.65 67.72 57.01 68.42 55.35 C 70.72 49.85 69.72 45.98 65.74 44.99 C 64.13 44.59 63.8 43.95 64.36 42.38 C 67.6 33.47 62.85 24.46 53.81 22.39 C 52.52 22.09 49.6 22.04 48.25 22.29"/><path style="fill:var(--piece-detail,#fff);fill-rule:evenodd" d="M 37.52 50.12 C 37.13 50.51 38.04 51.74 39.4 52.67 C 44.07 55.86 56.24 56.07 61.39 53.05 C 62.24 52.55 63.36 51.57 63.71 51.02 C 64.27 50.14 64.07 49.97 62.7 50.16 C 58.73 50.73 53.74 51.04 49.7 50.97 C 44.76 50.88 42.94 50.73 38.7 50.1 C 37.85 49.97 37.66 49.98 37.52 50.12 M 38.71 58.78 C 38.65 58.98 38.6 59.44 38.6 59.8 C 38.59 61.89 37.49 66.39 35.59 72.05 C 34.28 75.98 32.79 78.67 30.66 80.97 C 30.35 81.3 30.1 81.66 30.1 81.75 C 30.1 82.34 34.32 80.94 35.89 79.83 C 40.11 76.85 42.54 72.13 42.54 66.9 C 42.54 63.57 41.61 60.96 39.72 58.98 C 39.07 58.29 38.85 58.25 38.71 58.78 M 25.23 84.74 C 24.05 85.3 23.75 86.79 24.64 87.71 C 25.26 88.35 23.29 88.3 50.33 88.3 L 75.07 88.3 75.5 88.07 C 76.86 87.35 76.97 85.77 75.73 84.82 L 75.37 84.55 50.56 84.53 L 25.75 84.5 25.23 84.74"/></symbol>
19
+ </defs>
20
+ <rect x="0" y="0" width="100" height="100" fill="#eaf1f8"/><use href="#wK" x="0" y="0" width="100" height="100"/><rect x="0" y="100" width="100" height="100" fill="#86abd0"/><use href="#bK" x="0" y="100" width="100" height="100"/><rect x="100" y="0" width="100" height="100" fill="#86abd0"/><use href="#wQ" x="100" y="0" width="100" height="100"/><rect x="100" y="100" width="100" height="100" fill="#eaf1f8"/><use href="#bQ" x="100" y="100" width="100" height="100"/><rect x="200" y="0" width="100" height="100" fill="#eaf1f8"/><use href="#wR" x="200" y="0" width="100" height="100"/><rect x="200" y="100" width="100" height="100" fill="#86abd0"/><use href="#bR" x="200" y="100" width="100" height="100"/><rect x="300" y="0" width="100" height="100" fill="#86abd0"/><use href="#wB" x="300" y="0" width="100" height="100"/><rect x="300" y="100" width="100" height="100" fill="#eaf1f8"/><use href="#bB" x="300" y="100" width="100" height="100"/><rect x="400" y="0" width="100" height="100" fill="#eaf1f8"/><use href="#wN" x="400" y="0" width="100" height="100"/><rect x="400" y="100" width="100" height="100" fill="#86abd0"/><use href="#bN" x="400" y="100" width="100" height="100"/><rect x="500" y="0" width="100" height="100" fill="#86abd0"/><use href="#wP" x="500" y="0" width="100" height="100"/><rect x="500" y="100" width="100" height="100" fill="#eaf1f8"/><use href="#bP" x="500" y="100" width="100" height="100"/>
21
+ </svg>
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "preact/jsx-runtime";
2
+ import { useEffect, useState } from "preact/hooks";
3
+ import { timeLeft } from "../../core/index.js";
4
+ import { Piece } from "../pieces/pieces.js";
5
+ import { lowTime, timeShown } from "./clock-time.js";
6
+ /** The card of one player: the AI's above its words, with its level; the player's below theirs, saying when it is their move. */
7
+ export function PlayerCard({ place, picture, name, signed, side, level, taken, ahead, turn = false, clock, badges, text }) {
8
+ const opponent = side === "white" ? "black" : "white";
9
+ return (_jsx("section", { class: `card player ${place}`, children: _jsxs("div", { class: "player-line", children: [picture, _jsxs("div", { class: "who", children: [_jsx("div", { class: "name", title: typeof name === "string" ? name : undefined, children: name }), signed === undefined ? null : _jsx("div", { class: "signed", title: signed, children: signed }), side === undefined ? null : (_jsxs("div", { class: "note", children: [text.sides[side], level === undefined ? null : (_jsxs(_Fragment, { children: [" ", "\u00B7 ", _jsx(LevelTip, { level: level })] })), turn
10
+ ? (_jsxs(_Fragment, { children: [" ", "\u00B7 ", _jsx("b", { class: "turn", children: text.yourTurn })] }))
11
+ : null] })), _jsxs("div", { class: "taken", role: "img", "aria-label": text.taken(taken.map((piece) => text.piece(piece, opponent)), ahead), children: [groupsOf(taken).map((group) => (_jsx("span", { class: group[0]?.toUpperCase() === "P" ? "group pawns" : "group", children: group.map((piece, index) => _jsx(Piece, { letter: opponent === "white" ? piece : piece.toLowerCase(), small: true }, index)) }, group[0]))), ahead > 0 ? _jsxs("span", { class: "balance", children: ["+", ahead] }) : null] }), badges] }), clock] }) }));
12
+ }
13
+ /**
14
+ * A side's time on the game's clock, as the server keeps it: it runs while the side is to move and the game goes on, unless `held` (a move on its way);
15
+ * at nothing it calls `onFlag` once, for the server to say how the game ended.
16
+ */
17
+ export function ClockFace({ clock, side, toMove, held, onFlag, text }) {
18
+ const [now, setNow] = useState(() => Date.now());
19
+ const running = toMove && !held && clock.waiting !== true;
20
+ useEffect(() => {
21
+ if (!running) {
22
+ return;
23
+ }
24
+ setNow(Date.now());
25
+ const ticks = setInterval(() => setNow(Date.now()), 100);
26
+ return () => clearInterval(ticks);
27
+ }, [running, clock]);
28
+ const left = toMove ? timeLeft(clock, side, new Date(now))[side] : clock.left[side];
29
+ const fallen = running && left === 0;
30
+ useEffect(() => {
31
+ if (fallen) {
32
+ onFlag();
33
+ }
34
+ }, [fallen]);
35
+ const shown = timeShown(left);
36
+ const classes = ["clock", running ? "running" : "", left < lowTime ? "low" : ""].filter((name) => name !== "").join(" ");
37
+ return _jsx("span", { class: classes, role: "timer", "aria-label": text.clock(shown, running), children: shown });
38
+ }
39
+ /** The AI's level, a button that shows under it what the AI sees there (D-61), for a touch as for a mouse. */
40
+ function LevelTip({ level }) {
41
+ return (_jsxs(_Fragment, { children: [_jsx("button", { class: "level-name", type: "button", popovertarget: "ai-level", "aria-describedby": "ai-level", children: level[0] }), _jsx("span", { id: "ai-level", class: "level-tip", popover: "auto", children: level[2] })] }));
42
+ }
43
+ /** The pieces taken, grouped by kind: they come the most valuable first, each kind together. */
44
+ function groupsOf(taken) {
45
+ const groups = [];
46
+ for (const piece of taken) {
47
+ const last = groups.at(-1);
48
+ if (last?.[0] === piece) {
49
+ last.push(piece);
50
+ }
51
+ else {
52
+ groups.push([piece]);
53
+ }
54
+ }
55
+ return groups;
56
+ }
@@ -0,0 +1,12 @@
1
+ // The clock as the board page shows it: minutes and seconds, and tenths in the last seconds, as Lichess does.
2
+ import { clockText } from "../../core/index.js";
3
+ /** Below this many milliseconds a clock shows tenths and turns red. */
4
+ export const lowTime = 20_000;
5
+ /** A time as the page's clock shows it: 4:32, 1:02:03, or 0:19.4 in the last seconds. */
6
+ export function timeShown(milliseconds) {
7
+ if (milliseconds >= lowTime) {
8
+ return clockText(milliseconds);
9
+ }
10
+ const tenths = Math.floor(milliseconds / 100);
11
+ return `0:${String(Math.floor(tenths / 10)).padStart(2, "0")}.${tenths % 10}`;
12
+ }
@@ -0,0 +1,20 @@
1
+ // A model's name as the player says it, on the AI's card and under its analysis (D-81, D-82): the game's PGN keeps the id the host wrote.
2
+ /** Who played or reviewed, as the page signs it: the model's name and the effort in the host's word, no other words (Stefano), «Opus 5.5 · xhigh». */
3
+ export function signature(model, effort) {
4
+ return effort === undefined ? modelName(model) : `${modelName(model)} · ${effort}`;
5
+ }
6
+ /**
7
+ * The name of a Claude model, from its id however the host writes it: claude-opus-5-5, us.anthropic.claude-opus-5-5-20261101-v1:0 and
8
+ * claude-opus-5-5@20261101 are Opus 5.5, claude-3-5-sonnet-20241022 is Sonnet 3.5; an id of another model stays as it is.
9
+ */
10
+ export function modelName(id) {
11
+ const [, family, major, minor] = currentId.exec(id) ?? [];
12
+ const [, oldMajor, oldMinor, oldFamily] = family === undefined ? oldId.exec(id) ?? [] : [];
13
+ const name = family ?? oldFamily;
14
+ const version = [major ?? oldMajor, minor ?? oldMinor].filter((part) => part !== undefined).join(".");
15
+ return name === undefined ? id : `${name[0].toUpperCase()}${name.slice(1).toLowerCase()} ${version}`;
16
+ }
17
+ // The family, then the version, whose minor never runs into the date after it: claude-opus-4-20250514 is Opus 4.
18
+ const currentId = /claude-(opus|sonnet|haiku|fable)-(\d{1,2})(?:-(\d{1,2}))?(?!\d)/i;
19
+ // Before the fourth generation the version came first.
20
+ const oldId = /claude-(\d)(?:-(\d))?-(opus|sonnet|haiku)/i;
@@ -0,0 +1,99 @@
1
+ // The player's profile on the page (D-23, D-45): as the server sends it, the choices the wizard offers, and the requests that change it.
2
+ /** How the player says they play, as the server keeps it. */
3
+ export const levels = ["learning", "casual", "regular", "tournament"];
4
+ /** Where a rating comes from. */
5
+ export const ratingSites = ["lichess", "chess.com", "fide"];
6
+ /** The lowest and highest rating the server takes. */
7
+ export const ratingLimits = { lowest: 100, highest: 3500 };
8
+ /** The longest name the server keeps. */
9
+ export const nameLimit = 40;
10
+ /** The drawn avatars, by the ids the server keeps (D-45). */
11
+ export const avatarIds = ["short-hair", "bun", "glasses", "beanie", "beard", "curls", "moustache", "silver-bob", "cat", "owl"];
12
+ /** The address of a profile's own image: it changes with the image. */
13
+ export function imageAddress(profile) {
14
+ return profile.image === undefined ? undefined : `/api/profile/image?profile=${encodeURIComponent(profile.id)}&v=${encodeURIComponent(profile.image)}`;
15
+ }
16
+ /** Makes a profile, in use unless `use` is false, with the photo after it, made small first so that a photo that cannot be read makes no profile: the refusal, or undefined. */
17
+ export async function makeProfile({ name, level, rating, site, avatar, photo, use }) {
18
+ const image = photo === undefined ? undefined : await shrunk(photo).catch(() => undefined);
19
+ if (photo !== undefined && image === undefined) {
20
+ return badImage;
21
+ }
22
+ const answer = await post("/api/profile/new", jsonOf({ name: name.trim(), level, ...(rating === undefined ? {} : { rating, site }), ...(avatar === undefined ? {} : { avatar }), ...(use === false ? { use } : {}) }));
23
+ if ("refused" in answer) {
24
+ return answer.refused;
25
+ }
26
+ return image === undefined ? undefined : refusalOf(await post(forProfile("/api/profile/image", String(answer.done.profile)), imageOf(image)));
27
+ }
28
+ /** Puts another profile in use: the server's refusal, or undefined. */
29
+ export async function useProfile(id) {
30
+ return refusalOf(await post("/api/profile/use", jsonOf({ profile: id })));
31
+ }
32
+ /** A drawn avatar for the profile the page shows: the server's refusal, or undefined. */
33
+ export async function chooseAvatar(profile, avatar) {
34
+ return refusalOf(await post(forProfile("/api/profile/avatar", profile), jsonOf({ avatar })));
35
+ }
36
+ /** The player's names on Lichess and chess.com for the profile the page shows, an empty one removed: the server's refusal, or undefined. */
37
+ export async function saveAccounts(profile, accounts) {
38
+ return refusalOf(await post(forProfile("/api/profile/accounts", profile), jsonOf({ lichess: accounts.lichess.trim(), chesscom: accounts.chesscom.trim() })));
39
+ }
40
+ /** Opens the data folder in the system's file manager, where the page runs: the server's refusal, or undefined. */
41
+ export async function openDataFolder() {
42
+ return refusalOf(await post("/api/data-folder/open", jsonOf({})));
43
+ }
44
+ /** Keeps the page's settings in the profile the page shows, so that they follow the player; the browser keeps them too. */
45
+ export function keepSettings(profile, settings) {
46
+ void post(forProfile("/api/settings", profile), jsonOf(settings));
47
+ }
48
+ /** A photo of the player's, made small and square in the browser, sent as the picture of the profile the page shows: the refusal, or undefined. */
49
+ export async function sendPhoto(profile, photo) {
50
+ const image = await shrunk(photo).catch(() => undefined);
51
+ return image === undefined ? badImage : refusalOf(await post(forProfile("/api/profile/image", profile), imageOf(image)));
52
+ }
53
+ // The side of the square picture sent: twice the largest the page shows it.
54
+ const pictureSide = 192;
55
+ const badImage = { error: "", refusal: "bad-image" };
56
+ // The square taken from a photo: the middle across, and a third of the way down, where a face usually is.
57
+ async function shrunk(photo) {
58
+ const bitmap = await createImageBitmap(photo);
59
+ const side = Math.min(bitmap.width, bitmap.height);
60
+ const canvas = document.createElement("canvas");
61
+ canvas.width = pictureSide;
62
+ canvas.height = pictureSide;
63
+ canvas.getContext("2d").drawImage(bitmap, (bitmap.width - side) / 2, (bitmap.height - side) / 3, side, side, 0, 0, pictureSide, pictureSide);
64
+ bitmap.close();
65
+ // A browser that cannot write WebP writes PNG.
66
+ const blob = await new Promise((done) => canvas.toBlob(done, "image/webp", 0.9));
67
+ if (blob === null) {
68
+ throw new Error("The picture could not be made.");
69
+ }
70
+ return blob;
71
+ }
72
+ // A request about the profile the page shows: the server refuses it when another is in use.
73
+ function forProfile(path, profile) {
74
+ return `${path}?profile=${encodeURIComponent(profile)}`;
75
+ }
76
+ function jsonOf(body) {
77
+ return { headers: { "Content-Type": "application/json" }, body: JSON.stringify(body) };
78
+ }
79
+ function imageOf(image) {
80
+ return { headers: { "Content-Type": image.type }, body: image };
81
+ }
82
+ async function post(path, request) {
83
+ let response;
84
+ try {
85
+ response = await fetch(path, { method: "POST", ...request });
86
+ }
87
+ catch (error) {
88
+ return { refused: { error: String(error) } };
89
+ }
90
+ const body = await response.json().catch(() => ({}));
91
+ if (response.ok) {
92
+ return { done: body };
93
+ }
94
+ const error = typeof body.error === "string" ? body.error : response.statusText;
95
+ return { refused: typeof body.refusal === "string" ? { error, refusal: body.refusal } : { error } };
96
+ }
97
+ function refusalOf(answer) {
98
+ return "refused" in answer ? answer.refused : undefined;
99
+ }