extremely claude-assisted go game based on atproto! working on cleaning up and giving a more unique design, still has a bit of a slop vibe to it.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add .wrangler to .gitignore and include game backfill script

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

+469
+1
.gitignore
··· 13 13 *.db-shm 14 14 *.db-wal 15 15 .claude* 16 + .wrangler 16 17 .dev.vars
+468
scripts/backfill-games.sql
··· 1 + -- Backfill games from UFOS with Constellation move data 2 + -- Generated at: 2026-02-04T19:06:31.649Z 3 + -- Total games: 29 4 + 5 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 6 + 'at://did:plc:3jlcvqaeiux3rv23tld3vxii/boo.sky.go.game/1i9t86v68s8qs', 7 + '1i9t86v68s8qs', 8 + 'did:plc:3jlcvqaeiux3rv23tld3vxii', 9 + 'did:plc:v4zpi74gy7enfiwke7hmoxv5', 10 + 'did:plc:3jlcvqaeiux3rv23tld3vxii', 11 + 9, 12 + 'active', 13 + 3, 14 + 'move', 15 + NULL, 16 + 0, 17 + '2026-02-03T11:51:05.477Z', 18 + '2026-02-04T19:06:31.650Z' 19 + ); 20 + 21 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 22 + 'at://did:plc:hsqwcidfez66lwm3gxhfv5in/boo.sky.go.game/1i9l74ket70vh', 23 + '1i9l74ket70vh', 24 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 25 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 26 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 27 + 13, 28 + 'waiting', 29 + 0, 30 + NULL, 31 + NULL, 32 + 2, 33 + '2026-01-31T07:10:35.468Z', 34 + '2026-02-04T19:06:31.835Z' 35 + ); 36 + 37 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 38 + 'at://did:plc:jlqiqmhalnu5af3pf56jryei/boo.sky.go.game/1i9l3boovegdg', 39 + '1i9l3boovegdg', 40 + 'did:plc:jlqiqmhalnu5af3pf56jryei', 41 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 42 + 'did:plc:jlqiqmhalnu5af3pf56jryei', 43 + 19, 44 + 'active', 45 + 4, 46 + 'move', 47 + NULL, 48 + 9, 49 + '2026-01-31T06:02:59.906Z', 50 + '2026-02-04T19:06:31.900Z' 51 + ); 52 + 53 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 54 + 'at://did:plc:hsqwcidfez66lwm3gxhfv5in/boo.sky.go.game/1i9kjn77lh8ck', 55 + '1i9kjn77lh8ck', 56 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 57 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 58 + 'did:plc:nw4yh7je2kqhyxiqct5urde6', 59 + 7, 60 + 'active', 61 + 1, 62 + 'move', 63 + NULL, 64 + 0, 65 + '2026-01-31T01:23:04.297Z', 66 + '2026-02-04T19:06:31.963Z' 67 + ); 68 + 69 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 70 + 'at://did:plc:hsqwcidfez66lwm3gxhfv5in/boo.sky.go.game/1i9kcr63q3ogu', 71 + '1i9kcr63q3ogu', 72 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 73 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 74 + 'did:plc:jlqiqmhalnu5af3pf56jryei', 75 + 5, 76 + 'completed', 77 + 20, 78 + 'pass', 79 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 80 + 0, 81 + '2026-01-30T23:20:01.147Z', 82 + '2026-02-04T19:06:32.028Z' 83 + ); 84 + 85 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 86 + 'at://did:plc:zviscnpwyvj6y32agi5davn5/boo.sky.go.game/1i9jq6hpqoonb', 87 + '1i9jq6hpqoonb', 88 + 'did:plc:zviscnpwyvj6y32agi5davn5', 89 + 'did:plc:zviscnpwyvj6y32agi5davn5', 90 + NULL, 91 + 9, 92 + 'waiting', 93 + 0, 94 + NULL, 95 + NULL, 96 + 0, 97 + '2026-01-30T17:46:21.407Z', 98 + '2026-02-04T19:06:32.092Z' 99 + ); 100 + 101 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 102 + 'at://did:plc:5clan7z4wsuvaffihedjv6fu/boo.sky.go.game/1i9jnaqqer804', 103 + '1i9jnaqqer804', 104 + 'did:plc:5clan7z4wsuvaffihedjv6fu', 105 + 'did:plc:5clan7z4wsuvaffihedjv6fu', 106 + 'did:plc:zviscnpwyvj6y32agi5davn5', 107 + 9, 108 + 'active', 109 + 6, 110 + 'move', 111 + NULL, 112 + 0, 113 + '2026-01-30T16:55:03.857Z', 114 + '2026-02-04T19:06:32.154Z' 115 + ); 116 + 117 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 118 + 'at://did:plc:vx2s6tiptwgssycs66xkh3xp/boo.sky.go.game/1i9ipkqdo0gu8', 119 + '1i9ipkqdo0gu8', 120 + 'did:plc:vx2s6tiptwgssycs66xkh3xp', 121 + 'did:plc:vx2s6tiptwgssycs66xkh3xp', 122 + NULL, 123 + 9, 124 + 'waiting', 125 + 0, 126 + NULL, 127 + NULL, 128 + 0, 129 + '2026-01-30T08:03:46.731Z', 130 + '2026-02-04T19:06:32.226Z' 131 + ); 132 + 133 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 134 + 'at://did:plc:hsqwcidfez66lwm3gxhfv5in/boo.sky.go.game/1i9iiggmob8pp', 135 + '1i9iiggmob8pp', 136 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 137 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 138 + 'did:plc:5clan7z4wsuvaffihedjv6fu', 139 + 9, 140 + 'completed', 141 + 80, 142 + 'pass', 143 + 'did:plc:5clan7z4wsuvaffihedjv6fu', 144 + 0, 145 + '2026-01-30T05:56:06.129Z', 146 + '2026-02-04T19:06:32.289Z' 147 + ); 148 + 149 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 150 + 'at://did:plc:mujrjsiurskxrbvisdtn6aed/boo.sky.go.game/1i9ijg5kgioml', 151 + '1i9ijg5kgioml', 152 + 'did:plc:mujrjsiurskxrbvisdtn6aed', 153 + 'did:plc:mujrjsiurskxrbvisdtn6aed', 154 + 'did:plc:v4zpi74gy7enfiwke7hmoxv5', 155 + 9, 156 + 'active', 157 + 6, 158 + 'move', 159 + NULL, 160 + 0, 161 + '2026-01-30T06:13:48.263Z', 162 + '2026-02-04T19:06:32.353Z' 163 + ); 164 + 165 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 166 + 'at://did:plc:w3fackt5a5a63zwhfafb6zw6/boo.sky.go.game/1i9ij0emnjg3s', 167 + '1i9ij0emnjg3s', 168 + 'did:plc:w3fackt5a5a63zwhfafb6zw6', 169 + 'did:plc:w3fackt5a5a63zwhfafb6zw6', 170 + NULL, 171 + 9, 172 + 'active', 173 + 1, 174 + 'move', 175 + NULL, 176 + 0, 177 + '2026-01-30T06:05:00.902Z', 178 + '2026-02-04T19:06:32.416Z' 179 + ); 180 + 181 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 182 + 'at://did:plc:w3fackt5a5a63zwhfafb6zw6/boo.sky.go.game/1i9iisi06b051', 183 + '1i9iisi06b051', 184 + 'did:plc:w3fackt5a5a63zwhfafb6zw6', 185 + 'did:plc:w3fackt5a5a63zwhfafb6zw6', 186 + NULL, 187 + 9, 188 + 'active', 189 + 1, 190 + 'move', 191 + NULL, 192 + 0, 193 + '2026-01-30T06:02:50.140Z', 194 + '2026-02-04T19:06:32.478Z' 195 + ); 196 + 197 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 198 + 'at://did:plc:hg2aswzy4bn5ag2ojwxxkxcz/boo.sky.go.game/1i9gd5ik6ogod', 199 + '1i9gd5ik6ogod', 200 + 'did:plc:hg2aswzy4bn5ag2ojwxxkxcz', 201 + 'did:plc:hg2aswzy4bn5ag2ojwxxkxcz', 202 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 203 + 19, 204 + 'active', 205 + 4, 206 + 'move', 207 + NULL, 208 + 0, 209 + '2026-01-29T09:15:10.858Z', 210 + '2026-02-04T19:06:32.541Z' 211 + ); 212 + 213 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 214 + 'at://did:plc:bpotnohnlgcj3fbmp7ugx4en/boo.sky.go.game/1i9gcg89348b0', 215 + '1i9gcg89348b0', 216 + 'did:plc:bpotnohnlgcj3fbmp7ugx4en', 217 + 'did:plc:bpotnohnlgcj3fbmp7ugx4en', 218 + 'did:plc:5clan7z4wsuvaffihedjv6fu', 219 + 9, 220 + 'active', 221 + 5, 222 + 'move', 223 + NULL, 224 + 0, 225 + '2026-01-29T09:03:15.365Z', 226 + '2026-02-04T19:06:32.605Z' 227 + ); 228 + 229 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 230 + 'at://did:plc:hsqwcidfez66lwm3gxhfv5in/boo.sky.go.game/1i9fg2v83o8ip', 231 + '1i9fg2v83o8ip', 232 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 233 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 234 + 'did:plc:6k425l7hv2swql5l5olywqcx', 235 + 9, 236 + 'active', 237 + 14, 238 + 'move', 239 + NULL, 240 + 0, 241 + '2026-01-29T00:34:44.917Z', 242 + '2026-02-04T19:06:32.668Z' 243 + ); 244 + 245 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 246 + 'at://did:plc:hsqwcidfez66lwm3gxhfv5in/boo.sky.go.game/1i9ct0l39f8dk', 247 + '1i9ct0l39f8dk', 248 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 249 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 250 + 'did:plc:jlqiqmhalnu5af3pf56jryei', 251 + 9, 252 + 'completed', 253 + 39, 254 + 'move', 255 + 'did:plc:jlqiqmhalnu5af3pf56jryei', 256 + 0, 257 + '2026-01-27T23:48:06.593Z', 258 + '2026-02-04T19:06:32.730Z' 259 + ); 260 + 261 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 262 + 'at://did:plc:hsqwcidfez66lwm3gxhfv5in/boo.sky.go.game/1i9cf2usraopo', 263 + '1i9cf2usraopo', 264 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 265 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 266 + 'did:plc:2grdruc2p6fjhksrfpt366yl', 267 + 9, 268 + 'completed', 269 + 3, 270 + 'move', 271 + 'did:plc:2grdruc2p6fjhksrfpt366yl', 272 + 0, 273 + '2026-01-27T19:38:51.591Z', 274 + '2026-02-04T19:06:32.793Z' 275 + ); 276 + 277 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 278 + 'at://did:plc:nw4yh7je2kqhyxiqct5urde6/boo.sky.go.game/1i9d4ld8bbgd4', 279 + '1i9d4ld8bbgd4', 280 + 'did:plc:nw4yh7je2kqhyxiqct5urde6', 281 + 'did:plc:nw4yh7je2kqhyxiqct5urde6', 282 + NULL, 283 + 9, 284 + 'active', 285 + 1, 286 + 'move', 287 + NULL, 288 + 0, 289 + '2026-01-28T02:04:59.206Z', 290 + '2026-02-04T19:06:32.856Z' 291 + ); 292 + 293 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 294 + 'at://did:plc:vx2s6tiptwgssycs66xkh3xp/boo.sky.go.game/1i9d41kugu08a', 295 + '1i9d41kugu08a', 296 + 'did:plc:vx2s6tiptwgssycs66xkh3xp', 297 + 'did:plc:vx2s6tiptwgssycs66xkh3xp', 298 + 'did:plc:nw4yh7je2kqhyxiqct5urde6', 299 + 9, 300 + 'active', 301 + 2, 302 + 'move', 303 + NULL, 304 + 0, 305 + '2026-01-28T01:53:56.184Z', 306 + '2026-02-04T19:06:32.919Z' 307 + ); 308 + 309 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 310 + 'at://did:plc:tahmjtpwnkuhopngqe5q7jp2/boo.sky.go.game/1i9d378e4l874', 311 + '1i9d378e4l874', 312 + 'did:plc:tahmjtpwnkuhopngqe5q7jp2', 313 + 'did:plc:tahmjtpwnkuhopngqe5q7jp2', 314 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 315 + 19, 316 + 'active', 317 + 63, 318 + 'move', 319 + NULL, 320 + 0, 321 + '2026-01-28T01:39:10.649Z', 322 + '2026-02-04T19:06:32.983Z' 323 + ); 324 + 325 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 326 + 'at://did:plc:jltusfpxxpkezbwg4rr4vbtr/boo.sky.go.game/1i9d1no42t0td', 327 + '1i9d1no42t0td', 328 + 'did:plc:jltusfpxxpkezbwg4rr4vbtr', 329 + 'did:plc:jltusfpxxpkezbwg4rr4vbtr', 330 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 331 + 9, 332 + 'active', 333 + 6, 334 + 'move', 335 + NULL, 336 + 0, 337 + '2026-01-28T01:12:36.485Z', 338 + '2026-02-04T19:06:33.047Z' 339 + ); 340 + 341 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 342 + 'at://did:plc:2zmxikig2sj7gqaezl5gntae/boo.sky.go.game/1i9d10kig2gqr', 343 + '1i9d10kig2gqr', 344 + 'did:plc:2zmxikig2sj7gqaezl5gntae', 345 + 'did:plc:2zmxikig2sj7gqaezl5gntae', 346 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 347 + 9, 348 + 'active', 349 + 42, 350 + 'pass', 351 + NULL, 352 + 0, 353 + '2026-01-28T00:59:41.010Z', 354 + '2026-02-04T19:06:33.110Z' 355 + ); 356 + 357 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 358 + 'at://did:plc:hsqwcidfez66lwm3gxhfv5in/boo.sky.go.game/1i9d1010ug0ob', 359 + '1i9d1010ug0ob', 360 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 361 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 362 + 'did:plc:nw4yh7je2kqhyxiqct5urde6', 363 + 9, 364 + 'active', 365 + 37, 366 + 'move', 367 + NULL, 368 + 0, 369 + '2026-01-28T00:59:20.512Z', 370 + '2026-02-04T19:06:33.174Z' 371 + ); 372 + 373 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 374 + 'at://did:plc:hsqwcidfez66lwm3gxhfv5in/boo.sky.go.game/1i9ct066ij05q', 375 + '1i9ct066ij05q', 376 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 377 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 378 + 'did:plc:jlqiqmhalnu5af3pf56jryei', 379 + 19, 380 + 'active', 381 + 7, 382 + 'move', 383 + NULL, 384 + 0, 385 + '2026-01-27T23:47:50.972Z', 386 + '2026-02-04T19:06:33.236Z' 387 + ); 388 + 389 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 390 + 'at://did:plc:hsqwcidfez66lwm3gxhfv5in/boo.sky.go.game/1i9cbbqf5ho58', 391 + '1i9cbbqf5ho58', 392 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 393 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 394 + 'did:plc:jlqiqmhalnu5af3pf56jryei', 395 + 19, 396 + 'completed', 397 + 33, 398 + 'pass', 399 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 400 + 0, 401 + '2026-01-27T18:32:13.971Z', 402 + '2026-02-04T19:06:33.299Z' 403 + ); 404 + 405 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 406 + 'at://did:plc:2grdruc2p6fjhksrfpt366yl/boo.sky.go.game/1i9cg6a4a4ob3', 407 + '1i9cg6a4a4ob3', 408 + 'did:plc:2grdruc2p6fjhksrfpt366yl', 409 + 'did:plc:2grdruc2p6fjhksrfpt366yl', 410 + NULL, 411 + 19, 412 + 'active', 413 + 1, 414 + 'move', 415 + NULL, 416 + 0, 417 + '2026-01-27T19:58:37.775Z', 418 + '2026-02-04T19:06:33.362Z' 419 + ); 420 + 421 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 422 + 'at://did:plc:xwzxgbwvnnu2dntpty765y5j/boo.sky.go.game/1i9cf1s7cd0f0', 423 + '1i9cf1s7cd0f0', 424 + 'did:plc:xwzxgbwvnnu2dntpty765y5j', 425 + 'did:plc:xwzxgbwvnnu2dntpty765y5j', 426 + NULL, 427 + 19, 428 + 'waiting', 429 + 0, 430 + NULL, 431 + NULL, 432 + 0, 433 + '2026-01-27T19:38:15.236Z', 434 + '2026-02-04T19:06:33.425Z' 435 + ); 436 + 437 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 438 + 'at://did:plc:wh2g32kxs6xgduoibqdpne5j/boo.sky.go.game/1i9cef0fj086g', 439 + '1i9cef0fj086g', 440 + 'did:plc:wh2g32kxs6xgduoibqdpne5j', 441 + 'did:plc:wh2g32kxs6xgduoibqdpne5j', 442 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 443 + 19, 444 + 'active', 445 + 76, 446 + 'move', 447 + NULL, 448 + 0, 449 + '2026-01-27T19:27:42.165Z', 450 + '2026-02-04T19:06:33.488Z' 451 + ); 452 + 453 + INSERT OR REPLACE INTO games (id, rkey, creator_did, player_one, player_two, board_size, status, action_count, last_action_type, winner, handicap, created_at, updated_at) VALUES ( 454 + 'at://did:plc:hsqwcidfez66lwm3gxhfv5in/boo.sky.go.game/1i9c902in1of6', 455 + '1i9c902in1of6', 456 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 457 + 'did:plc:hsqwcidfez66lwm3gxhfv5in', 458 + 'did:plc:jlqiqmhalnu5af3pf56jryei', 459 + 9, 460 + 'active', 461 + 40, 462 + 'move', 463 + NULL, 464 + 0, 465 + '2026-01-27T17:49:52.339Z', 466 + '2026-02-04T19:06:33.551Z' 467 + ); 468 +