File: blk05766.txt

=j;Wsx:to:USDT(BSC):0x8c337407d991Bd8ea0b46b501cb534C58bA5Cfc6
(j&MTLD_BATCH_393549_393551_393553_393557"2
?j=lYJ:to:USDT(ERC20):0x16AFdd059DA80498dF875A941b8e1D738c9D9944F4
6j49Wz:to:USDT(TRON):TPyBFevsEp8EQGZ5tAETcwsx7oPbhZdvAd
6j4Tzd:to:USDT(TRON):TSsDMqvnB42ESrcg9sWv34WCpRJ1NCDu3f
FjDOUT:1DD5CC273EF97668A939EFADB7FA0CFFDCAA4322122275EBAD899FA5C3634986
=j;Pz6:to:USDT(BSC):0x01329c384Cf8b66A63F4bB0269F428A0c4534eFCe
>j<enQ:to:USDC(BASE):0xcbe99bc6B043fc03fb2ea5dA040Fcaa493e5554B;
6j4gX8:to:USDT(TRON):TCdKhWKSmdgDbcroBtytFiukeRjEXPYMW6
6j41yF:to:USDT(TRON):TJGmq12t894gMErbKrgugt2AjnoEA3vUYP
=j;3RV:to:USDC(BSC):0x8E205ed7341B09aD57258E5D8a5A59Da666F3B81
/j-X7y:to:TRX:TWExBbozcPoAv1P4zx4v772etYn8XBRK9X
{jLx0x86362d6a8f268905ccc211f5c043a58677d71f5b2e0e7288fff82c0747bb424c|depositor=bc1qamgjuxaywqls56h7rg7afga3m6rgqwfkew688k|
{jLx0xd7b9931eba3c811470e83de7386fd8eb3eaa58c6e86dddba8e672287f60f870b|depositor=bc1q7f6ujdq54ktsu68paphcnnnyxkrnsl7gv6mhdn|
{jLx0x180f2de10cf2e5c9c37f5e8c06af75cf34cb28fb10f4105c424ee47a24f7a1cc|depositor=bc1qdcxulsfd36yq0jqe6ur5ehcuwnhs85errnw4s3|
@j>from:149.3USDT(BSC):0x0958780cC4CC5cBB274a3D6BdBaD78d59f5FA79b
OjLL0xb019c9990b4daba52b35e3c5f96775a430370f91e7d42f27b2ed62b13ae6da79=|lifi
text/plain;charset=utf-8
  "op": "token-transfer",
  "tick": "dmt-nat",
  "amt": "150000000000",
  "dta": "{\"op\":\"bridgein\",\"ethAddr\":\"0xb547Dd7157310a9E83583E90f82aF699BBBf309f\"}"
DjB0x64b6b2ad32d6ee6925ce78f46b4993e72910533c3407f99e51920f73300b3e9d
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"ordi","amt":"5850.18"}h!
DjB0x383350fbe4553762ba028a46c0fe7143397357e4313680f385962ca7a74888d7
DjB0x4b9c292688c78bef5b032a25ab70a5ce5201b2df1a2359270c111ad210696335
DjB0x828732a36e47c52a1a5e0495a9eebd1e9a587d1f218b2648ea2e5228851387ea3
Bj@5d53d36b445c74c908e93d34735d8782d567dc13f0a8ad08773837cd0d625566
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"64466"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"16"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"64466"}h!
SODA #8280 - Drawn May 22, 2026
dnamejSODA #8280edrawnlMay 22, 2026dseedjstretch 20hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
6j4Iw1:to:USDT(TRON):TJGmq12t894gMErbKrgugt2AjnoEA3vUYP
6j4Bm2:to:USDT(TRON):TLy26wkG91X5Ri5FnZPBTdC9zcEbMuKkah
JjH=:e:0xE3589364e87a204E50Ba2fDd95988949B84B9955:1686703/300:sk/few:15/100
9j7to:USDT(BSC):0x12597114062e7570C2FBbd727cBDA216C4441DA6
DjB0xfbf47d8e407e599c675b4875668661f1b8489df6c10255df29e1fa8f4a7fbd4d
DjB0x036dc09d23ececc6c645c25e6481595f7c3696b4f4fa24b5f3574c1cd2aed256
DjB0x1a169c72f996baf8082147cfa1b8b16394a0760879ec471d2a31251e33d859ca
7j5from:250USDT(TRON):TEG3i978Mq94SZUruU162BVR72RZsDpbtc7
=j;from:3702.88USDC:0x2037534a18C40BF56a51F568aBd606B647293ef1
6j4gjH:to:USDT(TRON):TXxsQG69k7fNwhKenguKCv52va1RZMDsgm
6j4Xtz:to:USDT(TRON):TAGrtcqtajc2mDh3dHkKVzpBD1NEnMFYGM
6j4jvT:to:USDT(TRON):TQgMjhiF5TTG4hAEVvzTWyJi5UsgSWzzRKI
6j4lI3:to:USDT(TRON):TTRCbb6HdSgqgSZtD9VLvUwEEfejFzR7kS
6j4JFC:to:USDT(TRON):TWZCHxHnvS7F2f2QiFpf2AfPapRRuk9Ed5
6j4A6f:to:USDT(TRON):TQZE9EcdY1m8XKarQdSELjxUz3boggSTBw
6j44PL:to:USDT(TRON):TLGzGWq4d6FrPubgvahXZQB5nNDoxESRPR
6j4hKL:to:USDT(TRON):TSsBaaqnG6LRLfnezZtM3a3xqomaYgJmJV
6j4bJf:to:USDT(TRON):TEFiCkURTyhR4P54xPBJpTGV6fo7AchvK4
7j58ZF:to:ETH:0x1Ed6997325BdB4d0Bdd67887F29F40DdE6D60848
7j5WjY:to:ETH:0x84559C4C9C2f93e66C2540EaA5601c3e242e4951
6j4755:to:USDT(TRON):TVHcj2irUugfTYqQpGMWwhjuShpFUxaTSk
=j;Mgl:to:USDT(BSC):0xf04E0088787A103008FCb4F13d6560Ded26685Dc
6j4kUG:to:USDT(TRON):TYn8UVNxJR5JtWiRZ9xT5Qyn6TRAFajz5g
6j4c1k:to:USDT(TRON):TKZEwzTthteP1WQY8HePkcwQjwDYDS191t
<j:AVl:to:BNB(BSC):0xE63b9909130848F756241d605CEe8b4b94fdde3e
<j:JwZ:to:BNB(BSC):0x93A615f9DdCA5bEefDFE574d0375ABc8C52a55927R
=j;Vly:to:USDT(BSC):0xc0B96FeCfAD34D00769E9d16dd28C197D46A612b
2j0to:USDT(TRON):TN4khGR4guRKazmhJQMub1hn7DFs3zhgvs
6j4hB1:to:USDT(TRON):TWC6wBgi2M6gvjtYK2vqRgZKKJfbqSfuHC
6j4qy5:to:USDT(TRON):TDxU6Hty5sJP2fDVZr3vGrx4C9jK3ki7ns
6j4xP7:to:USDT(TRON):TSe3XeDSpVRtrQxj6QM3p2j9AawkDcYFfc
?j=wnq:to:USDT(ERC20):0x6733d13B7dAa0107676003a4aFB78e6365f0A348w
?j=ROc:to:USDC(SOL):9bx9HH9VxW7aRpSnYfb99rf7Rh4ptHPBytN5iki3nK94
3j1to:ETH:0x5aEe037FA3c2107f133171D58cDe9bF6B15A746B
DjB0x17b7d3e1466850fb02c55cf2314e4b8fa1aba2b33b6669c27972a229605347a6
DjB0x99d719b1aa0050dd99cb43a13ca1ec485f2aefa468cea45e6a562599c7babeef
DjB0x3690afedd401256d10a1f93ae316de132c670da92de7eb47efb2bce9aaeb9252
B3aa0f50c883b9e8c53261308735daa187b72bb6af1bdc76c53b99416d1a8fa79:1a
<j:=:e:0x7237D7dcee7B3A004d1ff5D411F25de0CD92e7DB:0/1/1:ej:75
DjB0xc9634c03ac2c475950b0994846f22f231712fca78558d914a29a5a7349158a7e
DjB0x665432cf87cb17bbb1ef3a08903177dd9f4d4a709fe9c6b4a604a220a17f1116
OjLL0xae608eebc3f42afbd5e82b5f0c5c37b851a248b85eebf84b9d18487eb02bff9a=|lifi
DjB0xec36855187d1985f5e39453e7d2cd209e53371f71a07d4377a9883e1c17ee96b
DjB0x5e05b406a6ae0dce6743612b8927b6e2f8a369ba8449aab2be1e41b718c9be67
DjB0x61a7d1f2dc09c61274ce9e2874e29aced638df2bd5ab73e99f6812c675001f81
DjB0x989f67309a4cfe9faf14a6b7ba60fbcafe44142392f8f8d179111b4f8bcd0eed
DjB0xed231f75a560d9044f932f18d0ec05edf9a09c5926d64ce0923cb19246ef6e79
OjLL0x422e489129d404309dbbee8211f79e3f153f67d2ddbccf02ee756cf978cd4fe7=|lifi
OjLL0x772ad346e90174b9c90771ba27a0c9537e3549bb53b69631c8a0208c1922b5a0=|lifi
OjLL0x34e47bd85738e484b7cd8444a312a71df2a8eb7c7824a7265a625a5682272c63=|lifiI
DjB0xaaff875e34c36ae9e23b23a5bbaa1a7fc420efb99a80e791680328c50255392d
6j4kaJ:to:USDT(TRON):TUXn4VsP9bBD1cWJuyz6ngxfLjootEHQyr3
OjLL0x6dfd639b6dfaec3ee591079ab020f6ed9e1fa66312549878861bfc8af53e647f=|lifi
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"187750"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
DjB0x050c2bf95c93b8d4b448de0a77bcd35ff9ac1e95c92568a47a187727ce3dfd0d
B44fc99a2ea9278621b1fda9cb8f8c61386082e953fd9d2c082f546b21c204f9d:0a
DjB0x9b1603af8284b9bf4ffa42507f15635f536331d87d725fae644bb604d23d0738
There will only ever be 21 million. No bailouts, no printers, no kings. I etched this truth in 100+ bytes so my grandkids know: scarcity is freedom. Verify, don't trust.P4
DjB0x486cb27415ba79478452ed9bbd3134bbe7d32d21f3439c9aa6b08c3e89714baa
DjB0x304fc5403acd9c92aa171f1ac005af06a6397550a881017dd08c4b5031c4c734
DjB0xc6ea80a31c08c06bd65b7c56a489ed42710794994470d058cbb23ac591650908
DjB0xfd4b75b9f9669c181a284ac25093e720b6a4dcb2ad748e0081272df087f7200a
DjB0xf27f32b065a0acb481e83b1c8a94805ee54ef2695c4197f2bbe4086048b286df
DjB0x24e038983d49db85f864c2b935d642576583d538deafab274e3594bb424cb429
DjB0x00b1dd6bb3361460df0f7c1efe21afcfff4c177ccd65498b7a3c2812207252ff
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1500"}h!
7j5koj:to:ETH:0xF03EBccC13f4CbcF9ed5F982c7c3917090c37A13
=j;VM0:to:USDT(BSC):0x889b6C15e4079d7d07f5Acd8dC37f44295Df04ba
?j=67E:to:USDT(ERC20):0x6A24d91eD238cF1145aE1be6F69f4f32558e65b4P
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"22873176900"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"3500000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"128932"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"38077604925"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"MkBM","amt":"1000"}h!
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"MkBM","amt":"1000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"240"}h!
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"MkBM","amt":"1000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"3300000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"TRUM","amt":"3000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"10620"}h!
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"MkBM","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"2000000000"}h!
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"MkBM","amt":"1000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"36P9","amt":"100"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"301"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"5135242232"}h!
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"MkBM","amt":"1000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"MkBM","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"2216174882"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"30"}h!
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"MkBM","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"4000000000"}h!
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"MkBM","amt":"1000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"62"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"MkBM","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6500000000"}h!
SODA #8281 - Drawn May 22, 2026
dnamejSODA #8281edrawnlMay 22, 2026dseedjstretch 21hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
KjI=:u:0x6eF0857fe04A749701c2f6D4cF9C8e8B051D7557:21210411518/200:sk/nc:15/0
6j4f69:to:USDT(TRON):TGNcatAj3tyAS67Waepm8AXpALv6m7Xpv9
=j;Uq7:to:USDC(ARB):0x6a8dF8deeBb0323b79282B7ecDB8F1075Bd85DE1
6j4uEE:to:USDT(TRON):TLyG69GSebSkZFRjiPNUod62MfzBFEDycq
6j4kTe:to:USDT(TRON):TJGmq12t894gMErbKrgugt2AjnoEA3vUYP
;j9to:USDT(ERC20):0x4e1922b88734c33eF5Ec233581b381CC12ed7d62
3j1to:ETH:0xF67ba0d865c7D2DED1904b3Ea1a3984E851B85a60*
6j4blo:to:USDT(TRON):THfWiFbrP1euubGyXM1R92ci6fvQgjyi6N
6j4aGs:to:USDT(TRON):TLNULt7TBKGoBKVWBw76cCpkAcoWi7vd6ax
6j4ZML:to:USDT(TRON):TEuwzWHMjnTEt16tyXFS6XCLM7KQ2p9MS1
6j4XUN:to:USDT(TRON):TBZRRfhXZC4hhJkVEJb3DE9UTx6BjWyj6w
6j4v05:to:USDT(TRON):TLNmCDBqx1w7pr1VMNeTog1Apxx2t5LVTm
=j;IFm:to:USDT(BSC):0x1F0b475F0FcAF55A7892A8a32F49c8b31B23fB9A
8j6DAd:to:USDC:0xf412acf311f8731301718fE8a638435AB86AEd6A
=j;ESJ:to:USDC(POL):0xCf518aa27F8b1E9D429613A8Df0a6847144D98ed
=j;1Vi:to:USDC(BSC):0x115bBd572bE3A824321eeDaF5761b4D01845d17b
=j;tr9:to:USDT(BSC):0x7E094586eD3F8dAd33Eebf074314adF9fB69062c
=j;siS:to:USDT(BSC):0x71fC8cd363fd5800745a2c51c5A48FbCBf93c4A1
CjAZMK:to:GRAM(TON):UQDdsJBeVkQVP1PYaeQ6-56JVsPKhpsSADm9J2dzeLCitAxe
=j;845:to:USDT(BSC):0x261813562b7C8877BE1f0ccD447CbFc6a0b21791
6j4iZh:to:USDT(TRON):TCdo4HCREuaZCZACkm7ubu9pRRJdQtNUmn
6j4uHN:to:USDT(TRON):TF1gb2S5gieZ479ULcnUg5zwou32VJ5kWo
6j4FhP:to:USDT(TRON):TR1nTL2YH7zHQXNu7hsMgdoVcTexR8Y57o
OjLL0x8e17417fde98c78ec9d8949af7e59904763f1777e2d0e5f310a056b296d4e23d=|lifi
^jL[Education is the most powerful weapon which you can use to change the world. Nelson Mandela
DjB0x51bd77be8ef263e9e1986e0a48c819ef13e17eb7dbf89395b04a83bb987c906f
0j.from:140XRP:rPD7UvQ1yKXC9Xgjd1S3mjghWUEgz31sqR_#2
DjB0x6ca9710ae49b13e7e8a59ff3a3cc84f2df30d7e1b7e33bc883f22b6d9b22d2ed
DjB0x69da97967c3039c7bc057bdf628740943978b17d3d94054f2e7a56286e945dc5
@j>{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"94759.066"}
DjB0x0222d1e09074ef7352e07d45528810be3fa59e2863023d1a747cef692bab20a0
DjB0x5da1284f8e6616f3e7cd2fb0027dba304dfff71ea61a95c6c075fb69cdbfdf87
DjB0x5c3356b642f676103a99fffc38cc473ea02af261ed13f85d32969f65ff8de2a8
DjB0xcf665494de10b1ca488e66eda4ba7e89a8dfe51a11ba8ec5ee07d3bfcea0a4c2
DjB0x45493e7d21fba9c21da1513eda4f8d0203c1964205c82147e234c6cfde4e0c7e
DjB0x6474f462719213c1375aa724965c9735cb138b39315dd8a48b30219723e8d52a
DjB0x96f6aafba415b9e8a4de218437d7a000c29636c64c226b7318ee4cafc5560bd9
DjB0x7a6c06c47f140f84ffd1302ac5abaf39f36d58dec5141384fbd15ca128ae9465
FjD=:tu:TNBWTD9hPQngNzyiExTX4G8VYJwEqtAEko:4025879362114/200:sk/t1:0/70
DjB0xf0fd2a188e93a98e4ae757bdb8813c73be67386c3bee19d97b73f56e1d241456
OjLL0x0dda2b038aeb6e312bd5f1198cf3ea18f81861a802d7908cf06087202e4323a1=|lifi<
OjLL0xb92a1795668f79f4225b9e38ee5189bb6f887446b86001ec2ba698b81f1d80bc=|lifi
DjB0x0fba48e714cdc5a8d3fc204fab14708f7f4e7cc7ba7c32be9bca7111c6dc173e
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"550000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
6j4zD0:to:USDT(TRON):TVWbh6Ki9f7XxNkv4XjYNoExk8MMqNZt8f
DjB0x7117fb8752ab14f9134d14d7bd574231e0bf7d2713b9a31f89e483e463d63c2c
DjB0x1676d611b3428dd803f1030b3569bccca1e7ae412a48901fd156a4e59ec8037b
DjB0xc346a965d70967b74901c3388156bc50b691901f77d49bdaa1eef2a267960afb
DjB0xf0b16a8309fce1843edb2c587adf41378fa4d529a77492cc20d22cb8add18a40
DjB0x27d779c148972ee52605142f77568555740150e5c02eeec7063048bf73325aff
DjB0xe3f8cf13dea2b9445a75e154eedb1cbc50ef5f0768ec41cfaa2a4c6b3e3a8e13
DjB0x5f63e7b667aa1f77a5d832df3c6a6196c19031b16d8dc790d7c6bd407ff9ff70
DjB0x5122afc8baeb21acdb145d7209b428109ca262eb71ad808114438b462a57059b
DjB0x1e6bbe9baea97eb3c84136bb8a681c63a99464bcbfe1b03162a411d2d5e024ae
DjB0x987fdfabc48a44694174c20f0d430b970f5ce33d2817601020a83e12dda2be16
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
DjB0xf166eb633367d142e8bffb7ec3edc7f26a36a2042ee3ffcbee0c6108c3cd36eb?
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"200000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
EjC{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"53095.66844064"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"350"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"400"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"550"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"500"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"300"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"600"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"715420"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"14918027820"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"20000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
<j:{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"40000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"900000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"6595"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"5000"}h!
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"336395.71260788"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"2"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"4"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"50"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"32470"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"3384785582"}h!
     Mined by Secpool    v
2j0to:USDT(TRON):TK35wm8rUtiPNfggyyZoggEv8ztjAWGks9
?j=Bul:to:USDT(ERC20):0x24ED1a183DD8482020296b98ECf34CfC29B2c4BC
6j4qa8:to:USDT(TRON):TLNmCDBqx1w7pr1VMNeTog1Apxx2t5LVTm|
2j0to:USDT(TRON):TC9w5ZJXbRBkg67m25BoEmwTBt24Ep8Zja
=j;4SV:to:USDT(BSC):0x5bD15E56d773D724b10D95b0EC6693e1410443cd
=j;H8n:to:USDT(BSC):0xEc6ec0230294D0f6D931dCF971676F049ec4edecKW%
9j7to:USDT(BSC):0xA392210E2B4Cd95a587a4089486F0764A92dEB6C
OjLL0x7b43c9043a5467f88b2b63735d4845f5c69895fab3dff2d457f47f7398a36778=|lifi
DjB0x0a46a6c9e19fd662837556a2f320fd228c546c0d15c6174e42592fc929f98e6d
DjB0x6b1e6bcc711ef6cb2624331ba31e8fb2692dd25ea6479d1419e49e7db5faa8fa
DjB0x2f0a1df77eaec71070211d63e9e0821f5dbd6e2200382edbc023128196dcb1a8
DjB0xdcd4b3326a8ad30d6e2937662c5586231b9beb221fc97c598b3d67f2abd19963
DjB0xfc9695343d968cb7d037c99f09e35d1168efd0fba7559a8c2e977bf309bfd969
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"AIM  ","amt":"3973.12"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"AIM  ","amt":"3973.12"}h!
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Rune Status</title>
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;background:#0b0b0f;overflow:hidden;font:12.5px/1.5 ui-monospace,Menlo,Consolas,monospace;color:#e8e2d0}
#bg{position:fixed;inset:0;background-size:cover;background-position:center;opacity:.18;pointer-events:none}
#wrap{height:100%;display:flex;align-items:center;justify-content:center;M
#panel{width:min(92vw,440px);max-height:90vh;background:rgba(8,8,12,.94);border:1px solid #2f2a22;border-radius:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),inset 0 -3px 12px rgba(0,0,0,.55),0 16px 48px rgba(0,0,0,.65);overflow:hidden;display:flex;flex-direction:column}
#header{padding:22px 24px 14px;text-align:center;border-bottom:1px solid #2b2820}
#header .title{font-size:18px;letter-spacing:.42em;font-weight:600;color:#e8e2d0}
#header .title span{color:#c9a227}
#header .sub{margin-top:6px;fM
ont-size:11px;letter-spacing:.28em;color:#c9a227}
#content{padding:20px 24px 24px;overflow-y:auto;background:rgba(0,0,0,.55)}
.balance{text-align:center;margin-bottom:18px}
.balance img{width:28px;height:28px;vertical-align:middle;margin-right:8px;border-radius:4px}
.balance .amt{font-size:32px;color:#c9a227;letter-spacing:.04em}
.balance .rn{margin-top:4px;font-size:11px;letter-spacing:.18em;color:#7d7768}
.rule{border:0;border-top:1px solid #2b2820;margin:16px 0}
table{width:100%;border-collapse:collapse}
ing:6px 0;vertical-align:top;font-size:12px}
td:first-child{color:#7d7768;letter-spacing:.12em;width:38%;white-space:nowrap}
td:last-child{text-align:right;word-break:break-all}
.muted{color:#9a8f6f}
.tier-Legendary{color:#f0c040}
.tier-Epic{color:#c084fc}
.tier-Rare{color:#60a5fa}
.tier-Uncommon{color:#4ade80}
.tier-Common{color:#a1a1aa}
#status{text-align:center;color:#7d7768;padding:30px 0}
.pulse{animation:pu 1.2s ease-in-out infinite}
#bovineRaceBtn{display:block;width:100%;margin:16px 0 0;padding:12px 14px;boM
rder:0;border-radius:10px;background:#c9a227;color:#111;font:700 13px ui-monospace,Menlo,Consolas,monospace;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
#bovineRaceBtn:hover{filter:brightness(1.08)}
#backOrdinalBtn{display:block;width:100%;margin:10px 0 0;padding:10px 14px;border:1px solid #2f2a22;border-radius:10px;background:transparent;color:#9a8f6f;font:600 11px ui-monospace,Menlo,Consolas,monospace;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
@keyframes pu{50%{opacity:.35}}
<div class="title">BIP<span>*</span>THIS</div>
<div class="sub" id="sub">
<div id="content"><div id="status" class="pulse">waiting for data
const BOVINE_SAT="2005686177378564";
const RANKS_JSON_ID="409bc157fb01fc0db396fb9650d727caa97dbf62df9910424a246cc058b1a137i0";
const BIP_LOGO="/content/03bd6f42e2de52379a4f5b6fd59c866ab2735c2cedb86f981ad390b9c65ea19fi0";
AMES={L:"Legendary",E:"Epic",R:"Rare",U:"Uncommon",C:"Common"};
function short(s){if(!s)return"
";if(s.length<=16)return s;return s.slice(0,8)+"
function pairScore(n){return Math.abs(n-25)}
function traitTier(n){const r=pairScore(n)/25;if(r>=.92)return"Legendary";if(r>=.75)return"Epic";if(r>=.55)return"Rare";if(r>=.3)return"Uncommon";return"Common"}
function tierClass(t){if(/legendary/i.test(t))return"tier-Legendary";if(/epic/i.test(t))return"tier-Epic";if(/rare/i.test(t))return"tier-Rare";if(/unM
common/i.test(t))return"tier-Uncommon";return"tier-Common"}
async function loadRank(code){
    const map=await(await fetch("/content/"+RANKS_JSON_ID)).json();
    const val=map[code];
    if(!val)return null;
    return{tier:TIER_NAMES[val[0]]||"Common",rank:parseInt(val.slice(1),10)};
  }catch(e){return null}
async function render(msg){
  const data=msg.runeData;
  const code=(msg.code||"00000000").toString().padStart(8,"0").slice(0,8);
  const bg=document.getElementById("bg");
  const content=document.geM
tElementById("content");
  const sub=document.getElementById("sub");
  if(msg.buttonTexture)bg.style.backgroundImage=`url(${msg.buttonTexture})`;
  sub.textContent="SEED "+code;
  const a=+code.slice(0,2),b=+code.slice(2,4),c=+code.slice(4,6),d=+code.slice(6,8);
  const tA=traitTier(a),tB=traitTier(b),tC=traitTier(c),tD=traitTier(d);
  const rankInfo=await loadRank(code);
  // Always show BIP*THIS logo + balance (0.00 if none)
  if(data&&data.runes){
    for(const r of data.runes)M
      if(/bip/i.test(r.name)||/bip/i.test(r.symbol)){bipAmount=r.amount;break}
  html+=`<div class="balance"><img src="${BIP_LOGO}" alt=""><span class="amt">
 ${bipAmount.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}</span><div class="rn">BIP*THIS</div></div>`;
  // Any other runes
  if(data&&data.runes){
    for(const r of data.runes){
      if(/bip/i.test(r.name)||/bip/i.test(r.symbol))continue;
      html+=`<div class="balance"><span class="amt">${r.symbol} ${r.amount.tM
oLocaleString("en-US")}</span><div class="rn">${r.name}</div></div>`;
  html+=`<hr class="rule"><table>`;
  html+=`<tr><td>BACKGROUND</td><td class="${tierClass(tA)}">${String(a).padStart(2,"0")}
  html+=`<tr><td>MODEL 1</td><td class="${tierClass(tB)}">${String(b).padStart(2,"0")}
  html+=`<tr><td>MODEL 2</td><td class="${tierClass(tC)}">${String(c).padStart(2,"0")}
  html+=`<tr><td>MODEL 3</td><td class="${tierClass(tD)}">${String(d).padStaM
  if(rankInfo)html+=`<tr><td>COLLECTION RANK</td><td class="${tierClass(rankInfo.tier)}">${rankInfo.tier} (#${rankInfo.rank} / 10000)</td></tr>`;
  else html+=`<tr><td>COLLECTION RANK</td><td class="muted">
  html+=`</table><hr class="rule">`;
    const genesis=(data.inscriptionId||"").slice(0,64);
    const locationTx=(data.output||"").split(":")[0];
    const time=data.timestamp?new Date(data.timestamp*1000).toISOString().slice(0,10):"
<tr><td>INSCRIPTION</td><td>#${data.number??"
<tr><td>GENESIS TX</td><td class="muted" title="${genesis}">${short(genesis)}</td></tr>
<tr><td>LOCATION TX</td><td class="muted" title="${locationTx}">${locationTx===genesis?"unmoved since genesis":short(locationTx)}</td></tr>
<tr><td>BLOCK</td><td>${data.height??"
<tr><td>TIME</td><td>${time}</td></tr>
<tr><td>POSTAGE</td><td>${data.value??"
  html+=`<button id="bovineRaceBtn" type="button">Bovine M
Racing Club</button>`;
  content.innerHTML=html;
  const raceBtn=document.getElementById("bovineRaceBtn");
  if(raceBtn) raceBtn.onclick=()=>openBovine(msg);
function backToOrdinal(msg){
  const id=(msg&&msg.inscriptionId)||parseHandoff().inscriptionId||"";
  if(!id){ history.back(); return; }
  location.assign("https://0rdinals.com/content/"+id);
async function openBovine(msg){
  const wallet=msg.inscriptionId||(msg.runeData&&msg.runeData.inscriptionId)||"";
    sessionStorage.setItem("bitvis-init",JSONM
.stringify({inscriptionId:wallet,runeData:msg.runeData||null}));
    const d=await(await fetch("/r/sat/"+BOVINE_SAT+"/at/-1")).json();
    if(!d||!d.id) throw new Error("no venue");
    const dest="https://0rdinals.com/content/"+d.id+"#wallet="+encodeURIComponent(wallet)+"&code="+encodeURIComponent((msg&&msg.code)||"")+"&sat="+BOVINE_SAT;
    try{ window.top.location.replace(dest); }
    catch(err){ location.replace(dest); }
    const status=document.getElementById("status");
f(status){status.className="";status.textContent="Could not open Bovine Racing Club";}
function parseHandoff(){
  const out={inscriptionId:"",code:"",runeData:null,buttonTexture:null};
    const raw=sessionStorage.getItem("bitvis-init");
      const j=JSON.parse(raw);
      out.inscriptionId=j.inscriptionId||"";
      out.code=j.code||"";
      out.runeData=j.runeData||null;
      out.buttonTexture=j.buttonTexture||null;
    const tex=sessionStorage.getItem("bitM
    if(tex) out.buttonTexture=tex;
    const hash=(location.hash||"").replace(/^#/,"");
    const qs=new URLSearchParams(hash);
    if(qs.get("wallet")) out.inscriptionId=qs.get("wallet");
    if(qs.get("code")) out.code=qs.get("code");
async function hydrate(msg){
  const hand=Object.assign(parseHandoff(),msg||{});
  if(!hand.runeData && hand.inscriptionId){
      const insc=await(await fetch("/r/inscription/"+hand.inscriptionId)).json();
      if(insc.output){
        try{ utxo=await(await fetch("/r/utxo/"+insc.output)).json(); }catch(e){}
      const runes=Object.entries(utxo.runes||{}).map(([name,info])=>({
        name, symbol:info.symbol||"
        amount:Number(info.amount)/Math.pow(10,info.divisibility||0),
      hand.runeData={
        inscriptionId:hand.inscriptionId,
        number:insc.number,
        output:insc.output,
        value:utxo.value??insc.value,
        height:insc.height,Mp
        timestamp:insc.timestamp,
  hand.code=hand.code||"00000000";
window.addEventListener("message",e=>{if(e.data?.type==="INIT_OVERLAY")hydrate(e.data)});
if(document.readyState==="loading") document.addEventListener("DOMContentLoaded",()=>hydrate(null));
SODA #8282 - Drawn May 22, 2026
dnamejSODA #8282edrawnlMay 22, 2026dseedjstretch 22hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
6j4EAu:to:USDT(TRON):TW2bxhgUhytPTsjtKJqEdjJUbipv6Wz5FZ
=j;okm:to:USDT(BSC):0x8439F87BC3eb8a4350398B0c8c051A0943B6F60b
6j4F8A:to:USDT(TRON):TSZ6MLK1YFADnfV35oqCfw5hwnXoZSzpVa
6j4A1W:to:USDT(TRON):TAdyFieTngXuCirXduRAFxEMLsAHHGEphTW
6j4PBF:to:USDT(TRON):TQmfpidJqM4LXX9PmnHsUwfBSYGt1Y4WHw1t
6j4gHl:to:USDT(TRON):TLhJ51HCCNWXffsdMMzJ4mMyVGrjzPkHJJ
6j42VS:to:USDT(TRON):TCTR3vwkZg1nbwWvm43wPTB4k1Cou3JbEj
6j4hYc:to:USDT(TRON):TNxTtNRNsr6xcvncprtDnCmtDP7QbAdWUj
7j5clS:to:ETH:0xAac8E45003c0d4017720b629E82F4715F8898F53
=j;PZN:to:USDT(BSC):0xDB01c634Dc1f88E1254abB9Fa8f0FAB25110A87d
=j;KqU:to:USDT(BSC):0x63D130fBeb12cC3b1896e987951Bda793a823fB3
=j;Wz1:to:USDT(BSC):0x889b6C15e4079d7d07f5Acd8dC37f44295Df04ba
6j4iF6:to:USDT(TRON):TSzTF99AJrP9apBgGpHgHSSfWQdR3VJvP4
?j=0MG:to:USDT(ERC20):0x9BB76E23d06EAd338b7757152507694e2cb36af6no
6j45o9:to:USDT(TRON):TQqDHP9opf4REsWXUWnNf1M4w3bXd5Be1W
;j9to:USDT(ERC20):0x51d14165d678Fa44767A9646a5D8159220882eE1
=j;Z9H:to:USDT(BSC):0x6C7DBa8c0499509b82292f0568e8b6E16d0c8953Z
6j49vK:to:USDT(TRON):TTikc34tMndYTUvJUXa8f6uqACCAzwH5uA
6j43pT:to:USDT(TRON):TNS5hqMtCrtAP7EVg3v59ut6seC3XR7xy2
6j4W7z:to:USDT(TRON):TW4dCL9Xp2YuoPXYMbjZkWsyXQR8cXt65c
=j;i1y:to:USDT(BSC):0x18F066373Ee8B0d7B72B276953fED18B0CaB55ab
=j;ggx:to:USDT(BSC):0xa5d98Ffd0FA01262d92B5FCB832577ADBf7CB692
2j0to:USDT(TRON):TN4khGR4guRKazmhJQMub1hn7DFs3zhgvs
6j4Vvw:to:USDT(TRON):TT1wUnsPBYjHLjPFgdYWxeDE1nziqJTxcb
=j;nFF:to:USDT(BSC):0x309cb482E62c59B97D46b32afddcbC03B4F3285D
6j4asX:to:USDT(TRON):TQPiz7EE6cAc8b9SnrmTLs4eDoSt949VbB
?j=qTX:to:USDT(ERC20):0xfD63995657523C4F62Cf1b9C12032bC55f0BbaaB
DjB0x46b657a8b2e5160a2c54236ee928b3d5c93659c194518b794f3f25d0c02c7035
0x7a81ef0ab6f4e10e620adb1ccd211b21f638eabadb669a51c87156bf95bb6861|depositor=bc1p3wfjqsnen4q8yar3fr2k8mj0fv937x2wjtx87yru7xc38y5v6gaqn5jujh|
FjDOUT:4BB6DEE546A9C07F57B4349D127F2DA1C917047421E87F0BDCF4FB66B853770B
FjDOUT:C434129E404358943C8163C5D22EA1422CA072CF468A7CD10FF7AEB6E2015EE1
<j:=:a:0x5425bf8755212B12Dd4f2163566067D33BD8618e:0/1/1:ej:75
DjB0x97af9228ef2305465ab14e9949077eb72720d361aec8fac6537c82175055bb00
DjB0x9b1ae2bc94fa4f27cb4a81a939528a986fdb3151ebd9fa4bd1220cd81ca5bbc8
DjB0x27c1395c01ed9e45a76c5629723b6a9696ed4b5e7f050abb881bf520c6201e0e
DjB0xf4cc5c38cafc19a25e2a65129e41797d90f9fdbfd5dcb6b3ae6e44ecc4447c3f
DjB0x2b910a29f3f091e70f2055762b5a9aa831db9201e82ec25c1eb1e06784751b57
DjB0xd8b5e4263e2ae75fd2a546a7f566feefabc1395e92b47157a3533275dab7d0ec
OjLL0x1634c303da3844c815cd2d31126adc90ec3f1d5a1e3598a5f68c55a312935c9f=|lifi
OjLL0x24f2ae07239b8a0c9f26b4f6b3a1520c75234e5c6c3a7c6539a5f16b60edc437=|lifi
OjLL0x609fdbbe15e5e205f230f62b6122c2749e6af14e18b7de406db3071af5664ca7=|lifi
DjB0x35bd6e29892f9739831a380d7121e06d1f3f793f7b87789b76ac8ee10d80dbb43
DjB0x4ac0e71b3f14eb8af7c7ade9a40a2dde9151f1ff365af994fec3358e08e08a0f
{jLx0x3057db09bd09bbbc2050381f9ac3c71c21979a36676453ae24d1f9cf58fbbcaf|depositor=bc1qpa2thp8zwhq3cnrlszcf0aqznrn8y0nvs4z45e|
<j:{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"45631"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
<j:{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"70000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
EjC{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"94759.69666061"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
dnamelVinyl Coverskdescriptiony
Album covers are more than packaging. They are cultural landmarks that define eras, shape identities, and transform music into visual experience. From revolutionary design to rare and censored pressings, these artworks influenced fashion, art, and generations. This collection preserves 50 iconic covers as permanent digital artifacts on Bitcoin, ensuring their legacy lives immutably on-chain protected, preserved, and accessible for the future as a true archive of cultural memoryfart
JistlVinyl Coversfsociallvinyl_coversgwebsitex
https://www.vinylcovers.biz/
DjB0x1fb854b4b870989ad7fb4559457e66926fdeea0e28393160a375b8125f0fdc7d
DjB0x3c7df0182e9407f152dcf65ec4e8cc9a28da6bf4d96d224eb17f99811aa7cfb2
DjB0x2eaca163e42965a599dec58c178980c77fc3e8c9ed44cd59e65b0de1a3ad4e68
DjB0x0129f315d1d002cf7b4960105358bbd7982b6e406a61ae418cebb7340a07b17d
DjB0xf7592c4548c0594540bc404c6d4a82a3a674c466355cb90556a24a1f9c87f011
GjElEdgeab567273679bb7b7bc504548519902bf000fbf35645383012fff676c5ea8925e
DjB0xf5e3690402371907abb7d4af44781a00aced562b136ffc84785668f5bbf6a29d3
DjB0x45796a17dd8ec60163f52c69fdc6f89e081b68842372e012a4e60a14812c97c53
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"50000000000"}h!
DjB0xbdd49ef023217aa02f3ca19f5e632013b9476b84d6fcc1186162f81d1a7a9240
DjB0xef3c1e0cfd0295fce27ccd00229d958b2ae75616bf5ab16b457cf3632fc62631
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"9997000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"31"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BCHA","amt":"100"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"4"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"20"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1500000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"11"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"50"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"1000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"104"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BCHA","amt":"200"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"/><title>Bovine Racing Club</title><style>html,body{background:#080906 url(/content/ffc4dfb9f7babbbd148793446a3d2ff0f7c0c2daa4d3d60ef876646235fe7a53i0) center/cover fixed no-repeat}</style> <link rel="preconnect" href="https://fonts.googleapis.com"/> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/> <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&dispM
lay=swap" rel="stylesheet"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' 'unsafe-eval' data: blob: ws: wss: https:;"/><link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'%3E%3Ctext y='20' font-size='20'%3E%F0%9F%92%80%3C/text%3E%3C/svg%3E" type="image/svg+xml"/><style>body{margin:0;overflow:hidden;background:#050506;font-family:"Cormorant M
Garamond",Palatino,"Times New Roman",serif;cursor:none;color:#efe6d6}#overlay,#p2p-lobby,#previewOverlay,#rulesOverlay{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'%3E%3Ctext y='20' font-size='20'%3E%F0%9F%92%80%3C/text%3E%3C/svg%3E") 16 16,auto}canvas{display:block;cursor:none;touch-action:none}#overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at 50% 28%,rgba(40,34,28,.28),transparent 52%),rgba(6,6M
,8,.72);color:#efe6d6;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;z-index:100;text-align:center;padding:28px 20px;overflow-y:auto;max-height:100vh;letter-spacing:.02em}#overlay h1{font-family:Cinzel,Palatino,serif;font-weight:600;font-size:clamp(1.7rem, 4.6vw, 2.7rem);margin:0;color:#f4ead8;letter-spacing:.18em;text-transform:uppercase;text-shadow:0 0 28px rgba(196,165,116,.22);line-height:1.15}#overlay p.subtitle{font-size:clamp(.92rem, 2.1vw, 1.12rem);margin:0 0 10px;colorM
:#c4a574;font-style:italic;letter-spacing:.08em;text-shadow:none}button{margin-top:6px;padding:9px 22px;font-family:Cinzel,Palatino,serif;font-size:.78rem;font-weight:600;background:0 0;color:#f0e6d4;border:1px solid rgba(196,165,116,.55);cursor:pointer;text-transform:uppercase;letter-spacing:.16em;border-radius:1px;min-width:220px}button:disabled{background:0 0;color:rgba(240,230,212,.35);border-color:rgba(196,165,116,.18);cursor:not-allowed;opacity:1}button:hover:not(:disabled){background:rgba(196,165,116,.12);boM
rder-color:#d4b896}#status{margin:8px 0 4px;font-size:.95rem;min-height:1.4em;color:rgba(239,230,214,.62);font-style:italic}#charIdInput{width:min(380px,82vw);padding:9px 12px;font-family:"Cormorant Garamond",Palatino,serif;font-size:1.05rem;background:rgba(12,12,14,.72);border:1px solid rgba(196,165,116,.35);color:#efe6d6;border-radius:1px;text-align:center;margin:6px 0 2px;letter-spacing:.04em}#charIdInput::placeholder{color:rgba(196,165,116,.45)}#movePad{position:absolute;left:10px;bottom:58px;width:132px;heightM
:132px;border-radius:16px;background:rgba(16,10,6,.3);border:1px solid rgba(201,162,39,.4);z-index:72;display:none;touch-action:none;pointer-events:auto}#movePad .pad-cross{position:absolute;inset:10px;border-radius:12px;background:linear-gradient(rgba(232,213,163,.28),rgba(232,213,163,.28)) center/10px 70% no-repeat,linear-gradient(rgba(232,213,163,.28),rgba(232,213,163,.28)) center/70% 10px no-repeat;pointer-events:none}#movePad .pad-knob{position:absolute;width:36px;height:36px;margin:-18px 0 0 -18px;left:50%;toM
p:50%;border-radius:50%;background:rgba(30,232,255,.35);border:1px solid rgba(30,232,255,.7);pointer-events:none}#throttleIndicator{display:none!important}#throttleFill{position:absolute;bottom:4px;left:4px;width:calc(100% - 8px);background:linear-gradient(to top,#6b2b1f,#d4af37);border-radius:9999px;height:0%;box-shadow:0 0 12px #0ff}#previewOverlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.22);color:#e8d5a3;display:none;align-items:center;justify-content:center;flex-direction:coM
lumn;z-index:100;padding:clamp(20px,5vw,40px);box-sizing:border-box}#previewOverlay p{font-size:clamp(1.35rem, 3.8vw, 1.7rem);margin-bottom:auto;text-shadow:0 0 14px #7a4a1a}#previewButtons{display:flex;gap:clamp(15px,4vw,30px);margin-top:auto;width:100%;justify-content:center}#previewButtons button{background:0 0!important;border:3px solid #c9a227;color:#d4af37;text-shadow:0 0 12px #7a4a1a;box-shadow:0 0 22px rgba(196,162,106,.55);padding:clamp(12px,3vw,18px) clamp(30px,6vw,45px);font-size:clamp(1.2rem, 3.5vw, 1.6M
rem)}#p2p-lobby{position:fixed;inset:0;display:none;justify-content:center;align-items:center;z-index:2000;background:rgba(0,0,0,.95)}.lobby-box{background:rgba(10,10,12,.94);border:1px solid rgba(196,165,116,.38);box-shadow:0 24px 80px rgba(0,0,0,.55);padding:32px 36px;max-width:480px;width:92%;max-height:92vh;overflow-y:auto;border-radius:2px}.lobby-title{text-align:center;font-family:Cinzel,Palatino,serif;font-size:22px;font-weight:600;color:#f4ead8;letter-spacing:.2em;text-shadow:none;margin-bottom:6px}.lobby-sM
ub{text-align:center;color:#c4a574;font-size:11px;letter-spacing:.22em;margin-bottom:22px;text-transform:uppercase}.lobby-label{font-family:Cinzel,Palatino,serif;font-size:10px;color:#c4a574;margin-bottom:6px;display:block;letter-spacing:.16em;text-transform:uppercase}.lobby-field{width:100%;background:rgba(36,22,12,.9);border:1px solid #8a6a3b;color:#e8d5a3;font-family:monospace;font-size:13px;padding:9px 11px;outline:0;margin-bottom:10px;border-radius:4px}textarea.lobby-field{resize:vertical;min-height:55px}.lobbM
y-btn{width:100%;padding:10px 14px;background:0 0;border:1px solid rgba(196,165,116,.5);color:#f0e6d4;font-family:Cinzel,Palatino,serif;font-size:11px;font-weight:600;letter-spacing:.16em;cursor:pointer;text-transform:uppercase;margin-bottom:8px;border-radius:1px;min-width:0}.lobby-btn:hover:not(:disabled){background:rgba(196,165,116,.12)}.lobby-btn:hover{background:rgba(138,58,36,.45);box-shadow:0 0 18px #8a3a24}.lobby-btn.green{border-color:#c9a227;color:#c4a36a;background:rgba(138,58,36,.28)}.lobby-btn.small{padM
ding:8px;font-size:11px}.lobby-or{text-align:center;color:#666;font-size:11px;letter-spacing:4px;margin:12px 0}.code-out{background:#1c120c;border:1px solid #8a6a3b;padding:10px;margin:8px 0;font-size:11px;color:#e8d5a3;word-break:break-all;max-height:80px;overflow-y:auto;cursor:pointer;font-family:monospace;border-radius:4px;display:block}#liveGamesContainer{margin-top:12px;border-top:1px solid #8a6a3b;padding-top:12px}#liveGamesList{max-height:240px;overflow-y:auto}.live-game-item{background:rgba(107,43,31,.35);bM
order:1px solid #8a6a3b;margin:6px 0;padding:10px;border-radius:4px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:#0f0!important}.live-game-item.stale{background:rgba(255,60,60,.12);border:1px solid #f66}.live-game-item.stale strong{color:#f55!important}.live-game-item.stale small{color:#faa!important}.live-game-item>div{color:#e8d5a3}.live-game-item strong{color:#e8d5a3}.live-game-item small{color:#d4af37}.live-game-item:hover{background:rgba(138,58,36,.4)}#lobby-status{text-alM
ign:center;font-size:1.25rem;padding:10px;color:#d4af37;min-height:1.6em;font-weight:700}#hud{position:absolute;top:16px;left:16px;color:#0a0;font-size:clamp(.55rem, 1.25vw, .65rem);text-shadow:0 0 6px #040;pointer-events:none;z-index:50;opacity:.9}#customCursor{position:absolute;width:20px;height:20px;background:radial-gradient(circle,#d4af37 30%,transparent 70%);border:2px solid #c9a227;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);z-index:200;opacity:.9;mix-blend-mode:difference;display:noM
ne}#pauseHint{position:absolute;top:18px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.85);color:#d4af37;padding:8px 16px;border:2px solid #c9a227;border-radius:8px;font-size:clamp(.75rem, 2vw, .95rem);display:none;z-index:300;text-align:center;max-width:90vw;pointer-events:none}#chat-container,#chatModeHint,#cpIndicator,#flagCarryHint,#freezeCharge,#scoreboard{display:none!important}#chat-container{position:fixed;bottom:155px;left:20px;width:clamp(280px,38vw,340px);z-index:150;display:none}#chat-messaM
ges{max-height:240px;overflow-y:auto;background:rgba(0,0,0,.75);padding:8px;border:1px solid #8a6a3b;border-radius:4px}.chat-msg{color:#ddd;font-size:13px;padding:2px 0;word-break:break-word}#chat-input{width:100%;padding:8px;background:rgba(0,0,0,.85);border:1px solid #8a6a3b;color:#e8d5a3;font-family:monospace;font-size:13px;margin-top:6px;border-radius:4px;outline:0}#chat-input:focus{border-color:#d4af37;box-shadow:0 0 8px #8a5a2a}#chatModeHint{position:absolute;bottom:355px;left:20px;background:rgba(255,0,0,.85M
);color:#fff;padding:8px 16px;border-radius:4px;font-size:13px;display:none;z-index:160;pointer-events:none}#freezeCharge{position:absolute;bottom:25px;right:25px;width:220px;z-index:60;pointer-events:none}#freezeCharge .label{color:#d4af37;font-size:clamp(.7rem, 1.5vw, .85rem);text-shadow:0 0 8px #7a4a1a;margin-bottom:3px}#freezeCharge .bar-outer{height:6px;background:#111;border:2px solid #c9a227;border-radius:4px;overflow:hidden}#freezeCharge .bar-inner{height:100%;width:0%;background:linear-gradient(90deg,#0ff,M
#88f);transition:width .1s linear}#freezeCharge.lava-ready .label{color:#f80;text-shadow:0 0 8px #f80}#freezeCharge.lava-ready .bar-outer{border-color:#f80}#freezeCharge.lava-ready .bar-inner{background:linear-gradient(90deg,#f40,#fa0)}#flagCarryHint{position:absolute;top:14px;left:50%;transform:translateX(-50%);color:#fff;font-size:clamp(.76rem, 1.75vw, .96rem);font-weight:700;text-shadow:0 1px 2px #000;opacity:.85;pointer-events:none;z-index:110;display:none;font-family:monospace;letter-spacing:.04em;background:rM
gba(0,0,0,.55);padding:4px 14px;border-radius:6px}#ctfHud{position:absolute;top:2px;left:50%;transform:translateX(-50%);z-index:400;text-align:center;pointer-events:none;font-family:monospace;background:rgba(0,0,0,.55);padding:4px 16px 6px;border-radius:8px;border:1px solid rgba(0,255,255,.2)}#ctfScoreLine{color:#fff;font-size:clamp(.7rem, 1.5vw, .8rem);text-shadow:0 1px 2px #000;margin-bottom:2px}#ctfTeamLine{color:#d4af37;font-size:clamp(.6rem, 1.2vw, .7rem);text-shadow:0 1px 2px #000}#cpIndicator{position:absoluM
te;bottom:80px;right:25px;color:#d4af37;font-size:clamp(.85rem, 2vw, 1rem);text-shadow:0 0 10px #7a4a1a;background:rgba(0,0,0,.6);padding:4px 10px;border-radius:6px;display:none;z-index:65;pointer-events:none;white-space:nowrap}#scoreboard{position:absolute;bottom:25px;left:20px;width:clamp(280px,38vw,340px);z-index:55;background:rgba(0,0,0,.75);border:1px solid #8a6a3b;border-radius:4px;padding:8px;display:none}#scoreboard .title{color:#d4af37;font-size:13px;margin-bottom:6px;text-align:center}#scoreList{color:#ddM
d;font-size:13px;line-height:1.4}#rulesOverlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.92);color:#e8d5a3;display:none;align-items:center;justify-content:center;flex-direction:column;z-index:400;padding:clamp(20px,5vw,40px);overflow-y:auto;text-align:center;box-sizing:border-box}#rulesOverlay h2{font-size:clamp(1.8rem, 5vw, 2.8rem);margin:0 0 20px 0;text-shadow:0 0 16px #7a4a1a;color:#d4af37}#rulesOverlay ul{list-style:none;padding:0;max-width:820px;text-align:left;margin:0 auto M
24px;font-size:clamp(.95rem, 2.4vw, 1.15rem)}#rulesOverlay li{margin:8px 0}#rulesOverlay p{max-width:820px;margin:0 auto 18px;text-align:left;font-size:clamp(.95rem, 2.4vw, 1.15rem);line-height:1.45}#rulesOverlay .close-btn{background:#8a3a24;color:#f3e6c4;margin-top:20px}#pauseRulesBtn{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);background:rgba(107,43,31,.45);border:3px solid #c9a227;color:#d4af37;padding:clamp(8px,2.5vw,14px) clamp(20px,5vw,32px);font-size:clamp(1.1rem, 3vw, 1.4rem);font-weiM
ght:700;text-transform:uppercase;border-radius:12px;box-shadow:0 0 22px #8a5a2a;cursor:pointer;z-index:350;display:none}#pauseRulesBtn:hover{background:rgba(138,58,36,.5)}#lavaPowerHint{position:absolute;top:80px;left:50%;transform:translateX(-50%);background:rgba(255,80,0,.9);color:#fff;padding:8px 24px;border:3px solid #ff0;border-radius:9999px;font-size:1.1rem;font-weight:700;display:none;z-index:120;text-shadow:0 0 12px #ff0;box-shadow:0 0 25px #f80}#cameraCycleBtn,#pauseBtn{position:absolute;right:16px;backgroM
und:rgba(107,43,31,.55);border:3px solid #c9a227;color:#d4af37;font-size:1.35rem;font-weight:700;width:48px;height:48px;border-radius:50%;display:none;align-items:center;justify-content:center;z-index:5000;box-shadow:0 0 18px #8a5a2a;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}#jumpBtn{display:none;position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:rgba(16,10,6,.3);border:1px solid rgba(201,1M
62,39,.4);color:#e8d5a3;font-size:.8rem;font-weight:700;width:168px;height:38px;border-radius:14px;display:none;align-items:center;justify-content:center;z-index:72;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none}#jumpBtn:active{background:rgba(16,10,6,.5);color:#f3e6c4}#cameraCycleBtn{display:none;top:18px}#pauseBtn{display:none;top:78px}#micBtn{position:absolute;bottom:55px;right:61px;z-index:70;width:28px;height:28px;padding:0;font-size:.55remM
;line-height:1;font-weight:700;font-family:monospace;background:#04181c;border:1px solid #1ee8ff;color:#1ee8ff;border-radius:6px;cursor:pointer;pointer-events:auto;touch-action:manipulation;display:none}#micBtn.on{background:#1ee8ff;color:#04181c;border-color:#f5ff7a}#cameraCycleBtn:active,#pauseBtn:active{background:#6b2b1f;color:#f3e6c4}#clubMixer{position:fixed;right:16px;bottom:18px;z-index:440;width:168px;padding:10px 12px 12px;background:rgba(10,10,12,.82);border:1px solid rgba(196,165,116,.35);border-radius:M
2px;color:#efe6d6;font-family:Cinzel,Palatino,serif;pointer-events:auto;display:none}#clubMixer .mix-title{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#c4a574;margin-bottom:8px}#clubMixer label{display:block;font-size:10px;letter-spacing:.08em;margin:6px 0 0;color:#efe6d6}#clubMixer input[type=range]{width:100%;margin-top:4px;accent-color:#c4a574;cursor:pointer}#clubDockToggle{position:absolute;top:12px;left:12px;z-index:430;width:28px;height:28px;padding:0;border-radius:8px;border:1px solid M
rgba(255,255,255,.12);background:rgba(18,18,20,.92);color:#eee;font-size:14px;line-height:26px;text-align:center;cursor:pointer;display:none}#clubDock.collapsed{width:28px;height:28px;padding:0;overflow:hidden;border-radius:8px}#clubDock.collapsed #clubDockBody,#clubDock.collapsed .panel{display:none!important}#clubDock{position:absolute;top:12px;left:12px;width:236px;max-height:calc(100vh - 24px);overflow-y:auto;padding-top:36px;z-index:420;display:none;pointer-events:auto;font-family:ui-sans-serif,system-ui,-applM
e-system,sans-serif;background:rgba(18,18,20,.92);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:10px 10px 12px;box-shadow:0 8px 28px rgba(0,0,0,.35);backdrop-filter:blur(14px);color:#e8e6e3}#clubDock .panel{background:0 0;border:none;box-shadow:none;border-radius:0;padding:8px 2px 10px;margin:0 0 4px;border-bottom:1px solid rgba(255,255,255,.06);color:#e8e6e3}#clubDock .panel:last-child{border-bottom:none;margin-bottom:0}#clubDock h3{margin:0 0 6px;font-size:10px;font-weight:600;letter-spacing:.M
08em;text-transform:uppercase;color:rgba(255,255,255,.42)}#clubRoleLine{font-size:11px;color:rgba(255,255,255,.55);margin-bottom:6px}#clubDock button{width:100%;margin:3px 0 0;padding:5px 8px;font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);color:#f2f1ee;box-shadow:none}#clubDock button:hover:not(:disabled){background:rgba(255,255,255,.11)}#clubDock button:disabled{opacity:.45;background:rgba(255,255,255,.04M
)}#clubPlayerList{font-size:11px}.club-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.05)}.club-row:last-child{border-bottom:none}.club-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:118px;font-size:11px}.club-tag{font-size:9px;letter-spacing:.04em;padding:1px 6px;border-radius:99px;border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.55)}.club-tag.host{color:#e6c36a;border-color:rgba(230,195,106,.M
35)}.club-tag.speak{color:#7bcfa0;border-color:rgba(123,207,160,.35)}.club-tag.wait{color:#8bb4e8;border-color:rgba(139,180,232,.35)}#clubDock button{min-width:0;width:100%;margin-top:4px;padding:6px 8px;font-size:10px;letter-spacing:.1em}#clubDock .club-actions button{width:auto;display:inline-block;margin:0 0 0 4px;padding:3px 8px;font-size:10px;min-width:0;pointer-events:auto;cursor:pointer}#clubMicBtn,#clubMuteBtn,#clubRoomMuteBtn,#clubScreenBtn,#clubSpeakBtn,#clubWalkBtn{width:100%;margin-top:4px}#clubMicHint{M
font-size:10px;color:rgba(255,255,255,.38);margin-top:6px}#screenUrlInput{width:100%;box-sizing:border-box;margin:4px 0;padding:6px 8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:#eee;border-radius:8px;font-family:inherit;font-size:11px}#stageScreenFrame{position:fixed;left:0;top:0;width:1280px;height:720px;transform-origin:0 0;pointer-events:none;z-index:1;overflow:hidden;border:2px solid rgba(201,162,39,.55);border-radius:4px;background:#07060a;display:none}#stageScreenFrame.inteM
ract{pointer-events:auto;z-index:3}#stageScreenFrame iframe,#stageScreenFrame img{width:100%;height:100%;border:0;background:#000;pointer-events:inherit}canvas{position:fixed!important;inset:0;z-index:2!important;touch-action:none;background:0 0!important}</style> <script type="importmap">{
"three": "/content/0d013bb60fc5bf5a6c77da7371b07dc162ebc7d7f3af0ff3bd00ae5f0c546445i0",
"three/addons/loaders/GLTFLoader.js": "/content/af27eb654e3f1ce4036fd5b415fe441202f0c784e3e1e03cb63890b5e820297ci0",
ons/loaders/DRACOLoader.js": "/content/701931ffd87e9a547834542357cbf5d975b740073aec9eeb62ef96254f570520i0"
}</script> </head><body><div id="bovineBoot" style="position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#080906 url(/content/ffc4dfb9f7babbbd148793446a3d2ff0f7c0c2daa4d3d60ef876646235fe7a53i0) center/cover no-repeat;color:#f3ead6;font-family:Palatino,Georgia,serif;letter-spacing:.18em;text-align:center;text-shadow:0 2px 12px #000"><b stM
yle="color:#d4b46a;font-size:24px">BOVINE RACING CLUB</b><div style="margin-top:12px;font-size:14px">RESOLVING VENUE
</div><small style="opacity:.55;margin-top:16px">0rdinals.com
 sat /at/-1</small></div>
  var GAME_SAT="2005686177378564";
  var boot=document.getElementById("bovineBoot");
  function hide(){ if(boot) boot.remove(); }
  function selfId(){
      var m=/\/content\/([0-9a-f]{64}i\d+)/i.exec(location.pathname)||/\/content\/([0-9a-f]{64}i\d+)/i.exec(location.href);
 return m&&m[1]||"";
    }catch(e){return ""}
      var hash=(location.hash||"").replace(/^#/,"");
      var qs=new URLSearchParams((location.search||"").replace(/^\?/,"")+"&"+hash);
      var room=(qs.get("room")||"").toUpperCase();
      if(/^[A-Z0-9]{4,8}$/.test(room)) parts.push("room="+room);
      var wallet=qs.get("wallet")||qs.get("inscriptionId")||"";
      if(/^[0-9a-f]{64}i\d+$/i.test(wallet)) parts.push("wallet="+wallet);
      var wrap=qs.get("wrapperIdM
      if(wrap) parts.push("wrapperId="+wrap);
  function fetchSat(base){
    return fetch(base+"/r/sat/"+GAME_SAT+"/at/-1",{cache:"no-store"}).then(function(r){
      if(!r.ok) throw new Error("HTTP "+r.status);
      return r.json();
    }).then(function(j){
      if(j&&j.id&&/^[0-9a-f]{64}i\d+$/i.test(j.id)) return j.id;
      throw new Error("bad id");
  function resolve(){
    return fetchSat("").catch(function(){return fetchSat("https://0rdinals.com")})
   .catch(function(){return fetchSat("https://ordinals.com")})
      .catch(function(){return fetchSat("https://ord.io")});
  var here=selfId();
  var host=(location.hostname||"").replace(/^www\./,"");
  var clean=host==="0rdinals.com";
  if(/PASTE_/.test(GAME_SAT)||!/\/content\//.test(location.pathname+location.href)){
  function sniff(base,id){
    return fetch(base+"/content/"+id,{method:"GET",cache:"no-store",headers:{Range:"bytes=0-64"}}).then(function(r){
      var ct=(r.headerM
s.get("content-type")||"").toLowerCase();
      return {id:id, html:/text\/html|application\/xhtml/.test(ct)};
  resolve().then(function(id){
    return sniff("",id).catch(function(){return sniff("https://0rdinals.com",id);});
  }).then(function(info){
    if(!info||!info.html){
    var framed=false;
    try{ framed=window.top!==window.self; }catch(e){ framed=true; }
    var destHash=pass();
    destHash.unshift("sat="+GAME_SAT);
    var dest="https:M
//0rdinals.com/content/"+id+(destHash.length?"#"+destHash.join("&"):"");
      try{ window.top.location.replace(dest); return; }catch(e){}
    if(clean && here && here.toLowerCase()===id.toLowerCase()){
    location.replace(dest);
  }).catch(function(){ hide(); });
window.__BIPTHIS_ID=window.__BIPTHIS_ID||(function(){try{var q=new URLSearchParams((location.hash||'').replace(/^#/,''));return q.get('wallet')||'';}catch(e){return '';}})();
"customCursor"></div><div id="clubDock"><button id="clubDockToggle" type="button" title="Hide menu">
</button><div id="clubDockBody"><div class="panel"><h3>AUDITORIUM</h3><div id="clubRoleLine">Role: member
 floor is open</div><button id="clubWalkBtn" type="button">Walk (back to avatar)</button>
<button id="bovineInsideBtn" type="button">To the dome</button>
<button id="bovineRailBtn" type="button">To the outer rail</button><button id="clubSpeakBtn">Open my mic</button><button id="clubMicBtn" type="button">EnabM
le microphone</button><button id="clubMuteBtn" type="button" style="display:none">Mute my mic</button><button id="clubRoomMuteBtn" type="button" style="display:none">Mute room</button><div id="clubMicHint" style="font-size:10px;color:#d4af37;margin-top:6px;opacity:.85">Mic only turns on from these buttons (needed inside iframes)</div></div><div class="panel" id="clubPeoplePanel"><h3>IN THE ROOM</h3><div id="clubPlayerList">
</div></div><div class="panel" id="clubScreenPanel" style="display:none"><h3>STAGE SCREEN<M
/h3><input id="screenUrlInput" placeholder="card cycles the field" readonly/><button id="clubScreenBtn" style="display:none">Show on stage</button><button id="clubUnmuteBtn" type="button">Unmute video</button><button id="bovinePostBtn" type="button">POST
 lock the heat</button><button id="clubShareStopBtn" type="button" style="display:none">Stop share</button><div style="font-size:10px;color:#d4af37;margin-top:6px;opacity:.8">Host only
 many sites block embeds</div></div></div></div><div id="clubMixer" aria-labM
el="Audio mix"> <div class="mix-title">Mix</div> <label>Voices <input id="mixVoice" type="range" min="0" max="200" value="140"/></label> <label>Track <input id="mixJumbo" type="range" min="0" max="100" value="28"/></label> </div> <div id="stageScreenFrame"><audio id="stageShareAudio" autoplay playsinline></audio><video id="stageShareVideo" autoplay playsinline muted style="display:none"></video><iframe id="stageIframe" allow="autoplay; encrypted-media; picture-in-picture; fullscreen; accelerometer; gyroscope" allowM
fullscreen referrerpolicy="strict-origin-when-cross-origin"></iframe></div><div id="throttleIndicator"><div id="throttleFill"></div></div><div id="movePad" aria-hidden="true"><div class="pad-cross"></div><div class="pad-knob" id="movePadKnob"></div></div><button id="jumpBtn">JUMP</button><button id="cameraCycleBtn">C</button><button id="pauseBtn">P</button><button id="micBtn" title="Voice chat" style="display:none!important">MIC</button><div id="overlay"><h1>Bovine Racing Club</h1><p class="subtitle">Trackside saloM
 watch the rail or the jumbotron</p><div id="status">Loading core assets...</div><input id="charIdInput" type="text" placeholder="Your skull inscription"/><button id="enterCustomBtn">Present skull</button><select id="mapSelect" style="display:none"><option value="club-hall" selected="selected">Club</option></select><button id="rulesBtn">House rules</button><button id="startBtn" disabled="disabled">Enter the club</button><button id="multiBtn">Paddock lounge</button></div><div id="p2p-lobby"><div class="lobby-boxM
"><div class="lobby-title">BOVINE RACING CLUB</div><div class="lobby-sub">PADDOCK LOUNGE</div><label class="lobby-label">Your Name</label><input id="lobbyNameInput" class="lobby-field" placeholder="Your rail name" maxlength="20" value="Guest"/><div id="liveGamesContainer"><div class="lobby-label" style="margin-top:4px">Open rooms</div><div id="liveGamesList"><div style="color:#0af;padding:8px;text-align:center;font-size:.85rem"> Looking for rooms
 </div></div><button class="lobby-btn small green" id="refreshLiveBM
tn" style="margin-top:8px"> REFRESH </button></div><button class="lobby-btn" id="lobbyHostBtn" style="margin-top:14px"> Host a race </button><div id="lobbyOfferCode" class="code-out" style="display:none"></div><button id="lobbyCopyOffer" style="display:none"></button><button id="searchLiveGamesBtn" style="display:none"></button><button id="newInviteBtn" style="display:none"></button><button id="manualPublishBtn" style="display:none"></button><div id="extraOffers" style="display:none"></div><textarea id="lobbyAnswerM
Input" style="display:none"></textarea><button id="lobbyAcceptBtn" style="display:none"></button><textarea id="lobbyPeerCode" style="display:none"></textarea><button id="lobbyJoinBtn" style="display:none"></button><div id="lobbyAnswerCode" class="code-out" style="display:none"></div><button id="lobbyCopyAnswer" style="display:none"></button><div id="lobbyHostControls" style="display:none"><div class="lobby-label" style="margin-top:8px">Connected players</div><div id="hostPlayerList" style="background:rgba(36,22,12,M
.7);border:1px solid #8a6a3b;border-radius:6px;padding:8px;font-size:.85rem;color:#e8d5a3;max-height:120px;overflow-y:auto;margin-bottom:8px">
 </div><button class="lobby-btn start-btn" id="lobbyStartBtn"> Enter the rail </button><div style="color:#0af;font-size:.8rem;margin-top:8px;text-align:center"> Live listing updates automatically
 late joiners can still find this race </div></div><button class="lobby-btn green" id="lobbyReturnToGameBtn" style="display:none;margin-top:10px"> RETURN TO THE RAIL </button><M
div id="lobby-status">Enter a name
 Host a race or join one below</div></div></div><div id="previewOverlay"><p>CUSTOM CHARACTER LOADED SUCCESSFULLY</p><div id="previewButtons"><button id="startSingleFromPreview">Enter the club</button><button id="goToMultiFromPreview">GO TO THE PADDOCK</button></div></div><div id="rulesOverlay"><h2>HOUSE RULES</h2><ul><li>MOUSE LEFT / RIGHT
 WALK FORWARD &nbsp;|&nbsp; SHIFT+W
 BACK UP</li><li>A / D
 SIDESTEP</li><li>SPACE
 TOSS A FREEZE BALL (playful)</li><li>C
 CAMERA &nbsp;|&nbsp; P
 PAUSE / ORBIT</li><li>MIC
 allow the browser prompt
 floor is open</li><li>L
 LOBBY WHILE PAUSED &nbsp;|&nbsp; ESC
 CHAT / RELEASE POINTER</li><li>MOBILE: pad to walk, J jump, drag right to turn</li></ul><p><strong>BOVINE RACING CLUB:</strong> A virtual auditorium. Walk the floor, gather at the stage, request the mic like an X Space. Everyone may speak after allowing their mic. Voices slider stays in Mix. Host stilM
l drives the stage screen.</p><button class="close-btn" id="closeRules">BACK TO MENU / GAME</button></div><button id="pauseRulesBtn">House rules</button><div id="hud"> CAM: <span id="camMode">CHASE</span>
 IN ROOM: <span id="playerCount">1</span></div><div id="pauseHint"> Paused
 <strong>L</strong> members lounge
 <strong>P</strong> return </div><div id="chatModeHint"> MENU
 ESC or Walk to return to your avatar </div><div id="chat-container"><div id="chat-messages"></div><input id="chat-input" type="text"M
 placeholder="Type message and press ENTER to send..." maxlength="200"/></div><div id="freezeCharge"><div class="label" id="chargeLabel">FREEZE CHARGE</div><div class="bar-outer"><div id="chargeBar" class="bar-inner"></div></div></div> <script src="/r/sat/957337645267059/at/-1/content"></script> <script type="text/placeholder-removed"></script> <div id="cpIndicator" style="display:none"></div> <div id="scoreboard" style="display:none"><div id="scoreList"></div></div> <div id="flagCarryHint" style="display:none"></dM
iv> <div id="lavaPowerHint" style="display:none"></div> <div id="ctfHud" style="display:none"><div id="ctfScoreLine"></div><div id="ctfTeamLine"></div></div> <canvas id="ctfRadar" width="120" height="120" style="display:none"></canvas> <button id="teamToggleBtn" type="button" style="display:none"></button> <script type="module">import*as THREE from"three";import{GLTFLoader}from"three/addons/loaders/GLTFLoader.js";import{DRACOLoader}from"three/addons/loaders/DRACOLoader.js";window.THREE=THREE;window.GLTFLoader=GLTFLM
oader;window.DRACOLoader=DRACOLoader;const DRACO_WRAPPER_ID="1c59d4d184bfaadf33e641456d540dba14edc8d383d84634a418d75f149e1683i1",DRACO_WASM_ID="1c59d4d184bfaadf33e641456d540dba14edc8d383d84634a418d75f149e1683i2";let _gltfLoader=null;async function makeGltfLoader(){window.makeGltfLoader=makeGltfLoader;if(_gltfLoader)return _gltfLoader;const e=new GLTFLoader;try{const t=new DRACOLoader;t._initDecoder=function(){if(this.decoderPending)return this.decoderPending;const e=this;return this.decoderPending=Promise.all([fetcM
h("/content/"+DRACO_WRAPPER_ID).then(e=>e.text()),fetch("/content/"+DRACO_WASM_ID).then(e=>e.arrayBuffer())]).then(t=>{const a=new Function(t[0]+"\nreturn DracoDecoderModule;")();return new Promise((o,n)=>{const r=a({wasmBinary:t[1],onModuleLoaded:t=>{e._draco=t,o(t)}});r&&r.then&&r.then(t=>{e._draco||(e._draco=t,o(t))}).catch(n)})}),this.decoderPending},t.preload=function(){return this._initDecoder(),this};const a=t.decodeDracoFile.bind(t);t.decodeDracoFile=function(e,t,o,n,r,s){const l={};if(n)for(const e in n){cM
onst t=n[e];l[e]="function"==typeof t?t.name:t}return a(e,function(e){!e||e.attributes,t(e)},o,l,r,function(e){s&&s(e)})},e.setDRACOLoader(t)}catch(e){}return _gltfLoader=e,e}const NOSTR_RELAYS=["wss://nos.lol","wss://nostr.wine","wss://relay.damus.io","wss://relay.nostr.band","wss://nostr-pub.wellorder.net","wss://relay.primal.net","wss://nostr.orangepill.dev"],KENOBI_GAME_NAMESPACE="CSCSC",KENOBI_HEARTBEAT_INTERVAL=8e3,LIVE_GAME_MAX_AGE_SEC=120,LIVE_GAME_DROP_SEC=180,LIVE_SEARCH_SINCE_SEC=900;let nostrSecretKey=nM
ull,nostrPubkey=null;const liveGamesByRoom=new Map;let liveListRefreshTimer=null;function initNostrKeys(){if(nostrSecretKey)return!0;if(void 0===window.NostrSign)return!1;try{return nostrSecretKey=window.NostrSign.generateSecretKey(),nostrPubkey=window.NostrSign.getPublicKey(nostrSecretKey),!0}catch(e){return!1}}let nostrSockets=[],nostrRoomId=null,kenobiHeartbeatTimer=null,lastConnectTime=0,isHostWithKenobi=!1;function attachNostrHandlers(e,t){e.onmessage=e=>{try{const t=JSON.parse(e.data);if("EVENT"===t[0]&&t[2]&M
&30311===t[2].kind){if(t[2].tags.some(e=>"t"===e[0]&&"CSCSC"===e[1])){t[2].tags.find(e=>"answer"===e[0])?handleAnswerEvent(t[2]):handleLiveGameEvent(t[2])}}}catch(e){}},e.onerror=()=>e.onclose=()=>{nostrSockets=nostrSockets.filter(t=>t!==e&&t.readyState!==WebSocket.CLOSED)}}function subscribeLiveFilter(e,t){if(e.readyState!==WebSocket.OPEN)return;const a=Math.floor(Date.now()/1e3),o=(t?"search-":"live-")+Date.now()+"-"+Math.random().toString(36).slice(2,6),n={kinds:[30311],"#t":["CSCSC"],since:a-900};try{e.send(JSOM
N.stringify(["REQ",o,n]))}catch(e){}}function connectNostrRelays(e=!1,t=!1){const a=Date.now();if(!t&&a-lastConnectTime<(e?1200:2500))return void(e&&nostrSockets.forEach(e=>subscribeLiveFilter(e,!0)));lastConnectTime=a,nostrSockets=nostrSockets.filter(e=>e.readyState===WebSocket.OPEN||e.readyState===WebSocket.CONNECTING);const o=new Set(nostrSockets.map(e=>e._relayUrl).filter(Boolean));NOSTR_RELAYS.forEach(t=>{if(o.has(t)){const a=nostrSockets.find(e=>e._relayUrl===t);return void(a&&a.readyState===WebSocket.OPEN&&sM
ubscribeLiveFilter(a,e))}try{const a=new WebSocket(t);a._relayUrl=t,a.onopen=()=>{subscribeLiveFilter(a,e)},attachNostrHandlers(a,t),nostrSockets.push(a)}catch(e){}}),liveListRefreshTimer||(liveListRefreshTimer=setInterval(renderLiveGamesList,3e3))}function getMapDisplayName(e){const t=MAP_DEFS[e||currentMapId];return t&&t.name||e||"Grassy Dunes"}function publishKenobiHeartbeat(e,t){if(!nostrRoomId)return;0===nostrSockets.filter(e=>e.readyState===WebSocket.OPEN).length&&connectNostrRelays(!1,!0);const a=initNostrKeM
ys(),o=getMapDisplayName(currentMapId),n=null!=t?t:1+remotePlayers.size,r=(document.getElementById("lobbyNameInput")&&document.getElementById("lobbyNameInput").value.trim()||(myPlayerID||"Host").split("-")[0]||"Host").slice(0,20),s="Paddock",l=`Paddock
 ${n} Racers`,i={kind:30311,created_at:Math.floor(Date.now()/1e3),tags:[["d",nostrRoomId],["t","CSCSC"],["t",s],["title",l],["status","live"],["offer",e||""],["players",String(n)],["map","Paddock"],["host",r]],content:l};let c=i;if(a)try{c=window.NostrSign.M
finalizeEvent(i,nostrSecretKey)}catch(e){}let d=0;nostrSockets.forEach(e=>{if(e.readyState===WebSocket.OPEN)try{e.send(JSON.stringify(["EVENT",c])),d++}catch(e){}}),0===d&&connectNostrRelays(!1,!0)}function publishAnswerToNostr(e,t){0===nostrSockets.length&&connectNostrRelays(!0);const a=initNostrKeys(),o={kind:30311,created_at:Math.floor(Date.now()/1e3),tags:[["t","CSCSC"],["offer",e],["answer",t],["type","answer"]],content:"Answer for offer"};let n=o;if(a)try{n=window.NostrSign.finalizeEvent(o,nostrSecretKey)}catM
ch(e){}nostrSockets.forEach(e=>{e.readyState===WebSocket.OPEN&&e.send(JSON.stringify(["EVENT",n]))})}function startKenobiLobbyPing(e){kenobiHeartbeatTimer&&clearInterval(kenobiHeartbeatTimer),nostrRoomId="pod-"+Math.random().toString(36).substring(2,11),isHostWithKenobi=!0,connectNostrRelays(!1,!0);const t=()=>{publishKenobiHeartbeat(document.getElementById("lobbyOfferCode")&&document.getElementById("lobbyOfferCode").textContent||hostOfferCodes&&hostOfferCodes[0]||e,1+remotePlayers.size)};setTimeout(t,600),setTimeoM
ut(t,2e3),kenobiHeartbeatTimer=setInterval(t,8e3),window._kenobiVisBound||(window._kenobiVisBound=!0,document.addEventListener("visibilitychange",()=>{"visible"===document.visibilityState&&isHost&&isHostWithKenobi&&nostrRoomId&&t()}))}function handleLiveGameEvent(e){const t=e.tags.find(e=>"d"===e[0]),a=t?t[1]:null;if(a&&a===nostrRoomId)return;const o=e.tags.find(e=>"offer"===e[0]);if(!o||!o[1])return;const n=o[1],r=e.tags.find(e=>"title"===e[0]),s=e.tags.find(e=>"players"===e[0]),l=e.tags.find(e=>"map"===e[0]),i=e.M
tags.find(e=>"host"===e[0]),c=s&&parseInt(s[1],10)||1,d=l?getMapDisplayName(l[1]):"Map",u=i?i[1]:"",m=r?r[1]:`${d}${u?"
 ${c} Players`,p=a||n.substring(0,48),y=liveGamesByRoom.get(p);y&&e.created_at<y.createdAt||(liveGamesByRoom.set(p,{offer:n,title:m,players:c,mapName:d,createdAt:e.created_at,updatedAt:Date.now()}),renderLiveGamesList())}function renderLiveGamesList(){const e=document.getElementById("liveGamesList");if(!e)return;const t=Date.now()/1e3;for(const[e,a]of liveGamesByRoom)t-a.createdAt>180M
&&liveGamesByRoom.delete(e);const a=[];for(const[e,o]of liveGamesByRoom)t-o.createdAt<=120&&a.push({key:e,...o});a.sort((e,t)=>t.createdAt-e.createdAt),a.length?(e.innerHTML="",a.forEach(t=>{const a=document.createElement("div");a.className="live-game-item",a.dataset.offer=t.offer,a.dataset.room=t.key;const o=(t.title||`${t.mapName||"Paddock"}
 ${t.players} Racers`).replace(/^(CSCSC|CSC)\s*[
]\s*/i,"").replace(/^club\s*hall/i,"Paddock").replace(/\b(\d+)p\b/gi,"$1 Players");a.innerHTML=`<div><strong>${o}<M
/strong></div><button class="lobby-btn small green" style="width:auto;padding:4px 12px;font-size:10px;">JOIN</button>`,a.querySelector("button").onclick=e=>{e.stopImmediatePropagation();const a=document.getElementById("lobbyPeerCode");a&&(a.value=t.offer),document.getElementById("lobbyJoinBtn").click()},e.appendChild(a)})):e.innerHTML='<div style="color:#888;padding:10px;text-align:center;font-size:0.85rem;">No live races right now
 Host one!</div>'}const usedAnswerTokens=new Set;function handleAnswerEvent(e){ifM
(!isHost)return;const t=e.tags.find(e=>"offer"===e[0]),a=e.tags.find(e=>"answer"===e[0]);if(!t||!a)return;const o=t[1],n=a[1];if(!n||usedAnswerTokens.has(n))return;if(!hostOfferCodes.includes(o))return;pcList.some(e=>e&&"have-local-offer"===e.signalingState)&&(usedAnswerTokens.add(n),document.getElementById("lobbyAnswerInput").value=n,setTimeout(()=>{const e=document.getElementById("lobbyAcceptBtn");e&&e.click()},300))}function searchLiveGames(){const e=document.getElementById("liveGamesList");e&&(e.innerHTML='<divM
 style="color:#0af;padding:8px;text-align:center;font-size:0.85rem;">Scanning relays for live races
</div>'),connectNostrRelays(!0),setTimeout(renderLiveGamesList,2500)}const MINION_ID="a4ece09037d2e227554c6c6a7c0fe1b15d7ce94510adbe5eef575b852c351152i0";try{THREE.Cache&&(THREE.Cache.enabled=!1)}catch(e){}const SAMPLE_SKULL_ID="e40a2dd269eb0e878b658df30ac779085cee71ac0601a4c546b2d6aea802b7d2i0";let minionTemplate=null,minionMixer=null,minionActions={},minionRoot=null;const MINION_SCALE_MENU=4.5,MINION_SCALE=5.69;lM
et jumpRequested=!1,jumpHeld=!1,jumpStartY=0,jumpStartAt=0;const MAX_JUMP_HEIGHT=280,MAX_JUMP_HOLD_MS=1400;let currentAnim="";const FALLBACK_ID="53efe58237bf922eb0b2989af602e18092195562b47fff8174739da90cd3d9b7i0",BLOCK_TEXTURE_ID="c5ceb6b6cd1bcc564a9167bab9586691b254a0ea0155858dafbb0d1b9cd64a9di0",STAR_ID="893344c8a0205d190e8dc1f36f54530b2501ff821aa560e5cfbecf08288cdc40i0",LAVA_ID="d2bf68f7c49e947e24f856d9fb15c3b6deefc1268cac684dfe8fb91f10207ea0i0",POD_YAW_OFFSET=Math.PI,MAP_DEFS={"club-hall":{name:"Paddock",mode:"M
club",domeModelId:"e4f5f9ff44b15f7ee9f4af3949ed844bbd8d8754b94359241c9646d2dbe94b7di0",content:null,duneScale:.28,innerWall:!1,outerRadiusOverride:2700,groundTexId:"8afd4d71e03b661687dacd09e7b86da7d949b437a365a8fcf682eea74d615b39i0",wallTexId:"16d53cd3cba7e0853d7dc0ea3a3f9133a96cbfeedac95fc442926d12fb103f82i0",skyTexId:"b1a6b0a7dc61eeb4764607ab0505d571b4e42a6b31ca0e2d0c9bc8fe7014ac97i0"}};let scene,camera,renderer,cart,playerModel,skyDome,terrainMesh,currentMapId="club-hall",gameMode="club",lastBuiltMapId=null,loadM
edMapScripts=new Set,mapScriptPromises={},applyingHostMap=null,coreGrassTex=null,coreWallTex=null,coreSkyTex=null,activeGrassTex=null,activeWallTex=null,activeTrackTex=null,trackSurfaceMesh=null,wallMeshList=[],mapObstacleList=[],mapExtraColliders=[],solidBoxes=[],keys={},mouseXNormalized=0,mouseYNormalized=0,cameraMode="chase",gameStarted=!1,paused=!1,previewMode=!1,multiplayerMode=!1,pendingGuestStart=!1,inLobby=!0,controlsEnabled=!0,typingChat=!1;function fieldIsVisible(e){if(!e||!e.getBoundingClientRect)return!M
1;const t=window.getComputedStyle(e);if("none"===t.display||"hidden"===t.visibility||"0"===t.opacity)return!1;let a=e;for(;a&&a!==document.body;){const e=window.getComputedStyle(a);if("none"===e.display||"hidden"===e.visibility)return!1;a=a.parentElement}const o=e.getBoundingClientRect();return o.width>2&&o.height>2}function isTypingNow(){const e=document.activeElement;if(!e)return!!typingChat;const t=(e.tagName||"").toUpperCase();return"INPUT"===t||"TEXTAREA"===t||"SELECT"===t||e.isContentEditable?!!fieldIsVisibleM
(e)&&!(gameStarted&&!clubUiMode&&"screenUrlInput"!==e.id&&"chat-input"!==e.id):!!typingChat}function clearMoveKeys(){["w","a","s","d","arrowup","arrowdown","arrowleft","arrowright"," ","space","shift"].forEach(e=>{keys[e]=!1}),jumpHeld=!1,jumpRequested=!1}let menuShowcaseActive=!0,showcaseModel=null,car={pos:new THREE.Vector3(0,120,0),vel:new THREE.Vector3(0,0,0),rotation:0,pitch:0,onGround:!0};const PITCH_MAX=1.52,PITCH_RATE=1.85;let lastFwdVel=0,orbitAzimuth=0,orbitPolar=0,orbitRadius=30,orbitTarget=new THREE.VecM
tor3,isDragging=!1,lastMouseX=0,lastMouseY=0,colliders=[],projectiles=[],lastFireTime=0,window.projectiles=projectiles;const FIRE_COOLDOWN=2100;function getFireCooldown(){return"ctf"===gameMode?1050:2100}function updateChargeMeterUI(){const e=document.getElementById("freezeCharge"),t=document.getElementById("chargeLabel");e&&t&&(hasLavaPower?(e.classList.add("lava-ready"),t.textContent="Lava Ready"):(e.classList.remove("lava-ready"),t.textContent="FREEZE CHARGE"))}function updateFlagCarryHint(){const e=document.getM
ElementById("flagCarryHint");if(!e)return;let t=!1;t="ctf"===gameMode?CTF.redHolder===myPlayerID||CTF.blueHolder===myPlayerID:flagHolder===myPlayerID,e.style.display=t&&gameStarted?"block":"none"}let slowEndTime=0,consecutiveFreezeHits=0,scores=new Map;const PROJECTILE_SPEED=405,MAX_PROJECTILE_DIST=2550,PROJECTILE_GRAVITY=-84,FREEZE_DURATION=5e3;let flagCooldown=0,stealCooldown=0;const STEAL_COOLDOWN_MS=1500;let droppedFlagPos=null,flagHomePos=null;const TERRAIN_SIZE=5e3,TERRAIN_SEGMENTS=160,BASE_HEIGHT=0,DUNE_AMPLM
ITUDE=18,DUNE_FREQ_LARGE=.0099,DUNE_FREQ_MED=.0054,DUNE_FREQ_SMALL=.0098,JUMP_HUMPS=[{cx:-120,cz:-180,height:190,radius:160},{cx:140,cz:-60,height:44,radius:135},{cx:-10,cz:220,height:180,radius:280},{cx:80,cz:90,height:70,radius:145}],MAX_SPEED_BASE=180,MAX_SPEED_BOOST_MUL=1.25,COAST_DRAG=.78,ACCEL_DRAG=.993,ACCEL=36,TURBO_MUL=1.55,BRAKE_FORCE=25,REVERSE_FORCE=12.5,REVERSE_MAX=-38/3.6,TURN_RATE_BASE=1.7,TURN_MULT=1.35,BASE_LATERAL_GRIP=.42,MIN_LATERAL_GRIP=.18,GRIP_DROP_SPEED=180,GRIP_FULL_DROP=260,STEER_DEADZONE=M
.05,MOUSE_SMOOTH=.2,AUTO_COUNTER=.18,GRAVITY=-250,GROUND_RESTITUTION=.5,LATERAL_VEL_THRESHOLD=2/3.6,FWD_VEL_BRAKE_THRESHOLD=2/3.6,OUTER_RADIUS=6900,INNER_RADIUS=6650,MEANDER_AMP=170,MEANDER_WAVES=10,GAP_ANGLES_DEFAULT=[{center:.25*Math.PI,width:.048*Math.PI},{center:.75*Math.PI,width:.048*Math.PI},{center:1.25*Math.PI,width:.048*Math.PI},{center:1.75*Math.PI,width:.048*Math.PI}],GAP_ANGLES_SNAKE=[{center:.25*Math.PI,width:.024*Math.PI},{center:.5*Math.PI,width:.024*Math.PI},{center:.75*Math.PI,width:.024*Math.PI},{M
center:1.25*Math.PI,width:.024*Math.PI},{center:1.5*Math.PI,width:.024*Math.PI},{center:1.75*Math.PI,width:.024*Math.PI}];function getGapAngles(){const e=MAP_DEFS[currentMapId];return e&&(e.trackAspect||1)>1.2?GAP_ANGLES_SNAKE:GAP_ANGLES_DEFAULT}function getTrackParams(){const e=MAP_DEFS[currentMapId]||MAP_DEFS["club-hall"],t=e.trackAspect>0?e.trackAspect:1,a=null!=e.meanderLong?e.meanderLong:170,o=null!=e.meanderShort?e.meanderShort:170,n=null!=e.meanderWaves?e.meanderWaves:10,r=e.trackWidthScale>0?e.trackWidthScaM
le:1,s=e.outerRadiusOverride>0?e.outerRadiusOverride:6900,l=250*r,i=!!e.chaosArena||!1===e.innerWall;return{aspect:t,openArena:i,outerRx:s,outerRz:s*t,innerRx:i?1:s-l,innerRz:i?1:(s-l)*t,meanderLong:a,meanderShort:o,waves:n,terrainSize:i?2*s:Math.max(5e3,s*t*2.35),floorHalf:i?s:null}}function getWallPoint(e,t){const a=getTrackParams(),o=t?a.innerRx:a.outerRx,n=t?a.innerRz:a.outerRz;let r,s;if(a.aspect>1.15){const t=Math.pow(Math.abs(Math.sin(e)),2);r=a.meanderShort+(a.meanderLong-a.meanderShort)*t,s=1}else r=170,s=M
1;const l=r*Math.sin(a.waves*s*e),i=o*Math.sin(e),c=n*Math.cos(e),d=Math.hypot(i,c)||1;return{x:i+i/d*l,z:c+c/d*l,theta:e}}function isOnTrackXZ(e,t){const a=getTrackParams();if((MAP_DEFS[currentMapId]||{}).chaosArena||a.floorHalf){const o=(a.floorHalf||a.outerRx)+40;return Math.abs(e)<=o&&Math.abs(t)<=o}const o=.55*Math.max(a.meanderLong,170)+80,n=e*e/Math.pow(a.outerRx+o,2)+t*t/Math.pow(a.outerRz+o,2)<=1;if(a.openArena)return n;const r=Math.max(40,.35*o),s=e*e/Math.pow(Math.max(80,a.innerRx-r),2)+t*t/Math.pow(MathM
.max(80,a.innerRz-r),2)<=1;return n&&!s}const SHRINK_ENDS_BY=.5,COL_SEGMENT_LEN=3,EXTRA_MARGIN=.1,RESTITUTION=.35,WALL_FRICTION=.98,POS_CORRECTION=.8,MAX_COLLISION_ITER=4,DISCONNECT_TIMEOUT_MS=22e3,DISCONNECT_HOST_GRACE_MS=4e4;let netKeepaliveTimer=null,peerPingTimer=null;const CHECKPOINT_ANGLES=[0,Math.PI/2,Math.PI,3*Math.PI/2];let flagPoleMesh,flagMesh,heldFlagMesh,checkpointStars=[],myCompletedCheckpoints=new Set,myLaps=0,playerLaps=new Map,flagHolder=null,myTeam=null,teamScores={red:0,blue:0};const CTF={redHoldM
er:null,blueHolder:null,redDrop:null,blueDrop:null,redHome:null,blueHome:null,redPole:null,bluePole:null,redFlagMesh:null,blueFlagMesh:null,heldRedMesh:null,heldBlueMesh:null};let starGLTF,lavaGLTF,lavaPatches=[],myLapStartTime=0,myLapPausedTime=0,myLapIsPaused=!1,playerLapTimes=new Map,dustParticles=[],hasLavaPower=!1,touchThrottle=0,padKeys={w:0,a:0,s:0,d:0},padRamp=0,padTouchId=null,ignoreMouseSteerUntil=0,coarsePointer=!1;function isPhoneUI(){const e=navigator.userAgent||"";return!!/Mobi|Android|iPhone|iPod|webM
OS|BlackBerry/i.test(e)||!!(/iPad/i.test(e)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1)}let touchSteer=0,throttleTouchId=null,steerTouchId=null,steerTouchStartX=0,steerTouchStartY=0,potentialFireTouch=null,hudVisible=!0;function updateCursorForLobby(){"none"!==document.getElementById("overlay").style.display||"none"!==document.getElementById("p2p-lobby").style.display||"none"!==document.getElementById("previewOverlay").style.display||"none"!==document.getElementById("rulesOverlay").style.display?dM
ocument.body.style.cursor='url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 24 24%27%3E%3Ctext y=%2720%27 font-size=%2720%27%3E%F0%9F%92%80%3C/text%3E%3C/svg%27") 16 16, auto':gameStarted&&(document.body.style.cursor="none")}const SMALL_SKY_ID="b1a6b0a7dc61eeb4764607ab0505d571b4e42a6b31ca0e2d0c9bc8fe7014ac97i0",BLOCKED_TEX=["4aabdef09087eec3f1e46a631a90d205c230542db7dc69c1b5a6cdb8ffe15910i0","dee0872513415146a6d47576ad4ae48b51ab58081c4b6eca49f7fa919M
cf26575i0"];function texUrlBlocked(e){const t=String(e||"");return BLOCKED_TEX.some(e=>-1!==t.indexOf(e))}{const e=THREE.TextureLoader.prototype.load;THREE.TextureLoader.prototype.load=function(t,a,o,n){return texUrlBlocked(t)?("function"==typeof n&&n(),this):e.call(this,t,a,o,n)}}function loadTex(e){return!e||texUrlBlocked(e)?Promise.resolve(null):new Promise(t=>{(new THREE.TextureLoader).load(e,e=>{e.flipY=!1,e.wrapS=e.wrapT=THREE.RepeatWrapping;try{void 0!==THREE.SRGBColorSpace&&(e.colorSpace=THREE.SRGBColorSpacM
e)}catch(e){}t(e)},void 0,()=>t(null))})}function normalizeCharId(e){const t=String(e||"").trim(),a=t.match(/([0-9a-fA-F]{64}i[0-9]+)/);return a?a[1]:/^[0-9a-fA-F]{64}$/.test(t)?t+"i0":""}function readMyCharIdFromInput(){const e=document.getElementById("charIdInput"),t=normalizeCharId(e&&e.value)||SAMPLE_SKULL_ID;return myCharId=t,t}function uniqueTex(e){if(!e)return null;const t=e.clone();t.needsUpdate=!0,t.flipY=!1,t.wrapS=t.wrapT=THREE.RepeatWrapping;try{void 0!==THREE.SRGBColorSpace&&(t.colorSpace=THREE.SRGBColM
orSpace)}catch(e){}return t}function absContent(e){if(!e)return null;const t=String(e).match(/([0-9a-fA-F]{64}i0)/);return t?`/content/${t[1]}`:String(e).startsWith("/")?e:null}async function parseCscTexturePack(e){const t=(e||"").trim(),a=t?t.replace(/i0$/,"")+"i0":SAMPLE_SKULL_ID,o={skinUrl:null,skyUrl:null,envUrl:null,modelUrl:null};try{const e=await fetch(`/content/${a}`);if(!e.ok)return o;const t=await e.text(),n=(new DOMParser).parseFromString(t,"text/html"),r=n.querySelector("model-viewer");r&&(o.modelUrl=abM
sContent(r.getAttribute("src")),o.skyUrl=absContent(r.getAttribute("skybox-image")||r.getAttribute("skyboxImage")),o.envUrl=null);const s=n.querySelectorAll("script");for(const e of s){const t=e.textContent||"",a=t.match(/const\s+textureFilePath\s*=\s*["']([^"']+)["']/)||t.match(/textureFilePath\s*=\s*["']([^"']+)["']/);a&&(o.skinUrl=absContent(a[1]));const n=t.match(/const\s+skybox(?:Texture|Image|FilePath|Path)?\s*=\s*["']([^"']+)["']/)||t.match(/skyboxImage\s*=\s*["']([^"']+)["']/);n&&!o.skyUrl&&(o.skyUrl=absConM
tent(n[1]))}o.envUrl=null}catch(e){}return o}function applyPackToMinion(e,t){const{skin:a,sky:o}=t,n=uniqueTex(a),r=uniqueTex(o)||n;e.traverse(e=>{if(!e.isMesh)return;const t=(Array.isArray(e.material)?e.material:e.material?[e.material]:[null]).map(t=>{const a=(t&&t.name||e.name||"").toLowerCase(),o=new THREE.MeshStandardMaterial({name:t&&t.name||e.name||"minion",color:16777215,metalness:.28,roughness:.35,side:THREE.DoubleSide});return a.includes("glow")||a.includes("eye")?(r&&(o.map=uniqueTex(r),o.emissiveMap=o.maM
p),o.emissive=new THREE.Color(16772744),o.emissiveIntensity=1.1):n&&(o.map=uniqueTex(n),o.emissiveMap=o.map,o.emissive=new THREE.Color(3355443),o.emissiveIntensity=.55),o.needsUpdate=!0,o});e.material=1===t.length?t[0]:t})}function parallelTraverse(e,t,a){a(e,t);for(let o=0;o<e.children.length;o++)t.children[o]&&parallelTraverse(e.children[o],t.children[o],a)}function cloneSkinned(e){const t=new Map,a=new Map,o=e.clone(!0);return parallelTraverse(e,o,(e,o)=>{t.set(e,o),a.set(o,e)}),o.visible=!0,o.traverse(e=>{if(e.M
visible=!0,e.isMesh&&e.material&&(e.material=Array.isArray(e.material)?e.material.map(e=>e.clone()):e.material.clone()),!e.isSkinnedMesh||!e.skeleton)return;const o=a.get(e);if(!o||!o.skeleton)return;const n=o.skeleton.bones.map(e=>t.get(e)).filter(Boolean);e.bind(new THREE.Skeleton(n,o.skeleton.boneInverses.slice()),o.bindMatrix.clone())}),o}function playAnimOn(e,t){if(!e||!e.userData||!e.userData.actions)return;const a=e.userData.actions;if(e.userData.currentAnim===t)return;const o=a[t]||a.Idle;o&&(Object.values(M
a).forEach(e=>{e!==o&&e.fadeOut(.15)}),o.reset().fadeIn(.15).play(),e.userData.currentAnim=t)}function cacheSwingBones(e){if(!e)return;const t={};e.traverse(e=>{const a=(e.name||"").toLowerCase();"upperarm.l"===a||a.endsWith("upperarm.l")?t.aL=e:"upperarm.r"===a||a.endsWith("upperarm.r")?t.aR=e:"lowerarm.l"===a||a.endsWith("lowerarm.l")?t.eL=e:("lowerarm.r"===a||a.endsWith("lowerarm.r"))&&(t.eR=e)}),["aL","aR","eL","eR"].forEach(e=>{t[e]&&!t[e+"Q"]&&(t[e+"Q"]=t[e].quaternion.clone())}),e.userData.swingPack=t,e.userM
Data.swingReady=!(!t.aL||!t.aR)}const _swingQ=new THREE.Quaternion,_swingZ=new THREE.Vector3(0,0,1),_swingX=new THREE.Vector3(1,0,0);function poseSwing(e,t,a){e&&t&&(e.quaternion.copy(t),_swingQ.setFromAxisAngle(_swingZ,a),e.quaternion.multiply(_swingQ),_swingQ.setFromAxisAngle(_swingX,.45*a),e.quaternion.multiply(_swingQ))}function applyArmSwing(e,t){}function playMinionAnim(e){playAnimOn(minionRoot,e),currentAnim=e,minionRoot&&minionRoot.userData&&(minionMixer=minionRoot.userData.mixer,minionActions=minionRoot.usM
erData.actions)}let attackUntil=0;function playThrowAnim(){const e=minionRoot&&minionRoot.userData&&minionRoot.userData.actions||minionActions||{},t=Object.keys(e).find(e=>/attack|punch|throw|slash|hit/i.test(e));if(t)return playMinionAnim(t),void(attackUntil=Date.now()+480);if(!minionRoot)return;let a=null;if(minionRoot.traverse(e=>{if(a||!e.isBone)return;const t=e.name.toLowerCase();(t.includes("right")||t.endsWith("_r")||t.endsWith(".r"))&&(t.includes("arm")||t.includes("hand")||t.includes("shoulder"))&&(a=e)}),M
!a)return;const o=a.rotation.clone();a.rotation.x-=1.15,attackUntil=Date.now()+280,setTimeout(()=>{a&&a.rotation.copy(o)},280)}function bindMinionClips(e,t){const a=new THREE.AnimationMixer(t),o={},n=e.animations||[],r=n.find(e=>/walk/i.test(e.name)),s=n.find(e=>/run/i.test(e.name));return n.forEach(e=>{let t=e;if(s&&r&&e===s){const a=e.tracks.filter(e=>!/arm|hand|wrist|elbow/i.test(e.name)),o=r.tracks.filter(e=>/arm|hand|wrist|elbow/i.test(e.name)).map(t=>{const a=t.clone(),o=e.duration/Math.max(.01,r.duration);foM
r(let e=0;e<a.times.length;e++)a.times[e]*=o;return a});t=new THREE.AnimationClip(e.name,e.duration,a.concat(o))}o[e.name]=a.clipAction(t)}),t.userData.mixer=a,t.userData.actions=o,t.userData.currentAnim="",playAnimOn(t,"Idle"),a.update(0),t.userData.swingReady=!1,cacheSwingBones(t),a}function patchGlbDropEmptyAccessors(e){try{const t=new Uint8Array(e),a=new DataView(e);if(1179937895!==a.getUint32(0,!0))return e;const o=a.getUint32(12,!0),n=JSON.parse((new TextDecoder).decode(t.subarray(20,20+o)));if(!n.accessors||M
!n.animations)return e;let r=!1;for(const e of n.animations){const t=[];for(const a of e.channels||[]){const o=e.samplers[a.sampler];if(!o)continue;const s=n.accessors[o.output],l=n.accessors[o.input];s&&void 0!==s.bufferView&&l&&void 0!==l.bufferView?t.push(a):r=!0}e.channels=t}if(!r)return e;const s=(new TextEncoder).encode(JSON.stringify(n)),l=(4-s.length%4)%4,i=new Uint8Array(s.length+l);i.set(s,0);for(let e=s.length;e<i.length;e++)i[e]=32;const c=i.length,d=20+o,u=t.subarray(d),m=new Uint8Array(20+c+u.length),M
p=new DataView(m.buffer);return p.setUint32(0,1179937895,!0),p.setUint32(4,2,!0),p.setUint32(8,m.byteLength,!0),p.setUint32(12,c,!0),p.setUint32(16,1313821514,!0),m.set(i,20),m.set(u,20+c),m.buffer}catch(t){return e}}async function loadMinionTemplate(){return minionTemplate||new Promise(async e=>{const t=await makeGltfLoader();fetch(`/content/${MINION_ID}`).then(e=>{if(!e.ok)throw new Error("minion HTTP "+e.status);return e.arrayBuffer()}).then(a=>{const o=patchGlbDropEmptyAccessors(a);t.parse(o,"",t=>{minionTemplaM
te=t,t.scene&&(t.scene.visible=!1),e(t)},t=>{const a=document.getElementById("status");a&&(a.textContent="Minion GLB failed."),e(null)})}).catch(t=>{e(null)})})}async function loadSkinnedMinion(e,t){const a=await loadMinionTemplate();if(!a)return null;const o=!t||!1!==t.local,n=cloneSkinned(a.scene);n.visible=!0,n.traverse(e=>{e.visible=!0,e.isMesh&&(e.castShadow=!0,e.frustumCulled=!1,e.visible=!0,e.material&&(e.material.side=THREE.DoubleSide,e.material.transparent=!1,e.material.depthWrite=!0,e.material.needsUpdateM
=!0)),e.isSkinnedMesh&&(e.frustumCulled=!1)});const r=normalizeCharId(e)||SAMPLE_SKULL_ID,s=await parseCscTexturePack(r);return applyPackToMinion(n,{skin:await loadTex(s.skinUrl),sky:null}),n.scale.setScalar(5.69),n.position.set(0,0,0),n.rotation.set(0,0,0),n.userData.isMinion=!0,n.userData.isPlayerChar=!0,n.userData.skullId=r,bindMinionClips(a,n),o&&(minionRoot=n,minionMixer=n.userData.mixer,minionActions=n.userData.actions),n}function applyEmissiveAndTexture(e,t=null){e.traverse(e=>{if(e.isMesh&&e.material){(ArraM
y.isArray(e.material)?e.material:[e.material]).forEach(e=>{t&&(e.map=t,e.emissiveMap=t),e.emissive=new THREE.Color(4473924),e.emissiveIntensity=.85,e.needsUpdate=!0})}})}async function getModelAndTexture(e){const t=`/content/${e}`;try{const e=await fetch(t);if(!e.ok)throw new Error(`Fetch failed: ${e.status}`);const a=await e.text(),o=(new DOMParser).parseFromString(a,"text/html");let n=null;const r=o.querySelector("model-viewer");r&&r.hasAttribute("src")&&(n=r.getAttribute("src"));let s=null;const l=o.querySelectoM
rAll("script");for(let e of l){const t=(e.textContent||"").match(/const\s+textureFilePath\s*=\s*["']([^"']+)["']/);if(t&&t[1]){s=t[1];break}}return{modelUrl:n,textureUrl:s}}catch(e){return{modelUrl:null,textureUrl:null}}}const IMAGE_SPHERE_MODEL_ID="c569b9ea81d2bc78fd86b328c7c1659b193f461ceb1c1ae9e79ac21e2713a171i0";let imageSphereTemplate=null;async function ensureImageSphere(){return imageSphereTemplate||new Promise(e=>{(new GLTFLoader).load(`/content/${IMAGE_SPHERE_MODEL_ID}`,t=>{const a=t.scene;a.traverse(e=>{eM
.isMesh&&(e.castShadow=!0)}),imageSphereTemplate=a,e(a)},void 0,t=>{e(null)})})}async function probeIsImageInscription(e){try{let t=await fetch(`/content/${e}`,{method:"HEAD"});if(t.ok&&t.headers.get("content-type")||(t=await fetch(`/content/${e}`,{method:"GET"})),!t.ok)return!1;const a=(t.headers.get("content-type")||"").toLowerCase();if(a.startsWith("image/"))return!0;if(a.includes("octet-stream")||""===a||a.includes("binary")){const e=await t.clone().arrayBuffer(),a=new Uint8Array(e.slice(0,12));if(137===a[0]&&8M
0===a[1]&&78===a[2]&&71===a[3])return!0;if(255===a[0]&&216===a[1]&&255===a[2])return!0;if(71===a[0]&&73===a[1]&&70===a[2])return!0;if(82===a[0]&&73===a[1]&&70===a[2]&&70===a[3]&&87===a[8]&&69===a[9]&&66===a[10]&&80===a[11])return!0}return!1}catch(e){return!1}}async function loadImageSphereCharacter(e){try{const t=await new Promise(t=>{(new THREE.TextureLoader).load(`/content/${e}`,e=>t(e),void 0,()=>t(null))});if(!t)return null;t.flipY=!0,t.wrapS=THREE.ClampToEdgeWrapping,t.wrapT=THREE.ClampToEdgeWrapping,t.repeat.M
set(1,1),t.offset.set(0,0);try{void 0!==THREE.SRGBColorSpace?t.colorSpace=THREE.SRGBColorSpace:void 0!==THREE.sRGBEncoding&&(t.encoding=THREE.sRGBEncoding)}catch(e){}const a=new THREE.SphereGeometry(1,64,48),o=new THREE.MeshStandardMaterial({map:t,emissiveMap:t,emissive:new THREE.Color(2236962),emissiveIntensity:.45,metalness:.08,roughness:.55}),n=new THREE.Mesh(a,o);n.castShadow=!0;const r=new THREE.Group;return r.add(n),r.scale.setScalar(1.65),r.position.set(0,2.25,-.4),r.rotation.y=-Math.PI/2,r.userData.isImageSM
phere=!0,r}catch(e){return null}}const LORDINAL_MODEL_ID="c33b6ea4e111364a094e28176a52208a977c2010bcef2a4c7fd10ab25b9f7515i0",LORDINAL_CATALOG_ID="67bfb966121e697a0bbc773567bf30bf59b95364f2e8e8c00bf2a80e54210018i0";let lordinalBodyTemplate=null,lordinalTextureIds=null;function parseLordinalCatalog(e){const t=[],a=/\[\s*\d+\s*,\s*["']([0-9a-fA-Fi]+)["']\s*\]/g;let o;for(;null!==(o=a.exec(e));)t.push(o[1]);return t.length?t:null}async function ensureLordinalCatalog(){if(lordinalTextureIds)return lordinalTextureIds;trM
y{const e=await fetch(`/content/${LORDINAL_CATALOG_ID}`);if(!e.ok)throw new Error("catalog HTTP "+e.status);const t=await e.text();return lordinalTextureIds=parseLordinalCatalog(t),lordinalTextureIds}catch(e){return null}}async function ensureLordinalBody(){return lordinalBodyTemplate||new Promise(e=>{(new GLTFLoader).load(`/content/${LORDINAL_MODEL_ID}`,t=>{const a=t.scene;a.traverse(e=>{e.isMesh&&(e.castShadow=!0)}),lordinalBodyTemplate=a,e(a)},void 0,t=>{e(null)})})}function applyLordinalProjectedUVs(e){e.updateM
MatrixWorld(!0);const t=(new THREE.Box3).setFromObject(e),a=t.getSize(new THREE.Vector3);if(a.x<1e-6||a.y<1e-6)return;const o=new THREE.Vector3;e.traverse(e=>{if(!e.isMesh||!e.geometry)return;e.geometry=e.geometry.clone();const n=e.geometry.attributes.position,r=new Float32Array(2*n.count);for(let s=0;s<n.count;s++)o.fromBufferAttribute(n,s),e.localToWorld(o),r[2*s]=(o.x-t.min.x)/a.x,r[2*s+1]=(t.max.y-o.y)/a.y;e.geometry.setAttribute("uv",new THREE.BufferAttribute(r,2))})}function applyTextureToModel(e,t){if(t){t.fM
lipY=!1,t.wrapS=t.wrapT=THREE.RepeatWrapping;try{void 0!==THREE.SRGBColorSpace?t.colorSpace=THREE.SRGBColorSpace:void 0!==THREE.sRGBEncoding&&(t.encoding=THREE.sRGBEncoding)}catch(e){}e.traverse(e=>{if(!e.isMesh||!e.material)return;const a=(Array.isArray(e.material)?e.material:[e.material]).map(e=>{const a=e.clone();return a.map=t,a.emissiveMap=t,a.emissive=new THREE.Color(2236962),a.emissiveIntensity=.6,"metalness"in a&&(a.metalness=.05,a.roughness=.55),a.needsUpdate=!0,a});e.material=Array.isArray(e.material)?a:aM
[0]})}}async function loadLordinalFromEntry(e){try{const t=await fetch(`/content/${e}`);if(!t.ok)return null;const a=(await t.text()).match(/P\s*=\s*(\d+)/);if(!a)return null;const o=parseInt(a[1],10),n=await ensureLordinalCatalog();if(!n||o<1||o>n.length)return null;const r=n[o-1],s=await ensureLordinalBody();if(!s)return null;const l=s.clone(!0);l.scale.setScalar(2.04),l.position.set(0,1.55,-.4),l.rotation.y=0,l.userData.isLordinal=!0,applyLordinalProjectedUVs(l);const i=await new Promise(e=>{(new THREE.TextureLoM
ader).load(`/content/${r}`,t=>e(t),void 0,()=>e(null))});return i?applyTextureToModel(l,i):applyEmissiveAndTexture(l),l}catch(e){return null}}function finalizeCscModel(e,t,a){if(e.scale.setScalar(.8),e.traverse(e=>{e.isMesh&&(e.castShadow=!0)}),e.position.set(0,.35,-.4),e.rotation.y=0,t){t.flipY=!1;try{void 0!==THREE.SRGBColorSpace?t.colorSpace=THREE.SRGBColorSpace:void 0!==THREE.sRGBEncoding&&(t.encoding=THREE.sRGBEncoding)}catch(e){}applyEmissiveAndTexture(e,t)}else applyEmissiveAndTexture(e);return modelCache.seM
t(a,e),e.clone()}async function loadCharacterModel(e){try{let t=(e||"").trim(),a=t.replace(/i0$/,"")+"i0";if(t&&"i0"!==a||(a=FALLBACK_ID),modelCache.has(a))return modelCache.get(a).clone();let o="";const n=await probeIsImageInscription(a);if(!n)try{const e=await fetch(`/content/${a}`);e.ok&&(o=await e.text())}catch(e){}if(/P\s*=\s*\d+/.test(o)){const e=await loadLordinalFromEntry(a);if(e)return modelCache.set(a,e),e.clone(!0)}if(n){const e=await loadImageSphereCharacter(a);if(e)return modelCache.set(a,e),e.clone(!0M
)}let r=await getModelAndTexture(a);return r&&r.modelUrl?new Promise(e=>{(new GLTFLoader).load(r.modelUrl,t=>{const o=t.scene;r.textureUrl?(new THREE.TextureLoader).load(r.textureUrl,t=>e(finalizeCscModel(o,t,a)),void 0,()=>e(finalizeCscModel(o,null,a))):e(finalizeCscModel(o,null,a))},void 0,t=>{e(null)})}):a!==FALLBACK_ID&&(r=await getModelAndTexture(FALLBACK_ID),r&&r.modelUrl)?new Promise(e=>{(new GLTFLoader).load(r.modelUrl,t=>{e(finalizeCscModel(t.scene,null,FALLBACK_ID))},void 0,()=>e(null))}):null}catch(e){reM
turn null}}async function preloadCoreAssets(){const e=[];e.push(new Promise((e,t)=>{(new THREE.TextureLoader).load("/content/ca1be2e1bcda5cd624ea2c73995f470fa58674187f196c1571cc69e827aa1d13i0",t=>{t.wrapS=t.wrapT=THREE.RepeatWrapping,t.repeat.set(160,160),e(t)},void 0,t)})),e.push(new Promise((e,t)=>{(new THREE.TextureLoader).load("/content/b1a6b0a7dc61eeb4764607ab0505d571b4e42a6b31ca0e2d0c9bc8fe7014ac97i0",e,void 0,t)})),e.push(new Promise((e,t)=>{(new THREE.TextureLoader).load(`/content/${BLOCK_TEXTURE_ID}`,e,voiM
d 0,t)})),e.push(new Promise((e,t)=>{(new GLTFLoader).load("/content/756a5fe7b548354837d57c4c1db157f4bc7b9ac603033163fe41e3359bf35e70i0",t=>{cart=t.scene,cart.scale.setScalar(1.8),cart.traverse(e=>{e.isMesh&&(e.castShadow=!0,e.receiveShadow=!0)}),e()},void 0,t)})),e.push(new Promise((e,t)=>{(new GLTFLoader).load(`/content/${STAR_ID}`,t=>{starGLTF=t,starGLTF.scene.scale.setScalar(12),e()},void 0,t)})),e.push(new Promise((e,t)=>{(new GLTFLoader).load(`/content/${LAVA_ID}`,t=>{lavaGLTF=t,e()},void 0,t)}));try{const[t,M
a,o]=await Promise.all(e);return coreGrassTex=t,coreSkyTex=a,coreWallTex=o,activeGrassTex=t,activeWallTex=o,statusEl.textContent="The house is prepared",startBtn.disabled=!1,ensureLordinalBody().catch(()=>{}),ensureLordinalCatalog().catch(()=>{}),ensureImageSphere().catch(()=>{}),{grassTex:t,skyTex:a,wallTex:o}}catch(e){return statusEl.textContent="Some assets failed to load
 proceeding anyway",startBtn.disabled=!1,ensureLordinalBody().catch(()=>{}),ensureLordinalCatalog().catch(()=>{}),ensureImageSphere().catchM
(()=>{}),null}}function getTerrainHeight(e,t){const a=MAP_DEFS[currentMapId]||MAP_DEFS["club-hall"],o=void 0!==a.duneScale?a.duneScale:1,n=a.floorLift||0;let r=0;r+=18*o*Math.sin(.0099*e+.0099*t*.7),r+=18*o*.6*Math.sin(.0054*e*1.4+.0054*t*.9+1.7),r+=18*o*.35*Math.sin(.0098*e*2.3+.0098*t*1.8+4.1);const s=a.chaosArena?1.35:"club"===a.mode?0:1;return s>0&&JUMP_HUMPS.forEach(o=>{const n=e-o.cx,l=t-o.cz,i=n*n+l*l,c=Math.exp(-i/(o.radius*o.radius*2*(a.chaosArena?1.2:1)));r+=o.height*s*c*c}),r+n}function buildTerrain(e){cM
onst t=getTrackParams(),a=t.terrainSize,o=t.aspect>1.2?Math.min(220,200):160,n=new THREE.PlaneGeometry(a,a,o,o);n.rotateX(-Math.PI/2);const r=n.attributes.position.array;for(let e=0;e<r.length;e+=3){const t=r[e],a=r[e+2];r[e+1]=getTerrainHeight(t,a)}n.computeVertexNormals();const s=n.attributes.position.array,l=[];for(let e=0;e<s.length;e+=3){const t=isOnTrackXZ(s[e],s[e+2])?.42:1;l.push(.82*t,.91*t,.78*t)}n.setAttribute("color",new THREE.Float32BufferAttribute(l,3));const i=new THREE.MeshStandardMaterial({map:e,veM
rtexColors:!0,roughness:.88,metalness:.06});terrainMesh=new THREE.Mesh(n,i),terrainMesh.receiveShadow=!0,scene.add(terrainMesh)}function clearTrackSurface(){if(trackSurfaceMesh){scene.remove(trackSurfaceMesh);try{trackSurfaceMesh.geometry.dispose(),trackSurfaceMesh.material&&(trackSurfaceMesh.material.map&&(trackSurfaceMesh.material.map=null),trackSurfaceMesh.material.dispose())}catch(e){}trackSurfaceMesh=null}}function buildBlueTrackSurface(){clearTrackSurface();const e=[],t=[];for(let t=0;t<=360;t++){const a=t/36M
0*Math.PI*2,o=getWallPoint(a,!1),n=getWallPoint(a,!0),r=getTerrainHeight(o.x,o.z)+1.5,s=getTerrainHeight(n.x,n.z)+1.5;e.push(o.x,r,o.z),e.push(n.x,s,n.z)}for(let e=0;e<360;e++){const a=2*e,o=a+1,n=a+2,r=a+3;t.push(a,o,n,o,r,n)}const a=new THREE.BufferGeometry;a.setAttribute("position",new THREE.Float32BufferAttribute(e,3)),a.setIndex(t),a.computeVertexNormals();const o=new THREE.MeshStandardMaterial({color:1735423,emissive:671129,emissiveIntensity:.55,roughness:.65,metalness:.08,side:THREE.DoubleSide});trackSurfaceM
Mesh=new THREE.Mesh(a,o),trackSurfaceMesh.receiveShadow=!0,scene.add(trackSurfaceMesh)}function buildWall(e,t,a=!1){t.flipY=!1;const o=getGapAngles();let n=[];for(let e=0;e<7200;e++){const t=e/7200*Math.PI*2,r=getWallPoint(t,a),s=r.x,l=r.z;let i=getTerrainHeight(s,l);if(a){let e=!1;for(const a of o){const o=Math.abs(t-a.center),n=Math.abs(t-(a.center+2*Math.PI)),r=Math.abs(t-(a.center-2*Math.PI));if(Math.min(o,n,r)<a.width/2){e=!0;break}}e&&(i-=100)}n.push(new THREE.Vector3(s,i,l))}n[0].distanceTo(n[n.length-1])>1&M
&n.push(n[0].clone());let r=[0],s=0;for(let e=2;e<n.length;e++){let t=n[s],a=n[e];if(a.distanceTo(t)>35){r.push(e-1),s=e-1;continue}let o=0;const l=a.clone().sub(t).clone().normalize();for(let a=s+1;a<e;a++){const e=n[a],r=e.clone().sub(t).dot(l),s=t.clone().addScaledVector(l,r),i=e.distanceTo(s);i>o&&(o=i)}o>.4&&(r.push(e-1),s=e-1)}0!==r[r.length-1]&&r.push(0);for(let e=0;e<r.length-1;e++){let o=r[e],s=r[e+1],l=n[o],i=n[s],c=l.clone().add(i).multiplyScalar(.5),d=i.clone().sub(l),u=d.length();if(u<.5)continue;let mM
=d.clone().normalize(),p=Math.atan2(m.x,m.z)+Math.PI/2;const y=new THREE.BoxGeometry(1,23,2),h=new THREE.MeshStandardMaterial({map:t,roughness:.92,metalness:.08});{const e=MAP_DEFS[currentMapId]||{},t=null!=e.wallRepeatY?e.wallRepeatY:4;h.map.repeat.set(1,t)}h.map.wrapS=h.map.wrapT=THREE.RepeatWrapping,h.needsUpdate=!0;const f=new THREE.Mesh(y,h);f.castShadow=!0,f.receiveShadow=!0;const g=u/1;f.scale.set(g,1,1),f.position.copy(c),f.position.y+=9.2,f.rotation.y=p,f.userData.isMapWall=!0,f.userData.isInnerWall=!!a,scM
ene.add(f),wallMeshList.push(f);const b=Math.max(1,Math.ceil(u/3));for(let e=0;e<b;e++){let t=e/b,o=(e+1)/b;const n=0===e||e===b-1?.5:.1;if(t+=n/u,o-=n/u,t>=o)continue;const r=l.clone().lerp(i,t),s=l.clone().lerp(i,o),c=r.clone().add(s).multiplyScalar(.5),d=r.distanceTo(s),y=2,h=23,f=new THREE.Mesh(new THREE.BoxGeometry(d,h,y),new THREE.MeshBasicMaterial({visible:!1}));f.position.copy(c),f.position.y+=h/2.5,f.rotation.y=p;const g=new THREE.Vector3(m.z,0,-m.x).normalize();a&&g.negate(),f.userData={wallDir:m.clone(),M
wallNormal:g,isMapWall:!0,isInnerWall:!!a},scene.add(f),colliders.push(f)}}}function clearLavaPatches(){lavaPatches.forEach(e=>{e.mesh&&!e.fromChaosProp&&scene.remove(e.mesh)}),lavaPatches=[]}function buildLavaPatches(e){if(!(lavaGLTF||e&&MAP_DEFS[currentMapId]?.chaosArena))return;if(e||clearLavaPatches(),!lavaGLTF)return;const t=MAP_DEFS[currentMapId]||{},a="ctf"===t.mode,o=null!=t.lavaCount?t.lavaCount:a?16:2,n=[];if(t.chaosArena){const e=JUMP_HUMPS[0]||{cx:-120,cz:-180},t=JUMP_HUMPS[2]||{cx:-10,cz:220};n.push({xM
:e.cx,z:e.cz,yOffset:6},{x:t.cx,z:t.cz,yOffset:6})}else if(a){const e=6900*.55;for(let t=0;t<o;t++)n.push({angle:t/o*Math.PI*2,useEllipse:!1,radius:e,yOffset:2})}else if(o>=12||t.trackAspect>1)for(let e=0;e<o;e++)n.push({angle:e/o*Math.PI*2,useEllipse:!0,yOffset:2});else n.push({angle:.25*Math.PI,useEllipse:!0,yOffset:2},{angle:1.25*Math.PI,useEllipse:!0,yOffset:2});const r=a?22.5:7.5,s=a?55:42;n.forEach(e=>{let t,a;if(null!=e.x&&null!=e.z)t=e.x,a=e.z;else if(e.useEllipse){const o=getWallPoint(e.angle,!1),n=getWallM
Point(e.angle,!0);t=.5*(o.x+n.x),a=.5*(o.z+n.z)}else t=e.radius*Math.sin(e.angle),a=e.radius*Math.cos(e.angle);const o=getTerrainHeight(t,a)+e.yOffset,n=lavaGLTF.scene.clone();n.scale.set(7.5,r,7.5),n.position.set(t,o,a),n.rotation.y=e.angle+Math.PI/2,scene.add(n);const l=new THREE.AnimationMixer(n);lavaGLTF.animations&&lavaGLTF.animations.length>0&&lavaGLTF.animations.forEach(e=>{const t=l.clipAction(e);t.setLoop(THREE.LoopRepeat),t.play()}),lavaPatches.push({mesh:n,mixer:l,pos:new THREE.Vector3(t,o,a),radius:s})}M
)}function createDustParticle(){}function updateDustParticles(){}function clearCheckpointsAndFlag(){checkpointStars.forEach(e=>{e.mesh&&scene.remove(e.mesh)}),checkpointStars=[],flagPoleMesh&&(scene.remove(flagPoleMesh),flagPoleMesh=null),flagMesh&&(scene.remove(flagMesh),flagMesh=null),heldFlagMesh&&(heldFlagMesh.parent&&heldFlagMesh.parent.remove(heldFlagMesh),heldFlagMesh=null),flagHomePos=null}function buildCheckpoints(){if(clearCheckpointsAndFlag(),!starGLTF)return;const e=MAP_DEFS[currentMapId]||{};let t=[];iM
f(e.chaosArena){const a=.9*(e.outerRadiusOverride||chaosWallRadius||1400);t=[{x:a,z:a},{x:a,z:-a},{x:-a,z:-a},{x:-a,z:a}]}else for(let e=0;e<4;e++){const a=CHECKPOINT_ANGLES[e],o=getWallPoint(a,!1),n=getWallPoint(a,!0);t.push({x:.5*(o.x+n.x),z:.5*(o.z+n.z)})}for(let e=0;e<4;e++){const a=t[e].x,o=t[e].z,n=getTerrainHeight(a,o)+12,r=starGLTF.scene.clone();r.position.set(a,n,o),scene.add(r);const s=new THREE.AnimationMixer(r);if(starGLTF.animations&&starGLTF.animations.length>0){s.clipAction(starGLTF.animations[0]).plM
ay()}checkpointStars.push({mesh:r,mixer:s})}const a=t[0].x,o=t[0].z,n=getTerrainHeight(a,o)+60;flagPoleMesh=new THREE.Mesh(new THREE.CylinderGeometry(2,2,240,8),new THREE.MeshPhongMaterial({color:11184810,emissive:11184810,emissiveIntensity:2})),flagPoleMesh.position.set(a,n,o),scene.add(flagPoleMesh),flagMesh=new THREE.Mesh(new THREE.PlaneGeometry(24,18),new THREE.MeshPhongMaterial({color:43775,side:THREE.DoubleSide,emissive:65535,emissiveIntensity:3,transparent:!0,opacity:.95})),flagMesh.position.set(a,n+120,o),fM
lagMesh.rotation.y=Math.atan2(a,o)+Math.PI/2,flagHomePos=flagMesh.position.clone(),scene.add(flagMesh),heldFlagMesh=new THREE.Mesh(new THREE.PlaneGeometry(12,9),new THREE.MeshPhongMaterial({color:43775,side:THREE.DoubleSide,emissive:65535,emissiveIntensity:4})),heldFlagMesh.visible=!1}const customCursor=document.getElementById("customCursor"),statusEl=document.getElementById("status"),startBtn=document.getElementById("startBtn"),pauseHint=document.getElementById("pauseHint"),chatModeHint=document.getElementById("chM
atModeHint"),lavaPowerHint=document.getElementById("lavaPowerHint"),modelCache=new Map,chatContainer=document.getElementById("chat-container"),chatMessages=document.getElementById("chat-messages"),chatInput=document.getElementById("chat-input"),chargeBar=document.getElementById("chargeBar"),scoreboard=document.getElementById("scoreboard"),scoreList=document.getElementById("scoreList"),cpIndicator=document.getElementById("cpIndicator"),pauseRulesBtn=document.getElementById("pauseRulesBtn"),throttleIndicator=documentM
.getElementById("throttleIndicator"),throttleFill=document.getElementById("throttleFill"),cameraCycleBtn=document.getElementById("cameraCycleBtn"),pauseBtn=document.getElementById("pauseBtn");let pcList=[],dcList=[],voiceOn=!1,localMicStream=null;const voicePcs=new Map,sharePcs=new Map,voiceAudioEls=new Map;function rtcConf(){return{iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun.cloudflare.com:3478"}]}}function sendToPM
eer(e,t){if(!e)return;const a=JSON.stringify(Object.assign({id:myPlayerID,to:e},t));let o=0;dcList.forEach(t=>{if(t&&"open"===t.readyState&&t._peerId===e)try{t.send(a),o++}catch(e){}}),o||dcList.forEach(e=>{if(e&&"open"===e.readyState)try{e.send(a)}catch(e){}})}function kickVoicePlayback(){voiceAudioEls.forEach(e=>{try{e.play()}catch(e){}})}let voiceMixLevel=1.4,jumboMixLevel=.28;function applyClubMix(){void 0!==voiceGainNodes&&voiceGainNodes.forEach(e=>{e&&e.gain&&(e.gain.gain.value=clubVoiceGain())}),void 0!==voiM
ceAudioEls&&voiceAudioEls.forEach(e=>{if(!e)return;const t=voiceMixLevel<=.001;e.muted=t||!(!voiceGainNodes||!voiceGainNodes.size),e.volume=t?0:1});const e=jumboVol()<=.001,t=document.getElementById("stageShareVideo");t&&(t.muted=e,t.volume=jumboVol(),e||t.play().catch(()=>{}));const a=document.getElementById("stageShareAudio");if(a&&(a.muted=e,a.volume=jumboVol(),!e&&a.srcObject&&a.play().catch(()=>{})),"function"==typeof ytCommand){try{ytCommand("setVolume",[Math.round(100*jumboMixLevel)])}catch(e){}if(jumboMixLeM
vel<=.001)try{ytCommand("mute")}catch(e){}else try{ytCommand("unMute")}catch(e){}}}function bindClubMixer(){const e=document.getElementById("mixVoice"),t=document.getElementById("mixJumbo");if(e&&e.addEventListener("input",()=>{voiceMixLevel=Math.max(0,Math.min(2,Number(e.value)/100)),applyClubMix()}),t){const e=()=>{jumboMixLevel=Math.max(0,Math.min(1,Number(t.value)/100)),applyClubMix()};t.addEventListener("input",e),t.addEventListener("change",e)}}function resumeClubVoiceElements(){window._clubAudioCtx&&"suspendM
ed"===window._clubAudioCtx.state&&window._clubAudioCtx.resume();const e=document.getElementById("stageShareVideo"),t=document.getElementById("stageShareAudio");e&&(e.muted=jumboVol()<=.001,e.volume=jumboVol(),e.play().catch(()=>{})),t&&(t.muted=jumboVol()<=.001,t.volume=jumboVol(),t.play().catch(()=>{})),void 0!==voiceAudioEls&&(voiceAudioEls.forEach(e=>{e&&(e.muted=!(!voiceGainNodes||!voiceGainNodes.size),e.volume=Math.max(0,Math.min(1,voiceMixLevel<=.001?0:1)),e.play().catch(()=>{}))}),applyClubMix())}bindClubMixM
er(),document.addEventListener("pointerdown",resumeClubVoiceElements,!0);const voiceGainNodes=new Map;function clubVoiceGain(){const e="number"==typeof voiceMixLevel?voiceMixLevel:1.4;return e<=.001?0:3.6*e}function attachRemoteVoice(e,t){if(!e||e===myPlayerID)return;if(localMicStream&&(t===localMicStream||t.getAudioTracks&&t.getAudioTracks().some(e=>-1!==localMicStream.getTracks().indexOf(e))))return;let a=voiceAudioEls.get(e);a||(a=document.createElement("audio"),a.autoplay=!0,a.playsInline=!0,a.setAttribute("plaM
ysinline",""),a.style.display="none",document.body.appendChild(a),voiceAudioEls.set(e,a)),a.srcObject=t,a.muted=voiceMixLevel<=.001,a.volume=voiceMixLevel<=.001?0:1;const o=()=>{a.muted=voiceMixLevel<=.001,a.play().catch(()=>{})};o(),t&&t.getAudioTracks&&t.getAudioTracks().forEach(e=>{e.enabled=!0,e.onunmute=o});try{window._clubAudioCtx||(window._clubAudioCtx=new(window.AudioContext||window.webkitAudioContext));const o=window._clubAudioCtx;o.resume();let n=voiceGainNodes.get(e);if(n&&n.stream!==t){try{n.src.disconnM
ect(),n.gain.disconnect()}catch(e){}n=null}if(n)n.gain.gain.value=Math.max(2.5,clubVoiceGain());else{const n=o.createMediaStreamSource(t),r=o.createGain();r.gain.value=Math.max(2.5,clubVoiceGain()),n.connect(r),r.connect(o.destination),voiceGainNodes.set(e,{src:n,gain:r,stream:t}),a.muted=!0}}catch(e){a.muted=voiceMixLevel<=.001}}function closeVoicePeer(e){const t=voicePcs.get(e);if(t){try{t.close()}catch(e){}voicePcs.delete(e)}const a=voiceAudioEls.get(e);a&&(a.srcObject=null,voiceAudioEls.delete(e))}let silentVoiM
ceTrack=null;function getSilentAudioTrack(){if(silentVoiceTrack&&"live"===silentVoiceTrack.readyState)return silentVoiceTrack;try{const e=new(window.AudioContext||window.webkitAudioContext),t=e.createMediaStreamDestination(),a=e.createGain();a.gain.value=0;const o=e.createOscillator();o.connect(a),a.connect(t),o.start(),silentVoiceTrack=t.stream.getAudioTracks()[0]}catch(e){silentVoiceTrack=null}return silentVoiceTrack}function senderForKind(e,t){if(!e)return null;const a=e.getTransceivers?e.getTransceivers():[];foM
r(let e=0;e<a.length;e++){const o=a[e];if((o.sender&&o.sender.track&&o.sender.track.kind||o.receiver&&o.receiver.track&&o.receiver.track.kind)===t)return o.sender}return e.getSenders().find(e=>e.track&&e.track.kind===t)||null}function getVoicePc(e){let t=voicePcs.get(e);if(t)return t;t=new RTCPeerConnection(rtcConf());const a=t.addTransceiver("audio",{direction:"sendrecv"});a&&a.sender&&(a.sender._clubVoice=!0),t._clubSlots={voice:a};const o=localMicStream&&localMicStream.getAudioTracks().find(e=>"live"===e.readyStM
ate)||getSilentAudioTrack();if(o&&a&&a.sender)try{a.sender.replaceTrack(o)}catch(e){}return t.ontrack=t=>{e!==myPlayerID&&t.track&&"audio"===t.track.kind&&(localMicStream&&-1!==localMicStream.getTracks().indexOf(t.track)||attachRemoteVoice(e,new MediaStream([t.track])))},t.onicecandidate=t=>{t.candidate&&sendToPeer(e,{type:"voiceIce",candidate:t.candidate})},voicePcs.set(e,t),t.onconnectionstatechange=()=>{"failed"===t.connectionState&&recoverVoicePeer(e)},t}function getSharePc(e){let t=sharePcs.get(e);if(t)return M
t;if(t=new RTCPeerConnection(rtcConf()),isHost&&localShareStream)localShareStream.getTracks().forEach(e=>{try{t.addTrack(e,localShareStream)}catch(e){}});else{try{t.addTransceiver("video",{direction:"recvonly"})}catch(e){}try{t.addTransceiver("audio",{direction:"recvonly"})}catch(e){}}return t.ontrack=e=>{if(isHost)return;applyShareStreamToStage(e.streams&&e.streams[0]?e.streams[0]:new MediaStream([e.track])),"audio"===e.track.kind&&applyShareAudio(e.track),"video"===e.track.kind&&applyShareVideo(e.track)},t.onicecM
andidate=t=>{t.candidate&&sendToPeer(e,{type:"shareIce",candidate:t.candidate})},sharePcs.set(e,t),t}async function offerShare(e){if(!e||e===myPlayerID)return;const t=getSharePc(e);try{const a=await t.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});await t.setLocalDescription(a),sendToPeer(e,{type:"shareOffer",sdp:a.sdp})}catch(e){}}async function handleShareMsg(e){const t=e.id;if(t&&t!==myPlayerID){if("shareOffer"===e.type&&e.sdp){const a=getSharePc(t);try{await a.setRemoteDescription({type:"offer",sdM
p:e.sdp});const o=await a.createAnswer();await a.setLocalDescription(o),sendToPeer(t,{type:"shareAnswer",sdp:o.sdp})}catch(e){}return}if("shareAnswer"===e.type&&e.sdp){const a=sharePcs.get(t);if(!a)return;try{"have-local-offer"===a.signalingState&&await a.setRemoteDescription({type:"answer",sdp:e.sdp})}catch(e){}return}if("shareIce"===e.type&&e.candidate){const a=getSharePc(t);try{await a.addIceCandidate(e.candidate)}catch(e){}}}}const voiceRetryAt=new Map;async function recoverVoicePeer(e){if(!e||e===myPlayerID||!M
multiplayerMode)return;const t=Date.now();if(t-(voiceRetryAt.get(e)||0)<4e3)return;voiceRetryAt.set(e,t);let a=voicePcs.get(e);if(!a||"failed"!==a.connectionState&&"closed"!==a.connectionState&&"failed"!==a.iceConnectionState)a||(a=getVoicePc(e));else{try{a.close()}catch(e){}voicePcs.delete(e),a=getVoicePc(e)}try{if(isHost||"function"==typeof clubCanSpeak&&clubCanSpeak()){const t=await a.createOffer({iceRestart:!0,offerToReceiveAudio:!0,offerToReceiveVideo:!0});await a.setLocalDescription(t),sendToPeer(e,{type:"voiM
ceOffer",sdp:t.sdp})}else sendToPeer(e,{type:"voiceHello"});"function"==typeof attachMicToPeers&&attachMicToPeers(!1)}catch(e){}}async function offerVoice(e){if(!e||e===myPlayerID)return;const t=getVoicePc(e);try{const a=await t.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});await t.setLocalDescription(a),sendToPeer(e,{type:"voiceOffer",sdp:a.sdp})}catch(e){}}function voiceHelloAll(){dcList.forEach(e=>{e&&"open"===e.readyState&&e._peerId&&sendToPeer(e._peerId,{type:"voiceHello"})})}async function handM
leVoiceMsg(e,t){const a=t.id||e._peerId;if(a&&a!==myPlayerID){if("voiceHello"===t.type){const e=getVoicePc(a),t=!e.connectionState||"new"===e.connectionState||"connecting"===e.connectionState||"failed"===e.connectionState||"disconnected"===e.connectionState;return void(isHost&&t?await ensureHostBroadcast(a):!isHost&&(voiceOn||"function"==typeof clubCanSpeak&&clubCanSpeak())&&t&&await offerVoice(a))}if("voiceOffer"===t.type&&t.sdp){const e=getVoicePc(a);try{if("stable"!==e.signalingState&&"have-remote-offer"!==e.sigM
nalingState)try{await e.setLocalDescription({type:"rollback"})}catch(e){}await e.setRemoteDescription({type:"offer",sdp:t.sdp});const o=await e.createAnswer();await e.setLocalDescription(o),sendToPeer(a,{type:"voiceAnswer",sdp:o.sdp})}catch(e){}return}if("voiceAnswer"===t.type&&t.sdp){const e=voicePcs.get(a);if(!e)return;try{"have-local-offer"===e.signalingState&&await e.setRemoteDescription({type:"answer",sdp:t.sdp})}catch(e){}return}if("voiceIce"===t.type&&t.candidate){const e=getVoicePc(a);try{await e.addIceCandM
idate(t.candidate)}catch(e){}}}}window._clubNetWatch||(window._clubNetWatch=setInterval(()=>{if(!multiplayerMode)return;voicePcs.forEach((e,t)=>{const a=e.connectionState,o=e.iceConnectionState;"failed"!==a&&"failed"!==o||recoverVoicePeer(t)}),void 0!==remotePlayers&&remotePlayers.forEach((e,t)=>{t&&t!==myPlayerID&&(voicePcs.has(t)||(getVoicePc(t),isHost&&recoverVoicePeer(t)))}),dcList.forEach(e=>{e&&"open"===e.readyState&&e._peerId&&!voicePcs.has(e._peerId)&&(getVoicePc(e._peerId),isHost&&recoverVoicePeer(e._peerIM
d))}),voiceAudioEls.forEach(e=>{e&&e.paused&&e.play().catch(()=>{})});const e=document.getElementById("stageShareAudio");if(e&&e.srcObject&&jumboVol()>.001&&((e.paused||e.ended)&&e.play().catch(()=>{}),e.muted=!1,e.volume=jumboVol()),isHost&&localShareStream)voicePcs.forEach(e=>{e.getSenders().forEach(e=>{if(!e._clubShare||!e._clubShareKind)return;const t="video"===e._clubShareKind?localShareStream.getVideoTracks()[0]:localShareStream.getAudioTracks()[0];if(t&&e.track!==t)try{e.replaceTrack(t)}catch(e){}})});else iM
f(!isHost&&window._remoteShareOn){const e=document.getElementById("stageShareAudio");e&&e.srcObject&&!e.paused||dcList.forEach(e=>{if(e&&"open"===e.readyState)try{e.send(JSON.stringify({type:"shareRepair",id:myPlayerID}))}catch(e){}})}},5e3));let selfMuted=!1,roomMuteHold=!1;function syncMicButtons(){const e=document.getElementById("micBtn"),t=document.getElementById("clubMicBtn"),a=document.getElementById("clubMuteBtn"),o=document.getElementById("clubRoomMuteBtn"),n=!(!localMicStream||!voiceOn);e&&(e.classList.togM
gle("on",n&&!selfMuted),e.textContent=n?selfMuted?"MUTED":"ON":"MIC"),t&&(t.textContent=n?selfMuted||roomMuteHold?"Unmute my mic":"Microphone live":"Enable microphone"),a&&(a.style.display=n?"block":"none",a.textContent=selfMuted?"Unmute my mic":"Mute my mic"),o&&(o.style.display=isHost?"block":"none")}function isShareAudioTrack(e){return!(void 0===localShareStream||!localShareStream||!e||-1===localShareStream.getTracks().indexOf(e))}function applyMicSendState(){const e=!(!voiceOn||!localMicStream||selfMuted||roomMM
uteHold||"function"==typeof clubCanSpeak&&!clubCanSpeak()),t=localMicStream&&localMicStream.getAudioTracks().find(e=>"live"===e.readyState);localMicStream&&localMicStream.getAudioTracks().forEach(t=>{t.enabled=e}),void 0!==voicePcs&&t&&voicePcs.forEach(e=>{e.getSenders().forEach(e=>{if(!isShareAudioTrack(e.track)&&(e._clubVoice||!e.track||"audio"===e.track.kind)&&(e._clubVoice||e.track&&"audio"===e.track.kind&&!isShareAudioTrack(e.track))&&e.track!==t)try{e.replaceTrack(t),e._clubVoice=!0}catch(e){}})})}async functM
ion ensureHostBroadcast(e,t){if(!isHost&&multiplayerMode)return;const a=!t||!1!==t.offer;try{if(!!(!localMicStream||!localMicStream.getAudioTracks().some(e=>"live"===e.readyState))){const e=!!selfMuted;await setMicEnabled(!0),e&&(selfMuted=!0,applyMicSendState())}await attachMicToPeers(!!a),applyMicSendState(),a&&(e?await offerVoice(e):voicePcs.forEach((e,t)=>offerVoice(t))),syncMicButtons()}catch(e){}}async function attachMicToPeers(e){if(!localMicStream)return;const t=localMicStream.getAudioTracks().find(e=>"liveM
"===e.readyState);t&&voicePcs.forEach((a,o)=>{let n=a._clubSlots&&a._clubSlots.voice&&a._clubSlots.voice.sender||a.getSenders().find(e=>e._clubVoice);try{if(n)n.replaceTrack(t),n._clubVoice=!0;else{const e=a.addTrack(t,localMicStream);e&&(e._clubVoice=!0)}}catch(e){}e&&o&&offerVoice(o)})}async function setMicEnabled(e){const t=document.getElementById("micBtn");if(e&&"function"==typeof clubCanSpeak&&!clubCanSpeak()){const e=document.getElementById("status");return e&&(e.textContent="Mic is open
 browser asks"),refreshClubDock(),void syncMicButtons()}if(!e)return voiceOn=!0,selfMuted=!0,applyMicSendState(),syncMicButtons(),void(t&&(t.classList.remove("on"),t.textContent="MUTED"));if(!(!localMicStream||!localMicStream.getAudioTracks().some(e=>"live"===e.readyState)))return voiceOn=!0,selfMuted=!1,roomMuteHold=!1,applyMicSendState(),syncMicButtons(),void(t&&(t.classList.add("on"),t.textContent="ON"));try{localMicStream=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,M
autoGainControl:!0},video:!1}),voiceOn=!0,selfMuted=!1,roomMuteHold=!1,await attachMicToPeers(!0),applyMicSendState(),syncMicButtons(),t&&(t.classList.add("on"),t.textContent="ON"),voiceHelloAll(),voicePcs.forEach((e,t)=>offerVoice(t)),dcList.forEach(e=>{e&&"open"===e.readyState&&e._peerId&&offerVoice(e._peerId)})}catch(e){voiceOn=!1,syncMicButtons(),t&&(t.classList.remove("on"),t.textContent="MIC")}}let connected=!1,remotePlayers=new Map,isHost=!1,hostOfferCodes=[],myPlayerID="Racer",myCharId=FALLBACK_ID,collectedM
CandidatesList=[],lastCharSync=0;const CHAR_SYNC_INTERVAL=2500;let audioContext,audioMaster=null,sharedNoiseBuffer=null,lastSoundAt=0,raycaster=new THREE.Raycaster,pointer=new THREE.Vector2,syncCounter=0,seenChats=new Set,lastFullStateSent=0;function init(){scene=new THREE.Scene,window.scene=scene,scene.fog=new THREE.FogExp2(8956671,18e-5),camera=new THREE.PerspectiveCamera(90,window.innerWidth/window.innerHeight,.1,6e3),camera.position.set(0,12,28),renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),window.rM
enderer=renderer,renderer.setClearColor(0,0),renderer.setClearAlpha(0),renderer.setSize(window.innerWidth,window.innerHeight),renderer.setPixelRatio(window.devicePixelRatio),renderer.shadowMap.enabled=!0,document.body.appendChild(renderer.domElement),Object.assign(renderer.domElement.style,{position:"fixed",inset:"0",width:"100%",height:"100%",zIndex:"2",background:"transparent",pointerEvents:"auto"});const e=renderer.domElement;scene.add(new THREE.AmbientLight(11184810,1.1));const t=new THREE.DirectionalLight(1677M
2812,1.5);t.position.set(80,140,60),t.castShadow=!1,scene.add(t);const a=isPhoneUI(),o=document.getElementById("jumpBtn");if(a)cameraCycleBtn.style.display="flex",pauseBtn.style.display="flex",o&&(o.style.display="flex");else{cameraCycleBtn&&(cameraCycleBtn.style.display="none"),pauseBtn&&(pauseBtn.style.display="none"),o&&(o.style.display="none");const e=document.getElementById("movePad");e&&(e.style.display="none")}const n=(e,t)=>{let a=!1;e.addEventListener("touchstart",e=>{e.preventDefault(),e.stopPropagation()M
,e.stopImmediatePropagation(),a=!0,throttleTouchId=null,steerTouchId=null,touchSteer=0,touchThrottle=0,potentialFireTouch=null,throttleIndicator.style.display="none",t()},{passive:!1}),e.addEventListener("touchend",e=>{e.preventDefault(),e.stopPropagation(),a=!1},{passive:!1}),e.addEventListener("click",e=>{a?e.preventDefault():t()})};n(cameraCycleBtn,cycleCamera),n(pauseBtn,togglePause),o&&(o.addEventListener("touchstart",e=>{e.preventDefault(),e.stopPropagation(),c(),jumpHeld||(jumpRequested=!0),jumpHeld=!0},{pasM
sive:!1}),o.addEventListener("touchend",e=>{e.preventDefault(),e.stopPropagation(),jumpHeld=!1},{passive:!1}),o.addEventListener("touchcancel",()=>{jumpHeld=!1},{passive:!0}),o.addEventListener("mousedown",e=>{e.preventDefault(),jumpHeld||(jumpRequested=!0),jumpHeld=!0}),o.addEventListener("mouseup",()=>{jumpHeld=!1}));const r=document.getElementById("teamToggleBtn");r&&n(r,()=>{c(),toggleTeam()});const s=document.getElementById("micBtn");function l(){gameStarted&&(setClubUiMode(!1),controlsEnabled=!0,blurGameInputM
s())}s&&s.addEventListener("touchstart",e=>{e.preventDefault(),e.stopPropagation(),c()},{passive:!1}),window.addEventListener("keydown",e=>{isTypingNow()||"Space"!==e.code&&" "!==e.key&&"Spacebar"!==e.key||!gameStarted||inLobby&&!gameStarted||(e.preventDefault(),jumpHeld||(jumpRequested=!0),jumpHeld=!0,keys[" "]=!0,keys.space=!0)},!0),window.addEventListener("keydown",e=>{if(!e.key)return;if("Enter"===e.key&&document.activeElement===chatInput){e.preventDefault();const t=chatInput.value.trim();if(t){appendChatMessagM
e(myPlayerID,t);const e=JSON.stringify({type:"chat",message:t,from:myPlayerID});dcList.forEach(t=>{t&&"open"===t.readyState&&t.send(e)}),chatInput.value=""}return}const t=isTypingNow(),a=["w","a","s","d","arrowup","arrowdown","arrowleft","arrowright","shift"].indexOf((e.key||"").toLowerCase())>=0;gameStarted&&!clubUiMode&&!paused&&a&&t&&blurGameInputs(),"Space"!==e.code&&" "!==e.key&&"Spacebar"!==e.key||!gameStarted||paused||clubUiMode||t&&fieldIsVisible(document.activeElement)||(e.preventDefault(),jumpRequested=!0M
,keys[" "]=!0,keys.space=!0),previewMode||!gameStarted&&(inLobby||t)||t&&clubUiMode||t&&!a&&"Shift"!==e.key||(keys[e.key.toLowerCase()]=!0,"ShiftLeft"!==e.code&&"ShiftRight"!==e.code||(keys.shift=!0),"p"===e.key.toLowerCase()&&togglePause(),paused||previewMode||inLobby||!controlsEnabled||"c"!==e.key&&"C"!==e.key||cycleCamera(),paused&&"l"===e.key.toLowerCase()&&openLobbyFromPause(),"Escape"===e.key&&gameStarted&&(e.preventDefault(),setClubUiMode(!clubUiMode,"MENU
 ESC or Walk to return to your avatar")))}),windoM
w.addEventListener("keyup",e=>{e.key&&(keys[e.key.toLowerCase()]=!1),"ShiftLeft"!==e.code&&"ShiftRight"!==e.code||(keys.shift=!1),"Space"!==e.code&&" "!==e.key&&"Spacebar"!==e.key||(jumpHeld=!1,keys[" "]=!1,keys.space=!1)}),e.addEventListener("pointerdown",e=>{if(!gameStarted)return;const t=document.getElementById("clubDock");if(t&&t.contains(e.target))return;const a=document.getElementById("stageScreenFrame");a&&a.classList.contains("interact")&&a.contains(e.target)||l()}),e.addEventListener("click",()=>{l()}),e.aM
ddEventListener("mousedown",e=>{0===e.button&&Date.now()-lastFireTime>getFireCooldown()&&gameStarted&&!paused&&controlsEnabled&&!clubUiMode&&(fireFreezeBall(),lastFireTime=Date.now())}),window.addEventListener("mousemove",e=>{if(paused&&isDragging){const t=e.clientX-lastMouseX,a=e.clientY-lastMouseY;return orbitAzimuth-=.01*t,orbitPolar-=.01*a,orbitPolar=Math.max(.01,Math.min(Math.PI-.01,orbitPolar)),lastMouseX=e.clientX,void(lastMouseY=e.clientY)}if(!controlsEnabled||!gameStarted&&inLobby||typingChat||paused||clubM
UiMode)return;if(coarsePointer||Date.now()<ignoreMouseSteerUntil)return;let t=e.clientX/window.innerWidth*2-1,a=e.clientY/window.innerHeight*2-1;const o=.06;t=Math.abs(t)<o?0:Math.sign(t)*(Math.abs(t)-o)/.94,a=Math.abs(a)<o?0:Math.sign(a)*(Math.abs(a)-o)/.94,mouseXNormalized=THREE.MathUtils.lerp(mouseXNormalized,t,.2),mouseYNormalized=THREE.MathUtils.lerp(mouseYNormalized,a,.2),pointer.x=t,pointer.y=-a,gameStarted&&(customCursor.style.left=e.clientX+"px",customCursor.style.top=e.clientY+"px")});e.addEventListener("M
mousedown",e=>{paused&&(isDragging=!0,lastMouseX=e.clientX,lastMouseY=e.clientY,document.body.style.cursor="grabbing")}),document.addEventListener("mouseup",()=>{isDragging&&(isDragging=!1,document.body.style.cursor="grab")}),e.addEventListener("wheel",e=>{if(paused){e.preventDefault();const t=e.deltaY>0?1.1:.9;orbitRadius*=t,orbitRadius=Math.max(5,Math.min(100,orbitRadius))}},{passive:!1});const i=renderer.domElement;function c(){ignoreMouseSteerUntil=Date.now()+1200,mouseXNormalized=0,mouseYNormalized=0,coarsePoiM
nter=!0,customCursor.style.display="none"}function d(e,t){if(e>window.innerWidth-80&&t<140)return!0;const a=["jumpBtn","micBtn","teamToggleBtn","movePad","cameraCycleBtn","pauseBtn"];for(let o=0;o<a.length;o++){const n=document.getElementById(a[o]);if(!n||"none"===n.style.display)continue;const r=n.getBoundingClientRect();if(e>=r.left-8&&e<=r.right+8&&t>=r.top-8&&t<=r.bottom+8)return!0}return!1}function u(e,t){const a=document.getElementById("movePad");if(!a)return;const o=a.getBoundingClientRect(),n=o.left+o.widthM
/2,r=o.top+o.height/2;let s=(e-n)/(.42*o.width),l=(t-r)/(.42*o.height);const i=Math.hypot(s,l);i>1&&(s/=i,l/=i);padKeys.w=padKeys.a=padKeys.s=padKeys.d=0,i>.28&&(Math.abs(l)>=Math.abs(s)?l<0?padKeys.w=1:padKeys.s=1:s<0?padKeys.a=1:padKeys.d=1);const c=document.getElementById("movePadKnob");c&&(c.style.left=50+38*s+"%",c.style.top=50+38*l+"%")}function m(){padKeys.w=padKeys.a=padKeys.s=padKeys.d=0,padTouchId=null;const e=document.getElementById("movePadKnob");e&&(e.style.left="50%",e.style.top="50%")}function p(e){cM
onst t=Date.now();for(let a=0;a<e.changedTouches.length;a++){const o=e.changedTouches[a];if(o.identifier===padTouchId&&m(),o.identifier===steerTouchId){if(potentialFireTouch&&potentialFireTouch.id===o.identifier){const e=t-potentialFireTouch.startTime,a=Math.abs(o.clientX-potentialFireTouch.startX),n=Math.abs(o.clientY-potentialFireTouch.startY);if(e<220&&a<35&&n<35){const e=i.getBoundingClientRect();pointer.x=(o.clientX-e.left)/e.width*2-1,pointer.y=-(o.clientY-e.top)/e.height*2+1,Date.now()-lastFireTime>getFireCoM
oldown()&&gameStarted&&!paused&&controlsEnabled&&!clubUiMode&&(fireFreezeBall(),lastFireTime=Date.now())}potentialFireTouch=null}steerTouchId=null,touchSteer=0}}}!function(){const e=document.getElementById("movePad");if(!e||e._bound)return;e._bound=!0;const t=e=>{e.preventDefault(),e.stopPropagation();const t=e.changedTouches&&e.changedTouches[0]||e;padTouchId=null!=t.identifier?t.identifier:0,u(t.clientX,t.clientY)},a=e=>{e.preventDefault(),e.stopPropagation(),padTouchId=null,m()};e.addEventListener("touchstart",tM
,{passive:!1}),e.addEventListener("touchmove",e=>{e.preventDefault(),e.stopPropagation();const t=e.changedTouches&&e.changedTouches[0]||e;u(t.clientX,t.clientY)},{passive:!1}),e.addEventListener("touchend",a,{passive:!1}),e.addEventListener("touchcancel",a,{passive:!1}),e.addEventListener("pointerdown",t),window.addEventListener("pointerup",a)}(),i.addEventListener("touchstart",function(e){e.preventDefault();const t=Date.now();for(let a=0;a<e.changedTouches.length;a++){const o=e.changedTouches[a];if(d(o.clientX,o.cM
lientY)){c();const e=document.getElementById("movePad");if(e&&"none"!==e.style.display){const t=e.getBoundingClientRect();o.clientX>=t.left&&o.clientX<=t.right&&o.clientY>=t.top&&o.clientY<=t.bottom&&(padTouchId=o.identifier,u(o.clientX,o.clientY))}continue}coarsePointer=!0,null===steerTouchId&&(steerTouchId=o.identifier,steerTouchStartX=o.clientX,steerTouchStartY=o.clientY,touchSteer=0,potentialFireTouch={id:o.identifier,startTime:t,startX:o.clientX,startY:o.clientY})}},{passive:!1}),i.addEventListener("touchmove"M
,function(e){e.preventDefault();for(let t=0;t<e.changedTouches.length;t++){const a=e.changedTouches[t];if(a.identifier===padTouchId)u(a.clientX,a.clientY);else if(a.identifier===steerTouchId){const e=a.clientX-steerTouchStartX,t=a.clientY-steerTouchStartY;touchSteer=THREE.MathUtils.clamp(e/(.38*window.innerWidth),-1,1),mouseYNormalized=THREE.MathUtils.clamp(t/(.32*window.innerHeight),-1,1),potentialFireTouch&&(Math.abs(e)>30||Math.abs(t)>30)&&(potentialFireTouch=null)}}},{passive:!1}),i.addEventListener("touchend",M
p),i.addEventListener("touchcancel",p),window.addEventListener("resize",()=>{camera.aspect=window.innerWidth/window.innerHeight,camera.updateProjectionMatrix(),renderer.setSize(window.innerWidth,window.innerHeight)}),chatInput.addEventListener("focus",()=>{gameStarted&&!clubUiMode||(typingChat=!0,clearMoveKeys())}),chatInput.addEventListener("blur",()=>typingChat=!1),document.addEventListener("focusin",e=>{if(gameStarted&&!clubUiMode)return;const t=e.target,a=t&&t.tagName||"";("INPUT"===a||"TEXTAREA"===a||"SELECT"=M
==a||t&&t.isContentEditable)&&(typingChat=!0,clearMoveKeys())}),document.addEventListener("focusout",e=>{setTimeout(()=>{isTypingNow()||(typingChat=!1)},0)}),updateCursorForLobby()}let audioUnlockP=null,liveVoices=0;function tapDisconnect(){try{this.disconnect()}catch(e){}liveVoices=Math.max(0,liveVoices-1)}function ensureAudio(){try{if(audioContext||(audioContext=new(window.AudioContext||window.webkitAudioContext)),!audioMaster&&audioContext&&(audioMaster=audioContext.createGain(),audioMaster.gain.value=.7,audioMaM
ster.connect(audioContext.destination)),audioContext&&!sharedNoiseBuffer){const e=Math.floor(.18*audioContext.sampleRate);sharedNoiseBuffer=audioContext.createBuffer(1,e,audioContext.sampleRate);const t=sharedNoiseBuffer.getChannelData(0);for(let a=0;a<e;a++)t[a]=2*Math.random()-1}}catch(e){}return audioContext}function unlockAudio(){const e=ensureAudio();return e?"running"===e.state?Promise.resolve(e):(audioUnlockP||(audioUnlockP=e.resume().then(()=>(audioUnlockP=null,e)).catch(()=>(audioUnlockP=null,e))),audioUnlM
ockP):Promise.resolve(null)}function playFireSound(e=!1){const t=performance.now();t-lastSoundAt<55||(lastSoundAt=t,unlockAudio().then(t=>{if(!t||"running"!==t.state||!audioMaster)return;if(liveVoices>6)return;const a=t.currentTime,o=audioMaster;if(e){const e=t.createOscillator(),n=t.createGain();e.type="sawtooth",e.frequency.setValueAtTime(280,a),e.frequency.exponentialRampToValueAtTime(900,a+.22),n.gain.setValueAtTime(.55,a),n.gain.exponentialRampToValueAtTime(1e-4,a+.28),e.connect(n).connect(o),e.onended=tapDiscM
onnect,liveVoices++,e.start(a),e.stop(a+.3)}else{const e=t.createOscillator(),n=t.createGain();e.type="triangle",e.frequency.setValueAtTime(520,a),e.frequency.exponentialRampToValueAtTime(90,a+.16),n.gain.setValueAtTime(.5,a),n.gain.exponentialRampToValueAtTime(1e-4,a+.2),e.connect(n).connect(o),e.onended=tapDisconnect,liveVoices++,e.start(a),e.stop(a+.22)}}))}function playHitSound(){unlockAudio().then(e=>{if(!e||"running"!==e.state||!audioMaster)return;if(liveVoices>6)return;const t=e.currentTime,a=e.createOscillaM
tor(),o=e.createGain();a.type="sine",a.frequency.setValueAtTime(110,t),o.gain.setValueAtTime(.6,t),o.gain.exponentialRampToValueAtTime(1e-4,t+.22),a.connect(o).connect(audioMaster),a.onended=tapDisconnect,liveVoices++,a.start(t),a.stop(t+.24)})}function cycleCamera(){throttleTouchId=null,steerTouchId=null,touchSteer=0,touchThrottle=0,throttleIndicator.style.display="none","chase"===cameraMode?(cameraMode="chase-far",hudVisible=!0):"chase-far"===cameraMode?(cameraMode="fpv",hudVisible=!0):(cameraMode="chase",hudVisiM
ble=!0);const e=document.getElementById("camMode");if(e){const t="chase-far"===cameraMode?"CHASE FAR":"fpv"===cameraMode?"FIRST PERSON":"CHASE";e.textContent=t}document.getElementById("hud").style.display=hudVisible?"block":"none",chatContainer&&(chatContainer.style.display="none"),scoreboard&&(scoreboard.style.display="none"),cpIndicator&&(cpIndicator.style.display="none");"cockpit"===cameraMode||"cockpit-fpv"===cameraMode?(camera.fov=90,playerModel&&(playerModel.visible=!1)):(camera.fov=90,playerModel&&(playerModM
el.visible=!0)),camera.updateProjectionMatrix()}function updateHostPlayerList(){const e=document.getElementById("hostPlayerList");if(!e)return;let t=`<div style="color:#0ff;"><strong>Host:</strong> ${myPlayerID||"
"}</div>`;0===remotePlayers.size?t+='<div style="color:#888;margin-top:4px;">No remote players yet</div>':remotePlayers.forEach((e,a)=>{const o="red"===e.team?' <span style="color:#f44">[RED]</span>':"blue"===e.team?' <span style="color:#48f">[BLUE]</span>':"";t+=`<div style="margin-top:2px;">${a}${o}</M
div>`}),e.innerHTML=t}function openLobbyFromPause(){const e=document.getElementById("p2p-lobby");if(!e)return;e.style.display="flex";const t=document.getElementById("liveGamesContainer");if(t&&(t.style.display="block"),searchLiveGames(),isHost){const e=document.getElementById("lobbyHostControls");e&&(e.style.display="block"),updateHostPlayerList()}const a=document.getElementById("lobbyReturnToGameBtn");a&&(a.style.display=gameStarted?"block":"none");const o=document.getElementById("lobbyStartBtn");o&&(o.style.displM
ay=gameStarted?"none":"block"),updateCursorForLobby()}function togglePause(){if(throttleTouchId=null,steerTouchId=null,touchSteer=0,touchThrottle=0,throttleIndicator.style.display="none",paused=!paused,paused){orbitTarget.copy(car.pos),orbitTarget.y+=3.5;const e=(new THREE.Vector3).subVectors(camera.position,orbitTarget),t=(new THREE.Spherical).setFromVector3(e);orbitRadius=t.radius,orbitPolar=t.theta,orbitAzimuth=t.phi,customCursor.style.display="none",document.body.style.cursor="grabbing";const a=document.getElemM
entById("camMode");a&&(a.textContent="ORBIT"),pauseHint.style.display="block",pauseRulesBtn.style.display="block"}else{customCursor.style.display="block",document.body.style.cursor="none";const e=document.getElementById("camMode");e&&(e.textContent=cameraMode.toUpperCase()),pauseHint.style.display="none",pauseRulesBtn.style.display="none",document.getElementById("hud").style.display=hudVisible?"block":"none",chatContainer&&(chatContainer.style.display="none"),scoreboard&&(scoreboard.style.display="none"),cpIndicatoM
r&&(cpIndicator.style.display="none")}updateCursorForLobby()}function createProjectile(e,t,a,o=!1){const n=new THREE.SphereGeometry(3.8,14,14),r=o?16729088:7851263,s=o?11149824:2250154,l=new THREE.MeshPhongMaterial({color:r,emissive:s,emissiveIntensity:1.8,shininess:92,specular:o?16755200:11206655}),i=new THREE.Mesh(n,l);i.position.copy(e);const c=new THREE.Mesh(new THREE.SphereGeometry(5.2,12,12),new THREE.MeshBasicMaterial({color:o?16746496:8969727,transparent:!0,opacity:.35}));return i.add(c),scene.add(i),{mesh:M
i,vel:t.clone(),owner:a,startPos:e.clone(),createdAt:Date.now(),isLava:o}}function fireFreezeBall(){if(!cart||!gameStarted||paused)return;raycaster.setFromCamera(pointer,camera);const e=raycaster.ray.direction.clone().normalize(),t=new THREE.Vector3(0,0,-1).applyQuaternion((new THREE.Quaternion).setFromAxisAngle(new THREE.Vector3(0,1,0),car.rotation)).clone().multiplyScalar(7).add(new THREE.Vector3(0,4,0)),a=car.pos.clone().add(t),o=e.multiplyScalar(405).clone().add(car.vel),n=hasLavaPower,r=createProjectile(a,o,myM
PlayerID,n);projectiles.push(r),playFireSound(n),playThrowAnim(),n&&(hasLavaPower=!1,updateChargeMeterUI()),dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"fireFreeze",pos:{x:a.x,y:a.y,z:a.z},vel:{x:o.x,y:o.y,z:o.z},owner:myPlayerID,isLava:n}))})}function updateProjectiles(e){Date.now();for(let t=projectiles.length-1;t>=0;t--){const a=projectiles[t];a.vel.y+=-84*e,a.mesh.position.addScaledVector(a.vel,e);const o=getTerrainHeight(a.mesh.position.x,a.mesh.position.z);if(a.mesh.position.y<o+1M
.8){scene.remove(a.mesh),projectiles.splice(t,1);continue}if(a.mesh.position.distanceTo(a.startPos)>2550){scene.remove(a.mesh),projectiles.splice(t,1);continue}const n=a.owner===myPlayerID;let r=!1;if(n)remotePlayers.forEach((e,t)=>{if(!r&&e.mesh&&a.mesh.position.distanceTo(e.mesh.position)<13){const e={type:"freezeHit",target:t,duration:5e3};a.isLava&&(e.isLava=!0),dcList.forEach(t=>{t&&"open"===t.readyState&&t.send(JSON.stringify(e))});const o=(scores.get(myPlayerID)||0)+1;scores.set(myPlayerID,o),dcList.forEach(M
e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"scoreUpdate",id:myPlayerID,hits:o}))}),updateScoreboard(),r=!0}});else if(a.mesh.position.distanceTo(car.pos)<13){(!a.createdAt||Date.now()-a.createdAt>180)&&(a.isLava?applyLavaHit():applyFreezeHit(5e3),r=!0)}r&&(scene.remove(a.mesh),projectiles.splice(t,1))}}function ensureCart(){return cart||(cart=new THREE.Group,cart.visible=!1,scene&&scene.add(cart),cart)}function updatePhysics(e){if(!gameStarted||paused||clubUiMode)return;if(controlsEnabled=!0,inLobby=M
!1,typingChat=!1,ensureCart(),"club"===gameMode){const e=Math.hypot(car.pos.x,car.pos.z);if(e>CLUB_FLOOR_R-8){const t=(CLUB_FLOOR_R-8)/e;car.pos.x*=t,car.pos.z*=t;const a=car.pos.x/(CLUB_FLOOR_R-8),o=car.pos.z/(CLUB_FLOOR_R-8),n=car.vel.x*a+car.vel.z*o;n>0&&(car.vel.x-=a*n,car.vel.z-=o*n)}const inner=(window.BOVINE_INNER||1120)-6,outer=(window.BOVINE_OUTER||1680)+6;if(e>inner&&e<outer){const mid=(inner+outer)/2,target=e<mid?inner:outer,k=target/Math.max(e,1e-3);car.pos.x*=k,car.pos.z*=k;const a=car.pos.x/target,o=cM
ar.pos.z/target,n=car.vel.x*a+car.vel.z*o;car.vel.x-=a*n,car.vel.z-=o*n}}isOnTrackXZ(car.pos.x,car.pos.z);const t=Date.now()<slowEndTime;!t&&consecutiveFreezeHits>0&&Date.now()>slowEndTime+400&&(consecutiveFreezeHits=0);const a=t?.3:1,o=!!(keys.w||keys.arrowup||padKeys.w),n=!!(keys.s||keys.arrowdown||padKeys.s),r=!!(keys.a||keys.arrowleft||padKeys.a),s=!!(keys.d||keys.arrowright||padKeys.d);padRamp=o?Math.min(1,padRamp+e/1.15):Math.max(0,padRamp-2.2*e);const l=n&&!o?1:0;let i=o?1:0,c=keys.shift||keys.shiftleft||keyM
s.shiftright?1:0;padKeys.w&&(c=padRamp);const d=20*a,u=1*d,m=d+(58*a-d)*(c?1===c?1:c:0);jumpRequested&&car.onGround&&(car.vel.y="club"===gameMode?67:110,car.onGround=!1,jumpStartY=car.pos.y,jumpStartAt=Date.now()),jumpRequested=!1;let p=0;null!==steerTouchId?p=touchSteer:!coarsePointer&&Date.now()>ignoreMouseSteerUntil&&(p=mouseXNormalized),Math.abs(p)<.05&&(p=0);const y=-1*p,h=new THREE.Vector3(0,0,-1).applyAxisAngle(new THREE.Vector3(0,1,0),car.rotation),f=new THREE.Vector3(1,0,0).applyAxisAngle(new THREE.Vector3M
(0,1,0),car.rotation);let g=car.vel.dot(h),b=car.vel.dot(f);const E=3.6*Math.abs(g);let M=1;if(E>180){const e=THREE.MathUtils.clamp((E-180)/80,0,1);M=THREE.MathUtils.lerp(.18/.42,1,e*e)}const S="club"===gameMode?1.25:1;if(g*=i?.993:.78,b*=.42*M,Math.abs(b)>.5555555555555556&&Math.abs(y)<.4){const t=-Math.sign(b);car.rotation+=.18*t*Math.min(.4*Math.abs(b),1.8)*e}{const t=THREE.MathUtils.clamp(1.52*mouseYNormalized+.22,-.88,1.55);car.pitch=THREE.MathUtils.lerp(car.pitch,t,Math.min(1,1.85*e))}g+=i*(36*a)*(1+(c?.55*("M
number"==typeof c?c:1):0))*1*e;const w=(s?1:0)-(r?1:0);w&&(b+=72*w*e),b=THREE.MathUtils.clamp(b,-u,u),l&&(g>.5555555555555556?g-=25*e*1:(g-=12.5*e*1,g=Math.max(g,-u))),g=THREE.MathUtils.clamp(g,n?-u:REVERSE_MAX,m);const T=1.7*(1-.12*Math.min(1,Math.abs(g)/Math.max(1,m)));car.rotation+=y*T*1.35*S*e;const v=car.vel.y;car.vel=h.multiplyScalar(g).add(f.multiplyScalar(b));let C="club"===gameMode?-39:-250;!car.onGround&&jumpHeld&&v>0&&car.pos.y-jumpStartY<("club"===gameMode?120:280)&&Date.now()-jumpStartAt<("club"===gameM
Mode?1500:1400)?(C="club"===gameMode?-10:-30,car.vel.y=Math.min("club"===gameMode?72:380,v+("club"===gameMode?18:160)*e+C*e)):car.vel.y=v+C*e,car.pos.y-jumpStartY>280&&car.vel.y>0&&(car.vel.y*=.25);const I=car.vel.clone().multiplyScalar(e);let P=car.pos.clone().add(I);const R=getDriveSurfaceHeight(P.x,P.z,car.pos.y)+.04;P.y<=R+.2?(P.y=R,car.vel.y=0,car.onGround=!0):car.onGround=!1;const H="club"===gameMode?4.2:12,L="club"===gameMode?.06:.18;for(let e=0;e<2;e++)for(let e=0;e<solidBoxes.length;e++){const t=solidBoxesM
[e],a=void 0!==t.halfXZ?t.halfXZ:t.half,o=void 0!==t.halfX?t.halfX:a,n=void 0!==t.halfZ?t.halfZ:a,r=void 0!==t.halfY?t.halfY:t.half,s=t.y+r,l=t.y-r,i=Math.abs(P.x-t.x),c=Math.abs(P.z-t.z),d=t.soft?7:t.isBridge?10:H,u=void 0!==t.rubber?t.rubber:t.soft?.35:t.isBridge?.22:L;if(!t.noLand&&i<=o&&c<=n&&P.y>=s-10&&car.vel.y<=40){P.y<=s+2.5&&(P.y=s+.05,car.onGround=!0,car.vel.y<0&&(car.vel.y=0));continue}if(P.y+8<=l||P.y-2>=s)continue;const m=Math.max(t.x-o,Math.min(t.x+o,P.x)),p=Math.max(t.z-n,Math.min(t.z+n,P.z));let y=PM
.x-m,h=P.z-p,f=Math.hypot(y,h);if(f<1e-6&&(o-i<n-c?(y=P.x>=t.x?1:-1,h=0,f=1,P.x=t.x+y*(o+d)):(y=0,h=P.z>=t.z?1:-1,f=1,P.z=t.z+h*(n+d))),f>0&&f<d){const e=y/f,t=h/f,a=d-f;P.x+=e*a,P.z+=t*a;const o=car.vel.x*e+car.vel.z*t;o<0&&(car.vel.x-=(1+u)*o*e,car.vel.z-=(1+u)*o*t)}}"club"===gameMode&&"function"==typeof resolveClubMeshWalls&&(P=resolveClubMeshWalls(car.pos,P)),remotePlayers.forEach((e,t)=>{if(!e.mesh)return;if(P.distanceTo(e.mesh.position)<14){const t=P.clone().sub(e.mesh.position).normalize();car.vel.addScaledVM
ector(t,24),e.lastState&&e.lastState.pos.addScaledVector(t,-24)}});let x=P.clone();for(let e=0;e<4;e++){const e=(new THREE.Box3).setFromCenterAndSize(x,new THREE.Vector3(15,14,15));let t=!1;for(let a of colliders){a.updateMatrixWorld();const o=(new THREE.Box3).setFromObject(a);if(e.intersectsBox(o)){t=!0;let n=new THREE.Vector3;if(a.userData&&a.userData.wallNormal)n.copy(a.userData.wallNormal);else{const t=new THREE.Vector3;e.getCenter(t);const a=new THREE.Vector3;o.getCenter(a),n.subVectors(t,a).normalize()}const M
r=car.onGround?.8:.8*2.2;x.addScaledVector(n,r);const s=car.vel.dot(n);if(s<0){const e=n.clone().multiplyScalar(.35*-s),t=car.vel.clone().sub(n.clone().multiplyScalar(s)).multiplyScalar(.98);car.vel.copy(t).add(e)}break}}if(!t)break}car.pos.copy(x),cart.position.copy(car.pos),cart.rotation.order="YXZ",cart.rotation.y=car.rotation+POD_YAW_OFFSET,cart.rotation.x=car.pitch||0;const k=Math.max(0,Math.min(1,(E-50)/450));cart.rotation.z=car.onGround?-.34*y*k:THREE.MathUtils.lerp(cart.rotation.z,0,Math.min(1,6*e));const DM
=Math.round(E),B=document.getElementById("speed");if(B&&(B.textContent=D),lastFwdVel=g,lavaPatches.forEach(e=>{const t=car.pos.x-e.pos.x,a=car.pos.z-e.pos.z,o=Math.hypot(t,a),n=e.radius||28,r=Math.abs(car.pos.y-e.pos.y)<35;o<n&&r&&(hasLavaPower||(hasLavaPower=!0,updateChargeMeterUI()))}),Math.random()<.62){const e=new THREE.Vector3(0,0,-1).applyAxisAngle(new THREE.Vector3(0,1,0),car.rotation).clone().multiplyScalar(-9),t=new THREE.Vector3(0,1.6,0),a=car.pos.clone().add(e).add(t);if(E>600&&car.onGround){createDustPaM
rticle(a,car.vel.clone().multiplyScalar(.25).add(new THREE.Vector3(28*(Math.random()-.5),12+22*Math.random(),28*(Math.random()-.5))),4874026)}if(!car.onGround&&"club"!==gameMode){createDustParticle(a,new THREE.Vector3(32*(Math.random()-.5),-18-25*Math.random(),32*(Math.random()-.5)),Math.random()>.6?11206655:7851263)}}const A=Date.now();if("ctf"===gameMode)return void updateCtfGameplay();if(!flagPoleMesh)return;const F=new THREE.Vector3(flagPoleMesh.position.x,getTerrainHeight(flagPoleMesh.position.x,flagPoleMesh.pM
osition.z)+8,flagPoleMesh.position.z);if(flagHolder===myPlayerID&&0===myLapStartTime&&(myLapStartTime=A,myLapPausedTime=0,myLapIsPaused=!1),flagHolder!==myPlayerID&&myLapStartTime>0&&!myLapIsPaused&&(myLapPausedTime=A-myLapStartTime,myLapIsPaused=!0),flagHolder===myPlayerID&&myLapIsPaused&&(myLapStartTime=A-myLapPausedTime,myLapIsPaused=!1),flagHolder===myPlayerID)for(let e=0;e<checkpointStars.length;e++){const t=checkpointStars[e].mesh.position;car.pos.distanceTo(t)<45&&!myCompletedCheckpoints.has(e)&&myCompletedCM
heckpoints.add(e)}if(4===myCompletedCheckpoints.size){if(car.pos.distanceTo(F)<45&&flagHolder===myPlayerID){const e=((A-myLapStartTime)/1e3).toFixed(2);playerLapTimes.set(myPlayerID,e),myLaps++,playerLaps.set(myPlayerID,myLaps),myCompletedCheckpoints.clear(),flagHolder=null,droppedFlagPos=null,flagCooldown=A+3e3,stealCooldown=A+1500,consecutiveFreezeHits=0,dcList.forEach(t=>{t&&"open"===t.readyState&&(t.send(JSON.stringify({type:"flagUpdate",holder:null,dropPos:null,cooldown:flagCooldown,stealCooldown:stealCooldownM
})),t.send(JSON.stringify({type:"lapUpdate",id:myPlayerID,laps:myLaps,lapTime:e})))}),updateFlagVisual(),updateScoreboard(),myLapStartTime=0}}if(null===flagHolder&&A>flagCooldown&&A>stealCooldown){const e=droppedFlagPos||F;car.pos.distanceTo(e)<45&&(flagHolder=myPlayerID,droppedFlagPos=null,myLapStartTime=A,myLapIsPaused=!1,consecutiveFreezeHits=0,dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"flagUpdate",holder:myPlayerID,dropPos:null,cooldown:flagCooldown,stealCooldown:stealCooldown}))}M
),updateFlagVisual(),updateScoreboard())}else if(flagHolder!==myPlayerID&&A>stealCooldown){let e=!1;const t=remotePlayers.get(flagHolder);if(t&&(e=Date.now()<(t.lastState.slowEndTime||0)),e){const e=t?t.mesh:null;if(e){car.pos.distanceTo(e.position)<28&&(flagHolder=myPlayerID,myLapStartTime=A,stealCooldown=A+1500,dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"flagUpdate",holder:myPlayerID,cooldown:flagCooldown,stealCooldown:stealCooldown}))}),updateFlagVisual(),updateScoreboard())}}}}funcM
tion updateCamera(){if(!cart&&!minionRoot&&!playerModel)return;document.getElementById("stageScreenFrame");if(skyDome&&skyDome.position.set((paused?orbitTarget:car.pos).x,0,(paused?orbitTarget:car.pos).z),paused){const e=new THREE.Vector3;return e.setFromSphericalCoords(orbitRadius,orbitPolar,orbitAzimuth),e.add(orbitTarget),camera.position.copy(e),void camera.lookAt(orbitTarget)}const e=(new THREE.Quaternion).setFromEuler(new THREE.Euler(0,car.rotation,0,"YXZ"));minionRoot&&(minionRoot.visible="fpv"!==cameraMode),M
playerModel&&(playerModel.visible="fpv"!==cameraMode);const t="number"==typeof mouseXNormalized?mouseXNormalized:0,a="number"==typeof mouseYNormalized?mouseYNormalized:0;if("fpv"===cameraMode){const o=new THREE.Vector3(0,10.8,-2.8).applyQuaternion(e);camera.position.copy(car.pos.clone().add(o));const n=new THREE.Vector3(48*t,12.5+85*-a+8,-50).applyQuaternion(e);camera.lookAt(car.pos.clone().add(n))}else{const o="chase-far"===cameraMode,n=new THREE.Vector3(0,o?20:12.2,o?28:16.5).applyQuaternion(e);let r=car.pos.x+n.M
x,s=car.pos.z+n.z,l=car.pos.y+n.y;camera.position.x+=.22*(r-camera.position.x),camera.position.z+=.22*(s-camera.position.z),camera.position.y+=.28*(l-camera.position.y);const i=car.pos.clone().add(new THREE.Vector3(t*(o?52:38),(o?14:12.5)+-a*(o?78:68)+7,o?-36:-26).applyQuaternion(e));camera.lookAt(i)}}function decodeSDP(e){const t=e.trim().replace(/[\r\n]+/g,"").match(/^([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),(.*)$/);if(!t)throw new Error("Invalid token");const a=t[1],o=t[2],n=t[3],r=t[4];let s=t[5];const l=t[6]||"M
";64===s.length&&/^[0-9A-Fa-f]{64}$/.test(s)&&(s=s.match(/.{2}/g).join(":").toUpperCase());const i=l?l.split("|").map(e=>e.trim()).filter(e=>e.length>0):[],c="A"===a?"active":"actpass";let d=`v=0\r\no=- ${Date.now()} 2 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\na=setup:${c}\r\na=ice-ufrag:${n}\r\na=ice-pwd:${r}\r\na=fingerprint:sha-256 ${s}\r\n`;return i.forEach(e=>d+=`aM
=candidate:${e}\r\n`),d+="a=end-of-candidates\r\n",{sdp:d,username:o}}function encodeSDP(e,t,a){const o=e.split("\r\n");let n="",r="",s="";const l=[];for(const e of o)e.startsWith("a=ice-ufrag:")&&(n=e.slice(12)),e.startsWith("a=ice-pwd:")&&(r=e.slice(10)),e.startsWith("a=fingerprint:sha-256 ")&&(s=e.slice(22).replace(/:/g,"")),e.startsWith("a=candidate:")&&l.push(e.slice(12));return`${"offer"===t?"O":"A"},${a},${n},${r},${s},${l.join("|")}`}async function waitForIceGathering(e){return new Promise(t=>{if("complete"M
===e.iceGatheringState)return t();const a=()=>{e.removeEventListener("icegatheringstatechange",a),t()};e.addEventListener("icegatheringstatechange",a),setTimeout(a,12e3)})}function broadcastToAll(e,t=null){dcList.forEach(a=>{a!==t&&"open"===a.readyState&&a.send(e)})}function sendFullState(){const e={type:"fullState",mapId:currentMapId,gameMode:gameMode,players:{}};e.players[myPlayerID]={charId:myCharId,team:myTeam,isHost:!!isHost,pos:{x:car.pos.x,y:car.pos.y,z:car.pos.z},rot:car.rotation,laps:playerLaps.get(myPlayeM
rID)||0,lapTime:playerLapTimes.get(myPlayerID)||0,hits:scores.get(myPlayerID)||0},remotePlayers.forEach((t,a)=>{e.players[a]={charId:t.charId,team:t.team,pos:{x:t.lastState.pos.x,y:t.lastState.pos.y,z:t.lastState.pos.z},rot:t.lastState.podRot||0,laps:playerLaps.get(a)||0,lapTime:playerLapTimes.get(a)||0,hits:scores.get(a)||0}});const t=JSON.stringify(e);dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(t)}),lastFullStateSent=Date.now()}function setupDataChannel(e){-1===dcList.indexOf(e)&&dcList.push(e),e.onclose=M
()=>{e._peerId&&removeRemotePlayer(e._peerId)},e.onerror=()=>{},e.onopen=async()=>{connected=!0;const t=document.getElementById("lobby-status");if(t&&(t.innerHTML=isHost?`<span style="color:#0f0;">Player connected
 ${1+remotePlayers.size} total</span>`:"Connected
 waiting for host map
"),isHost&&updateHostPlayerList(),currentMapId="club-hall",gameMode="club",readMyCharIdFromInput(),e.send(JSON.stringify({type:"init",charId:myCharId,id:myPlayerID,team:myTeam,gameMode:gameMode,mapId:currentMapId,isHost:!!iM
sHost,pos:{x:car.pos.x||0,y:2.2,z:car.pos.z||-1300},rot:car.rotation||0})),isHost&&(e.send(JSON.stringify({type:"mapSync",mapId:"club-hall",gameMode:"club"})),syncClubStateTo(e)),"ctf"===gameMode&&(broadcastTeam(),broadcastCtfFlags()),multiplayerMode=!0,startNetKeepalive(),voiceOn&&e._peerId&&offerVoice(e._peerId),!isHost){const t=readMyCharIdFromInput(),a=await loadSkinnedMinion(t);a&&(playerModel=a,attachCharacterToPod(playerModel)),document.getElementById("p2p-lobby").style.display="none",e.send(JSON.stringify({M
type:"mapRequest"})),pendingGuestStart=!0,setTimeout(()=>{pendingGuestStart&&(pendingGuestStart=!1,startGame())},4e3)}},e.onmessage=t=>{try{const a=JSON.parse(t.data);if(a.id&&a.id!==myPlayerID){const t=!e._peerId;e._peerId=a.id,t&&(getVoicePc(a.id),getSharePc(a.id),isHost?(ensureHostBroadcast(a.id),localShareStream&&offerShare(a.id)):sendToPeer(a.id,{type:"voiceHello"}))}if(a.type&&0===String(a.type).indexOf("share")&&"shareRepair"!==a.type)return isHost&&a.to&&a.to!==myPlayerID?void dcList.forEach(e=>{if(e&&"openM
"===e.readyState&&e._peerId===a.to)try{e.send(JSON.stringify(a))}catch(e){}}):void handleShareMsg(a);if(a.type&&0===String(a.type).indexOf("voice"))return isHost&&a.to&&a.to!==myPlayerID?void dcList.forEach(e=>{if(e&&"open"===e.readyState&&e._peerId===a.to)try{e.send(JSON.stringify(a))}catch(e){}}):void handleVoiceMsg(e,a);if("function"==typeof handleClubNet&&handleClubNet(a))return void(isHost&&"speakerSync"!==a.type&&"fullState"!==a.type&&broadcastToAll(t.data,e));if("ping"===a.type){a.id&&(e._peerId=a.id);try{e.M
send(JSON.stringify({type:"pong",id:myPlayerID,t:a.t,isHost:!!isHost}))}catch(e){}return}if("pong"===a.type){if(a.id){let e=remotePlayers.get(a.id);e&&(e.lastUpdateTime=Date.now(),a.t&&(e.rtt=Date.now()-a.t),a.isHost&&(e.isHost=!0))}return}if("chat"===a.type){if(a.from===myPlayerID||seenChats.has(a.message+a.from))return;return seenChats.add(a.message+a.from),appendChatMessage(a.from,a.message),void(isHost&&broadcastToAll(t.data,e))}if("fullState"===a.type)return!isHost&&a.mapId&&applyHostMap(a.mapId,a.gameMode),ObM
ject.keys(a.players).forEach(e=>{if(e===myPlayerID)return;const t=a.players[e];let o=remotePlayers.get(e);o||(addRemotePlayer(e,t.charId,t.rot),o=remotePlayers.get(e)),o&&(o.lastState.pos.set(t.pos.x,t.pos.y,t.pos.z),o.lastState.podRot=t.rot,t.team&&(o.team=t.team,o.mesh&&attachNameTag(o.mesh,o.playerId||e,!1,o.team)),t.isHost&&(o.isHost=!0),t.charId&&t.charId!==o.charId&&updateRemoteCharacter(o,t.charId),o.lastUpdateTime=Date.now()),void 0!==t.laps&&playerLaps.set(e,t.laps),void 0!==t.lapTime&&playerLapTimes.set(eM
,t.lapTime),void 0!==t.hits&&scores.set(e,t.hits)}),void updateScoreboard();if("mapRequest"===a.type)isHost&&e.send(JSON.stringify({type:"mapSync",mapId:currentMapId,gameMode:gameMode}));else if("mapSync"===a.type)!isHost&&a.mapId&&(async()=>{await applyHostMap(a.mapId,a.gameMode),pendingGuestStart&&(pendingGuestStart=!1,startGame())})();else if("init"===a.type){if(a.id===myPlayerID)return;(async()=>{!isHost&&a.mapId&&await applyHostMap(a.mapId,a.gameMode),await addRemotePlayer(a.id,a.charId,a.rot);const e=remotePlM
ayers.get(a.id);e&&(a.team&&(e.team=a.team,e.mesh&&attachNameTag(e.mesh,e.playerId||a.id,!1,e.team)),a.isHost&&(e.isHost=!0)),!isHost&&pendingGuestStart&&(pendingGuestStart=!1,startGame())})()}else if("pos"===a.type){if(a.id===myPlayerID)return;let e=remotePlayers.get(a.id);!e&&a.id&&(addRemotePlayer(a.id,a.charId,a.rot),e=remotePlayers.get(a.id)),e&&(a.pos&&e.lastState.pos.copy(a.pos),a.anim&&(e.lastState.anim=a.anim),void 0!==a.rot&&(e.lastState.podRot=a.rot),a.charId&&a.charId!==e.charId&&updateRemoteCharacter(eM
,a.charId),void 0!==a.slowEndTime&&(e.lastState.slowEndTime=a.slowEndTime),a.isHost&&(e.isHost=!0),a.team&&(e.team=a.team,e.mesh&&attachNameTag(e.mesh,e.playerId||a.id,!1,e.team)),e.lastUpdateTime=Date.now())}else if("fireFreeze"===a.type){const e=new THREE.Vector3(a.pos.x,a.pos.y,a.pos.z),t=createProjectile(e,new THREE.Vector3(a.vel.x,a.vel.y,a.vel.z),a.owner,!!a.isLava);projectiles.push(t)}else if("freezeHit"===a.type)a.target===myPlayerID&&(a.isLava?applyLavaHit():applyFreezeHit(a.duration||5e3));else if("scoreUM
pdate"===a.type)scores.set(a.id,a.hits),updateScoreboard();else if("lapUpdate"===a.type)playerLaps.set(a.id,a.laps),void 0!==a.lapTime&&null!==a.lapTime&&playerLapTimes.set(a.id,a.lapTime),updateScoreboard();else if("flagUpdate"===a.type)flagHolder=a.holder,a.cooldown&&(flagCooldown=a.cooldown),a.stealCooldown&&(stealCooldown=a.stealCooldown),a.dropPos?droppedFlagPos=new THREE.Vector3(a.dropPos.x,a.dropPos.y,a.dropPos.z):(a.holder||null===a.dropPos)&&(droppedFlagPos=null),updateFlagVisual(),updateScoreboard();else M
if("teamUpdate"===a.type){if(a.id===myPlayerID)return;let e=remotePlayers.get(a.id);e?(e.team=a.team,e.mesh&&attachNameTag(e.mesh,e.playerId||a.id,!1,e.team),updateScoreboard()):addRemotePlayer(a.id,null,0).then(()=>{const e=remotePlayers.get(a.id);e&&(e.team=a.team,e.mesh&&attachNameTag(e.mesh,e.playerId||a.id,!1,e.team)),updateScoreboard()})}else"ctfFlagUpdate"===a.type&&(CTF.redHolder=a.redHolder||null,CTF.blueHolder=a.blueHolder||null,CTF.redDrop=a.redDrop?new THREE.Vector3(a.redDrop.x,a.redDrop.y,a.redDrop.z):M
null,CTF.blueDrop=a.blueDrop?new THREE.Vector3(a.blueDrop.x,a.blueDrop.y,a.blueDrop.z):null,a.teamScores&&(teamScores=a.teamScores),updateCtfFlagVisual(),updateCtfHud(),updateScoreboard());isHost&&"fullState"!==a.type&&broadcastToAll(t.data,e)}catch(e){}}}function poseCharacterOnPod(e){e&&(e.userData.isPlayerChar=!0,e.userData.isLordinal?(e.scale.setScalar(2.04),e.position.set(0,1.55,-.4),e.rotation.y=0):e.userData.isImageSphere?(e.scale.setScalar(1.65),e.position.set(0,2.25,-.4),e.rotation.y=-Math.PI/2):(e.scale.sM
etScalar(.8),e.position.set(0,.35,-.4),e.rotation.y=0))}async function addRemotePlayer(e,t,a){if(remotePlayers.has(e))return;const o={mesh:null,model:null,charId:t||FALLBACK_ID,playerId:e,team:null,loadGen:0,lastState:{pos:new THREE.Vector3(0,0,0),podRot:a||0,anim:"Idle",slowEndTime:0},lastUpdateTime:Date.now()};remotePlayers.set(e,o),scores.set(e,0),playerLaps.set(e,0),updatePlayerCount();const n=new THREE.Group;n.visible=!0,scene.add(n),o.mesh=n,o.loadGen+=1;const r=o.loadGen,s=await loadSkinnedMinion(o.charId,{lM
ocal:!1});if(remotePlayers.has(e)&&remotePlayers.get(e)===o&&o.loadGen===r){for(;n.children.length;)n.remove(n.children[0]);s&&s!==minionRoot&&s!==playerModel&&(s.parent&&s.parent.remove(s),s.position.set(0,0,0),s.rotation.set(0,0,0),s.scale.setScalar(5.69),n.scale.set(1,1,1),n.add(s),o.model=s,attachNameTag(n,e,!1,o.team)),updateScoreboard()}else s&&s.parent&&s.parent.remove(s)}async function updateRemoteCharacter(e,t){if(!e||!t||e.charId===t)return;e.charId=t,e.loadGen=(e.loadGen||0)+1;const a=e.loadGen;if(e.meshM
)for(;e.mesh.children.length;)e.mesh.remove(e.mesh.children[0]);e.model=null;const o=await loadSkinnedMinion(t,{local:!1});o&&e.loadGen===a&&e.charId===t&&e.mesh?(o.position.set(0,0,0),o.rotation.set(0,0,0),o.scale.setScalar(5.69),e.mesh.scale.set(1,1,1),e.mesh.add(o),e.model=o,attachNameTag(e.mesh,e.playerId||"Racer",!1,e.team)):o&&o.parent&&o.parent.remove(o)}function updatePlayerCount(){document.getElementById("playerCount").textContent=1+remotePlayers.size}function updateScoreboard(){if("club"===gameMode)returnM
 void(scoreboard&&(scoreboard.style.display="none"));let e="";if("ctf"===gameMode){e+=`<div style="color:#f44">RED ${teamScores.red}</div>`,e+=`<div style="color:#48f">BLUE ${teamScores.blue}</div>`,e+='<hr style="border-color:#0f03">';const t=(t,a)=>{const o=scores.get(t)||0,n="red"===a?"#f44":"blue"===a?"#48f":"#aaa";let r="";CTF.redHolder===t&&(r=' <span style="color:#f66">
 RED FLAG</span>'),CTF.blueHolder===t&&(r=' <span style="color:#6af">
 BLUE FLAG</span>'),e+=`<div><span style="color:${n}">[${(a||"?").M
toUpperCase()}]</span> <strong>${t}</strong>: ${o} hits${r}</div>`};t(myPlayerID,myTeam),remotePlayers.forEach((e,a)=>t(a,e.team))}else{const t=new Set([myPlayerID,...remotePlayers.keys()]);scores.forEach((e,a)=>t.add(a)),t.forEach(t=>{const a=scores.get(t)||0,o=playerLaps.get(t)||0,n=playerLapTimes.get(t)||0;e+=`<div><strong>${t}</strong>: ${a} hits | ${o} laps${flagHolder===t?' <span style="color:#0ff">
 FLAG</span>':""} <span style="color:#0ff;">${n}s</span></div>`})}scoreList.innerHTML=e||'<div style="color:#M
666;">No hits or laps yet</div>',scoreboard.style.display=hudVisible?"block":"none"}function updateRemotePlayers(){const e=MAP_DEFS[currentMapId]||{},t=e.fog&&null!=e.fogPlayerDist?e.fogPlayerDist:null;remotePlayers.forEach(e=>{if(!e.mesh||!e.lastState||!e.lastState.pos)return;const a=e.mesh.position.distanceTo(e.lastState.pos);if(a>120)e.mesh.position.copy(e.lastState.pos);else{const t=a>40?.5:a>12?.38:.28;e.mesh.position.lerp(e.lastState.pos,t)}const o=(e.lastState.podRot||0)+Math.PI;if(e.mesh.rotation.y=THREE.MaM
thUtils.lerp(e.mesh.rotation.y||0,o,.35),e.model&&(playAnimOn(e.model,e.lastState.anim||"Idle"),e.model.userData.mixer&&e.model.userData.mixer.update(.016)),null!=t&&car&&car.pos){const a=e.mesh.position.distanceTo(car.pos);e.mesh.visible=a<=t}else e.mesh.visible=!0})}function appendChatMessage(e,t){const a=document.createElement("div");a.className="chat-msg",a.innerHTML=`<strong>${e}:</strong> ${t}`,chatMessages.appendChild(a),chatMessages.scrollTop=chatMessages.scrollHeight}function dropFlagAtWorld(e){if(flagHoldM
er!==myPlayerID)return;const t=e&&e.clone?e.clone():new THREE.Vector3(e&&e.x||car.pos.x,e&&e.y||car.pos.y,e&&e.z||car.pos.z);t.y=getTerrainHeight(t.x,t.z)+14,droppedFlagPos=t,flagHolder=null;const a=Date.now();flagCooldown=a+900,stealCooldown=a+1500,dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"flagUpdate",holder:null,dropPos:{x:t.x,y:t.y,z:t.z},cooldown:flagCooldown,stealCooldown:stealCooldown}))}),updateFlagVisual(),updateScoreboard()}function applyLavaHit(){"ctf"===gameMode?(CTF.redHoM
lder===myPlayerID&&dropCtfFlag("red",car.pos),CTF.blueHolder===myPlayerID&&dropCtfFlag("blue",car.pos)):flagHolder===myPlayerID&&dropFlagAtWorld(car.pos),consecutiveFreezeHits=0;const e=getSpawnPos();car.pos.copy(e),car.vel.set(0,0,0),car.rotation=0,car.pitch=0,playHitSound()}function applyFreezeHit(e){slowEndTime=Date.now()+(e||5e3),playHitSound(),consecutiveFreezeHits++,consecutiveFreezeHits>=3&&(consecutiveFreezeHits=0,applyLavaHit())}function updateFlagVisual(){heldFlagMesh&&heldFlagMesh.parent&&heldFlagMesh.paM
rent.remove(heldFlagMesh),null===flagHolder?(flagMesh&&(flagMesh.visible=!0,droppedFlagPos?flagMesh.position.copy(droppedFlagPos):flagHomePos&&flagMesh.position.copy(flagHomePos)),heldFlagMesh&&(heldFlagMesh.visible=!1)):(flagMesh&&(flagMesh.visible=!1),flagHolder===myPlayerID&&cart&&heldFlagMesh?(cart.add(heldFlagMesh),heldFlagMesh.position.set(0,18,0),heldFlagMesh.rotation.y=Math.PI/2,heldFlagMesh.visible=!0):heldFlagMesh&&remotePlayers.forEach((e,t)=>{t===flagHolder&&e.mesh&&(e.mesh.add(heldFlagMesh),heldFlagMesM
h.position.set(0,18,0),heldFlagMesh.rotation.y=Math.PI/2,heldFlagMesh.visible=!0)})),updateScoreboard()}function isHoldingAnyFlag(){return"ctf"===gameMode?CTF.redHolder===myPlayerID||CTF.blueHolder===myPlayerID:flagHolder===myPlayerID}function countTeams(){let e=0,t=0;return"red"===myTeam?e++:"blue"===myTeam&&t++,remotePlayers.forEach(a=>{"red"===a.team?e++:"blue"===a.team&&t++}),{red:e,blue:t}}function assignBalancedTeam(){const{red:e,blue:t}=countTeams();return e<=t?"red":"blue"}function broadcastTeam(){const e=JM
SON.stringify({type:"teamUpdate",id:myPlayerID,team:myTeam});dcList.forEach(t=>{t&&"open"===t.readyState&&t.send(e)})}function broadcastCtfFlags(){if("ctf"!==gameMode)return;const e=JSON.stringify({type:"ctfFlagUpdate",redHolder:CTF.redHolder,blueHolder:CTF.blueHolder,redDrop:CTF.redDrop?{x:CTF.redDrop.x,y:CTF.redDrop.y,z:CTF.redDrop.z}:null,blueDrop:CTF.blueDrop?{x:CTF.blueDrop.x,y:CTF.blueDrop.y,z:CTF.blueDrop.z}:null,teamScores:teamScores});dcList.forEach(t=>{t&&"open"===t.readyState&&t.send(e)})}function updateM
CtfHud(){const e=document.getElementById("ctfHud"),t=document.getElementById("teamToggleBtn");if("ctf"!==gameMode||!gameStarted)return e&&(e.style.display="none"),void(t&&(t.style.display="none"));e&&(e.style.display="block"),t&&(t.style.display="block");const a=document.getElementById("ctfScoreLine"),o=document.getElementById("ctfTeamLine");if(a&&(a.innerHTML=`<span style="color:#f44">RED ${teamScores.red}</span>
 <span style="color:#48f">BLUE ${teamScores.blue}</span>`),o){const e="red"===myTeam?"#f44":"#48f";M
o.innerHTML=`Team: <span style="color:${e};font-weight:bold">${(myTeam||"
").toUpperCase()}</span>`}}function toggleTeam(){if("ctf"===gameMode&&gameStarted){if(isHoldingAnyFlag()){const e=document.getElementById("ctfTeamLine");return void(e&&(e.textContent="Can't switch team while holding a flag!"))}myTeam="red"===myTeam?"blue":"red",minionRoot&&attachNameTag(minionRoot,myPlayerID,!0,myTeam),broadcastTeam(),updateCtfHud(),updateScoreboard()}}function makeCtfFlagMesh(e,t){return new THREE.Mesh(new THREE.PlaneGeomeM
try(22,16),new THREE.MeshPhongMaterial({color:e,side:THREE.DoubleSide,emissive:t,emissiveIntensity:3,transparent:!0,opacity:.95}))}function makeCtfPole(e){return new THREE.Mesh(new THREE.CylinderGeometry(2.2,2.2,240,8),new THREE.MeshPhongMaterial({color:e,emissive:e,emissiveIntensity:1.5}))}function clearCtfObjects(){["redPole","bluePole","redFlagMesh","blueFlagMesh","heldRedMesh","heldBlueMesh"].forEach(e=>{const t=CTF[e];t&&(t.parent&&t.parent.remove(t),scene.remove(t)),CTF[e]=null}),CTF.redHolder=CTF.blueHolder=M
null,CTF.redDrop=CTF.blueDrop=null,CTF.redHome=CTF.blueHome=null}function setupCtfBases(){clearCtfObjects();const e=MAP_DEFS[currentMapId]||{},t=240;let a,o,n,r;if(e.chaosArena||e.squareWall){const t=.9*(e.outerRadiusOverride||chaosWallRadius||1400);a=t,o=t,n=-t,r=-t}else{const e=6072;a=0,o=-e,n=0,r=e}const s=getTerrainHeight(a,o),l=getTerrainHeight(n,r),i=s+120,c=l+120;CTF.redHome=new THREE.Vector3(a,s+t+8,o),CTF.blueHome=new THREE.Vector3(n,l+t+8,r),CTF.redPole=makeCtfPole(16720418),CTF.redPole.position.set(a,i,oM
),scene.add(CTF.redPole),CTF.bluePole=makeCtfPole(2254591),CTF.bluePole.position.set(n,c,r),scene.add(CTF.bluePole),CTF.redFlagMesh=makeCtfFlagMesh(16724787,16711680),CTF.redFlagMesh.position.copy(CTF.redHome),scene.add(CTF.redFlagMesh),CTF.blueFlagMesh=makeCtfFlagMesh(3377407,17663),CTF.blueFlagMesh.position.copy(CTF.blueHome),scene.add(CTF.blueFlagMesh),CTF.heldRedMesh=makeCtfFlagMesh(16724787,16711680),CTF.heldRedMesh.visible=!1,CTF.heldBlueMesh=makeCtfFlagMesh(3377407,17663),CTF.heldBlueMesh.visible=!1,CTF.redHM
older=null,CTF.blueHolder=null,CTF.redDrop=null,CTF.blueDrop=null,teamScores={red:0,blue:0}}async function buildChaosScatterProps(){const e=MAP_DEFS[currentMapId]||{};if(!e.chaosArena||!e.scatterModels||!e.scatterModels.length)return;const t=e.scatterModels,a=e.scatterCount||20,o=e.scatterNearFlag||4,n={};for(const e of t)try{const t=await loadGltfById(e);t&&(n[e]=t)}catch(e){}const r=t.filter(e=>n[e]);if(!r.length)return;const s=.9*(e.outerRadiusOverride||chaosWallRadius||1400),l=(e,t,o,l,i,c)=>{const d=r[e%r.lengM
th],u=n[d];if(!u)return;const m=u.clone(!0),p=(Math.max(1,a-1),l+e%20/19*(i-l)),y=(e%2==0?1:-1)*c*(.25+7*e%10/10)*s,h=o*(1-p),f=t*(1-p)+y*(0!==o&&Math.sign(o)||1)*.55,g=h-y*(0!==t&&Math.sign(t)||1)*.55,b=getTerrainHeight(f,g),E=18+e%3*6;m.position.set(f,b,g),m.scale.set(E,E,E),m.rotation.y=.97*e%(2*Math.PI),m.traverse(e=>{e.isMesh&&e.geometry&&(e.castShadow=!0,e.receiveShadow=!0,e.raycast=THREE.Mesh.prototype.raycast,chaosRayMeshes.push(e))}),scene.add(m),mapObstacleList.push(m)};for(let e=0;e<a;e++)l(e,-s,-s,.1,.5M
5,.42);for(let e=0;e<o;e++)l(a+e,s,s,.08,.28,.3)}function updateCtfFlagVisual(){if("ctf"!==gameMode)return;CTF.redFlagMesh&&(CTF.redHolder?CTF.redFlagMesh.visible=!1:(CTF.redFlagMesh.visible=!0,CTF.redFlagMesh.position.copy(CTF.redDrop||CTF.redHome||new THREE.Vector3))),CTF.blueFlagMesh&&(CTF.blueHolder?CTF.blueFlagMesh.visible=!1:(CTF.blueFlagMesh.visible=!0,CTF.blueFlagMesh.position.copy(CTF.blueDrop||CTF.blueHome||new THREE.Vector3)));const e=(e,t)=>{if(t&&(t.parent&&t.parent.remove(t),t.visible=!1,e))if(e===myPM
layerID&&cart)cart.add(t),t.position.set(0,20,0),t.visible=!0;else{const a=remotePlayers.get(e);a&&a.mesh&&(a.mesh.add(t),t.position.set(0,20,0),t.visible=!0)}};e(CTF.redHolder,CTF.heldRedMesh),e(CTF.blueHolder,CTF.heldBlueMesh),updateScoreboard()}function dropCtfFlag(e,t){const a=t.clone?t.clone():new THREE.Vector3(t.x,t.y,t.z);if(a.y=getTerrainHeight(a.x,a.z)+14,"red"===e){if(CTF.redHolder!==myPlayerID)return;CTF.redHolder=null,CTF.redDrop=a}else{if(CTF.blueHolder!==myPlayerID)return;CTF.blueHolder=null,CTF.blueDM
rop=a}consecutiveFreezeHits=0,broadcastCtfFlags(),updateCtfFlagVisual()}function ctfReturnFlagHome(e){"red"===e?(CTF.redHolder=null,CTF.redDrop=null):(CTF.blueHolder=null,CTF.blueDrop=null),broadcastCtfFlags(),updateCtfFlagVisual()}function ctfScore(e){teamScores[e]=(teamScores[e]||0)+1,CTF.redHolder=null,CTF.blueHolder=null,CTF.redDrop=null,CTF.blueDrop=null,consecutiveFreezeHits=0,broadcastCtfFlags(),updateCtfFlagVisual(),updateCtfHud(),updateScoreboard()}function horizDist(e,t){return e&&t?Math.hypot(e.x-t.x,e.zM
-t.z):1/0}function updateCtfGameplay(){if("ctf"!==gameMode||!controlsEnabled||paused)return;myTeam||(myTeam=assignBalancedTeam(),minionRoot&&attachNameTag(minionRoot,myPlayerID,!0,myTeam));const e="red"===myTeam?"blue":"red",t="red"===myTeam?CTF.redHome:CTF.blueHome;if(!t)return;const a=e=>{const t=e+"Holder",a=e+"Drop",o=e+"Home";if(CTF[t])return;if(e===myTeam&&!CTF[a])return;let n=CTF[a]||CTF[o];if(!n){const t="red"===e?CTF.redPole:CTF.bluePole;t&&(n=t.position)}n&&horizDist(car.pos,n)<90&&(CTF[t]=myPlayerID,CTF[M
a]=null,consecutiveFreezeHits=0,broadcastCtfFlags(),updateCtfFlagVisual())};if(a(e),a(myTeam),horizDist(car.pos,t)<90){if("red"===e&&CTF.redHolder===myPlayerID||"blue"===e&&CTF.blueHolder===myPlayerID)return void ctfScore(myTeam);("red"===myTeam&&CTF.redHolder===myPlayerID||"blue"===myTeam&&CTF.blueHolder===myPlayerID)&&ctfReturnFlagHome(myTeam)}}function clearMapObstacles(){mapObstacleList.forEach(e=>{e&&e.parent&&e.parent.remove(e),e&&scene.remove(e)}),mapObstacleList=[],colliders=colliders.filter(e=>!e.userData|M
|!e.userData.isMapObstacle),mapExtraColliders.forEach(e=>{scene.remove(e)}),mapExtraColliders=[],solidBoxes=[],chaosRayMeshes=[]}["pointerdown","keydown","touchstart"].forEach(e=>{window.addEventListener(e,()=>{unlockAudio(),kickVoicePlayback()},{passive:!0})});let chaosWallRadius=1400,chaosRayMeshes=[];const chaosRaycaster=new THREE.Raycaster,chaosRayOrigin=new THREE.Vector3,chaosRayDir=new THREE.Vector3(0,-1,0);function getClubGroundHeight(e,t,a){const o=getTerrainHeight(e,t);if(!chaosRayMeshes.length)return o;coM
nst n=(null!=a&&isFinite(a)?a:o)+12;chaosRayOrigin.set(e,n,t),chaosRaycaster.set(chaosRayOrigin,chaosRayDir),chaosRaycaster.far=n-o+80;const r=chaosRaycaster.intersectObjects(chaosRayMeshes,!1);let s=o;for(let e=0;e<r.length;e++){const t=r[e].point.y;t<=n-.2&&t>s&&(s=t)}return s}function getDriveSurfaceHeight(e,t,a){const o=getTerrainHeight(e,t);if("club"===gameMode)return getClubGroundHeight(e,t,a);if(!chaosRayMeshes.length)return o;const n=null!=a&&isFinite(a)?a+40:o+200;chaosRayOrigin.set(e,n,t),chaosRaycaster.sM
et(chaosRayOrigin,chaosRayDir),chaosRaycaster.far=500;let r=chaosRaycaster.intersectObjects(chaosRayMeshes,!1);if(r.length){for(let e=0;e<r.length;e++){const t=r[e].point.y;if(t<=n+2)return Math.max(t,o)}return Math.max(r[0].point.y,o)}return chaosRayOrigin.set(e,8e3,t),chaosRaycaster.far=2e4,r=chaosRaycaster.intersectObjects(chaosRayMeshes,!1),r.length?Math.max(r[0].point.y,o):o}async function buildChaosArena(){clearMapObstacles(),clearLavaPatches(),chaosRayMeshes=[];const e={},t=await loadTextureById("7070c330076M
0fcbd1764b1daed9ed20717363e02d861ebd5f34658848e6df642i0"),a=t?new THREE.MeshStandardMaterial({map:t,roughness:.72,metalness:.08,side:THREE.DoubleSide,transparent:!1,depthWrite:!0,depthTest:!0,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1}):null,o={g3:1,g5:1,g6:1,g12:1,g13:1};for(const[t,a]of Object.entries(n))if("g4"!==t)try{const o=await loadGltfById(a);o&&(e[t]=o)}catch(e){}const n={},r=0,s=0;let l=0;[].forEach(t=>{if("g4"===t.a)return;if(t.s[0]>=8&&Math.abs(t.s[0]-t.s[1])<.05&&Math.abs(t.s[1]-t.s[2M
])<.05)return;const n=e[t.a];if(!n)return;const i=n.clone(!0),c=1*(t.p[0]-r),d=1*(t.p[2]-s),u=1*t.p[1];i.position.set(c,u,d),i.scale.set(1*t.s[0],1*t.s[1],1*t.s[2]),i.rotation.order="YXZ",i.rotation.set(t.r[0]*Math.PI/180,t.r[1]*Math.PI/180,t.r[2]*Math.PI/180),i.traverse(e=>{e.isMesh&&e.geometry&&(e.castShadow=!0,e.receiveShadow=!0,a&&o[t.a]&&(e.material=a),e.raycast=THREE.Mesh.prototype.raycast,chaosRayMeshes.push(e))}),scene.add(i),mapObstacleList.push(i),i.updateMatrixWorld(!0);const m=(new THREE.Box3).setFromObM
ject(i);if(!m.isEmpty()){[[m.min.x,m.min.z],[m.min.x,m.max.z],[m.max.x,m.min.z],[m.max.x,m.max.z]].forEach(([e,t])=>{const a=Math.hypot(e,t);a>l&&(l=a)})}"g7"===t.a&&lavaPatches.push({mesh:i,mixer:null,pos:new THREE.Vector3(c,u,d),radius:42,fromChaosProp:!0})});const i=Math.max(2200,1.05*l+80);chaosWallRadius=.5*i*1.1,MAP_DEFS["map-3"]&&(MAP_DEFS["map-3"].outerRadiusOverride=chaosWallRadius,MAP_DEFS["map-3"].squareWall=!0);const c=.98*chaosWallRadius;for(let e=mapObstacleList.length-1;e>=0;e--){const t=mapObstacleLM
ist[e];t&&t.position&&(Math.max(Math.abs(t.position.x),Math.abs(t.position.z))<=c||(scene.remove(t),mapObstacleList.splice(e,1),chaosRayMeshes=chaosRayMeshes.filter(e=>{let a=e;for(;a&&a!==t;)a=a.parent;return a!==t}),lavaPatches=lavaPatches.filter(e=>e.mesh!==t)))}}function buildSquareOuterWall(e,t){if(!t)return;t.flipY=!1;const a=[[-e,e],[e,e],[e,-e],[-e,-e],[-e,e]],o=[];for(let e=0;e<4;e++){const t=a[e][0],n=a[e][1],r=a[e+1][0],s=a[e+1][1];for(let e=0;e<100;e++){const a=e/100,l=t+(r-t)*a,i=n+(s-n)*a;o.push(new TM
HREE.Vector3(l,getTerrainHeight(l,i),i))}}o.push(o[0].clone());let n=[0],r=0;for(let e=2;e<o.length;e++){const t=o[r],a=o[e];if(a.distanceTo(t)>35){n.push(e-1),r=e-1;continue}let s=0;const l=a.clone().sub(t).clone().normalize();for(let a=r+1;a<e;a++){const e=o[a],n=e.clone().sub(t).dot(l),r=t.clone().addScaledVector(l,n),i=e.distanceTo(r);i>s&&(s=i)}s>.4&&(n.push(e-1),r=e-1)}0!==n[n.length-1]&&n.push(0);for(let e=0;e<n.length-1;e++){const a=n[e],r=n[e+1],s=o[a],l=o[r],i=s.clone().add(l).multiplyScalar(.5),c=l.cloneM
().sub(s),d=c.length();if(d<.5)continue;const u=c.clone().normalize(),m=Math.atan2(u.x,u.z)+Math.PI/2,p=new THREE.MeshStandardMaterial({map:t,roughness:.92,metalness:.08});{const e=MAP_DEFS[currentMapId]||{},t=null!=e.wallRepeatY?e.wallRepeatY:4;p.map.repeat.set(1,t)}p.map.wrapS=p.map.wrapT=THREE.RepeatWrapping,p.needsUpdate=!0;const y=new THREE.Mesh(new THREE.BoxGeometry(1,23,2),p);y.castShadow=!0,y.receiveShadow=!0,y.scale.set(d/1,1,1),y.position.copy(i),y.position.y+=9.2,y.rotation.y=m,y.userData.isMapWall=!0,scM
ene.add(y),wallMeshList.push(y);const h=Math.max(1,Math.ceil(d/3));for(let e=0;e<h;e++){let t=e/h,a=(e+1)/h;const o=0===e||e===h-1?.5:.1;if(t+=o/d,a-=o/d,t>=a)continue;const n=s.clone().lerp(l,t),r=s.clone().lerp(l,a),i=n.clone().add(r).multiplyScalar(.5),c=n.distanceTo(r),p=new THREE.Mesh(new THREE.BoxGeometry(c,23,2),new THREE.MeshBasicMaterial({visible:!1}));p.position.copy(i),p.position.y+=9.2,p.rotation.y=m;const y=new THREE.Vector3(u.z,0,-u.x).normalize();p.userData={wallDir:u.clone(),wallNormal:y,isMapWall:!M
0},scene.add(p),colliders.push(p)}}}function getSpawnPos(){const e=MAP_DEFS[currentMapId]||{};if("club"===e.mode||"club-hall"===currentMapId){const e=getClubSpawn();return car.rotation=e.rot,new THREE.Vector3(e.x,e.y,e.z)}let t=0,a=0;if(e.chaosArena){let e=JUMP_HUMPS[0];for(let t=1;t<JUMP_HUMPS.length;t++)JUMP_HUMPS[t].height>e.height&&(e=JUMP_HUMPS[t]);t=e.cx,a=e.cz}let o=getDriveSurfaceHeight(t,a,400);if(void 0!==solidBoxes&&solidBoxes)for(let e=0;e<solidBoxes.length;e++){const n=solidBoxes[e],r=void 0!==n.halfXZM
?n.halfXZ:n.half,s=void 0!==n.halfY?n.halfY:n.half;Math.abs(t-n.x)<=r&&Math.abs(a-n.z)<=r&&(o=Math.max(o,n.y+s))}return new THREE.Vector3(t,o+.06,a)}function clearInnerWalls(){for(let e=wallMeshList.length-1;e>=0;e--){const t=wallMeshList[e];t.userData&&t.userData.isInnerWall&&(scene.remove(t),wallMeshList.splice(e,1))}colliders=colliders.filter(e=>!(e.userData&&e.userData.isInnerWall))}async function loadTextureById(e){return texUrlBlocked(e)?null:new Promise(t=>{setTimeout(()=>t(null),8e3);(new THREE.TextureLoadeM
r).load(`/content/${e}`,e=>{e.wrapS=e.wrapT=THREE.RepeatWrapping,THREE.SRGBColorSpace?e.colorSpace=THREE.SRGBColorSpace:THREE.sRGBEncoding&&(e.encoding=THREE.sRGBEncoding),e.needsUpdate=!0,t(e)},void 0,()=>{t(null)})})}async function loadGltfById(e){return new Promise(t=>{setTimeout(()=>t(null),1e4);(new GLTFLoader).load(`/content/${e}`,a=>{const o=a.scene;if(o){const t=[];o.traverse(a=>{if(!a.isMesh)return;const o=[].concat(a.material||[]).some(e=>[e&&e.map,e&&e.envMap,e&&e.emissiveMap].some(e=>texUrlBlocked(e&&e.M
userData&&e.userData.url||e&&e.image&&e.image.currentSrc||e&&e.image&&e.image.src||"")));a.geometry&&a.geometry.boundingBox;a.geometry&&!a.geometry.boundingBox&&a.geometry.computeBoundingBox&&a.geometry.computeBoundingBox();const n=a.geometry&&a.geometry.type;(o||n&&/sphere/i.test(n)&&texUrlBlocked(e))&&t.push(a)}),t.forEach(e=>{e.parent&&e.parent.remove(e)})}t(o)},void 0,()=>t(null))})}async function buildMap2Cubes(e){clearMapObstacles();const t=await loadGltfById(e.cubeModelId),a=await loadTextureById(e.cubeTexIdM
);if(!t)return;a&&(a.flipY=!1,a.wrapS=a.wrapT=THREE.RepeatWrapping,THREE.SRGBColorSpace&&(a.colorSpace=THREE.SRGBColorSpace),a.needsUpdate=!0);const o=new THREE.MeshStandardMaterial({map:a||null,color:a?16777215:13404228,roughness:.82,metalness:.08});t.traverse(e=>{e.isMesh&&(e.material=o,e.castShadow=!0,e.receiveShadow=!0)});const n=null!=e.cubeScaleXZ?e.cubeScaleXZ:86.4,r=null!=e.cubeScaleY?e.cubeScaleY:69.12,s=null!=e.cubeCount?e.cubeCount:100,l=[];for(let e=0;e<16;e++)for(let t=0;t<16;t++){if((e+t)%2!=0)continuM
e;const a=759*(e+.5)-6072,o=759*(t+.5)-6072;if(Math.hypot(a,o)>6780)continue;let n=!1;for(const e of JUMP_HUMPS)if(Math.hypot(a-e.cx,o-e.cz)<1.5*e.radius){n=!0;break}n||l.push({x:a,z:o})}const i=Math.max(1,Math.floor(l.length/s));let c=0;const d=t.clone(!0);d.scale.set(n,r,n),d.position.set(0,0,0),d.updateMatrixWorld(!0);const u=(new THREE.Box3).setFromObject(d),m=(u.getSize(new THREE.Vector3),[]),p=[],y=[];for(let e=0;e<l.length&&c<s;e+=i){const{x:a,z:o}=l[e],s=getTerrainHeight(a,o)-u.min.y,i=t.clone(!0);i.scale.sM
et(n,r,n),i.position.set(a,s,o),i.updateMatrixWorld(!0),i.traverse(e=>{e.isMesh&&(e.castShadow=!0,e.receiveShadow=!0)}),scene.add(i),mapObstacleList.push(i),p.push(i);const d=(new THREE.Box3).setFromObject(i),h=d.getCenter(new THREE.Vector3),f=d.getSize(new THREE.Vector3);y.push(solidBoxes.length),solidBoxes.push({x:h.x,y:h.y,z:h.z,halfXZ:.5*Math.max(f.x,f.z)*.98,halfY:.5*f.y*.98,half:.5*Math.max(f.x,f.z)*.98}),m.push({x:h.x,y:d.max.y,z:h.z,halfXZ:.5*Math.max(f.x,f.z)}),c++}if(m.length){let e=1/0;for(let t=0;t<m.leM
ngth;t++)m[t].y<e&&(e=m[t].y);for(let t=0;t<m.length;t++){const a=m[t].y-e;if(a<=.001)continue;p[t].position.y-=a,p[t].updateMatrixWorld(!0);const o=y[t];solidBoxes[o]&&(solidBoxes[o].y-=a),m[t].y=e}}e.bridgeModelId&&m.length>=2&&await buildCubeBridges(e,m,a)}async function buildCubeBridges(e,t,a){let o=null;try{o=await loadGltfById(e.bridgeModelId)}catch(e){}let n=10,r="z";if(o){const e=(new THREE.Box3).setFromObject(o).getSize(new THREE.Vector3);e.x>=e.z&&e.x>=e.y?(n=Math.max(.01,e.x),r="x"):e.z>=e.x&&e.z>=e.y?(nM
=Math.max(.01,e.z),r="z"):(n=Math.max(.01,e.x,e.z),r=e.x>=e.z?"x":"z")}let s=null;if(a){const e=a.clone();e.wrapS=e.wrapT=THREE.RepeatWrapping,e.repeat.set(2,1),e.needsUpdate=!0,s=new THREE.MeshStandardMaterial({map:e,color:16777215,roughness:.82,metalness:.08})}const l=t.length,i=[];for(let e=0;e<l;e++){let a=1/0;for(let o=0;o<l;o++){if(e===o)continue;const n=Math.hypot(t[e].x-t[o].x,t[e].z-t[o].z);n<a&&(a=n)}a<1/0&&i.push(a)}i.sort((e,t)=>e-t);const c=1.55*(i.length>0?i[Math.floor(i.length/2)]:200),d=[];for(let eM
=0;e<l;e++)for(let a=e+1;a<l;a++){const o=Math.hypot(t[e].x-t[a].x,t[e].z-t[a].z);o>=1&&o<=c&&d.push({i:e,j:a,d:o})}d.sort((e,t)=>e.d-t.d);const u=new Array(l).fill(0),m=[];for(const e of d)u[e.i]>=2||u[e.j]>=2||(m.push(e),u[e.i]++,u[e.j]++);for(const e of m){const a=t[e.i],l=t[e.j],i=l.x-a.x,c=l.z-a.z,d=Math.hypot(i,c);if(d<1)continue;const u=Math.min(.08*d,.35*(a.halfXZ||20)),m=i/d,p=c/d,y=a.x+m*u,h=a.z+p*u,f=l.x-m*u,g=l.z-p*u,b=Math.hypot(f-y,g-h),E=.5*(y+f),M=.5*(h+g),S=.5*(a.y+l.y),w=Math.atan2(f-y,g-h),T=MathM
.atan2(l.y-a.y,b);let v,C=12;if(o){v=o.clone(!0);const e=b/n,t=Math.min(40,Math.max(18,.45*e)),a=Math.min(52,Math.max(24,.4*e));"x"===r?(v.scale.set(e,t,a),v.rotation.order="YXZ",v.rotation.y=w+Math.PI/2):(v.scale.set(a,t,e),v.rotation.order="YXZ",v.rotation.y=w),v.rotation.x=-T,v.position.set(E,S,M),v.updateMatrixWorld(!0);const s=(new THREE.Box3).setFromObject(v);v.position.y+=S-s.min.y-5.5}else v=new THREE.Mesh(new THREE.BoxGeometry(b,12,28),s||new THREE.MeshStandardMaterial({color:9136404,roughness:.9})),v.rotaM
tion.y=w+Math.PI/2,v.rotation.z=T,v.position.set(E,S+3,M),C=12;v.traverse(e=>{e.isMesh&&(s&&(e.material=s),e.castShadow=!0,e.receiveShadow=!0,e.raycast=THREE.Mesh.prototype.raycast,chaosRayMeshes.push(e))}),scene.add(v),mapObstacleList.push(v)}u.filter(e=>1===e).length,u.filter(e=>2===e).length}async function rebuildWorldForMap(e){const t=MAP_DEFS[e]||MAP_DEFS["club-hall"];currentMapId=e,gameMode=t.mode||"race",flagMesh&&(flagMesh.visible="race"===gameMode&&null===flagHolder),flagPoleMesh&&(flagPoleMesh.visible="raM
ce"===gameMode),heldFlagMesh&&(heldFlagMesh.visible=!1),checkpointStars.forEach(e=>{e.mesh&&(e.mesh.visible="race"===gameMode)});let a=coreGrassTex,o=coreWallTex;if(t.groundTexId){const e=await loadTextureById(t.groundTexId);if(e){const o=null!=t.groundRepeat?t.groundRepeat:160;e.repeat.set(o,o),a=e}}if(t.wallTexId){const e=await loadTextureById(t.wallTexId);e&&(o=e)}if(activeGrassTex=a||coreGrassTex,activeWallTex=o||coreWallTex,skyDome&&skyDome.material){let e=coreSkyTex;if(t.skyTexId){const a=await loadTextureByIM
d(t.skyTexId);a&&(a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,THREE.SRGBColorSpace&&(a.colorSpace=THREE.SRGBColorSpace),a.needsUpdate=!0,e=a)}e&&(skyDome.material.map=e,skyDome.material.needsUpdate=!0)}if(t.fog){const e=null!=t.fogColor?t.fogColor:658450,a=null!=t.fogNear?t.fogNear:60,o=null!=t.fogFar?t.fogFar:220;scene.fog=new THREE.Fog(e,a,o),scene.background=new THREE.Color(e),skyDome&&(skyDome.visible=!1)}else scene.fog=null,scene.background=null,skyDome&&(skyDome.visible=!0);if(clearTrackSurface(),activeTrackTexM
=null,clearMapObstacles(),clearCtfObjects(),clearLavaPatches(),"club"===t.mode||"club-hall"===e?await buildClubHall():t.chaosArena?(await buildChaosArena(),await buildChaosScatterProps(),buildLavaPatches(!0)):buildLavaPatches(),terrainMesh){scene.remove(terrainMesh);try{terrainMesh.geometry.dispose(),terrainMesh.material.dispose()}catch(e){}terrainMesh=null}if(activeGrassTex&&buildTerrain(activeGrassTex),wallMeshList.forEach(e=>scene.remove(e)),wallMeshList=[],colliders=colliders.filter(e=>!(e.userData&&(e.userDataM
.isMapWall||e.userData.isMapObstacle))),activeWallTex&&"club"!==t.mode&&"club-hall"!==e){const e=getTrackParams();t.chaosArena||t.squareWall?buildSquareOuterWall(e.floorHalf||e.outerRx,activeWallTex):(buildWall(e.outerRx,activeWallTex,!1),!1!==t.innerWall&&buildWall(e.innerRx,activeWallTex,!0))}"race"===gameMode?(buildCheckpoints(),flagMesh&&(flagMesh.visible=null===flagHolder),flagPoleMesh&&(flagPoleMesh.visible=!0)):clearCheckpointsAndFlag(),t.cubeModelId&&"club"!==t.mode&&await buildMap2Cubes(t),"ctf"===gameModeM
&&setupCtfBases(),lastBuiltMapId=e}async function loadMapScript(e){const t=MAP_DEFS[e];return!t||!t.content||(!!loadedMapScripts.has(e)||(mapScriptPromises[e]||(mapScriptPromises[e]=new Promise(a=>{const o=document.createElement("script");o.src=t.content,o.onload=()=>{if(loadedMapScripts.add(e),window.MAP_OVERRIDES&&"object"==typeof window.MAP_OVERRIDES){const t=window.MAP_OVERRIDES,a=MAP_DEFS[e].content;Object.assign(MAP_DEFS[e],t),MAP_DEFS[e].content=a,texUrlBlocked(MAP_DEFS[e].skyTexId)&&(MAP_DEFS[e].skyTexId=SMM
ALL_SKY_ID),t.name&&(MAP_DEFS[e].name=t.name),t.mode&&(MAP_DEFS[e].mode=t.mode);try{delete window.MAP_OVERRIDES}catch(e){}}a(!0)},o.onerror=()=>{delete mapScriptPromises[e],a(!1)},document.head.appendChild(o),setTimeout(()=>{loadedMapScripts.has(e)||(delete mapScriptPromises[e],a(!1))},5e3)})),mapScriptPromises[e]))}async function startGame(){currentMapId="club-hall",gameMode="club";const e=MAP_DEFS["club-hall"]||MAP_DEFS[currentMapId]||{name:"Paddock",mode:"club",innerWall:!1,duneScale:.28,outerRadiusOverride:900}M
;if(MAP_DEFS["club-hall"]||(MAP_DEFS["club-hall"]=e),gameMode=e.mode||"club",menuShowcaseActive=!1,window._menuKeyLight&&(window._menuKeyLight.visible=!1),showcaseModel&&showcaseModel.parent&&showcaseModel!==playerModel&&showcaseModel!==minionRoot)try{showcaseModel.parent.remove(showcaseModel)}catch(e){}showcaseModel=null,document.getElementById("overlay").style.display="none",document.getElementById("p2p-lobby").style.display="none",document.getElementById("previewOverlay").style.display="none";const t=document.geM
tElementById("status");t&&(t.textContent="Opening the salon
"),"function"==typeof ensureCart&&ensureCart(),inLobby=!1,previewMode=!1,paused=!1,controlsEnabled=!0,gameStarted=!0;try{document.activeElement&&document.activeElement.blur&&document.activeElement.blur()}catch(e){}window.focus&&window.focus();try{"club-hall"!==lastBuiltMapId&&await rebuildWorldForMap("club-hall")}catch(e){console.error("club rebuild",e);try{await buildClubHall()}catch(e){console.error(e)}}{const e=document.getElementById("micBtn");e&&(e.M
style.display="none");const t=document.getElementById("movePad"),a=isPhoneUI();t&&(t.style.display=a?"block":"none",a&&"function"==typeof bindMovePad&&bindMovePad());const o=document.getElementById("jumpBtn");o&&(o.style.display=a?"flex":"none"),a||(cameraCycleBtn.style.display="none",pauseBtn.style.display="none")}if(customCursor.style.display="block",chatContainer&&(chatContainer.style.display="none"),inLobby=!1,controlsEnabled=!0,gameStarted=!0,void 0!==gameMode&&"club"===gameMode){!isHost&&multiplayerMode||(isHM
ost=isHost||!multiplayerMode,clubHostId=myPlayerID,clubSpeakers.add(myPlayerID),multiplayerMode&&syncClubStateTo());const e=document.getElementById("clubDock");e&&(e.style.display="block"),refreshClubDock()}cart&&(cart.visible=!1);{const e=getSpawnPos();car.pos.copy(e)}if(car.vel.set(0,0,0),"club"!==gameMode&&(car.rotation=0),car.pitch=0,car.onGround=!0,scores.set(myPlayerID,0),playerLaps.set(myPlayerID,0),myCompletedCheckpoints.clear(),flagHolder=null,droppedFlagPos=null,consecutiveFreezeHits=0,hasLavaPower=!1,updM
ateChargeMeterUI(),"ctf"===gameMode?(myTeam||(myTeam=assignBalancedTeam()),minionRoot&&attachNameTag(minionRoot,myPlayerID,!0,myTeam),teamScores={red:0,blue:0},CTF.redHolder=CTF.blueHolder=null,CTF.redDrop=CTF.blueDrop=null,broadcastTeam(),broadcastCtfFlags(),updateCtfFlagVisual(),updateCtfHud(),flagMesh&&(flagMesh.visible=!1),flagPoleMesh&&(flagPoleMesh.visible=!1)):(myTeam=null,updateCtfHud(),updateFlagVisual(),flagPoleMesh&&(flagPoleMesh.visible=!0)),updateScoreboard(),camera.fov=90,camera.updateProjectionMatrixM
(),isHost&&isHostWithKenobi&&nostrRoomId){publishKenobiHeartbeat(hostOfferCodes&&hostOfferCodes[0]||document.getElementById("lobbyOfferCode")&&document.getElementById("lobbyOfferCode").textContent||"",1+remotePlayers.size)}updateCursorForLobby(),requestAnimationFrame(animate)}function animate(){requestAnimationFrame(animate);const e=.016;window.bovineTick&&window.bovineTick(e);if(menuShowcaseActive&&showcaseModel&&!gameStarted&&!previewMode&&(showcaseModel.rotation.y+=.012,camera.position.set(0,5.2,14),camera.lookAM
t(0,4.6,0)),!paused&&gameStarted){if(updatePhysics(e),updateProjectiles(e),minionRoot){minionRoot.scale.setScalar(5.69),minionRoot.position.copy(car.pos),minionRoot.rotation.y=car.rotation+Math.PI;const e=Math.hypot(car.vel.x,car.vel.z),t=padKeys.a||padKeys.d||keys.a||keys.d||keys.arrowleft||keys.arrowright,a=padKeys.s||keys.s||keys.arrowdown;Date.now()<attackUntil||(car.onGround?playMinionAnim(t||a?"Walk":e>28?minionActions.Run?"Run":"Walk":e>4?"Walk":"Idle"):playMinionAnim("Jump"));const o=minionRoot.userData&&miM
nionRoot.userData.actions&&minionRoot.userData.actions[minionRoot.userData.currentAnim];o&&(o.timeScale=a&&!t?-.7:t?.75:.7+Math.min(1.3,e/140))}minionMixer&&minionMixer.update(e),minionRoot&&applyArmSwing(minionRoot,Math.hypot(car.vel.x,car.vel.z))}else minionMixer&&menuShowcaseActive&&(playMinionAnim("Idle"),minionMixer.update(e));if(gameStarted&&updateCamera(),gameStarted&&"function"==typeof projectStageScreen&&projectStageScreen(),gameStarted&&"function"==typeof refreshClubDock&&0===syncCounter&&refreshClubDock(M
),flagMesh&&null===flagHolder&&(flagMesh.position.y=flagPoleMesh.position.y+120+4*Math.sin(Date.now()/200)),checkpointStars.forEach(t=>{t.mixer&&t.mixer.update(e)}),lavaPatches.forEach(t=>{t.mixer&&t.mixer.update(e)}),flagHolder===myPlayerID){const e=[];for(let t=0;t<4;t++)myCompletedCheckpoints.has(t)||e.push(t+1);cpIndicator&&(cpIndicator.textContent=e.length?`CHECKPOINTS NEEDED: ${e.join("
 ")}`:"ALL CHECKPOINTS COMPLETE
 RETURN TO START!",cpIndicator.style.display=hudVisible?"block":"none")}else cpIndicatM
or&&(cpIndicator.style.display="none");const t=Date.now()-lastFireTime,a=Math.min(100,t/getFireCooldown()*100);if(chargeBar&&(chargeBar.style.width=`${a}%`),updateFlagCarryHint(),hasLavaPower&&updateChargeMeterUI(),isHost&&Date.now()-lastFullStateSent>2500&&sendFullState(),multiplayerMode&&dcList.length>0){if(updateRemotePlayers(),syncCounter=(syncCounter+1)%2,0===syncCounter){const e=Date.now(),t={type:"pos",pos:{x:car.pos.x,y:car.pos.y,z:car.pos.z},rot:car.rotation,anim:currentAnim||"Idle",id:myPlayerID,isHost:!!M
isHost,team:myTeam,mapId:currentMapId,gameMode:gameMode,slowEndTime:slowEndTime};t.charId=myCharId,lastCharSync=e,dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify(t))})}cleanupStalePlayers()}renderer.render(scene,camera)}function removeRemotePlayer(e){if(!e||e===myPlayerID)return;clubSpeakers.delete(e),clubRequests.delete(e),"function"==typeof refreshClubDock&&refreshClubDock();const t=remotePlayers.get(e);if(t&&t.mesh&&scene.remove(t.mesh),closeVoicePeer(e),remotePlayers.delete(e),scores.delete(eM
),playerLaps.delete(e),playerLapTimes.delete(e),void 0!==CTF&&(CTF.redHolder===e&&(CTF.redHolder=null,t&&t.mesh?CTF.redDrop=t.mesh.position.clone():CTF.redDrop=car.pos.clone()),CTF.blueHolder===e&&(CTF.blueHolder=null,t&&t.mesh?CTF.blueDrop=t.mesh.position.clone():CTF.blueDrop=car.pos.clone()),"function"==typeof updateCtfFlagVisual&&updateCtfFlagVisual()),flagHolder===e&&(flagHolder=null,"function"==typeof updateFlagVisual&&updateFlagVisual()),updateScoreboard(),updatePlayerCount(),isHost&&updateHostPlayerList(),isM
Host&&isHostWithKenobi&&nostrRoomId){publishKenobiHeartbeat(hostOfferCodes&&hostOfferCodes[0]||document.getElementById("lobbyOfferCode")&&document.getElementById("lobbyOfferCode").textContent||"",1+remotePlayers.size)}}function cleanupStalePlayers(){const e=Date.now();remotePlayers.forEach((t,a)=>{if(a===myPlayerID)return;const o=t.lastUpdateTime||0,n=t.isHost?4e4:22e3;o&&e-o>n&&removeRemotePlayer(a)});for(let e=dcList.length-1;e>=0;e--){const t=dcList[e];t&&"closed"!==t.readyState&&"closing"!==t.readyState||(t&&t.M
_peerId&&removeRemotePlayer(t._peerId),dcList.splice(e,1))}}function startNetKeepalive(){netKeepaliveTimer||(netKeepaliveTimer=setInterval(()=>{if(!multiplayerMode||!dcList.length)return;const e={type:"pos",pos:{x:car.pos.x,y:car.pos.y,z:car.pos.z},rot:car.rotation,anim:currentAnim||"Idle",charId:myCharId,id:myPlayerID,isHost:!!isHost,team:myTeam,keepalive:!0,slowEndTime:slowEndTime,mapId:currentMapId,gameMode:gameMode},t=JSON.stringify(e);dcList.forEach(e=>{if(e&&"open"===e.readyState)try{e.send(t)}catch(e){}});coM
nst a=JSON.stringify({type:"ping",id:myPlayerID,t:Date.now(),isHost:!!isHost});if(dcList.forEach(e=>{if(e&&"open"===e.readyState)try{e.send(a)}catch(e){}}),isHost)try{sendFullState()}catch(e){}},2500))}async function applyHostMap(e,t){return!(!e||!MAP_DEFS[e])&&(currentMapId===e&&lastBuiltMapId===e&&loadedMapScripts.has(e)?(t&&(gameMode=t),!0):applyingHostMap||(applyingHostMap=(async()=>{try{const a=document.getElementById("mapSelect");a&&(a.value=e),currentMapId=e;return MAP_DEFS[e].content&&await loadMapScript(e)M
,gameMode=MAP_DEFS[e]&&MAP_DEFS[e].mode||t||gameMode,lastBuiltMapId!==e?await rebuildWorldForMap(e):"ctf"!==gameMode||CTF.redPole||setupCtfBases(),!0}finally{applyingHostMap=null}})(),applyingHostMap))}async function initialize(){init();const e=await preloadCoreAssets();if(e){const{grassTex:t,skyTex:a,wallTex:o}=e;buildTerrain(t),lastBuiltMapId=null,gameMode="club",currentMapId="club-hall",skyDome=new THREE.Mesh(new THREE.SphereGeometry(3800,64,64),new THREE.MeshBasicMaterial({map:a,side:THREE.BackSide})),scene.addM
(skyDome)}cart&&(scene.add(cart),cart.position.copy(car.pos),cart.rotation.y=car.rotation+POD_YAW_OFFSET,cart.visible=!1),startBtn.disabled=!1,document.getElementById("status").textContent="Preparing your arrival
",gameStarted||requestAnimationFrame(animate),(async()=>{try{"function"==typeof placeMenuPlaceholder&&placeMenuPlaceholder(),myCharId=SAMPLE_SKULL_ID;let e=await loadSkinnedMinion(SAMPLE_SKULL_ID);e||(e=await loadSkinnedMinion(FALLBACK_ID)),e?(await showCharacterOnMenu(e),document.getElementById("status"M
).textContent="The salon is ready"):document.getElementById("status").textContent="Preview unavailable
 you may still enter"}catch(e){document.getElementById("status").textContent="Preview failed
 you may still enter"}})()}async function showCharacterOnMenu(e){e&&(showcaseModel&&showcaseModel.parent&&showcaseModel.parent.remove(showcaseModel),playerModel&&playerModel.parent&&playerModel!==e&&cart&&playerModel.parent===cart&&cart.remove(playerModel),playerModel=e,showcaseModel=e,cart&&(cart.visible=!1),scene.aM
dd(e),e.userData&&e.userData.isLordinal?(e.rotation.y=0,e.scale.setScalar(1.87),e.position.set(0,2,0),camera.position.set(0,4,12),camera.lookAt(0,2.5,0)):e.userData&&e.userData.isImageSphere?(e.rotation.y=-Math.PI/2,e.scale.setScalar(1.76),e.position.set(0,2.5,0),camera.position.set(0,4,11),camera.lookAt(0,2.6,0)):(e.rotation.y=Math.PI,e.scale.setScalar(4.5),e.position.set(0,-.4,0),camera.position.set(0,5.2,14),camera.lookAt(0,4.6,0)),menuShowcaseActive=!0,camera.fov=50,camera.updateProjectionMatrix(),!window._menuM
KeyLight&&scene&&(window._menuKeyLight=new THREE.PointLight(16773584,2.2,40),window._menuKeyLight.position.set(3,7,8),scene.add(window._menuKeyLight)),window._menuKeyLight&&(window._menuKeyLight.visible=!gameStarted),document.getElementById("overlay").style.display="flex",document.getElementById("previewOverlay").style.display="none",previewMode=!1,updateCursorForLobby())}function displayName(e){return String(e||"Racer").replace(/-\d+$/,"").slice(0,18)}function teamHex(e){return"red"===e?"#ff4444":"blue"===e?"#4488M
ff":"#ecdcb0"}function makeNameTag(e,t){const a=displayName(e),o=document.createElement("canvas");o.width=512,o.height=96;const n=o.getContext("2d");n.clearRect(0,0,o.width,o.height),n.font="600 36px Palatino, Georgia, serif",n.textAlign="center",n.textBaseline="middle",n.lineWidth=6,n.strokeStyle="rgba(20,12,6,0.55)",n.strokeText(a,256,52),n.fillStyle=teamHex(t),n.fillText(a,256,52);const r=new THREE.CanvasTexture(o);r.needsUpdate=!0;const s=new THREE.SpriteMaterial({map:r,transparent:!0,opacity:.4,depthTest:!1,deM
pthWrite:!1}),l=new THREE.Sprite(s);return l.userData.isNameTag=!0,l}function attachNameTag(e,t,a,o){if(!e)return;e.userData.nameTag&&e.userData.nameTag.parent&&e.userData.nameTag.parent.remove(e.userData.nameTag);const n=makeNameTag(t,o);a?(n.scale.set(1.85,.36,1),n.position.set(0,-.12,0)):(n.scale.set(9.2,1.8,1),n.position.set(0,-.55,0)),e.add(n),e.userData.nameTag=n}function attachCharacterToPod(e){e&&(e.parent&&e.parent.remove(e),scene.add(e),minionRoot=e,playerModel=e,e.scale.setScalar(5.69),attachNameTag(e,myM
PlayerID,!0,myTeam),cart&&(cart.visible=!1))}document.getElementById("multiBtn").addEventListener("click",()=>{currentMapId="club-hall",gameMode="club",document.getElementById("overlay").style.display="none",document.getElementById("p2p-lobby").style.display="flex",inLobby=!0,updateCursorForLobby(),searchLiveGames()}),document.getElementById("lobbyHostBtn").addEventListener("click",async()=>{document.getElementById("lobby-status").innerHTML='<span style="font-size:1.4rem;color:#0f0;">HOSTING...</span><br><span stylM
e="font-size:1.1rem;color:#0ff;">You can enter the club now
 listing may take a few seconds</span>';const e=document.getElementById("lobbyHostControls");e&&(e.style.display="block");const t=document.getElementById("liveGamesContainer");t&&(t.style.display="block"),collectedCandidatesList=[],hostOfferCodes=[],pcList=[],dcList=[];let a=document.getElementById("lobbyNameInput").value.trim()||"Racer";myPlayerID=a+"-"+Math.floor(9999*Math.random()),isHost=!0;const o=new RTCPeerConnection({iceServers:[{urls:"stun:stunM
.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun3.l.google.com:19302"},{urls:"stun:stun4.l.google.com:19302"}]});pcList.push(o),collectedCandidatesList.push([]),o.onicecandidate=e=>{e.candidate&&e.candidate.candidate&&collectedCandidatesList[0].push(e.candidate.candidate.replace(/^candidate:\s*/i,"").trim())};const n=o.createDataChannel("race");dcList.push(n),setupDataChannel(n);const r=await o.createOffer();await o.setLocalDescription(r),await waiM
tForIceGathering(o);let s=Date.now();for(;collectedCandidatesList[0].length<4&&Date.now()-s<12e3;)await new Promise(e=>setTimeout(e,250));await new Promise(e=>setTimeout(e,600));const l=encodeSDP(o.localDescription.sdp,"offer",myPlayerID);hostOfferCodes.push(l),document.getElementById("lobbyOfferCode").textContent=l,document.getElementById("lobbyHostControls").style.display="block",updateHostPlayerList(),document.getElementById("lobby-status").innerHTML='<span style="font-size:1.15rem;color:#0f0;">Hosting
 as live on Kenobi</span><br><span style="font-size:0.9rem;color:#0af;">Waiting for players to join
</span>',startKenobiLobbyPing(l),searchLiveGames(),updateCursorForLobby()}),document.getElementById("lobbyCopyOffer").addEventListener("click",()=>{navigator.clipboard.writeText(hostOfferCodes[0]),document.getElementById("lobby-status").textContent="First invite copied!"}),document.getElementById("newInviteBtn").addEventListener("click",async()=>{document.getElementById("lobby-status").innerHTML='<span style="font-M
size:1.4rem;color:#0f0;">GENERATING...</span><br><span style="font-size:1.1rem;color:#0ff;">May take up to 20 seconds...</span>';const e=pcList.length,t=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun3.l.google.com:19302"},{urls:"stun:stun4.l.google.com:19302"}]});pcList.push(t),collectedCandidatesList.push([]),t.onicecandidate=t=>{t.candidate&&t.candidate.candidate&&collectedCandidatesList[e].pusM
h(t.candidate.candidate.replace(/^candidate:\s*/i,"").trim())};const a=t.createDataChannel("race");dcList.push(a),setupDataChannel(a);const o=await t.createOffer();await t.setLocalDescription(o),await waitForIceGathering(t);let n=Date.now();for(;collectedCandidatesList[e].length<4&&Date.now()-n<12e3;)await new Promise(e=>setTimeout(e,250));await new Promise(e=>setTimeout(e,600));const r=encodeSDP(t.localDescription.sdp,"offer",myPlayerID);hostOfferCodes.push(r);const s=document.createElement("div");s.className="codM
e-out",s.textContent=r,s.onclick=()=>{navigator.clipboard.writeText(r),document.getElementById("lobby-status").textContent="New invite copied!"},document.getElementById("extraOffers").appendChild(s),document.getElementById("lobby-status").innerHTML='<span style="font-size:1.3rem;color:#0f0;">New invite generated for next player</span>'}),document.getElementById("manualPublishBtn").addEventListener("click",()=>{if(nostrRoomId&&isHostWithKenobi){publishKenobiHeartbeat(document.getElementById("lobbyOfferCode").textConM
tent||"",1+remotePlayers.size),document.getElementById("lobby-status").textContent="Heartbeat published manually"}}),document.getElementById("lobbyJoinBtn").addEventListener("click",async()=>{document.getElementById("lobby-status").innerHTML='<span style="font-size:1.4rem;color:#0f0;">JOINING...</span><br><span style="font-size:1.1rem;color:#0ff;">May take up to 20 seconds...</span>';let e=document.getElementById("lobbyPeerCode").value.trim();if(!e)return;let t=document.getElementById("lobbyNameInput").value.trim()M
||"Racer";myPlayerID=t+"-"+Math.floor(9999*Math.random());const a=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun3.l.google.com:19302"},{urls:"stun:stun4.l.google.com:19302"}]});pcList.push(a),collectedCandidatesList.push([]),a.onicecandidate=e=>{e.candidate&&e.candidate.candidate&&collectedCandidatesList[0].push(e.candidate.candidate.replace(/^candidate:\s*/i,"").trim())},a.ondatachannel=e=>setupM
DataChannel(e.channel);try{const t=decodeSDP(e);await a.setRemoteDescription({type:"offer",sdp:t.sdp});const o=await a.createAnswer();await a.setLocalDescription(o),await waitForIceGathering(a);let n=Date.now();for(;collectedCandidatesList[0].length<4&&Date.now()-n<12e3;)await new Promise(e=>setTimeout(e,250));await new Promise(e=>setTimeout(e,600));const r=encodeSDP(a.localDescription.sdp,"answer",myPlayerID);document.getElementById("lobbyAnswerCode").textContent=r,publishAnswerToNostr(e,r),document.getElementByIdM
("lobby-status").innerHTML='
 <strong style="font-size:1.15rem;">Joining via Kenobi
</strong><br><span style="color:#0af;">Host should accept you shortly</span>'}catch(e){document.getElementById("lobby-status").textContent="Invalid offer token"}}),document.getElementById("lobbyCopyAnswer").addEventListener("click",()=>{navigator.clipboard.writeText(document.getElementById("lobbyAnswerCode").textContent),document.getElementById("lobby-status").textContent="Answer copied!"}),document.getElementById("lobbyAcceptBtM
n").addEventListener("click",async()=>{let e=document.getElementById("lobbyAnswerInput").value.trim();if(e)try{const t=decodeSDP(e),a=pcList.findIndex(e=>e&&"have-local-offer"===e.signalingState);if(-1===a)return;await pcList[a].setRemoteDescription({type:"answer",sdp:t.sdp}),document.getElementById("lobby-status").innerHTML=`<span style="font-size:1.3rem;color:#0f0;">Player ${remotePlayers.size+1} connected
</span>`,document.getElementById("lobbyAnswerInput").value="",setTimeout(sendFullState,300),document.getEM
lementById("lobby-status").innerHTML+='<br><span style="color:#0af">Auto-generating next invite...</span>',setTimeout(async()=>{try{const e=pcList.length,t=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun3.l.google.com:19302"},{urls:"stun:stun4.l.google.com:19302"}]});pcList.push(t),collectedCandidatesList.push([]),t.onicecandidate=t=>{t.candidate&&t.candidate.candidate&&collectedCandidatesList[e].M
push(t.candidate.candidate.replace(/^candidate:\s*/i,"").trim())};const a=t.createDataChannel("race");dcList.push(a),setupDataChannel(a);const o=await t.createOffer();await t.setLocalDescription(o),await waitForIceGathering(t);let n=Date.now();for(;collectedCandidatesList[e].length<4&&Date.now()-n<12e3;)await new Promise(e=>setTimeout(e,250));await new Promise(e=>setTimeout(e,600));const r=encodeSDP(t.localDescription.sdp,"offer",myPlayerID);hostOfferCodes[0]=r,document.getElementById("lobbyOfferCode").textContent=M
r,isHostWithKenobi&&nostrRoomId&&publishKenobiHeartbeat(r,1+remotePlayers.size),document.getElementById("lobby-status").innerHTML='<span style="font-size:1.3rem;color:#0f0;">
 Player accepted!<br>New invite ready for next player</span>'}catch(e){}},1200)}catch(e){document.getElementById("lobby-status").textContent="Invalid answer token"}}),document.getElementById("lobbyStartBtn").addEventListener("click",async()=>{multiplayerMode=!0,isHost=!0,currentMapId="club-hall",gameMode="club",clubHostId=myPlayerID,clubSpeaM
kers.add(myPlayerID);try{const e=readMyCharIdFromInput();if(!minionRoot||myCharId!==e){const t=await loadSkinnedMinion(e);t&&(playerModel=t)}playerModel&&attachCharacterToPod(playerModel),await startGame()}catch(e){console.error(e),await startGame().catch(()=>{})}dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"pos",pos:{x:car.pos.x,y:car.pos.y,z:car.pos.z},rot:car.rotation,anim:currentAnim||"Idle",id:myPlayerID,charId:myCharId}))}),lastCharSync=Date.now()}),document.getElementById("searchLM
iveGamesBtn").addEventListener("click",()=>searchLiveGames()),document.getElementById("refreshLiveBtn").addEventListener("click",()=>searchLiveGames()),document.getElementById("lobbyReturnToGameBtn").addEventListener("click",()=>{document.getElementById("p2p-lobby").style.display="none",updateCursorForLobby()}),document.getElementById("enterCustomBtn").addEventListener("click",async()=>{const e=(document.getElementById("charIdInput").value.trim()||"").replace(/i0$/,"")+"i0"||FALLBACK_ID;myCharId=e,document.getElemeM
ntById("status").textContent="Loading minion + skull textures
";const t=await loadSkinnedMinion(e);t?(await showCharacterOnMenu(t),document.getElementById("status").textContent="Skull received
 enter the salon or members lounge"):(document.getElementById("status").textContent="Failed to load that ID
 try another or use default",document.getElementById("charStatus").textContent="Load failed
 default will be used",document.getElementById("charStatus").style.color="#f66")}),document.getElementById("startSinM
gleFromPreview").addEventListener("click",()=>{previewMode=!1,document.getElementById("previewOverlay").style.display="none",playerModel&&attachCharacterToPod(playerModel),multiplayerMode=!1,startGame()}),document.getElementById("goToMultiFromPreview").addEventListener("click",()=>{previewMode=!1,document.getElementById("previewOverlay").style.display="none",document.getElementById("overlay").style.display="none",document.getElementById("p2p-lobby").style.display="flex",updateCursorForLobby()}),document.getElementBM
yId("startBtn").addEventListener("click",async()=>{multiplayerMode=!1,isHost=!0,currentMapId="club-hall",gameMode="club";const e=document.getElementById("status");e&&(e.textContent="Entering club
");try{const e=readMyCharIdFromInput();if(!minionRoot||myCharId!==e){const t=await loadSkinnedMinion(e);t&&(playerModel=t)}playerModel&&attachCharacterToPod(playerModel),await startGame()}catch(t){console.error(t),e&&(e.textContent="Enter failed
 retry"),document.getElementById("overlay").style.display="none",await stM
artGame().catch(()=>{})}});const rulesOverlay=document.getElementById("rulesOverlay"),rulesBtn=document.getElementById("rulesBtn"),closeRules=document.getElementById("closeRules"),micBtnEl=document.getElementById("micBtn");micBtnEl&&micBtnEl.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),localMicStream&&voiceOn?(selfMuted=!selfMuted,applyMicSendState(),syncMicButtons()):setMicEnabled(!0)});const clubSpeakBtn=document.getElementById("clubSpeakBtn");async function onClubMicClick(e){if(e&&(e.preveM
ntDefault(),e.stopPropagation()),!clubCanSpeak()){const e=document.getElementById("status");return void(e&&(e.textContent="Open my mic first
 host must accept you"))}return voiceOn&&localMicStream?selfMuted||roomMuteHold?(roomMuteHold=!1,selfMuted=!1,applyMicSendState(),void syncMicButtons()):void 0:(roomMuteHold=!1,selfMuted=!1,void await setMicEnabled(!0))}function onClubMuteClick(e){e&&(e.preventDefault(),e.stopPropagation()),localMicStream&&(selfMuted=!selfMuted,selfMuted||(roomMuteHold=!1),applyMicSendStateM
(),syncMicButtons())}function onClubRoomMute(e){if(e&&(e.preventDefault(),e.stopPropagation()),!isHost)return;broadcastClub({type:"roomMute"});const t=document.getElementById("status");t&&(t.textContent="Room muted
 speakers must unmute themselves")}clubSpeakBtn&&clubSpeakBtn.addEventListener("click",e=>{e.preventDefault(),requestSpeak()});const clubMicBtn=document.getElementById("clubMicBtn");clubMicBtn&&clubMicBtn.addEventListener("click",onClubMicClick);const clubMuteBtn=document.getElementById("clubMuteBtn")M
;clubMuteBtn&&clubMuteBtn.addEventListener("click",onClubMuteClick);const clubRoomMuteBtn=document.getElementById("clubRoomMuteBtn");clubRoomMuteBtn&&clubRoomMuteBtn.addEventListener("click",onClubRoomMute);const clubScreenBtn=document.getElementById("clubScreenBtn");clubScreenBtn&&clubScreenBtn.addEventListener("click",e=>{e.preventDefault(),publishStageScreen()});const screenUrlInput=document.getElementById("screenUrlInput");screenUrlInput&&screenUrlInput.addEventListener("keydown",e=>{"Enter"===e.key&&(e.preventM
Default(),publishStageScreen())}),rulesBtn.addEventListener("click",()=>{rulesOverlay.style.display="flex",updateCursorForLobby()}),closeRules.addEventListener("click",()=>{rulesOverlay.style.display="none",updateCursorForLobby()}),pauseRulesBtn.addEventListener("click",()=>{rulesOverlay.style.display="flex",updateCursorForLobby()});const observer=new MutationObserver(()=>{updateCursorForLobby()});observer.observe(document.getElementById("overlay"),{attributes:!0,attributeFilter:["style"]}),observer.observe(documenM
t.getElementById("p2p-lobby"),{attributes:!0,attributeFilter:["style"]}),observer.observe(document.getElementById("previewOverlay"),{attributes:!0,attributeFilter:["style"]}),observer.observe(document.getElementById("rulesOverlay"),{attributes:!0,attributeFilter:["style"]}),window.addEventListener("beforeunload",()=>{kenobiHeartbeatTimer&&clearInterval(kenobiHeartbeatTimer)});const CLUB_FLOOR_R=2640;let clubSpeakers=new Set,clubRequests=new Set,clubHostId=null,stageScreenUrl="",stageScreenMesh=null,stageGroup=null,M
clubBuilt=!1;const _ssCorners=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];let clubUiMode=!1;function blurGameInputs(){try{const e=document.activeElement;e&&e.blur&&e!==document.body&&e.blur()}catch(e){}["chat-input","screenUrlInput","charIdInput","lobbyNameInput"].forEach(e=>{const t=document.getElementById(e);t&&t.blur&&t.blur()})}function setClubUiMode(e,t){if(clubUiMode=!!e,clubUiMode){controlsEnabled=!1,"function"==typeof clearMoveKeys&&clearMoveKeys(),document.body.style.cursor="aM
uto";const e=document.getElementById("customCursor");e&&(e.style.display="none");const a=document.getElementById("stageScreenFrame");a&&t&&/screen/i.test(t)&&a.classList.add("interact"),minionRoot&&t&&/screen/i.test(t)&&(minionRoot.visible=!1)}else{controlsEnabled=!0,blurGameInputs(),document.body.style.cursor="none";const e=document.getElementById("customCursor");e&&(e.style.display=gameStarted?"block":"none");const t=document.getElementById("chatModeHint");t&&(t.style.display="none");const a=document.getElementByM
Id("stageScreenFrame");a&&a.classList.remove("interact"),minionRoot&&(minionRoot.visible=!0),"function"==typeof updateCursorForLobby&&updateCursorForLobby()}const a=document.getElementById("clubWalkBtn");a&&(a.textContent=clubUiMode?"Walk (back to avatar)":"Walk (you are in control)")}function clubCanSpeak(){return!0}function clubRoleOf(e){return e===clubHostId||isHost&&e===myPlayerID?"host":clubSpeakers.has(e)?"speaker":clubRequests.has(e)?"waiting":"listener"}function broadcastClub(e){const t=JSON.stringify(ObjecM
t.assign({id:myPlayerID},e));dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(t)})}function toEmbedUrl(e){const t=String(e||"").trim();if(!t)return"";let a=t.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/|youtube\.com\/shorts\/|youtube\.com\/live\/)([A-Za-z0-9_-]{6,})/);if(a){const e=encodeURIComponent(location.origin||"https://www.youtube.com"),t=Math.max(0,Math.floor(window._stageStartSec||0));return"https://www.youtube.com/embed/"+a[1]+"?autoplay=1&mute=0&playsinline=1&rel=0&modestbrandinM
g=1&enablejsapi=1&controls=1&fs=1&start="+t+"&origin="+e}return t}function getStagePunchMaterial(){return window._stagePunchMat||(window._stagePunchMat=new THREE.ShaderMaterial({vertexShader:"void main(){ gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0); }",fragmentShader:"void main(){ gl_FragColor = vec4(0.0,0.0,0.0,0.0); }",transparent:!0,depthTest:!0,depthWrite:!0,fog:!1,side:THREE.DoubleSide,blending:THREE.CustomBlending,blendEquation:THREE.AddEquation,blendSrc:THREE.ZeroFactor,blendDst:THRM
EE.ZeroFactor,blendSrcAlpha:THREE.ZeroFactor,blendDstAlpha:THREE.ZeroFactor})),window._stagePunchMat}function getStageIdleMaterial(){return window._stageIdleMat||(window._stageIdleMat=new THREE.MeshBasicMaterial({color:1118232,transparent:!0,opacity:.28,side:THREE.DoubleSide,fog:!1,depthWrite:!0})),window._stageIdleMat}function setStagePortal(e){stageScreenMesh&&(stageScreenMesh.material=e?getStagePunchMaterial():getStageIdleMaterial(),stageScreenMesh.renderOrder=e?1e3:0)}function ytCommand(e,t){const a=document.geM
tElementById("stageIframe");if(a&&a.contentWindow)try{a.contentWindow.postMessage(JSON.stringify({event:"command",func:e,args:t||[]}),"*")}catch(e){}}function unmuteStageVideo(){ytCommand("unMute"),ytCommand("setVolume",[100]),ytCommand("playVideo");const e=document.getElementById("stageIframe");e&&e.src&&e.src.indexOf("mute=1")>=0&&(e.src=e.src.replace("mute=1","mute=0"))}let localShareStream=null;function jumboVol(){return Math.max(0,Math.min(1,"number"==typeof jumboMixLevel?jumboMixLevel:.28))}function applySharM
eVideo(e){if(!e||"video"!==e.kind)return;window._pendingShareVideo=e;const t=document.getElementById("stageShareVideo");if(!t)return;let a=t.srcObject instanceof MediaStream?t.srcObject:new MediaStream;if(a.getVideoTracks().some(t=>t.id===e.id)||(a.getVideoTracks().forEach(e=>a.removeTrack(e)),a.addTrack(e)),t.srcObject=a,t.playsInline=!0,t.muted=jumboVol()<=.001,t.volume=jumboVol(),t.play().catch(()=>{}),!stageScreenMesh)return;const o=new THREE.VideoTexture(t);THREE.SRGBColorSpace&&(o.colorSpace=THREE.SRGBColorSpM
ace),o.minFilter=THREE.LinearFilter,o.magFilter=THREE.LinearFilter,o.generateMipmaps=!1,"function"==typeof setStagePortal&&setStagePortal(!1),stageScreenMesh.material=new THREE.MeshBasicMaterial({map:o,side:THREE.DoubleSide,fog:!1,toneMapped:!1});const n=document.getElementById("stageScreenFrame");n&&(n.style.display="none")}function applyShareAudio(e){if(!e||"audio"!==e.kind)return;window._pendingShareAudio=e;const t=document.getElementById("stageShareVideo");if(t){let a=t.srcObject instanceof MediaStream?t.srcObjM
ect:new MediaStream;a.getAudioTracks().some(t=>t.id===e.id)||a.addTrack(e),t.srcObject=a,t.playsInline=!0,t.muted=jumboVol()<=.001,t.volume=jumboVol(),t.play().catch(()=>{})}let a=document.getElementById("stageShareAudio");a||(a=document.createElement("audio"),a.id="stageShareAudio",a.autoplay=!0,a.playsInline=!0,document.body.appendChild(a)),a.srcObject=new MediaStream([e]),a.muted=jumboVol()<=.001,a.volume=jumboVol();const o=()=>{a.muted=jumboVol()<=.001,a.volume=jumboVol(),a.play().catch(()=>{}),t&&(t.muted=jumbM
oVol()<=.001,t.volume=jumboVol(),t.play().catch(()=>{}))};o(),e.enabled=!0,e.onunmute=o}function applyShareStreamToStage(e){e&&(window._pendingShareStream=e,e.getVideoTracks&&e.getVideoTracks().forEach(applyShareVideo),e.getAudioTracks&&e.getAudioTracks().forEach(applyShareAudio),"video"===e.kind&&applyShareVideo(e),"audio"===e.kind&&applyShareAudio(e))}async function startHostShare(){if(multiplayerMode&&!isHost){const e=document.getElementById("status");return void(e&&(e.textContent="Only the host can share a windM
ow"))}try{localShareStream=await navigator.mediaDevices.getDisplayMedia({video:{frameRate:15,width:{max:1280},height:{max:720}},audio:{echoCancellation:!1,noiseSuppression:!1,autoGainControl:!1,suppressLocalAudioPlayback:!1},systemAudio:"include",preferCurrentTab:!1})}catch(e){const t=document.getElementById("status");return void(t&&(t.textContent="Share cancelled or blocked"))}const e=localShareStream.getAudioTracks();e.forEach(e=>{try{e.contentHint="music",e.enabled=!0}catch(e){}});const t=document.getElementByIdM
("status");!e.length&&t&&(t.textContent="No tab audio captured. Share a Chrome TAB (not a window) and check Share tab audio."),applyShareStreamToStage(localShareStream);const a=localShareStream.getVideoTracks()[0];a&&a.addEventListener("ended",()=>stopHostShare());const o=new Set;void 0!==remotePlayers&&remotePlayers.forEach((e,t)=>o.add(t)),dcList.forEach(e=>{e&&e._peerId&&o.add(e._peerId)}),sharePcs.forEach((e,t)=>o.add(t)),o.forEach(e=>{if(!e||e===myPlayerID)return;const t=sharePcs.get(e);if(t){try{t.close()}catM
ch(e){}sharePcs.delete(e)}offerShare(e)}),"function"==typeof broadcastClub&&broadcastClub({type:"screenShare",on:!0});const n=document.getElementById("clubShareStopBtn"),r=document.getElementById("clubShareBtn");n&&(n.style.display="block"),r&&(r.textContent="Sharing
")}function stopHostShare(){localShareStream&&(localShareStream.getTracks().forEach(e=>{try{e.stop()}catch(e){}}),localShareStream=null),sharePcs.forEach((e,t)=>{try{e.getSenders().forEach(e=>{try{e.replaceTrack(null)}catch(e){}})}catch(e){}});const M
e=document.getElementById("stageShareVideo");e&&(e.srcObject=null);const t=document.getElementById("stageShareAudio");t&&(t.srcObject=null),window._pendingShareStream=null,window._pendingShareVideo=null,window._pendingShareAudio=null,stageScreenMesh&&"function"==typeof getStageIdleMaterial&&(stageScreenMesh.material=getStageIdleMaterial()),"function"==typeof broadcastClub&&broadcastClub({type:"screenShare",on:!1});const a=document.getElementById("clubShareStopBtn"),o=document.getElementById("clubShareBtn");a&&(a.stM
yle.display="none"),o&&(o.textContent="Share window")}function applyStageScreen(e,t){stageScreenUrl=e||"",null!=t&&(window._stageStartSec=t);const a=document.getElementById("stageScreenFrame"),o=document.getElementById("stageIframe");if(!a||!o)return;const n=toEmbedUrl(stageScreenUrl);if(!n)return o.src="about:blank",a.style.display="none",void setStagePortal(!1);a.style.display="none",o.src!==n&&(o.src=n),applyStagePreviewTexture(stageScreenUrl),setStagePortal(!0),setTimeout(()=>{try{ytCommand("unMute"),ytCommand(M
"setVolume",[Math.round(100*("number"==typeof jumboMixLevel?jumboMixLevel:.55))]),ytCommand("playVideo")}catch(e){}if(t)try{ytCommand("seekTo",[t,!0])}catch(e){}},800)}function publishStageScreen(){if(!isHost)return;const e=document.getElementById("screenUrlInput"),t=e?e.value.trim():"";window._stageT0=Date.now(),window._stageStartSec=0,applyStageScreen(t,0),broadcastClub({type:"screenUrl",url:t,t0:window._stageT0,start:0})}function stageElapsed(){return window._stageT0?(Date.now()-window._stageT0)/1e3+(window._staM
geStartSec||0):0}function startStageClock(){window._stageClock||(window._stageClock=setInterval(()=>{isHost&&stageScreenUrl&&broadcastClub({type:"screenClock",url:stageScreenUrl,t:stageElapsed()})},2500))}function requestSpeak(){clubSpeakers.add(myPlayerID),broadcastClub({type:"speakGrant",target:myPlayerID,speakers:Array.from(clubSpeakers)}),refreshClubDock()}function hostSetSpeaker(e,t){e&&(isHost||clubHostId===myPlayerID)&&(isHost=!0,t?(clubRequests.delete(e),clubSpeakers.add(e),broadcastClub({type:"speakGrant",M
target:e,speakers:Array.from(clubSpeakers)})):(clubSpeakers.delete(e),clubRequests.delete(e),broadcastClub({type:"speakRevoke",target:e,speakers:Array.from(clubSpeakers)})),refreshClubDock())}function handleClubNet(e){if(!e||!e.type)return!1;if(-1===["speakRequest","speakLeave","speakGrant","speakRevoke","speakerSync","screenUrl","screenClock","roomMute","screenShare","shareRepair"].indexOf(e.type))return!1;if("speakRequest"===e.type){e.id&&clubRequests.add(e.id);const t=document.getElementById("status");return t&&M
isHost&&(t.textContent=(e.id||"Guest")+" requests the floor"),refreshClubDock(),!0}if("speakLeave"===e.type)return e.id&&(clubSpeakers.delete(e.id),clubRequests.delete(e.id)),refreshClubDock(),!0;if("speakGrant"===e.type)return Array.isArray(e.speakers)&&(clubSpeakers=new Set(e.speakers)),e.target&&(clubSpeakers.add(e.target),clubRequests.delete(e.target),"function"==typeof getVoicePc&&getVoicePc(e.target),e.target===myPlayerID&&(remotePlayers.forEach((e,t)=>getVoicePc(t)),clubHostId&&clubHostId!==myPlayerID&&getVoM
icePc(clubHostId),attachMicToPeers(!0))),refreshClubDock(),!0;if("speakRevoke"===e.type)return Array.isArray(e.speakers)&&(clubSpeakers=new Set(e.speakers)),e.target&&(clubSpeakers.delete(e.target),clubRequests.delete(e.target),e.target===myPlayerID&&voiceOn&&setMicEnabled(!1)),refreshClubDock(),!0;if("speakerSync"===e.type){if(e.hostId&&(clubHostId=e.hostId),Array.isArray(e.speakers)&&(clubSpeakers=new Set(e.speakers)),Array.isArray(e.requests)&&(clubRequests=new Set(e.requests)),e.sharing&&(window._remoteShareOn=M
!isHost),null!=e.screenUrl){const t=e.t0?(Date.now()-e.t0)/1e3+(e.start||0):e.start||0;applyStageScreen(e.screenUrl,t)}return refreshClubDock(),!0}if("screenUrl"===e.type){const t=e.t0?(Date.now()-e.t0)/1e3+(e.start||0):e.start||0;applyStageScreen(e.url||"",t);const a=document.getElementById("screenUrlInput");return a&&null!=e.url&&(a.value=e.url),!0}if("screenClock"===e.type&&!isHost){if(e.url&&e.url!==stageScreenUrl)applyStageScreen(e.url,e.t||0);else if(null!=e.t)try{ytCommand("seekTo",[e.t,!0]),ytCommand("playVM
ideo")}catch(e){}return!0}if("shareRepair"===e.type&&isHost&&localShareStream)return voicePcs.forEach((e,t)=>{e.getSenders().forEach(e=>{if(!e._clubShare||!e._clubShareKind)return;const t="video"===e._clubShareKind?localShareStream.getVideoTracks()[0]:localShareStream.getAudioTracks()[0];if(t)try{e.replaceTrack(t)}catch(e){}}),"function"==typeof offerVoice&&offerVoice(t)}),!0;if("screenShare"===e.type){if(window._remoteShareOn=!!e.on&&!isHost,!1===e.on&&!isHost){const e=document.getElementById("stageShareVideo");e&M
&(e.srcObject=null),stageScreenMesh&&"function"==typeof getStageIdleMaterial&&(stageScreenMesh.material=getStageIdleMaterial())}return!0}if("roomMute"===e.type){if(!isHost){roomMuteHold=!0,selfMuted=!0,applyMicSendState(),syncMicButtons();const e=document.getElementById("status");e&&(e.textContent="Host muted the room
 click Unmute my mic"),refreshClubDock()}return!0}return!1}function syncClubStateTo(e){if(!isHost)return;const t={type:"speakerSync",id:myPlayerID,hostId:myPlayerID,speakers:Array.from(clubSpeakersM
),requests:Array.from(clubRequests),screenUrl:stageScreenUrl,sharing:!(void 0===localShareStream||!localShareStream),t0:window._stageT0||Date.now(),start:stageElapsed()},a=JSON.stringify(t);e&&"open"===e.readyState?e.send(a):broadcastClub(t)}function refreshClubDock(){const e=document.getElementById("clubDock"),t=document.getElementById("clubPlayerList"),a=document.getElementById("clubRoleLine"),o=document.getElementById("clubSpeakBtn"),n=document.getElementById("clubScreenPanel");if(!e||!t)return;e.style.display=gM
ameStarted?"block":"none";const r=document.getElementById("clubDockToggle");r&&(r.style.display=gameStarted?"block":"none");const s=document.getElementById("clubMixer");s&&(s.style.display=gameStarted?"block":"none"),gameStarted&&isHost&&!window._hostVoiceArmed&&(window._hostVoiceArmed=!0,ensureHostBroadcast()),clubDockCollapsed&&e.classList.add("collapsed"),n&&(n.style.display=isHost?"block":"none");const l=document.getElementById("clubRoomMuteBtn");l&&(l.style.display=isHost?"block":"none"),"function"==typeof synM
cMicButtons&&syncMicButtons();const i=clubRoleOf(myPlayerID);a&&(a.textContent="You: "+i.toUpperCase()+(isHost?"
 hosting":"")),o&&(isHost?(o.textContent="Open floor
 no permission",o.disabled=!0):clubCanSpeak()?(o.textContent="Mic is open",o.disabled=!1):clubRequests.has(myPlayerID)?(o.textContent="Mic ready",o.disabled=!0):(o.textContent="Open my mic",o.disabled=!1));const c=[],d=new Set,u=(e,t)=>{if(!e||d.has(e))return;d.add(e);const a=clubRoleOf(e),o="function"==typeof displayName?displayName(e):String(e||"M
Guest");let n="";isHost&&e!==myPlayerID&&(n="waiting"===a?'<span class="club-actions"><button data-act="grant" data-id="'+e+'">ALLOW</button><button data-act="deny" data-id="'+e+'">NO</button></span>':"speaker"===a?'<span class="club-actions"><button data-act="revoke" data-id="'+e+'">REMOVE</button></span>':'<span class="club-actions"><button data-act="grant" data-id="'+e+'">INVITE</button></span>');const r="host"===a?"host":"speaker"===a?"speak":"waiting"===a?"wait":"";c.push('<div class="club-row"><div class="cluM
b-name">'+o+(t||"")+'</div><span class="club-tag '+r+'">'+a+"</span>"+n+"</div>")};u(myPlayerID,"
 you"),remotePlayers.forEach((e,t)=>u(t)),clubRequests.forEach(e=>u(e)),clubSpeakers.forEach(e=>u(e)),t.innerHTML=c.join("")||"
",t.querySelectorAll("button[data-act]").forEach(e=>{const t=t=>{t&&(t.preventDefault(),t.stopPropagation());const a=e.getAttribute("data-id");hostSetSpeaker(a,"grant"===e.getAttribute("data-act"))};e.onclick=t,e.onmousedown=t})}function youtubeIdFromUrl(e){const t=String(e||"").match(/(?:M
youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/|youtube\.com\/live\/)([A-Za-z0-9_-]{6,})/);return t?t[1]:""}function applyStagePreviewTexture(e){if(!stageScreenMesh)return;const t=youtubeIdFromUrl(e),a=t?"https://img.youtube.com/vi/"+t+"/hqdefault.jpg":"";a?(new THREE.TextureLoader).load(a,e=>{stageScreenMesh&&stageScreenMesh.material&&(e.colorSpace=THREE.SRGBColorSpace||e.colorSpace,stageScreenMesh.material.map=e,stageScreenMesh.material.color.set(16777215),stageScreenMesh.material.transparent=!1,stageScM
reenMesh.material.opacity=1,stageScreenMesh.material.needsUpdate=!0)},void 0,()=>{}):stageScreenMesh.material&&(stageScreenMesh.material.map=null,stageScreenMesh.material.opacity=.28,stageScreenMesh.material.needsUpdate=!0)}function projectStageScreen(){const e=document.getElementById("stageScreenFrame");if(!(e&&stageScreenMesh&&camera&&renderer))return;if(!stageScreenUrl)return void(e.style.display="none");e.style.display="block",stageScreenMesh.updateWorldMatrix(!0,!1);const t=stageScreenMesh.geometry;t.boundingBM
ox||t.computeBoundingBox();const a=t.boundingBox;_ssCorners[0].set(a.min.x,a.max.y,0),_ssCorners[1].set(a.max.x,a.max.y,0),_ssCorners[2].set(a.max.x,a.min.y,0),_ssCorners[3].set(a.min.x,a.min.y,0);const o=window.innerWidth,n=window.innerHeight,r=_ssCorners.map(e=>{const t=e.clone().applyMatrix4(stageScreenMesh.matrixWorld).project(camera);return{x:(.5*t.x+.5)*o,y:(.5*-t.y+.5)*n,z:t.z}});if(r.some(e=>e.z>1||e.z<-1))return void(e.style.opacity="0");e.style.opacity="1";const s=function(e,t){const a=[],o=[];for(let n=0M
;n<4;n++){const r=e[n],s=t[n];a.push([r[0],r[1],1,0,0,0,-r[0]*s[0],-r[1]*s[0]]),o.push(s[0]),a.push([0,0,0,r[0],r[1],1,-r[0]*s[1],-r[1]*s[1]]),o.push(s[1])}const n=a.map((e,t)=>e.concat([o[t]]));for(let e=0;e<8;e++){let t=e;for(let a=e+1;a<8;a++)Math.abs(n[a][e])>Math.abs(n[t][e])&&(t=a);const a=n[e];n[e]=n[t],n[t]=a;const o=n[e][e]||1e-12;for(let t=e;t<=8;t++)n[e][t]/=o;for(let t=0;t<8;t++)if(t!==e){const a=n[t][e];for(let o=e;o<=8;o++)n[t][o]-=a*n[e][o]}}return n.map(e=>e[8])}([[0,0],[1280,0],[1280,720],[0,720]],M
[[r[0].x,r[0].y],[r[1].x,r[1].y],[r[2].x,r[2].y],[r[3].x,r[3].y]]),l=[s[0],s[3],0,s[6],s[1],s[4],0,s[7],0,0,1,0,s[2],s[5],0,1];e.style.transform="matrix3d("+l.join(",")+")"}startStageClock();let clubCollideMeshes=[];function resolveClubMeshWalls(e,t){if(!clubCollideMeshes.length)return t;const a=[1.2,4.2,8.5],o=new THREE.Vector3(t.x-e.x,0,t.z-e.z),n=Math.hypot(o.x,o.z);if(n<1e-5)return t;o.multiplyScalar(1/n);const r=new THREE.Raycaster;r.far=n+3.4;let s=null;for(let t=0;t<a.length;t++){const l=new THREE.Vector3(e.M
x,e.y+a[t],e.z);r.set(l,o);const i=r.intersectObjects(clubCollideMeshes,!1);if(!i.length)continue;const c=i[0];c.distance<n+3.4&&(!s||c.distance<s.distance)&&(s=c)}if(!s)return t;const l=s.face&&s.object?s.face.normal.clone().transformDirection(s.object.matrixWorld):o.clone().negate();l.y=0,l.lengthSq()<1e-6&&l.copy(o).negate(),l.normalize(),l.dot(o)>0&&l.negate();const i=n+3.4-s.distance+.15;t.x=e.x+o.x*Math.max(0,n-i),t.z=e.z+o.z*Math.max(0,n-i),t.x+=.2*l.x,t.z+=.2*l.z;const c=car.vel.x*-l.x+car.vel.z*-l.z;returnM
 c>0&&(car.vel.x+=l.x*c,car.vel.z+=l.z*c),t}function plantClubMushroom(e,t,a,o,n,r,s,l){if(!e)return;const i="function"==typeof getClubGroundHeight?getClubGroundHeight(t,a,r+80):r,c=e.clone(!0);c.scale.setScalar(o),c.position.set(t,i,a),c.rotation.y=null!=l?l:0,n.add(c),c.updateMatrixWorld(!0);let d=(new THREE.Box3).setFromObject(c),u=Math.max(.01,d.max.y-d.min.y);const m=Math.max(s||10,u);u<m&&(c.scale.multiplyScalar(m/u),c.updateMatrixWorld(!0),d=(new THREE.Box3).setFromObject(c)),c.position.y+=i-d.min.y,c.updateM
MatrixWorld(!0),c.traverse(e=>{e.isMesh&&e.geometry&&(e.castShadow=!0,e.receiveShadow=!0,chaosRayMeshes.push(e))})}const CLUB_MUSH_IDS=["8eb31ec7e6aaa30e07c7b2927a1bf83994946a0bb4c01890cec9b3940da4636di0","1617193a1df08ab6db7305ad7694b8cc39f0e58ae01f6847023d829b3741ad16i0","ed0634d1710899531da882d5474f9b365d06038cd8fa2d05e7a08b9fc8b51f23i0"];async function loadClubMushroomTemplates(){const e="function"==typeof makeGltfLoader?await makeGltfLoader():new GLTFLoader,t=[];return await Promise.all(CLUB_MUSH_IDS.map(a=>neM
w Promise(o=>{const n=setTimeout(()=>o(),2e4);e.load("/content/"+a,e=>{clearTimeout(n),e&&e.scene&&t.push(e.scene),o()},void 0,()=>{clearTimeout(n),o()})}))),t}async function scatterClubMushrooms(e,t,a,o){const n=await loadClubMushroomTemplates();if(!n.length)return;const r=o?o.x:0,s=o?o.z:0,l=Math.atan2(s,r),i=[{dist:.12,count:5,sc:1.7,minH:4},{dist:.215,count:7,sc:4.9,minH:10.5},{dist:.31,count:8,sc:8.05,minH:17},{dist:.405,count:9,sc:11.2,minH:23.5},{dist:.5,count:8,sc:14.4,minH:30}],c=1.02*Math.PI;let d=0;for(lM
et o=0;o<i.length;o++){const u=i[o],m=a*u.dist;for(let i=0;i<u.count;i++){const p=1===u.count?.5:i/(u.count-1),y=o%2*(c/(2*u.count)),h=l+Math.PI-c/2+p*c+y,f=Math.cos(h)*m,g=Math.sin(h)*m;if(Math.hypot(f-r,g-s)<.17*a)continue;const b=Math.atan2(r-f,s-g);plantClubMushroom(n[d%n.length],f,g,u.sc,e,t,u.minH,b),d++}}}async function buildClubHall(){clearMapObstacles(),"function"==typeof clearCtfObjects&&clearCtfObjects(),"function"==typeof clearLavaPatches&&clearLavaPatches(),"function"==typeof clearCheckpointsAndFlag&&cM
learCheckpointsAndFlag(),stageGroup&&stageGroup.parent&&scene.remove(stageGroup),stageGroup=new THREE.Group,clubCollideMeshes=[];const e=(MAP_DEFS["club-hall"]||{}).domeModelId||"e4f5f9ff44b15f7ee9f4af3949ed844bbd8d8754b94359241c9646d2dbe94b7di0",t=getTerrainHeight(0,0);let a=null;try{const t="function"==typeof makeGltfLoader?await makeGltfLoader():new GLTFLoader;a=await new Promise(a=>{const o=setTimeout(()=>a(null),25e3);t.load("/content/"+e,e=>{clearTimeout(o),a(e&&e.scene?e.scene:null)},void 0,()=>{clearTimeoutM
(o),a(null)})})}catch(e){console.error(e)}if(a){stageGroup.add(a),a.updateMatrixWorld(!0);let e=(new THREE.Box3).setFromObject(a),o=e.getSize(new THREE.Vector3);const n=1672,r=Math.max(o.x,o.z,1);a.scale.multiplyScalar(n/r),a.updateMatrixWorld(!0),e=(new THREE.Box3).setFromObject(a),a.position.y+=t-e.min.y,a.updateMatrixWorld(!0),e=(new THREE.Box3).setFromObject(a),window._clubDomeBB=e,a.traverse(e=>{if(e.isMesh&&e.geometry){if(e.castShadow=!0,e.receiveShadow=!0,e.geometry.computeBoundsTree)try{e.geometry.computeBoM
undsTree()}catch(e){}chaosRayMeshes.push(e),clubCollideMeshes.push(e)}})}const o=new THREE.PlaneGeometry(262,185),n="function"==typeof getStageIdleMaterial?getStageIdleMaterial():new THREE.MeshBasicMaterial({color:1118232,side:THREE.DoubleSide,fog:!1});stageScreenMesh=new THREE.Mesh(o,n),window.stageScreenMesh=stageScreenMesh;const r=window._clubDomeBB||new THREE.Box3(new THREE.Vector3(-200,t,-200),new THREE.Vector3(200,t+80,200)),s=r.getSize(new THREE.Vector3);let l=r.min.x+.78*s.x,i=r.min.z+.55*s.z;l*=.4,i*=.5;coM
nst c="function"==typeof getClubGroundHeight?getClubGroundHeight(l,i,t+30):t,d=c+92.5+4;stageScreenMesh.position.set(l,d,i),stageScreenMesh.lookAt(0,c+10,0),stageScreenMesh.rotateX(THREE.MathUtils.degToRad(-5)),window._pendingShareStream&&applyShareStreamToStage(window._pendingShareStream),window._pendingShareVideo&&applyShareVideo(window._pendingShareVideo),window._clubScreenPos={x:l,y:d,z:i},window._clubDomeR=.5*Math.max(s.x,s.z);const u=new THREE.MeshStandardMaterial({color:13214247,emissive:3811856,metalness:.4M
,roughness:.45}),m=new THREE.Mesh(new THREE.BoxGeometry(270,193,3),u);m.position.copy(stageScreenMesh.position),m.quaternion.copy(stageScreenMesh.quaternion),m.translateZ(-2),stageGroup.add(m),stageGroup.add(stageScreenMesh);const p=new THREE.PointLight(16764023,1.4,520);p.position.set(0,t+Math.min(120,.35*s.y),0),stageGroup.add(p);const y=new THREE.PointLight(8956671,.55,600);y.position.set(.4*l,d,.4*i),stageGroup.add(y);const h=new THREE.Mesh(new THREE.CircleGeometry(CLUB_FLOOR_R,80),new THREE.MeshStandardMateriaM
l({color:12891274,roughness:.92,metalness:.04,transparent:!0,opacity:.18}));h.rotation.x=-Math.PI/2,h.position.y=t+.35,h.receiveShadow=!0,stageGroup.add(h);const f=new THREE.Mesh(new THREE.TorusGeometry(CLUB_FLOOR_R-2,3.2,8,80),new THREE.MeshStandardMaterial({color:13214247,emissive:3811848,roughness:.5}));f.rotation.x=Math.PI/2,f.position.y=t+1.2,stageGroup.add(f),window._clubSpawnLift=r?Math.max(48,.38*(r.max.y-t)):90;try{await scatterClubMushrooms(stageGroup,t,window._clubDomeR||700,window._clubScreenPos)}catch(M
e){console.error(e)}scene.add(stageGroup),mapObstacleList.push(stageGroup),clubBuilt=!0,window.buildBovineTrack&&window.buildBovineTrack(scene)}function getClubSpawn(){const e=getTerrainHeight(0,0),t=window._clubSpawnLift||90,a=.15*(window._clubDomeR||700);return{x:(2*Math.random()-1)*a,y:e+t,z:(2*Math.random()-1)*a,rot:Math.random()*Math.PI*2}}function placeMenuPlaceholder(){if(showcaseModel||gameStarted)return;const e=new THREE.Group,t=new THREE.Mesh(new THREE.SphereGeometry(1.15,24,18),new THREE.MeshStandardMateM
rial({color:15259043,roughness:.45,metalness:.15})),a=new THREE.Mesh(new THREE.SphereGeometry(.18,10,8),new THREE.MeshBasicMaterial({color:1118481})),o=a.clone();a.position.set(-.35,.2,.9),o.position.set(.35,.2,.9),e.add(t,a,o),e.position.set(0,2.2,0),e.userData.isPlaceholder=!0,scene.add(e),showcaseModel=e,menuShowcaseActive=!0,camera.fov=50,camera.updateProjectionMatrix(),camera.position.set(0,5.2,14),camera.lookAt(0,4.6,0)}let clubDockCollapsed=!1;function setClubDockCollapsed(e){clubDockCollapsed=!!e;const t=doM
cument.getElementById("clubDock"),a=document.getElementById("clubDockToggle");t&&t.classList.toggle("collapsed",clubDockCollapsed),a&&(a.textContent=clubDockCollapsed?"
",a.title=clubDockCollapsed?"Show menu":"Hide menu",a.style.display=gameStarted?"block":"none")}const clubDockToggle=document.getElementById("clubDockToggle");clubDockToggle&&clubDockToggle.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),setClubDockCollapsed(!clubDockCollapsed)});const clubShareBtn=document.getElementByIdM
("clubShareBtn");clubShareBtn&&clubShareBtn.addEventListener("click",e=>{e.preventDefault(),startHostShare()});const clubShareStopBtn=document.getElementById("clubShareStopBtn");clubShareStopBtn&&clubShareStopBtn.addEventListener("click",e=>{e.preventDefault(),stopHostShare()});const clubUnmuteBtn=document.getElementById("clubUnmuteBtn");clubUnmuteBtn&&clubUnmuteBtn.addEventListener("click",e=>{e.preventDefault(),unmuteStageVideo()});const clubWalkBtn=document.getElementById("clubWalkBtn");clubWalkBtn&&clubWalkBtn.M
addEventListener("click",e=>{e.preventDefault(),setClubUiMode(!1)});const screenUrlInput2=document.getElementById("screenUrlInput");function bindClubWalkKeys(){if(window._clubWalkBound)return;window._clubWalkBound=!0;window.addEventListener("keydown",e=>{if(!gameStarted||paused||clubUiMode)return;const t=(e.key||"").toLowerCase(),a=e.code||"";let o=!1;"w"!==t&&"KeyW"!==a&&"arrowup"!==t&&"ArrowUp"!==a||(keys.w=keys.arrowup=!0,o=!0),"s"!==t&&"KeyS"!==a&&"arrowdown"!==t&&"ArrowDown"!==a||(keys.s=keys.arrowdown=!0,o=!0M
),"a"!==t&&"KeyA"!==a&&"arrowleft"!==t&&"ArrowLeft"!==a||(keys.a=keys.arrowleft=!0,o=!0),"d"!==t&&"KeyD"!==a&&"arrowright"!==t&&"ArrowRight"!==a||(keys.d=keys.arrowright=!0,o=!0),"shift"!==t&&"ShiftLeft"!==a&&"ShiftRight"!==a||(keys.shift=!0,o=!0)," "!==t&&"Space"!==a||(keys[" "]=keys.space=!0,jumpHeld=!0,jumpRequested=!0,o=!0),o&&(typingChat=!1,e.preventDefault())},!0),window.addEventListener("keyup",e=>{const t=(e.key||"").toLowerCase(),a=e.code||"";"w"!==t&&"KeyW"!==a&&"arrowup"!==t&&"ArrowUp"!==a||(keys.w=keys.M
arrowup=!1),"s"!==t&&"KeyS"!==a&&"arrowdown"!==t&&"ArrowDown"!==a||(keys.s=keys.arrowdown=!1),"a"!==t&&"KeyA"!==a&&"arrowleft"!==t&&"ArrowLeft"!==a||(keys.a=keys.arrowleft=!1),"d"!==t&&"KeyD"!==a&&"arrowright"!==t&&"ArrowRight"!==a||(keys.d=keys.arrowright=!1),"shift"!==t&&"ShiftLeft"!==a&&"ShiftRight"!==a||(keys.shift=!1)," "!==t&&"Space"!==a||(keys[" "]=keys.space=!1,jumpHeld=!1)},!0)}screenUrlInput2&&screenUrlInput2.addEventListener("focus",()=>{gameStarted&&setClubUiMode(!0,"MENU
 ESC or Walk to return to yoM
ur avatar")}),bindClubWalkKeys(),
window.BOVINE_INNER=1120;window.BOVINE_OUTER=1680;window.SAT={roster:"2005686177366289",lounge:"2005686177378564",book:"2005686177373859",race:"2005686177373529"};
window.BOVINE_ROSTER=null;
window.loadBovineRace=async function(){
  const sat=window.SAT&&window.SAT.race;
  if(!sat||window.__BOVINE_RACE__)return;
    const tip=await(await fetch("/r/sat/"+sat+"/at/-1")).json();
    const s=document.createElement("script");
    s.src="/content/"+tip.id;
    document.head.appendM
  }catch(e){console.warn("race",e)}
window.loadBovineBook=async function(){
  const sat=window.SAT&&window.SAT.book;
  if(!sat||window.__BOVINE_BOOK__)return;
    const tip=await(await fetch("/r/sat/"+sat+"/at/-1")).json();
    const s=document.createElement("script");
    s.src="/content/"+tip.id;
    document.head.appendChild(s);
  }catch(e){console.warn("book",e)}
window.BOVINE_LOCK={locked:!1,height:null,hash:null};
window.paintBovineCard=function(){
  const heat=(window.BOVINE_RACE&&windM
ow.BOVINE_RACE.heat)||[];
  const all=(window.BOVINE_ROSTER&&window.BOVINE_ROSTER.racers)||[];
  const list=heat.length?heat:all.slice(0,8);
  if(!list.length)return;
  const c=window._bovineCard||(window._bovineCard=document.createElement("canvas"));
  c.width=1024;c.height=576;
  const ctx=c.getContext("2d");
  ctx.fillStyle="#11110c";ctx.fillRect(0,0,1024,576);
  ctx.fillStyle="#f4e7c3";ctx.fillRect(0,0,1024,72);
  ctx.fillStyle="#11110c";ctx.font="700 32px Palatino,Georgia,serif";
  const race=window.BOVINE_RACM
  const board=race.board||{};
  const photo=race.phase==="photo"||race.winner;
  let title="TODAY'S FIELD
  "+list.length+" GOING";
  if(photo) title="CONGRATULATIONS TO THE WINNERS";
  else if(window.BOVINE_LOCK&&window.BOVINE_LOCK.locked) title="POST LOCKED
  "+list.length+" ON THE CARD";
  ctx.fillText(title,28,48);
    const win=board.win||race.winner||{};
    const place=board.place||{};
    const show=board.show||{};
    ctx.fillStyle="#f4e7c3";ctx.font="700 28px Palatino,Georgia,serM
    ctx.fillText("WIN    #"+(win.id||"
")+"  "+(win.name||""),28,140);
    ctx.fillText("PLACE  #"+(place.id||"
")+"  "+(place.name||""),28,200);
    ctx.fillText("SHOW   #"+(show.id||"
")+"  "+(show.name||""),28,260);
    ctx.fillStyle="#e6d39a";ctx.font="20px Palatino,Georgia,serif";
    ctx.fillText("BLOCK HASH  "+String(race.hash||board.hash||"").slice(0,24)+"
    ctx.fillText("Sign the payout
 host holds this board until NEW FIELD",28,390);
      const col=i%cols,row=Math.floor(i/cols);
      const x=28+col*500,y=100+row*90;
      ctx.fillStyle="#f4e7c3";ctx.font="700 26px Palatino,Georgia,serif";
      ctx.fillText("#"+String(r.id).padStart(3,"0")+"  "+r.name,x,y);
      ctx.fillStyle="#e6d39a";ctx.font="20px Palatino,Georgia,serif";
      ctx.fillText("SPD "+r.speed+"   GRIT "+r.grit+"   BURST "+r.burst+"   GATE "+r.gate,x,y+28);
  ctx.fillStyle="#f4e7c3";ctx.font="18px Palatino,Georgia,serif";
  ctx.fillText(photo?"winner takesM
 4% house rake":"host sets entry
 then post",28,552);
  const mesh=window.stageScreenMesh;
  if(mesh&&window.THREE){
    if(!window._bovineCardTex){
      window._bovineCardTex=new THREE.CanvasTexture(c);
      if(THREE.SRGBColorSpace)window._bovineCardTex.colorSpace=THREE.SRGBColorSpace;
    }else window._bovineCardTex.needsUpdate=!0;
    mesh.material=new THREE.MeshBasicMaterial({map:window._bovineCardTex,color:0xffffff,toneMapped:!1});
window.loadBovineRoster=async fuM
  const sat=window.SAT&&window.SAT.roster;
  if(!sat)return null;
    const tip=await(await fetch("/r/sat/"+sat+"/at/-1")).json();
    const data=await(await fetch("/content/"+tip.id)).json();
    window.BOVINE_ROSTER=data;
    const n=(data.racers||[]).length;
    const status=document.getElementById("status");
    status&&(status.textContent="Bovine Racing Club
    window.paintBovineCard();
  }catch(e){console.warn("roster",e);return null}
indow.lockBovinePost=async function(){
  if(!(window.isHost||window.isHostWithKenobi))return;
  if(window.BOVINE_LOCK.locked)return;
  window.BOVINE_LOCK.locked=!0;
    const h=await(await fetch("/r/blockheight")).json();
    window.BOVINE_LOCK.height=h;
  window.paintBovineCard(0);
  const status=document.getElementById("status");
  status&&(status.textContent="POST locked
 waiting on the next block for the photo");
  if(typeof broadcastClub==="function")try{broadcastClub({type:"bovinePost",M
height:window.BOVINE_LOCK.height})}catch(e){}
window.buildBovineTrack=function(scene){
  if(!scene||window._bovineTrackBuilt)return;
  window._bovineTrackBuilt=1;
  const INNER=window.BOVINE_INNER,OUTER=window.BOVINE_OUTER;
  const gold=new THREE.MeshStandardMaterial({color:0xd4b46a,metalness:.72,roughness:.32,emissive:0xd4b46a,emissiveIntensity:.16});
  function ring(r,tube){const m=new THREE.Mesh(new THREE.TorusGeometry(r,tube,8,160),gold.clone());m.rotation.x=Math.PI/2;m.position.y=2.4;scene.add(m);return m}
  ring(INNER,8);ring(OUTER,8);
  const dirt=new THREE.Mesh(new THREE.RingGeometry(INNER,OUTER,128),new THREE.MeshStandardMaterial({color:0x5a4630,roughness:.92}));
  dirt.rotation.x=-Math.PI/2;dirt.position.y=.55;scene.add(dirt);
  const poster=new THREE.TextureLoader().load("/content/ffc4dfb9f7babbbd148793446a3d2ff0f7c0c2daa4d3d60ef876646235fe7a53i0");
  if(THREE.SRGBColorSpace)poster.colorSpace=THREE.SRGBColorSpace;
  const bill=new THREE.Mesh(new THREE.PlaneGeometry(720,420),new THREE.MeshBasicMaterial({map:postM
  bill.position.set(0,140,-(OUTER+280));
  window.loadBovineRoster();window.loadBovineBook&&window.loadBovineBook();window.loadBovineRace&&window.loadBovineRace();
function bovineTeleport(r,ang){
  if(typeof car==="undefined"||!car||!car.pos)return;
  const a=null==ang?Math.atan2(car.pos.z,car.pos.x):ang;
  car.pos.x=Math.cos(a)*r;car.pos.z=Math.sin(a)*r;
  if(car.vel){car.vel.x=0;car.vel.z=0}
window.addEventListener("load",()=>{
  const i=document.getElementById("bovineInsideBtn");
 const o=document.getElementById("bovineRailBtn");
  const p=document.getElementById("bovinePostBtn");
  i&&i.addEventListener("click",e=>{e.preventDefault();bovineTeleport(180,0)});
  o&&o.addEventListener("click",e=>{e.preventDefault();bovineTeleport((window.BOVINE_OUTER||1680)+70,0)});
  p&&p.addEventListener("click",e=>{e.preventDefault();window.lockBovinePost&&window.lockBovinePost()});
window.keepBovineJumbo=function(){
  const THREE=window.THREE,race=window.BOVINE_RACE,mesh=window.stageScreenMesh;
f(!THREE||!mesh||!race)return;
    if(race.phase!=="running")return;
    if(!race.chase||!race.chase.rt||!race.chase.cam){
      const cam=new THREE.PerspectiveCamera(42,16/9,.5,8e3);
      const rt=new THREE.WebGLRenderTarget(1024,576);
      if(rt.texture&&THREE.SRGBColorSpace)rt.texture.colorSpace=THREE.SRGBColorSpace;
      race.chase={cam:cam,rt:rt};
    const map=race.chase.rt.texture;
    if(!mesh.material||mesh.material.map!==map){
      mesh.material=new THREE.MeshBasicMaterial({map:map,color:M
0xffffff,toneMapped:!1});
  const prev=window.paintBovineCard;
  window.paintBovineCard=function(){
    if(window.BOVINE_RACE&&window.BOVINE_RACE.phase==="running")return;
    if(prev)try{prev()}catch(e){}
window.skinBovineRunners=function(){
  const THREE=window.THREE,race=window.BOVINE_RACE;
  if(!THREE||!race||!race.runners)return;
  race.runners.forEach(function(run){
    if(run._skinned||!run.root||!run.racer)return;
    const id=String(run.racer.texture||"").spliM
t("/content/").pop();
    if(!/^[0-9a-f]{64}i[0-9]+$/i.test(id))return;
    const tex=new THREE.TextureLoader().load("/content/"+id,function(t){
      if(THREE.SRGBColorSpace)t.colorSpace=THREE.SRGBColorSpace;
      t.flipY=!0;t.needsUpdate=!0;
      run.root.traverse(function(o){
        if(!o.isMesh||!o.material)return;
        const mats=Array.isArray(o.material)?o.material:[o.material];
        mats.forEach(function(m){
          const copy=m.clone?m.clone():m;
          copy.map=t;
  if(copy.color)copy.color.setHex(0xffffff);
          copy.metalness=.08;copy.roughness=.72;copy.needsUpdate=!0;
          if("format" in copy)try{delete copy.format}catch(e){}
        o.material=mats.length===1?(mats[0].clone?mats[0].clone():mats[0]):mats;
        const apply=Array.isArray(o.material)?o.material:[o.material];
        apply.forEach(function(m){m.map=t;if(m.color)m.color.setHex(0xffffff);m.needsUpdate=!0});
if(!window._bovineSkinWatch){window._bovineSkinWatch=L
setInterval(function(){try{window.skinBovineRunners();window.keepBovineJumbo()}catch(e){}},400)}
initialize()</script> </body></html>h!
SODA #8283 - Drawn May 23, 2026
dnamejSODA #8283edrawnlMay 23, 2026dseedjstretch 23hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
if (w.__BOVINE_BOOK__) return;
w.__BOVINE_BOOK__ = true;
const HOUSE = "bc1p0v9l9tu8tkq3g69y284h05rp5x7v03337tqedstjahkl3ra0uaysy90f5e";
const RAKE_BPS = 400;
const POSTAGE = 330;
const RUNE_HINT = /bip|this/i;
const BTCJS = "https://unpkg.com/bitcoinjs-lib@5.2.0/dist/bitcoinjs-lib.min.js";
inscriptionId: "", output: "", address: "", value: 0, scriptPk: "",
runes: [], pick: null, stake: "0", tickets: [], open: false,
entry: 250, status: "idle",
plan: null, psbt: "", signM
ed: {}, settledFor: ""
w.BOVINE_BOOK = book;
w.BOVINE_HOUSE = HOUSE;
w.BOVINE_RAKE_BPS = RAKE_BPS;
book.refreshField = function () {
const sel = $("bovinePick");
if (sel) sel.dataset.filled = "";
w.bovineRake = function (pot) {
const n = Number(pot) || 0;
return n <= 0 ? 0 : Math.max(1, Math.ceil((n * RAKE_BPS) / 10000));
w.bovineNetPot = function (pot) {
const n = Number(pot) || 0;
return Math.max(0, n - w.bovineRake(n));
function $(id) { return document.getElementById(id); }
const el = $("bovineBookStatus");
if (el) el.textContent = t;
function short(id) {
return id.length < 18 ? id : id.slice(0, 8) + "
function amHost() { return !!(w.isHost || w.isHostWithKenobi); }
if (typeof w.broadcastClub === "function") try { w.broadcastClub(msg); } catch (e) {}
function readHandoff() {
const raw = sessionStorage.getItem("bitvis-init") || sessionStorage.getItem("bitvis-track");
book.inscriptionId = j.inscriptionId || book.inscriptionId;
const h = (location.hash || "").match(/wallet=([a-z0-9]+i[0-9]+)/i);
if (h) book.inscriptionId = h[1];
if (w.__BIPTHIS_ID) book.inscriptionId = w.__BIPTHIS_ID;
w.addEventListener("message", ev => {
if (!m || m.type !== "INIT_OVERLAY") return;
book.inscriptionId = m.inscriptionId || book.inscriptionId;
if (m.runeData.runes) book.runes = normalizeRunes(m.runeData.runes);
if (m.runeData.outputM
) book.output = m.runeData.output;
if (m.runeData.value) book.value = Number(m.runeData.value) || book.value;
function normalizeRunes(list) {
if (!list) return [];
if (Array.isArray(list)) {
return list.map(r => ({
name: r.name || r.rune || "",
id: r.id || r.runeid || (r.raw && (r.raw.id || r.raw.runeid)) || "",
symbol: r.symbol || "
amount: Number(r.amount) || 0,
raw: String(r.raw && r.raw.amount != null ? r.raw.amount : r.amount || 0),
divisibility: r.divisibility || 0
 Object.keys(list).map(name => {
const info = list[name] || {};
const div = info.divisibility || 0;
name, id: info.id || info.runeid || "", symbol: info.symbol || "
amount: Number(info.amount) / Math.pow(10, div), raw: String(info.amount), divisibility: div
async function loadUtxo() {
if (!book.inscriptionId) { say("No BIP*THIS in handoff. Open from the engine menu."); return; }
const insc = await (await fetch("/r/inscription/" + book.inscriptionId)).json();
book.output = insc.output || M
book.address = insc.address || book.address;
book.value = Number(insc.value) || book.value;
if (!book.output) { say("Inscription has no output yet."); return; }
const utxo = await (await fetch("/r/utxo/" + book.output)).json();
book.value = Number(utxo.value != null ? utxo.value : book.value);
book.scriptPk = utxo.script_pubkey || utxo.scriptPk || utxo.script || book.scriptPk;
book.runes = normalizeRunes(utxo.runes);
say("Bag on " + short(book.inscriptionId) + "
 " + book.runes.length + " rune" + (boM
ok.runes.length === 1 ? "" : "s"));
} catch (e) { say("Indexer could not read /r/utxo"); }
function preferredRune() {
return book.runes.find(r => RUNE_HINT.test(r.name) || RUNE_HINT.test(r.symbol)) || book.runes[0] || null;
const heat = (w.BOVINE_RACE && w.BOVINE_RACE.heat) || [];
if (heat.length) return heat;
return ((w.BOVINE_ROSTER && w.BOVINE_ROSTER.racers) || []).filter(r => !r.retired).slice(0, 8);
function maxStake(rune) { return Math.max(0, Math.floor(rune ? Number(rune.amoM
function rootWin() {
try { if (w.top && w.top !== w) return w.top; } catch (e) {}
function hexToB64(hex) {
hex = String(hex || "").replace(/^0x/, "");
if (hex.length % 2) hex = "0" + hex;
for (let i = 0; i < hex.length; i += 2) bytes.push(parseInt(hex.slice(i, i + 2), 16));
bytes.forEach(b => { bin += String.fromCharCode(b); });
function b64ToHex(b64) {
const bin = atob(String(b64 || ""));
for (let i = 0; i < bin.length;M
 i++) hex += ("0" + bin.charCodeAt(i).toString(16)).slice(-2);
function xverseProvider(root) {
return (root.XverseProviders && (root.XverseProviders.BitcoinProvider || root.XverseProviders.Bitcoin))
|| root.BitcoinProvider
const root = rootWin();
const uni = w.unisat || root.unisat;
connect: async function () {
const acc = await uni.requestAccounts();
return (acc && acc[0]) || "";
signMessage: function (msg) { return uni.signMessageM
signPsbt: async function (psbtHex, opt) {
return uni.signPsbt(psbtHex, opt || { autoFinalized: false });
pushPsbt: function (psbtHex) { return uni.pushPsbt(psbtHex); },
sendRunes: function (addr, runeId, amount) { return uni.sendRunes(addr, runeId, String(amount)); }
const xv = xverseProvider(w) || xverseProvider(root);
if (xv && xv.request) {
connect: async function () {
const res = await xv.request("getAccounts", { purposes: ["ordinals", "payment"] });
&& (res.result || res)) || [];
const rows = Array.isArray(list) ? list : (list.addresses || []);
const ord = rows.find(a => (a.purpose || a.type) === "ordinals") || rows[0];
return (ord && (ord.address || ord)) || "";
signMessage: async function (msg) {
const res = await xv.request("signMessage", {
address: book.address,
const out = (res && (res.result || res)) || "";
return out.signature || out;
signPsbt: async function (psbtHex, opt) {
const idx = (opt && opt.toSignInputM
s && opt.toSignInputs[0] && opt.toSignInputs[0].index) || 0;
const res = await xv.request("signPsbt", {
psbt: hexToB64(psbtHex),
psbtBase64: hexToB64(psbtHex),
signInputs: book.address ? { [book.address]: [idx] } : undefined,
inputsToSign: book.address ? [{ address: book.address, signingIndexes: [idx] }] : undefined,
const out = (res && (res.result || res)) || res;
const b64 = out.psbt || out.psbtBase64 || out;
if (typeof b64 === "string" && /^[0-9a-f]+$/i.test(b64) && b64.length % 2 === 0) retM
return b64ToHex(typeof b64 === "string" ? b64 : "");
pushPsbt: async function (psbtHex) {
const res = await xv.request("sendTransfer", { psbt: hexToB64(psbtHex) });
const out = (res && (res.result || res)) || res;
return out.txid || out.txId || out;
throw new Error("Xverse has no pushPsbt; host broadcast after sign");
sendRunes: async function () {
throw new Error("Use the payout PSBT in Xverse");
function showPayPrompt(text) {
("bovinePayPrompt");
el = document.createElement("div");
el.id = "bovinePayPrompt";
el.style.cssText = "position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center";
el.innerHTML = '<div style="width:min(420px,92vw);background:#111;color:#f3ead6;border:1px solid #c4a574;padding:20px;text-align:center;font:16px Palatino,serif"><div id="bovinePayPromptText"></div><button id="bovinePayPromptBtn" type="button" style="margin-top:14px;padding:10px 16px;M
background:#d4b46a;color:#111;border:0;font:700 14px Palatino,serif">SIGN PAYOUT</button></div>';
document.body.appendChild(el);
$("bovinePayPromptBtn").addEventListener("click", function () {
const line = $("bovinePayPromptText");
if (line) line.textContent = text || "Photo is in. Sign the payout.";
el.style.display = "flex";
function hidePayPrompt() {
const el = $("bovinePayPrompt");
if (el) el.style.display = "none";
function injectPanel() {
if ($("bovineBook")) return;
("clubDockBody") || document.body;
const box = document.createElement("div");
box.id = "bovineBook";
box.className = "panel";
'<div id="bovineBookBag" style="font-size:12px;margin:4px 0 8px">no bag yet</div>',
'<button id="bovineConnectBtn" type="button">Connect wallet</button>',
'<label style="display:block;font-size:11px;letter-spacing:.12em">RACER<br/><select id="bovinePick" style="width:100%;margin:4px 0 8px"></select></label>',
'<div id="bovineEntryLine" style="margin:6px 0 8M
px;font-size:13px">Entry set by host</div>',
'<button id="bovineTicketBtn" type="button">Pick and sign entry</button>',
'<button id="bovineSettleBtn" type="button">Settle photo</button>',
'<button id="bovineSignPsbtBtn" type="button">Sign payout PSBT</button>',
'<button id="bovineBroadcastBtn" type="button">Broadcast payout</button>',
'<div id="bovineBookStatus" style="margin-top:8px;font-size:12px;opacity:.8">idle</div>',
'<div id="bovineBookTape" style="max-height:140px;overflow:auto;font-size:11px;margin-top:8pxM
dock.appendChild(box);
$("bovinePick").addEventListener("change", e => { book.pick = e.target.value; if (book.open) requestEntryPopup(); });
$("bovineTicketBtn").addEventListener("click", signCommit);
$("bovineConnectBtn").addEventListener("click", connectWallet);
$("bovineSettleBtn").addEventListener("click", function () { settle(true); });
$("bovineSignPsbtBtn").addEventListener("click", signPayoutPsbt);
$("bovineBroadcastBtn").addEventListener("click", broadcastPayout);
const bag = $("bovineBookBag");
const rune = preferredRune();
bag.innerHTML = book.inscriptionId
? "Wallet " + short(book.inscriptionId) + "<br/>" + (book.address ? short(book.address) + "<br/>" : "") +
(rune ? rune.symbol + " " + rune.amount + "
 keep 1 on sat" : "no runes on this utxo") +
"<br/>entry " + (book.entry || "
: "Walk in from BIP*THIS so this sat is the wallet.";
const line = $("bovineEntryLine");
if (line) line.textContent = M
? ("ENTRY " + (book.entry || "
 sign or just watch")
: "Host has not opened the book";
const sel = $("bovinePick");
const rows = field();
const key = rows.map(r => r.id).join(",");
if (sel.dataset.filled !== key) {
sel.innerHTML = rows.map(r => '<option value="' + r.id + '">#' + r.id + " " + r.name + "
 S" + r.speed + "</option>").join("") || "<option>waiting on the field</option>";
sel.dataset.filled = key;
if (rows[0]) book.pick = String(rows[0].id);
e = $("bovineBookTape");
const head = book.plan ? "<div>PHOTO #" + book.plan.winner + " pot " + book.plan.pot + " rake " + book.plan.rake + " net " + book.plan.net + "</div>" : "";
tape.innerHTML = head + (book.tickets.map(t => short(t.from) + "
 " + t.amount + (t.sig ? "
 signed" : "") + (t.txid ? "
 " + short(t.txid) : "")).join("<br/>") || "no tickets");
async function connectWallet() {
const wal = wallet();
if (!wal) { say("Install Unisat or Xverse."); return null; }
book.address = await wal.connect();
say("Wallet " + wal.name + "
 " + short(book.address));
} catch (e) { say("Wallet rejected"); return null; }
function writeTicket() {
if (!book.open && !(w.BOVINE_RACE && w.BOVINE_RACE.phase === "betting")) {
say("Wait for the host to press PLACE YOUR BETS."); return;
if (w.BOVINE_LOCK && w.BOVINE_LOCK.locked) { say("Post is locked. No more tickets."); return; }
const rune = preferredRune();
const cap = maxStake(rune);
const amt = Math.max(1, Math.M
floor(Number(book.entry || (w.BOVINE_RACE && w.BOVINE_RACE.entry) || 0)));
const pick = ($("bovinePick") && $("bovinePick").value) || book.pick;
if (!pick) { say("Pick a racer."); return; }
if (!(amt > 0)) { say("Wait for the host to set the entry."); return; }
if (amt > cap) { say("Need " + amt + " plus 1 left on the sat. Bag only allows " + cap + "."); return; }
from: book.inscriptionId, output: book.output, address: book.address, value: book.value,
scriptPk: book.scriptPk, racer: String(pick), aM
mount: amt, rune: rune ? rune.name : "",
runeId: rune ? rune.id : "", ts: Date.now(), sig: "", txid: ""
book.tickets = book.tickets.filter(t => t.from !== ticket.from);
book.tickets.push(ticket);
book.stake = String(amt);
net({ type: "bovineTicket", ticket: ticket });
say("Ticket in the book
async function signCommit() {
let ticket = book.tickets.find(t => t.from === book.inscriptionId);
if (!ticket) ticket = writeTicket();
const wal = wallet() || await connectWallet();
if (!wal || !wal.signMessage) {
ticket.committed = true;
say("No signMessage. Ticket marked local-only.");
net({ type: "bovineTicket", ticket: ticket });
const msg = "BOVINE TICKET " + ticket.from + " #" + ticket.racer + " " + ticket.amount + " " + ticket.rune + " " + ticket.ts;
ticket.sig = await wal.signMessage(msg);
ticket.committed = true;
 #" + ticket.racer + "
 " + ticket.amount);
net({ type: "bovineTicket", tM
} catch (e) { say("Commit cancelled"); }
function winnerId() {
return String((w.BOVINE_RACE && w.BOVINE_RACE.winner && w.BOVINE_RACE.winner.id) || (book.plan && book.plan.winner) || "");
function buildPlan() {
const tickets = book.tickets.slice();
const pot = tickets.reduce((s, t) => s + Number(t.amount || 0), 0);
const rake = w.bovineRake(pot);
const netPot = Math.max(0, pot - rake);
const win = winnerId();
const onWin = tickets.filter(t => String(t.racer) === win);
onWin.reduce((s, t) => s + Number(t.amount || 0), 0) || 1;
const payouts = onWin.map(t => ({
to: t.from, address: t.address,
amount: Math.floor(netPot * (Number(t.amount) / winStake)), reason: "prize"
if (pot > 0) payouts.push({ to: "HOUSE", address: HOUSE, amount: rake, reason: "rake" });
hash: (w.BOVINE_RACE && w.BOVINE_RACE.hash) || "", winner: win, pot: pot, rake: rake, net: netPot,
rune: (tickets[0] && tickets[0].rune) || "", runeId: (tickets[0] && tickets[0].runeId) || "",
function encodeLeb(n) {
while (n >= 128n) { out.push(Number((n & 127n) | 128n)); n >>= 7n; }
out.push(Number(n));
function encodeRunestone(edicts, pointer) {
if (pointer != null) ints.push(22, pointer);
let prevB = 0, prevT = 0;
edicts.forEach(ed => {
const parts = String(ed.id || "0:0").split(":");
const b = Number(parts[0]) || 0, t = Number(parts[1]) || 0;
ints.push(b - prevB, t - prevT, ed.amount,M
prevB = b; prevT = t;
ints.forEach(n => encodeLeb(n).forEach(b => bytes.push(b)));
async function loadBitcoin() {
if (w.bitcoin && w.bitcoin.Psbt) return w.bitcoin;
await new Promise(function (res, rej) {
const s = document.createElement("script");
s.src = BTCJS; s.onload = res; s.onerror = rej;
document.head.appendChild(s);
async function buildPsbt(plan) {
const bitcoin = await loadBitcoin();
const network = bitcoin.networks.bitcoin;
psbt = new bitcoin.Psbt({ network: network });
plan.tickets.forEach(t => {
const parts = String(t.output || "").split(":");
if (!parts[0] || parts[1] == null) throw new Error("ticket missing utxo " + t.from);
const script = t.scriptPk
? Buffer.from(String(t.scriptPk).replace(/^0x/, ""), "hex")
: bitcoin.address.toOutputScript(t.address, network);
psbt.addInput({ hash: parts[0], index: Number(parts[1]), witnessUtxo: { script: script, value: Number(t.value) || 10000 } });
const payload = encodeRunestone(
outs.filter(p => p.amount > 0 && p.address).map((p, i) => ({ id: plan.runeId || "0:0", amount: p.amount, output: i + 1 })),
psbt.addOutput({ script: bitcoin.script.compile([bitcoin.opcodes.OP_RETURN, bitcoin.opcodes.OP_13, Buffer.from(payload)]), value: 0 });
const share = Math.ceil((1200 + plan.tickets.length * 200) / Math.max(1, plan.tickets.length));
plan.tickets.forEach(t => {
if (!t.address) throw new Error("ticket has no address");
psbt.addOutput({ address: t.address, value: Math.max(POSTAGE, (Number(t.vM
alue) || 10000) - share) });
psbt.addOutput({ address: HOUSE, value: POSTAGE });
book.psbt = psbt.toHex();
async function settle(force) {
if (!w.BOVINE_RACE || w.BOVINE_RACE.phase !== "photo") {
if (!w.BOVINE_RACE || !w.BOVINE_RACE.winner) { say("No photo yet."); return; }
const key = (w.BOVINE_RACE && w.BOVINE_RACE.hash) || "local";
if (book.settledFor === key && !force) return;
book.settledFor = key;
const plan = buildPlan();
say("PHOTO #" + plan.winM
 pot " + plan.pot + "
 rake " + plan.rake + "
net({ type: "bovineSettlePlan", plan: plan });
await buildPsbt(plan);
say("Payout PSBT ready
net({ type: "bovinePsbt", psbt: book.psbt, hash: plan.hash });
showPayPrompt("Photo is in. Sign the payout for this heat.");
say("Float PSBT skipped
 " + (e && e.message || e) + "
showPayPrompt("Wallet will send your stake now.");
paySequential(plan);
async function signPayoutPsbt() {
if (!book.psbt) { say("No payout PSBT yet."); return; }
const wal = wallet() || await connectWallet();
if (!wal || !wal.signPsbt) { say("Wallet cannot sign PSBT."); return; }
const mine = book.tickets.findIndex(t => t.from === book.inscriptionId);
const signed = await wal.signPsbt(book.psbt, {
autoFinalized: false,
toSignInputs: mine >= 0 ? [{ index: mine, address: book.address }] : undefined
book.signed[book.inscriptionId || book.address] = true;M
net({ type: "bovineSignedPsbt", psbt: signed, from: book.inscriptionId });
say("Signed payout PSBT");
if (amHost()) broadcastPayout();
} catch (e) { say("PSBT sign cancelled"); }
async function broadcastPayout() {
if (!book.psbt) { say("No PSBT."); return; }
const wal = wallet() || await connectWallet();
if (!wal.pushPsbt) { say("Wallet has no pushPsbt"); return; }
const txid = await wal.pushPsbt(book.psbt);
say("Broadcast " + short(txid));
book.tickets.forEach(tM
 => { t.txid = txid; });
net({ type: "bovinePaid", txid: txid });
} catch (e) { say("Broadcast failed
 " + (e && e.message || e)); }
async function paySequential(plan) {
const wal = wallet() || await connectWallet();
if (!wal || !wal.sendRunes) { say("No sendRunes. Sign the float PSBT instead."); return; }
const mine = plan.tickets.find(t => t.from === book.inscriptionId);
const winTicket = plan.tickets.find(t => String(t.racer) === String(plan.winner));
mine.racer) !== String(plan.winner) && winTicket && winTicket.address) {
dests.push({ address: winTicket.address, amount: String(mine.amount), note: "prize" });
if (String(mine.racer) !== String(plan.winner) && plan.rake > 0 && plan.pot > 0) {
dests.push({ address: HOUSE, amount: String(Math.max(1, Math.ceil(plan.rake * (mine.amount / plan.pot)))), note: "rake" });
for (let i = 0; i < dests.length; i++) {
const res = await wal.sendRunes(d.address, plan.runeId || mine.runeId, d.amount);M
mine.txid = String(res && (res.txid || res));
say("Sent " + d.note + " " + short(mine.txid));
net({ type: "bovinePaid", ticket: mine, txid: mine.txid });
say("sendRunes blocked (Lordinals glue)
 " + (e && e.message || e));
const prevLock = w.lockBovinePost;
w.lockBovinePost = async function () {
if (prevLock) await prevLock();
 " + book.tickets.length + " ticket(s)");
const prevNet = w.handleClubNet;
function requestEntryPopup() {
(!book.open) return;
 connect then sign this entry, or dismiss to watch");
connectWallet().then(function (wal) {
const pick = ($("bovinePick") && $("bovinePick").value) || book.pick;
if (pick) signCommit();
function requestPayoutPopup() {
showPayPrompt("Sign the payout in Unisat or Xverse");
w.handleClubNet = function (msg, from) {
if (msg && msg.type === "bovineBetsOpen") {
if (msg.entry) book.M
entry = Number(msg.entry);
setTimeout(requestEntryPopup, 400);
if (msg && msg.type === "bovineTicket" && msg.ticket) {
const i = book.tickets.findIndex(t => t.from === msg.ticket.from);
if (i >= 0) book.tickets[i] = msg.ticket; else book.tickets.push(msg.ticket);
if (msg && msg.type === "bovineSettlePlan" && msg.plan) { book.plan = msg.plan; paint(); }
if (msg && msg.type === "bovinePsbt" && msg.psbt) {
book.psbt = msg.psbt;
requestPayoutPopup();
if (msg && msg.type === "bovineSigneM
dPsbt" && msg.psbt) {
book.psbt = msg.psbt;
if (msg.from) book.signed[msg.from] = true;
if (msg && msg.type === "bovinePaid" && msg.txid) {
book.tickets.forEach(t => { if (!t.txid) t.txid = msg.txid; });
if (typeof prevNet === "function") return prevNet(msg, from);
setInterval(function () {
const phase = w.BOVINE_RACE && w.BOVINE_RACE.phase;
if (phase === "betting" && lastPhase !== "betting") requestEntryPopup();
if (phase === "photo" && w.BOVINE_RACE.hash && book.settleM
dFor !== w.BOVINE_RACE.hash) settle(false);
if (phase) lastPhase = phase;
function boot() { injectPanel(); readHandoff(); loadUtxo(); paint(); }
if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", boot);
if (w.__BOVINE_RACE__) return;
w.__BOVINE_RACE__ = true;
const COW = "beef152c1096a662c64fa8d25ff61f5224f18a93c6235f6192d1d3cc85e0e94ci0";
const GATE_MS = 20000;
w.BOVINE_RACE = race;
function $(id) { return document.getElementById(id); }
const a = w.BOVINE_INNER || 1120, b = w.BOVINE_OUTER || 1680;
const s = $("status");
if (s) s.textContent = t;
const g = $("bovineGateLine");
if (g) g.textContent = t;
if (typeof w.broadcastClub === "function") {
try { w.broadcastClub(msg); } catch (e) {}
function amHost() { return !!(w.isHost || w.isHostWithKenobi); }
function applyHeat(ids) {
if (!ids || !ids.length) return;
roster().forEach(r => { byId[r.id] = r; });
const heat = ids.map(id => byId[id]).filter(Boolean);
if (heat.length) race.heat = heat;
eCard) w.paintBovineCard();
if (w.BOVINE_BOOK && w.BOVINE_BOOK.refreshField) w.BOVINE_BOOK.refreshField();
function snapshot() {
type: "bovineState",
heat: (race.heat || []).map(r => r.id),
lockHeight: race.lockHeight,
winner: race.winner && race.winner.id,
startedAt: race.startedAt
function syncHostUi() {
const host = amHost();
const live = race.phase === "betting" || race.phase === "gate" || race.phase === "running";
["bovineFieldBtn","bovineBetsBtn","bovinePostM
Btn","bovinePostBtnHud","bovineEntryWrap"].forEach(id => {
if (!host) { el.style.display = "none"; return; }
if (id === "bovineFieldBtn" && live) { el.style.display = "none"; return; }
el.style.display = "";
const dockPost = $("bovinePostBtn");
if (dockPost && dockPost.closest && dockPost.closest("#clubDock")) {
dockPost.style.display = host ? "" : "none";
const ctx = new (w.AudioContext || w.webkitAudioContext)();
const now = ctx.currentTime;
.22, 0.44].forEach((off, i) => {
const o = ctx.createOscillator();
const g = ctx.createGain();
o.frequency.value = i === 2 ? 660 : 880;
g.gain.setValueAtTime(0.0001, now + off);
g.gain.exponentialRampToValueAtTime(0.18, now + off + 0.02);
g.gain.exponentialRampToValueAtTime(0.0001, now + off + 0.35);
o.connect(g); g.connect(ctx.destination);
o.start(now + off); o.stop(now + off + 0.4);
function injectUi() {
if ($("bovineRaceHud")) return;
const hud = document.createElement("divM
hud.id = "bovineRaceHud";
'<div id="bovineGateLine">paddock</div>',
'<button id="bovineFieldBtn" type="button">NEW FIELD</button>',
'<label id="bovineEntryWrap" style="display:flex;align-items:center;gap:6px;font:700 11px Palatino,serif;letter-spacing:.08em">ENTRY <input id="bovineEntryAmt" type="number" min="1" step="1" value="250" style="width:72px;padding:4px 6px;background:#111;color:#f3ead6;border:1px solid #d4b46a"/></label>',
'<button id="bovineBetsBtn" type="button">OPEN BOOK</button>'M
'<button id="bovinePostBtnHud" type="button">POST</button>'
Object.assign(hud.style, {
position: "fixed", top: "12px", left: "50%", transform: "translateX(-50%)",
zIndex: 40, display: "flex", gap: "8px", alignItems: "center",
fontFamily: "Palatino,serif", color: "#f3ead6"
document.body.appendChild(hud);
const chat = document.createElement("div");
chat.id = "bovineChat";
'<div style="font-size:10px;letter-spacing:.16em;margin-bottom:4px">RAIL CHAT</div>',
'<div id="bovineChatLog"M
'<form id="bovineChatForm"><input id="bovineChatIn" maxlength="160" placeholder="enter to send"/></form>'
document.body.appendChild(chat);
const css = document.createElement("style");
"#bovineChat{position:fixed;right:16px;bottom:132px;width:168px;z-index:441;background:rgba(10,10,12,.82);border:1px solid rgba(196,165,116,.35);padding:8px;color:#efe6d6;font:12px Palatino,serif}",
"#bovineChatLog{height:72px;overflow:auto;margin-bottom:6px;opacity:.9}",
"#bovineChatForm{dispM
"#bovineChatIn{width:100%;box-sizing:border-box;background:#111;color:#efe6d6;border:1px solid rgba(196,165,116,.35);padding:6px;font-size:16px}",
"#bovineBetsBtn,#bovineFieldBtn,#bovinePostBtn{background:#d4b46a;color:#111;border:0;padding:6px 10px;font:700 12px Palatino,serif;cursor:pointer}",
"#bovineGateLine{letter-spacing:.14em;font-size:13px;text-transform:uppercase}"
document.head.appendChild(css);
const rules = $("rulesOverlay");
const ul = rules.querySelector("ul");
nst p = rules.querySelector("p");
const close = rules.querySelector(".close-btn");
if (ul) ul.innerHTML = [
 ESC release pointer / menu</li>",
 allow the browser prompt. Floor is open. No host permission. Voices + Track sliders sit in MIX.</li>",
"<li>Mobile: left pad walk, J jump, drag right to turn. Tap menu or chat to type, tap mid-screen to walk again.</li>",
"<li>Stay off the dirt. Inner and outer goldM
 rings are the rails. TO THE DOME / TO THE OUTER RAIL teleport you.</li>",
"<li>HOST: NEW FIELD draws 8
12 cows from the card. PLACE YOUR BETS opens the book. POST locks the heat, rings the bell, 20 seconds, then they run.</li>",
"<li>PLAYERS: pick a racer, stake at least 1 rune less than your max so the ordinal stays on the sat, WRITE TICKET. Tell the host when you are in.</li>",
"<li>They run until the next Bitcoin block after POST. Photo is the block hash. Score is 45% speed, 25% grit, 20% burst, 10% gate, mixM
ed with that hash. Highest score wins.</li>",
"<li>House takes 4% of the pool, rounded up, to the dump address. Rest of the pool to tickets on the winner. Book rebuilds after photo.</li>"
if (p) p.innerHTML = "<strong>BOVINE RACING CLUB:</strong> House-owned stable. You are the railbirds. Walk the salon, watch the jumbotron chase or stand at the rail. Winner is the hash, not the host.";
if (close) close.textContent = "BACK TO THE PADDOCK";
$("bovineBetsBtn").addEventListener("click", placeYourBets);
("bovineFieldBtn").addEventListener("click", () => newField(true));
const postHud = $("bovinePostBtnHud");
if (postHud) postHud.addEventListener("click", () => { if (w.lockBovinePost) w.lockBovinePost(); });
const stylePost = document.createElement("style");
stylePost.textContent = "#bovinePostBtnHud{background:#d4b46a;color:#111;border:0;padding:6px 10px;font:700 12px Palatino,serif;cursor:pointer}";
document.head.appendChild(stylePost);
setInterval(syncHostUi, 400);
document.addEventListener("touchsM
tart", function (ev) {
const el = ev.target;
const typeHere = el && el.closest && el.closest("#bovineChat,#clubDock,#clubMixer,input,textarea,select");
const stick = el && el.closest && el.closest("#movePad,#jumpBtn,#cameraCycleBtn,#pauseBtn");
if (typeof w.setClubUiMode === "function") w.setClubUiMode(true);
w.controlsEnabled = false;
const field = (el.closest && el.closest("input,textarea")) || $("bovineChatIn");
if (field && field.focus) setTimeout(function () { field.focus(); }, 0);
if (typeof w.blurGameInputs === "function") w.blurGameInputs();
else if (document.activeElement && document.activeElement.blur) document.activeElement.blur();
if (typeof w.setClubUiMode === "function") w.setClubUiMode(false);
w.controlsEnabled = true;
$("bovineChatForm").addEventListener("submit", e => {
const inp = $("bovineChatIn");
const text = (inp.value || "").trim();
pushChat("you", text);
net({ type: "bovineChat", text });
function pushChat(who, text) {
const log = $("bovineChatLog");
const line = document.createElement("div");
line.textContent = who + ": " + text;
log.appendChild(line);
log.scrollTop = log.scrollHeight;
return ((w.BOVINE_ROSTER && w.BOVINE_ROSTER.racers) || []).filter(r => !r.retired);
function heatSize() {
try { if (w.remotePlayers && w.remotePlayers.size) n += w.remotePlayers.size; } catch (e) {}
return n >= 6 ? 12 : 8;
function drawHeat() {
if (!all.length) return [];
const n = Math.min(heatSize(), all.length);
const pool = all.slice();
while (heat.length < n && pool.length) {
heat.push(pool.splice(Math.floor(Math.random() * pool.length), 1)[0]);
if (w.paintBovineCard) w.paintBovineCard();
if (w.BOVINE_BOOK && w.BOVINE_BOOK.refreshField) w.BOVINE_BOOK.refreshField();
function clearCows() {
race.runners.forEach(run => {
try { if (run.mixer && run.mixer.stopAllAction) run.mixeM
r.stopAllAction(); } catch (e) {}
if (!run.root) return;
run.root.traverse(function (o) {
if (o.geometry && o.geometry.dispose) o.geometry.dispose();
const mats = o.material ? (Array.isArray(o.material) ? o.material : [o.material]) : [];
mats.forEach(function (m) {
["map", "normalMap", "roughnessMap", "metalnessMap", "emissiveMap"].forEach(function (k) {
if (m[k] && m[k].dispose && m[k] !== (race.chase && race.chase.rt && race.chase.rt.texture)) {
try { m[k].dispose(); } catch (e) {}
(m.dispose) try { m.dispose(); } catch (e) {}
if (run.root.parent) run.root.parent.remove(run.root);
function newField(announce) {
if (!amHost()) return;
if (race.phase === "betting" || race.phase === "running" || race.phase === "gate") return;
if (w.BOVINE_LOCK) w.BOVINE_LOCK.locked = false;
race.phase = "idle";
race.wanderOn = false;
race.fieldAt = Date.now();
race.lockHeight = null;
if (w.BOVINE_BOOK) {
E_BOOK.open = false;
w.BOVINE_BOOK.tickets = [];
say("NEW FIELD on the card
 host can open the book");
if (announce) net({ type: "bovineNewField", heat: race.heat.map(r => r.id) });
function placeYourBets() {
if (!amHost()) return;
if (race.phase !== "idle" && race.phase !== "betting") return;
race.phase = "betting";
if (!race.heat.length) drawHeat();
const entryEl = $("bovineEntryAmt");
const entry = Math.max(1, Math.floor(Number(entryEl && entryElM
.value || race.entry || 250)));
if (w.BOVINE_BOOK) {
w.BOVINE_BOOK.open = true;
w.BOVINE_BOOK.entry = entry;
 entry " + entry + "
 2 minutes to sign");
net({ type: "bovineBetsOpen", heat: race.heat.map(r => r.id), entry: entry });
clearInterval(w._bovineBookClock);
w._bovineBookClock = setInterval(function () {
if (race.phase !== "betting") {
clearInterval(w._bovineBookClock);
 entry " + entry + "
left + "s to sign");
net({ type: "bovineBookTick", left: left, entry: entry });
clearInterval(w._bovineBookClock);
if (w.lockBovinePost) w.lockBovinePost();
const prevLock = w.lockBovinePost;
w.lockBovinePost = async function () {
if (!amHost()) return;
if (race.phase === "running" || race.phase === "photo") return;
if (prevLock) await prevLock();
race.phase = "gate";
if (w.BOVINE_BOOK) w.BOVINE_BOOK.open = false;
try { h = await (await fetch("/r/blockheight")).jM
son(); } catch (e) {}
race.lockHeight = h;
if (w.BOVINE_LOCK) w.BOVINE_LOCK.height = h;
net({ type: "bovinePost", height: h, heat: race.heat.map(r => r.id) });
setTimeout(() => startRunning(), GATE_MS);
async function startRunning() {
if (race.phase !== "gate" && race.phase !== "betting") {
if (race.phase === "idle") return;
race.phase = "running";
race.startedAt = Date.now();
 photo on the next block");
(!race.runners.length) await mountCows(false);
race.runners.forEach(run => { run.running = true; run.wander = false; });
say("THEY'RE RUNNING
 " + race.runners.length + " on the rail
 photo on the next block");
race.lastError = String(err && err.message || err);
 " + race.lastError);
if (amHost()) net(snapshot());
function armChase() {
const THREE = w.THREE;
if (!race.chase || !race.chase.rt || !race.chase.cam) {
 new THREE.PerspectiveCamera(42, 16 / 9, 0.5, 8000);
const rt = new THREE.WebGLRenderTarget(1024, 576);
if (rt.texture && THREE.SRGBColorSpace) rt.texture.colorSpace = THREE.SRGBColorSpace;
race.chase = { cam, rt };
const mesh = w.stageScreenMesh;
mesh.material = new THREE.MeshBasicMaterial({
map: race.chase.rt.texture,
function chaseFrame() {
if (race.phase !== "running" || !race.chase || !w.renderer || !w.scene) return;
const pack = race.runners.filter(r =>M
if (!pack.length) return;
const lead = pack.reduce((a, b) => (a.theta >= b.theta ? a : b));
const back = lead.theta - 0.28;
const cam = race.chase.cam;
const hy = (lead.root.position.y || 6) + 110;
cam.position.set(Math.cos(back) * (R + 36), hy, Math.sin(back) * (R + 36));
const look = lead.root.position.clone();
const mesh = w.stageScreenMesh;
if (mesh) mesh.visible = false;
const rend = w.renderer;
const prev = rend.getRenderTarget && rend.getRenderTargeM
rend.setRenderTarget(race.chase.rt);
rend.render(w.scene, cam);
rend.setRenderTarget(prev || null);
if (mesh) mesh.visible = true;
function score(racer, hex) {
for (let i = 0; i < 8 && i * 2 + 1 < hex.length; i++) {
bytes.push(parseInt(hex.slice(i * 2, i * 2 + 2), 16) / 255);
const rnd = bytes[racer.id % 8] || 0.5;
const burst = bytes[(racer.id + 3) % 8] || 0.5;
const gate = bytes[(racer.id + 5) % 8] || 0.5;
return 0.45 * racer.speed + 0.25 * racer.grit * (1 - rnd) + 0.20 * racer.burst * M
burst + 0.10 * racer.gate * gate;
async function pollPhoto() {
const tick = async () => {
if (race.phase !== "running") return;
const h = await (await fetch("/r/blockheight")).json();
if (race.lockHeight != null && h > race.lockHeight) {
const hash = await (await fetch("/r/blockhash/" + h)).json();
finish(String(hash), h);
 waiting on block after " + race.lockHeight);
setTimeout(tick, 2500);
function finish(hash, height) {
race.phase = "photo";
let best = null, bestS = -1;
race.heat.forEach(r => {
const s = score(r, hash);
if (s > bestS) { bestS = s; best = r; }
race.runners.forEach(run => { run.running = false; });
 WIN #" + (best && best.id) + " " + (best && best.name) + "
 host holds the board");
const ranked = race.heat.slice().sort((a, b) => (b._score || 0) - (a._score || 0));
win: ranked[0] || best,
place: ranked[1] || null,
net({ type: "bovinePhoto", hash: hash, height: height, winner: best && best.id, board: race.board });
if (w.paintBovineCard) w.paintBovineCard();
function trackY(x, z) {
if (typeof w.getTerrainHeight === "function") return w.getTerrainHeight(x, z) + 4;
async function makeLoader() {
if (typeof w.makeGltfLoader === "function") {
const got = w.makeGltfLoader();
return (got && typeof got.then === "function") ? await got : got;
if (!w.GLTFLoader) return null;
t loader = new w.GLTFLoader();
if (w.DRACOLoader) {
const WRAP = "1c59d4d184bfaadf33e641456d540dba14edc8d383d84634a418d75f149e1683i1";
const WASM = "1c59d4d184bfaadf33e641456d540dba14edc8d383d84634a418d75f149e1683i2";
const draco = new w.DRACOLoader();
draco._initDecoder = function () {
if (this.decoderPending) return this.decoderPending;
this.decoderPending = Promise.all([
fetch("/content/" + WRAP).then(function (r) { return r.text(); }),
fetch("/content/" + WASM).then(function (r) { returM
n r.arrayBuffer(); })
]).then(function (parts) {
const factory = new Function(parts[0] + "\nreturn DracoDecoderModule;")();
return new Promise(function (res, rej) {
const mod = factory({
wasmBinary: parts[1],
onModuleLoaded: function (m) { self._draco = m; res(m); }
if (mod && mod.then) mod.then(function (m) { if (!self._draco) { self._draco = m; res(m); } }).catch(rej);
return this.decoderPending;
loader.setDRACOLoader(draco);
function colorFor(i) {
c45c26, 0x2c5aa0, 0x2f6b3a, 0x7a2f2f, 0xc9a227, 0x5a3d7a, 0xd4b46a, 0x1f1f1f, 0xb85c38, 0x4a7c59, 0x8b4513, 0x3d3d3d];
return hues[i % hues.length];
function fallbackCows() {
const THREE = w.THREE;
if (!THREE || !w.scene) return;
const heat = race.heat.length ? race.heat : drawHeat();
heat.forEach((racer, i) => {
const g = new THREE.Group();
const body = new THREE.Mesh(
new THREE.BoxGeometry(18, 10, 8),
new THREE.MeshStandardMaterial({ color: colorFor(i), roughness: 0.7 })
const head = new THREE.Mesh(
new THREE.BoxGeometry(6, 6, 6),
new THREE.MeshStandardMaterial({ color: colorFor(i) })
head.position.set(10, 10, 0);
g.add(body); g.add(head);
const pose = startPose(i, heat.length);
const theta = pose.theta, rad = pose.r;
const x = Math.cos(theta) * rad, z = Math.sin(theta) * rad;
g.position.set(x, trackY(x, z), z);
g.rotation.y = -theta + Math.PI / 2;
race.runners.push({ root: g, mixer: null, theta: theta, home: theta, radius: rad, racer: racer, runniM
ng: false, wander: false, lastMoo: 0 });
function skinCow(root, texId) {
const THREE = w.THREE;
if (!THREE || !texId || !root) return;
const id = String(texId).split("/content/").pop();
if (!/^[0-9a-f]{64}i[0-9]+$/i.test(id)) return;
const tex = new THREE.TextureLoader().load("/content/" + id, function (t) {
if (THREE.SRGBColorSpace) t.colorSpace = THREE.SRGBColorSpace;
t.needsUpdate = true;
root.traverse(function (o) {
if (!o.isMesh || !o.material) return;
const mats = Array.isArray(o.materiaM
l) ? o.material : [o.material];
mats.forEach(function (m) {
if (m.color) m.color.setHex(0xffffff);
m.needsUpdate = true;
if (THREE.SRGBColorSpace) tex.colorSpace = THREE.SRGBColorSpace;
function startPose(i, n) {
const cols = Math.min(4, Math.max(1, n));
const row = Math.floor(i / cols);
const col = i % cols;
const rows = Math.ceil(n / cols);
const inner = w.BOVINE_INNER || 1120;
const outer = w.BOVINE_OUTER || 1680;
const r = inner + 50 + ((row + 0.5) / Math.max(1, rows))M
 * (outer - inner) * 0.55;
const theta = -Math.PI / 2 + (col - (cols - 1) / 2) * 0.07;
return { theta: theta, r: r };
function startTheta(i, n) { return startPose(i, n).theta; }
function showPaddock() {
race.fieldAt = Date.now();
mountCows().catch(function () { fallbackCows(); });
if (w.paintBovineCard) w.paintBovineCard();
async function mountCows() {
if (!w.THREE || !w.scene) throw new Error("no scene");
const THREE = w.THREE;
const loader = await makeLoader();
if (!loader || !loader.load) {
const heat = race.heat.length ? race.heat : drawHeat();
for (let i = 0; i < heat.length; i++) {
const racer = heat[i];
gltf = await new Promise((res, rej) => {
loader.load("/content/" + COW, res, undefined, rej);
race.lastError = String(e && e.message || e);
const root = gltf.scene;
root.traverse(function (o) {
if (!o.isMesh || !o.material) return;
const mats = Array.isArray(o.material) ? o.material : [o.material];
ts.map(function (m) {
const copy = m.clone ? m.clone() : m;
if (copy && "format" in copy) try { delete copy.format; } catch (e) {}
copy.color && copy.color.setHex(0xffffff);
copy.metalness = 0.08;
copy.roughness = 0.72;
copy.side = THREE.DoubleSide;
copy.needsUpdate = true;
if (o.material.length === 1) o.material = o.material[0];
skinCow(root, racer && racer.texture);
root.scale.set(22, 22, 22);
const pose = startPose(i, heat.length);
const theta = pose.theta, rad = pose.r;
x = Math.cos(theta) * rad, z = Math.sin(theta) * rad;
root.position.set(x, trackY(x, z), z);
root.rotation.y = -theta + Math.PI / 2;
root.visible = true;
const mixer = new THREE.AnimationMixer(root);
const clips = gltf.animations || [];
const clip = clips.find(a => /idle|stand/i.test(a.name)) || clips.find(a => /walk/i.test(a.name)) || clips.find(a => /gallop|run/i.test(a.name)) || clips[0];
if (clip) mixer.clipAction(clip).play();
race.runners.push({ root: root, mixer: mixer, theta: theta, home:M
 theta, radius: rad, racer: racer, running: false, wander: false, lastMoo: 0 });
if (!race.runners.length) fallbackCows();
function playMoo() {
const ctx = new (w.AudioContext || w.webkitAudioContext)();
const now = ctx.currentTime;
const o = ctx.createOscillator();
const o2 = ctx.createOscillator();
const g = ctx.createGain();
o.type = "sawtooth";
o.frequency.setValueAtTime(170, now);
o.frequency.exponentialRampToValueAtTime(72, now + 0.55);
o2.frequency.setValueAtTime(85, now);
uency.exponentialRampToValueAtTime(48, now + 0.55);
g.gain.setValueAtTime(0.0001, now);
g.gain.exponentialRampToValueAtTime(0.42, now + 0.04);
g.gain.exponentialRampToValueAtTime(0.0001, now + 0.7);
o.connect(g); o2.connect(g); g.connect(ctx.destination);
o.start(now); o2.start(now);
o.stop(now + 0.72); o2.stop(now + 0.72);
function separateCows() {
const pack = race.runners.filter(r => r.root);
for (let i = 0; i < pack.length; i++) {
for (let j = i + 1; j < pack.length; j++) {
const a = pack[i], bM
const dx = a.root.position.x - b.root.position.x;
const dz = a.root.position.z - b.root.position.z;
const d = Math.sqrt(dx * dx + dz * dz) || 0.001;
const push = (min - d) * 0.5;
const nx = dx / d, nz = dz / d;
a.root.position.x += nx * push;
a.root.position.z += nz * push;
b.root.position.x -= nx * push;
b.root.position.z -= nz * push;
a.theta = Math.atan2(a.root.position.z, a.root.position.x);
b.theta = Math.atan2(b.root.position.z, b.root.position.x);
const balls = w.projectiles;
if (!balls || !balls.length) return;
const now = Date.now();
balls.forEach(function (ball) {
if (!ball || !ball.mesh) return;
const p = ball.mesh.position;
race.runners.forEach(function (run) {
if (!run.root) return;
const dx = run.root.position.x - p.x;
const dy = (run.root.position.y || 0) - p.y;
const dz = run.root.position.z - p.z;
if (dx * dx + dy * dy + dz * dz < 22 * 22) {
if (now - (run.lastMoo || 0) > 700) {
ck = function (dt) {
if (race.fieldAt && !race.wanderOn && race.phase !== "running" && race.phase !== "photo") {
if (Date.now() - race.fieldAt > 90000) {
race.wanderOn = true;
race.runners.forEach(run => { run.wander = true; });
 field is wandering
 host can still open the book");
race.runners.forEach(run => {
if (run.mixer) run.mixer.update(dt);
const rad = run.radius || R;
if (run.running && race.phase === "running") {
const v = (0.18 + (run.racer.speed || 50) / 400) * 0.4;
run.theta += v * dt;
} else if (run.wander && race.phase !== "running") {
run.wobble = (run.wobble || 0) + dt * 0.35;
run.theta = (run.home || run.theta) + Math.sin(run.wobble + (run.racer.id || 1)) * 0.12;
} else if (!run.root) {
if (run.running || run.wander) {
const x = Math.cos(run.theta) * rad, z = Math.sin(run.theta) * rad;
run.root.position.set(x, trackY(x, z), z);
run.root.rotation.y = -run.theta + Math.PI / 2;
const prevNet = w.handleClubNet;M
w.handleClubNet = function (msg, from) {
if (!msg || !msg.type) {
if (typeof prevNet === "function") return prevNet(msg, from);
if (msg.type.indexOf("bovine") === 0) {
if (msg.type === "bovineChat") pushChat(from || "rail", msg.text);
if (msg.type === "bovineNewField") {
race.phase = "idle";
if (msg.heat) applyHeat(msg.heat);
else if (amHost()) drawHeat();
say("NEW FIELD on the card
 cows at the start");
if (msg.type === "bovineBetsOpen") {
race.phase = "betting";
if (msg.heat) applyHeM
if (msg.entry) race.entry = Number(msg.entry);
if (w.BOVINE_BOOK) {
w.BOVINE_BOOK.open = true;
if (msg.entry) w.BOVINE_BOOK.entry = Number(msg.entry);
 entry " + (msg.entry || race.entry) + "
 2 minutes to sign");
if (msg.type === "bovineBookTick") {
 entry " + (msg.entry || race.entry) + "
 " + msg.left + "s to sign");
if (msg.type === "bovinePost") {
if (msg.heat) applyHeat(msg.heat);
race.phase = "gate";
race.lockHeight = msg.height;
if (w.BOVINE_BOOK) w.M
BOVINE_BOOK.open = false;
setTimeout(() => startRunning(), GATE_MS);
if (msg.type === "bovineState") {
if (msg.heat) applyHeat(msg.heat);
if (msg.lockHeight != null) race.lockHeight = msg.lockHeight;
if (msg.hash) race.hash = msg.hash;
if (msg.phase === "running" && race.phase !== "running" && race.phase !== "photo") {
race.phase = "gate";
if (msg.phase === "photo" && race.phase === "running") {
finish(String(msg.hash || race.hash), msg.lockHeight);
.type === "bovinePhoto") {
if (msg.board) race.board = msg.board;
if (race.phase === "running") finish(String(msg.hash), msg.height);
else if (w.paintBovineCard) w.paintBovineCard();
if (amHost() && msg.type !== "bovineState") net(snapshot());
if (typeof prevNet === "function") prevNet(msg, from);
if (typeof prevNet === "function") return prevNet(msg, from);
if (!race.heat.length && w.BOVINE_ROSTER) drawHeat();
if (race.heat.length) showPaddock();
 draw a field, set entry, open the book when the rail is ready" : "Wait for the host
 field will line up at the picture");
if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", boot);
DjB0x45796a17dd8ec60163f52c69fdc6f89e081b68842372e012a4e60a14812c97c5
DjB0x3057db09bd09bbbc2050381f9ac3c71c21979a36676453ae24d1f9cf58fbbcaf
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"36P9","amt":"1000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"14000000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"8888","amt":"1"}h!
SODA #8284 - Drawn May 23, 2026
dnamejSODA #8284edrawnlMay 23, 2026dseedjstretch 24hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
6j4WkO:to:USDT(TRON):TVDd6To8LJN7WqN3aD9VhRfZrp8RQzsVdX
=j;4vz:to:USDT(BSC):0x5c56Fa3b8a5c7771e2a762A5a2F3d0B460607Ce1
6j4ZF3:to:USDT(TRON):TYPGxkjp73JGYPQ6b9af9TBGEKghup4QAk
{jLx0xf868dbce54955e1a49f7b5ceae310e0f23a33298e504e4d433ead54dd5643e9d|depositor=bc1q77g36qss9urgg2380fp2ep3wfqmsvl2m0j42je|
4j2=:x:rp42Gx5Ef8wKexjbcUXCGw8SWSrcDxyCBA:0/1/1:ej:75
DjB0x1f9644ce9248f412b7e6cca796fd71c5e4cab40e7661b068ba8fc22e64a3cb57
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"140000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"553641"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"277000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"20"}h!
SODA #8285 - Drawn May 23, 2026
dnamejSODA #8285edrawnlMay 23, 2026dseedjstretch 25hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
6j4tNq:to:USDT(TRON):TZ9LayVWEU5ConzhQNo3dcjbkCUYasUnbs
/j-dsP:to:XRP:rKbAywxyxiRH3cjBT6CdPGAja1Dmmmz6RK
6j4cB3:to:USDT(TRON):TUHmb4ex9gZj5MPjBzew7T2NH4V9YVdHwD
=j;Q9x:to:USDT(BSC):0xEa906FDf2E1A915e2AB4C1917a9A78eeb831C162
6j4JHf:to:USDT(TRON):TDxU6Hty5sJP2fDVZr3vGrx4C9jK3ki7ns
=j;Fnf:to:USDT(BSC):0x7725b8B9433427143540477C2a1575C25Ff729d8`
DjB0x0d2aa71dd3b3240f423d0fd5a8070d656f34077440c1483430eccdcd19cba7d2
DjB0xe066dcc623ff1f1c249121ad82f88e1444288f6cfbb9391171bb2e4f43144c65
DjB0xdf8220f13e4e8f6995eb6478958afcae5709f53bc419dc2e7df894fd9309d5b5
DjB0x7b2a97c727bbdac555ce8ae95f89c7ead707706557c1db6a48132e45f63a2635
DjB0xfeed2260b98d9b8dc68417e95542be731ee2186caeb5cf719de8a55246f18a43
DjB0x9db609f48cda6f8a6555d9d8edf7f1db04efcb32d43487f2fd28b44e52d6d10f
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"138238"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1.23"}h!
DjB0xf2b865a9bcf95077a03b4e1149eaf4132c5009ea55a8f1a11736ed279c568f93
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"188"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"188"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"188"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"188"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"188"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"302"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"36P9","amt":"1000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1.2345689"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6000000000"}h!
SODA #8286 - Drawn May 23, 2026
dnamejSODA #8286edrawnlMay 23, 2026dseedjstretch 26hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
/Foundry USA Pool #dropgold/j.
6j4pkn:to:USDT(TRON):TEUB2wfrfWAHpToznjKYuqSXBEcipfEAhQ
=j;0TH:to:USDT(BSC):0x261813562b7C8877BE1f0ccD447CbFc6a0b21791B
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"sats","amt":"213652338628"}h!
6j4JdP:to:USDT(TRON):TD4ryL9pBg2BbTQ8zZuxS2PbU928eoqxid
FjDOUT:29F28989708EE8EB672A641412367FB14679EF77BB10946674F2BAF39A5AC4E3
?j=wdq:to:USDT(ERC20):0xF6632C1DAA09A8bF09e2DF65e60c31eeDAb209A4N
?j=USz:to:USDT(ERC20):0x7D42945e65a2101A000140049a53668E3C56f68em
?j=zNX:to:USDT(ERC20):0x0610cfAf5B60971F82628F12e76F999Ec8bfF265
?j=PBE:to:USDT(ERC20):0x7E7c777A95753599cdd3Fa8F5BCefe2c22F2D0A7
6j4kdW:to:USDT(TRON):TRiwfJM7J4w6RLTCoWa1Wy1Ygikqriybik
6j4uWf:to:USDT(TRON):TMe7kFQC8pQiy2jJY2eYwkFaSAGaqej2qS
6j4ZeZ:to:USDT(TRON):TRL8HjNwDdPDJEPJVj28jd7ciECi9ZKJBK
6j4Q73:to:USDT(TRON):TV1ADcomWc8MaecUDezAW8B82d3kk4G4MyZ
6j40jE:to:USDT(TRON):TRiwfJM7J4w6RLTCoWa1Wy1Ygikqriybik([
6j4Ltf:to:USDT(TRON):TYkWBqMKTeUxyFhQskFAqXgkU1hW4Abrqy
7j5MTJ:to:ETH:0x679824E01f807EE47921bfA54920C1a16455Fb9d
/j-K2E:to:XRP:rfuDo777DydCji96EFmSo25CnxhoEdvJNw
6j42Hd:to:USDT(TRON):THStiy9pxgerUVmU5aTRJmQonai5LHfKdd
=j;ptq:to:USDT(BSC):0x6eeeF1DE51ff5EfcdFf312d6A3A58aCF562F198B
6j4e7P:to:USDT(TRON):TQiU2cCVFUwPQpv2VXRXVjeEEUJFJ8pyVc
?j=xZO:to:USDT(ERC20):0x00e88d3DBABF8820ffCe38ff36C6f1C0e3900408
DjB0x084518a2ce0948375ba2d3d4d5fcfcde29bb2a3b2f3b78b8eccdfaa7cedc1968
@j>from:150USDT(ERC20):0x2578bF094F6Ac444B473f92A3425446696cf9EA1
7j5from:400USDT(TRON):TYtzbbp7qjeRFPyPhpYxfe3ngQFW9D9wmG
DjB0x1ca0fdb98fc24c1be680e84d0e2ce1b5b947f0ec949e0996b1710dbb6a63c2b4
DjB0x0255cb1ee6678a45dd647b692db0a46ca733a2a4599abeeda7cc5b164d96e476
DjB0xe1792227808e13a63de3f354b3f17e134426059deba49a88b7dcf071eff8db88
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"100000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
OjLL0x84ed8fdf25d6b87b412c532122351b7c34014eb36494a91cffbc45ca1428935e=|lifi
6j43Zx:to:USDT(TRON):TVWbh6Ki9f7XxNkv4XjYNoExk8MMqNZt8f
DjB0xa8fd047b68eb2ed36ea240d75640f541c876eaef0a11090fea2a3f08f4df5045
DjB0x347eced0ddc15ac7f3ba6fdd7e4ce446a95be789b12b10621695fd00554da171
DjB0x88bb24c0606d17d722b7e500ddd1ecff95329b519be9696eeca6f44ee23b7ec2
DjB0x8629ca1e6f23debc877a6a0cb926c04ee6508705a266d004e800d4f046674c57
DjB0x45934c2587ece9ff5a522496b314643cce5ee56ca9896c05a9f7cfbdb831d731
DjB0xf86f2bb6118be19a96eec0a655ac110e57e76e2dc950e0a1acf1b591852e824a
DjB0x8e432b67f26cce0cb88b210fbbca9b9e300be90f02bb77ee3e5573524090e7f6
DjB0x1716185cb8bc6495d5e39b8047169d52a027b010077a18dc91e4a88b71a4763e
DjB0x3c4ca89eb14bf091f61fed974aaf9ae995dd3574ea8b8650c2898e941a20c331
DjB0x5322665452c8cd5674e6efa645e207692f1bde603dfc9c2952b2f460d117b36f
DjB0x7175cc2df3ae744959574e776e41fc52862d9daa849ea5b5bc7d47ff4d2436fb
DjB0x30fdc45f89f7b56f767b259f04eb9c7feee5515e425d6588b01058910ecff9c6
DjB0x5f47d9840728c9d2562d75973031a88288d097a79587e5ba3cd56578c1d5c1bd
DjB0xacfb1ac9c703b75936fd9321a89cd36fecf38ad21a864ff984df0e7ebb0ea43c
DjB0x3f03fe00c34fda6e5a46e477ba86314c448ff5c4f0b01d186b1063878b364eca3
DjB0x52c132faee4a4bfad83458f6366449a8c0825677809f14e7eea249f0d0af1fe43
{"p":"brc20-prog","op":"t","b":"Aii1L/1gDQTFDgC0F/kFCoIKJICAlGKHm7PdlJxM8G9xv3woHc8k0WPngLkEpGYjjh0AYAQACQAcBlIEAgE5ABmQaDUqWgWPwpXtAcMDAgwBHxkCEWVFhQBSEoAAbhpxDDoBC10FFQroSozfBzoQF137cEaJ7OKBmlBHZAMDCUTvLKffCeLLdFMxiQHQDQ2b/D+HCFej4OMGsgkGnx8elyTIsCXBU5KAAlc1ADrhAQ8M8GTdWSAF9AYKIlEgEfz86xi54WeMQiP5SiGYFiVNcjzr1yVKfllscZUW7DoAAYQygKp/xYMBDDfYTz9lQ4XZaE99C74QX+2wO4J0kjdCSSt1F+Xa6qHHhN+TyedBvqAj/hoyE2uyZM55SIZrBZM6OeEAoQ7QrYYiMOVsrCUYJ3qdKgM6WJfSrbAcFgo2qriFhKSGZISgbXqLwlW2wS+VfJdYCEdWnrC3PfHOPTEcUdqgja/7i0WgW/nqJ6FJL
ppyB/wWYe3Y71WoS+nVwiGyUPTtqjlLOm/UwoCFgy1FUUvvzIFFp0wHvluaWzq8brsGj8oRRnE+uFSI3gZCKksvmjnqrcHInEFIROWjJShEkn/tGIZK6DTdyoOgIHMAZgBXsCFZloaQrFbMBVxfnDaJ4FrMa"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3300000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"15060564560"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3700000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3200000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3500000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"cats","amt":"200000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"cats","amt":"200000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"36P9","amt":"1000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"17000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"11073457740"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"cats","amt":"200000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"0.000215"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"ZBYY","amt":"500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"36P9","amt":"1200"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3200000000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"3"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"50"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"3"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"301"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3300000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"200"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"36P9","amt":"1000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3100000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"cats","amt":"200000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3600000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"cats","amt":"200000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"cats","amt":"200000"}h!
SODA #8287 - Drawn May 23, 2026
dnamejSODA #8287edrawnlMay 23, 2026dseedjstretch 27hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
Powered by Luxor Tech]
2j0to:USDT(TRON):TWyHVNzYLNMwMUKvobZLdyAmTn7PzG1v69
2j0to:USDT(TRON):THEWSJRHCMzHnqXH8tXwCGR9hVkyAx1AV9
2j0to:USDT(TRON):TRgrE54tJykF9tgHSh47bg5KJxBRF4QfSW
6j4n43:to:USDT(TRON):TGRQUCu9i6qNXmsUzDrrScvaNhiax821Q6
6j4cWJ:to:USDT(TRON):TJz2HCUmQoZc2oQUSbLDyWKgRfSV2YEWjH
6j4sxP:to:USDT(TRON):TYW9ALYLnmaADXCTE896jPUBaNnDRizupu
6j4qB4:to:USDT(TRON):TLfYgRD2AMw4J6hB9qPWeYHj4RGrMykJZL
7j5fX5:to:ETH:0xd7eAf34f353D2af2EA88Bf1028622bf26F1fC3155~
6j4KHd:to:USDT(TRON):TT1wUnsPBYjHLjPFgdYWxeDE1nziqJTxcb
/j-6bt:to:TRX:TKNEfBrVGqWzPY4RUiwYAXSK2Q4eARRb3N
6j49mC:to:USDT(TRON):TT7Z67vAPCjgNxwTC24N7BQNPNKSopur4D
;j9to:USDT(ERC20):0x240617cf3F1dbD84D580A66d82B1967f799d4403
OjLL0xa6c16c47f574ee8e77a021e5c11caf571b623c6c6d1a224119c1d9abb4f28116=|lifi
DjB0x7689287ede539199059a7f75a3edf24cb9ac53e02175a24676946fb7c437c030
DjB0xc616100284d7a74c6ba7b4b45df024575000d2ef22cdb3c3c43b31ef43d08480
DjB0x43b76789911bb3e3f1be2b76d3d8d0a76d0ed6a0e0bf3e749584729fedf3e6d6
DjB0xeb6735f6c4652a9abbe742bd55a6e72f586a8b2216ff15390974a2ae3a2ac206
DjB0x0183a059603fc9c0887082015ccca74151ac36adda47e9dbedeb76a81ed217ef
OjLL0xb03a25c8b364934eb79c94d2788e17170b32554ca2976c94fef06aaff0100696=|lifi
OjLL0xb80f2d5b0830d58dcf6e1c9973d49094d6e121b53889cedd53afb40bc4929421=|lifi
DjB0x4a9a746c86d5e3311ca9d30ac3beff127417e0c306af62b447ec5a297a1452ad
DjB0x1aeb1bae6ffef810f000a9c207c7f942d2a45d0c96f9ff157c5e6ee873c7d905
DjB0x271e5305a4738e5dc15a58ee4054e21490483298d11645947a39c5db02bd1937
DjB0x5b45798a183c9b79ca59e0cec6db8f0a4470036fc3fee2ae33cb098fcc8786c6
DjB0x7f0774272b1c4b5c596335265b0452c7015df8a9a126941692e09cd557944562
DjB0xd559a4032faae42edb35b7cd91b87918ca9a50d0321727afa72ae1bc05ab1d38
DjB0x2733d39583404bd8302a3914c574492f1f86a9850cba5d5cbb3b7e1f3f8db907
DjB0x7a62652c0b8598a2b428a659010099cd5257d4ed847e3d57b229f743b497e4d2
{"p":"brc20-prog","op":"t","b":"AfkCCoIKJYCAlGKHm7PdlJxM8G9xv3woHc8k0WPngLkBpGYjjh3/H2D/HgH/IAH/HwT/BQHDBv8QIP8FAgoiUSCZeV1d6V1A7OJ6MV+8nWhFy12QSk8oMGC7+yxEZezuHf86iyBt/x+A/xAJ6vkuwhRuni+vKhr8hjJk+JfJhvwTplVuLvMWbb/NpWjmBSZH29tqNHNjXj4VElH/EAsesr2nsQ1bQys7DCoXZna9/spvViH4XUFBmmk4FrUbYtsOi3PpIo/T25ttlleLVYWEpIZkg6A7W7kC1OtwZY5bv3rh2Mds0dY5HQrcHXSNzOfmuSqm46AeGWzNOXIbbbTYw231xmlivlrJsbxymC9c/wGs2qzQx6Y="}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"19"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3300000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"52"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"64"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"20597049690"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3500000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"12000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"86"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"7"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
SODA #8288 - Drawn May 23, 2026
dnamejSODA #8288edrawnlMay 23, 2026dseedjstretch 28hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"ordi","amt":"4.2146728"}h!
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"sats","amt":"1457556777.54900022"}h!
2j0to:USDT(TRON):TDVLmgZATG2wzptVHU6CxrSWkAPJu1hWnn
6j4xqj:to:USDT(TRON):TLAP3FbzcfQE57BtgwsLmHyUPBz7bnPxpn
6j44Jt:to:USDT(TRON):TCLT4nAGWom6ffygdoHV5q31MdWus3NmbKIH
?j=Z4b:to:USDC(SOL):9JqKXspAXJUHpac3PvEnd6VTdj83QUUmaTQqzvRwwhtS/
8j6HR0:to:USDC:0x79420764eC8d2209fdf2aAc58ca9baFF3aD1D840
/j-y0B:to:XRP:rKrXubemYg1dxDcJbBpoGybfhWMbMXu1nh6
6j46da:to:USDT(TRON):TNFWQfyDodxU61x2wZsHvrVvpGEfnWiV6N-
6j4aGC:to:USDT(TRON):THAh19MFmsEVUc8GEaZseCa92gEAsheatf5"
7j5TiE:to:ETH:0xd53F16d93BBAF962b4835eF8aBd046568f4Be046t
6j4h64:to:USDT(TRON):TLEN8Bc8aNUSiEET1yoaRbWNofPasvT3RC
6j4k4r:to:USDT(TRON):TRXMZ2oTge6CgcxcaAJ4CAgcnmH2E24NcC
6j4jxd:to:USDT(TRON):TT1wUnsPBYjHLjPFgdYWxeDE1nziqJTxcb
6j4uKC:to:USDT(TRON):TYn8UVNxJR5JtWiRZ9xT5Qyn6TRAFajz5g
6j4Qyi:to:USDT(TRON):TNSnAbSf8uLqPJkfg3vfsvPq39Vp1dUuQ6
;j9to:USDT(ERC20):0x240617cf3F1dbD84D580A66d82B1967f799d4403
6j407q:to:USDT(TRON):TDKpvRUCUSpWHJwLjdCYdWpzpW3FVL7t5n
=j;zIq:to:USDT(BSC):0xdF091a875C40183Ae1135F8eAa5c8a359c32eedb
=j;RuQ:to:USDT(BSC):0x08d069f7c23CFb114E3CeEFC6099274341090DFf2
DjB0x23d2490a4996d4e6278ed11e7219a1891077ede559db727031d71d75f7e4f2eb
HjFfrom:36.799944AVAX(C-Chain):0x0d1Ee7c78D626b6fa15FcB9E90B0c1a2F0454717o
DjB0x08916765989f06a66bf96e0a4ad314de59466143e8274b10dfc7d45268ac38bd
DjB0x3d74bfd1aabe13030b3cdd8a9a9aa3b7695f3c2aadc2a92a87100a52463b2ed3
DjB0x923bc8732a5cdc81adfff77f464463060837f7f3e235c70c9b190942748d5819
DjB0xde2210ab92b938c3d8c263d52de0fc60a1832e19057199a03321cb8c5890d3ea
OjLL0xe41e34127ad136dd3c51388c03b9b71132f8aaf20039b908c78e116b461a7ecb=|lifi
OjLL0xefb428249bc786bef0253e1d4ae5ab2dcd83853edb3d13a79e189ea45f62da49=|lifi-wjzJ
OjLL0xa749c0eec60b621715c7f329464c69c6462047b77eb7079e7567c3c4c270c5c5=|lifiN
sjLp0xcab4577c04ce118991a0610f43f253443a8a28db3c3ebac38b4ece8d6009d314|depositor=3BnMQ5ieu5euDCSg1UkzPewMTkC7YANVux|
{jLx0xf1025c5bcfbeb8860736a6770493c134c7eb0a4774a162873aa1216d890c51ea|depositor=bc1qjj2jrz8j0k87h7vd3wgfl205kzs30yktaprmd6|
DjB0x2ac1e09ccc9ef6a5faad9f3fae238f887e7e36fb94be775e71998762ba0aaba1
DjB0x0f28b08bb340f26d1a0d4985a51752709ab1146406abc86fd2fc9ec767ece9db
DjB0xfc4acccac098d82b43a22d28c664ba2f9be9947200e26e0d7656268129ff6dd2
DjB0x6504caeb40d9d4d4e5159b27d611a0b1ea309b09fcdb8d255a605cae57e36987
DjB0xe2579ff703df8c6c0f2b1f5304b14048eeafceb943095142068acee83d2cb744
DjB0x05d7a03b834e5c8f4bdcb2d158146a3589940f262f9d79fa7eb42ec1d3c7ed2a
DjB0x313cb7b04ac292cd4bfd017c31eda6652df6ffb81ef4dff8d63fe00dbdab8ee0
DjB0x3e692cc39974556dc2f8e314ae2372db7cb68b4157fccc356a8a6d3c4c667d8b
DjB0xc9ab5046d3974f56fd7d041bff486fd8bace206c4103a7ff92160c5f556430b5
DjB0x594d6dc3b89fe18003ee25191dd9e70317b640ce9eefbccb25e28ba288c624d7
DjB0x230da576fa7d835b5871912b67cb4384d1e6550803385a4795c2348cd49d14f7
DjB0x1fd09b0ec947a2dcc12db0a7bac24e9316ec069907e48787e473ecce941055a5
DjB0xff1c744688023e79c6982f8d7f08d6f9cfbfee72690a6ae45ad7974790b5a979
DjB0xb4447742ab678a9f240f42bbfdf2a60bc020b8cc43927d6e7379c3d021351dea
DjB0x23a4f1c7e9f5750944cec3f651f29d485fcae9b36be6bf56007df879c5d720a9
DjB0xcd9c47604f5ff53396c8844e19b9e68a24dd0bbfe7cc3756eb6b2dea98a46291
DjB0xe9f0e0a65a675ce2b94191930cc75e69e1b1ba7fe8ef6463993e487a6226e1da
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1"}h!
DjB0xd43aa2c9bddb5663426a0cb5a8fc35c1185b814e7574a5214ee5489c5729532a
DjB0xeddce41136f2c68dcfe9ef0fe7f9e7bbf4a7f80d57dc47ec874b2d8e11364a46
DjB0xca1b8be92b5f61e336fa4a496c00cf77d15a5dc82542bbb92239aea5c977ea00
FIRST HEREPROOF ON BITCOIN
DjB0xcb75ed51ff4ed0e6565c436fa0d46ea714b6bb8cfb337219de0ad80755911e454?
DjB0xef817bf26e445946045b103168d0f899a9f679f9248aa5e334d5d8d8693b3a7e
{"p":"brc20-prog","op":"c","c":"0xdbb5b6a1d422fca2813cf486e5f986adb09d8337","b":"AVYI+Ff/DGKHm7PdlJxM8G9xv3woHc8k0WPn/x9A/x4D/w3btbah1CL8ooE89Ibl+YatsJ2DN/8fAf8fwP8eBeH/HgHg/x4CgP8eAf8RBgQzWkUfGsoNwJHhN8LgaKoxyNDQzVqi6Hf4jBT+ou0KICKlMa9aWK3FmHtXFdeI/xAHGrp2djJejnEqZbRGF0Bm8bsyQzI6crV+iBSRJoK5FwIOiV952zm8k955uI73o7P/EAaWhxjHb486pJIP/HgxWzQi1APhRkvxV4TCujR3EvQelwh/4Sul25Udx6m9FhXeX/8QF+2QZDn0oGuNgllDPLWmlhAAA9iNLf67NhFXXeWUnibv/OJPPGPG3Ze9Hxs3NSMp/x+A/xAF9F0CbkMtso1yih0SmSN0Hx83kC2PNFYtch7XYenXQwKgh94xnppnPCFe3moziDrL
/EBbhnSBHRW/4TyfhKrcyXL2BGqjUHMLp/ShlQkoqW0yz3Iz+LMeAtr4DyPH7IHl+U/8fQadF6QKooS52m/dDjXSPQbyxgxdyCHcKnk33FL/EO54DYYjGEewVhv6Rj9pj91fX3F33ca9whFWr/NRb/dwSassc/x8"}h!
EjC{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"41039.42594561"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"395314.86134636"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"100"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"11111111111"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"40000000000"}h!
EjC=:l:ltc1qkuun87sp5880h00jynustd5wtcjh2cd3nt3snr:1253182:hrz_ios:100
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"9"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTTY","amt":"2000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"33"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"19.999"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"5555555555"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"8888888888"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
SODA #8289 - Drawn May 23, 2026
dnamejSODA #8289edrawnlMay 23, 2026dseedjstretch 29hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
/ViaBTC/Mined by daniilemcd/,
6j4QWH:to:USDT(TRON):TLS291mnvJU57HSKj8dqT6B5oW4j6Rshx9c
6j4LmS:to:USDT(TRON):TE6iWw81DBTuc1tVvKwNvWceJ8XeGM8LtE
6j4LyQ:to:USDT(TRON):TQvnMSQsPdXyWVQyXcy7JVRHiNx1zMecTi	U
2j0to:USDT(TRON):TCh6PrnC5awdHMfDbtcai5HWVoFRAJtYRa
6j45BE:to:USDT(TRON):TTmAYEjyVR9S6MvoYg72khj422qTeVSuYd
?j=GOt:to:USDT(ERC20):0x8A728920f94bc18944827872C39e84DA9fc868fc
/j-DQQ:to:TRX:TSHBR5hAEcU4fXXEmEoMfirXEwJ7PjZaeg
/j-bcm:to:XRP:rKrXubemYg1dxDcJbBpoGybfhWMbMXu1nh
6j4O0x:to:USDT(TRON):TMPGy5ZGqeaGFjxGoXkiGL7G5EwWNtuDUS
6j4Voa:to:USDT(TRON):TYt4eKfw5CtxPNWyztDcy7UUghiiwsZ7Zu
6j4L2N:to:USDT(TRON):TRetqkMmdfqaTXpfBhjXeiFrsNUQDUBGRR
6j4orr:to:USDT(TRON):TJajb8SUx83zyChEpN4Bnp9TCU3yheersCk
8j6qdf:to:LTC:ltc1q5skgz7avryn8f0altr6kzymp0qzr2su93hwzrs
=j;qWG:to:USDT(BSC):0x4C2be3CBA7094697328de3b4cd490ac9bE03D740
=j;NKj:to:USDT(BSC):0xDc869dB37D66663c4FC606B92c50584E4142d1a7
=j;sU2:to:USDT(BSC):0xa5E18577D424390e05926AE1fc8e870351C49Bd4
;j9to:USDT(ERC20):0x240617cf3F1dbD84D580A66d82B1967f799d4403
6j4q4C:to:USDT(TRON):TYuBdyw92RDFKMdXDDwHDd8vw59DWbEdfu
?j=UL6:to:USDT(ERC20):0xb941Bb9263B372835B3d7fFF6E4E374876B88a2e
?j=dqu:to:USDT(ERC20):0x6869D467dEC3f8E46c7109265c18431db373832CC
6j48Km:to:USDT(TRON):TZHtJbSExjgPaYJubapzhCXK2P9NJbVjG8
<j:=:e:0x12f5E1c8f903653F41b3454e203661625952A187:0/1/1:ej:75
DjB0x14cd1b50828940207e066b93fe89783254b0306115c995600425757488b792e2
DjB0x5c9376d0a9421826112be1b5323791581d6f823a7cc2d5efa5f8f7400560b455
DjB0xb8c5006e0da4db739e523e2ee871e17929544b8186ae8e9ea2b4d7ee03c0d727
DjB0x82535f7ad6c112a6ba6fcc5d7d97eeffa932c52fb93e22950b5a6a9b4e3ab317
DjB0x7cc16990e2e88f4438e742c40a47cb16dcd3376f40a8a3f7334fe1118f980511
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"ordi","amt":"0.1"}h!
DjB0xaf21fdd4cb1b1ee19b77328ff4ebeb3678a1ece4a6208b1ea3894aad976a6929
sjLp0xa44de6e8ebf8cc78c4429af3856ef8219cbdfb06991d14149c069e76c7003a37|depositor=3Qi4ubsr5H52zYHh3ntW1jqS1qZMRR4weX|
>j<{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"1000000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
6j4c1J:to:USDT(TRON):TB9SbnfNpdCUGFu11hPMhv9rNKLJBTKb7B
DjB0x8d90394e4fe27ea28afe200f96fea321abc4c5441ac6806001262daab28dfd93
DjB0xa09d8d3b812a7add538fe590148f8b8823ca6fd0417b83f6734329a0b5f48532
DjB0xb41d258ea0d1c721cf01a7826923b86fa0c961db52ec0e13956d79830ab3da69
DjB0x688b2882f7054cf8dbee989e284cb23c73535576bf9184c0a920ecc4b89e06fb
DjB0x1a1664e60970780b137316781b429a0b297992a7bad63e24aa0676455fb87f9e
DjB0x0d175e8f53f6f88cf0f6b3b8d92a5a357624aac4143f09dd38bac47cbee08936
DjB0xa331d63faef4e3e36e80ef94a3ae42d10c5be897d79bd862260f8e4dfd2a1901
DjB0xb89ea5288b941439e36c91de9898414fa773dc648c134ec2cd7e0da3b9a0e508
DjB0x2e8cff2bdc1a2f3f0e7daa912cff50e347f016c629130297ca9f6f3be56fc07d
DjB0x133183304574345c065e1d41e4482cc21047a242f4f13a5bf4d14543647490b8
DjB0xee423914159d2336787de70a840060d86da3f87fcb3cb657548af09f2a90afa7
DjB0x247e1b37f66380208d819ca3afae53f5b52f169afb3c96c0a7d6561f21e94f8d/
{jLx0x57e1440ad904cf56061cee2b0bad2250cd82a773f663dffe34e93d90233983c7|depositor=bc1qyd6ez4qcyfs94h7jzw2xfq96fs8se4e54r25mp|
OjLL0x28f1e741331f32bc64ed69f7cbbd92fc1713bac3a8ba626658a4971b6e06c374=|lifin@
{"p":"brc20-prog","op":"t","b":"AfkCaoIKJoCAlGKHm7PdlJxM8G9xv3woHc8k0WPngLkCBGYjjh3/H2D/HgFg/x8C/x8H/wUHZgMC/wMM/wMB/wcB/wMZAACQ/xYO6GRC/NBs/yADFoH/BQdmBv8QAv8FAgoiUSAEsl0KhznHfaO6gTXZL7MhlTRMqfNgbeg489MJGXv2uv86AyIF/x+A/xAW+J28WA/0JJPWVuI60xqS0ieiwVP3eb0P1YcqcPXFhe/NzXD7uGcNfVlbGjDPj0r/EA68JcTShEaYvD3hQue8/LenVMKt6SxEqEuiLMlMdGHqqtY+tD/Ed+XqxpFUBTvMioWEpIZkg6D3l/F39B7AGswXk2B22QLQMe2YCg8LQFZl0YJpm5bkP6Bm/ZawUPG+ScVGOw1TO0b3xP8BFQkTZZUyFo7INNypNzM="}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"oexc","amt":"5243000"}h!
DjB0x1860bab75c06d3539f6fc628f6760bccd73ab569ea36342c18c0db9056622873
EjC{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"17722.73414377"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"80"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"550"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"0.5"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"200"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"37632408570"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"26559447298"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"50000000000"}h!
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"157956.70636883"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"301"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"9000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"rats","amt":"3502569.0001"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"9.999"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"198049480"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"260689866"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"DIOR","amt":"700000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"DIOR","amt":"325555"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1146104401"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"45"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"51"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"OPMX","amt":"12"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"54"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"50"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"18000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"29.999"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"65.099"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"14.999"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"DIOR","amt":"350000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"DIOR","amt":"500000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"DIOR","amt":"200000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"DIOR","amt":"245342"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"69.879"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"9000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"9000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"
","amt":"9000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"oexc","amt":"428500"}h!
SODA #8290 - Drawn May 23, 2026
dnamejSODA #8290edrawnlMay 23, 2026dseedjstretch 30hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
;j9to:USDT(ERC20):0x88f29dA9f5F5D02267BF74a53088be5420D8aa79
9j7to:USDT(BSC):0x36AD4c0CE45C73ad8Aa5F328045565D3d8e466e2
6j4meW:to:USDT(TRON):TLvVNJHSHVGH3BiHoy53Z7J5uLfAfexSHp
6j4R6m:to:USDT(TRON):TP6Tv3rTvhC7F3BJHtar9MkWZJbSqhJtJf
=j;fe4:to:USDT(BSC):0xd708ADaef801F2bDAa2e2B13036775A39b4B463f
6j4p7t:to:USDT(TRON):TLfYgRD2AMw4J6hB9qPWeYHj4RGrMykJZLz
6j4KFa:to:USDT(TRON):TWdPZwZaizPCxBEVYM5JkvEhmaEwYy7w3i[L
6j4XIo:to:USDT(TRON):TLmqGJyjLEvYxEZS8aXrAKAjbpPg7J1PrA
6j4WDu:to:USDT(TRON):TGJ5svX7XF8TvzJZgdve2UzbmgrNPKQfyJ
<j:jAq:to:BNB(BSC):0xd2AeBd26Bed627e37A971fb20b4568486f7C9E0D
6j4Td2:to:USDT(TRON):TQiwPuXn6opLE6ZHB3wc57oQSJEdzT2d97
6j4Chj:to:USDT(TRON):TWP4ZbHrTiExrLpcSJwJ8uipj7hBo4LStA
9j741l:to:SOL:31ZbTNtK4haRjnhs1rixSVmsvGYJC5u9wQNyCaoTwC9S
=j;HND:to:USDT(BSC):0x8D632219Fa4b4d0a2156a01b706a85cE1753bC5F
=j;4oX:to:USDT(BSC):0xc0E9511774601624a1e2004B57D77b6Ff0899678
=j;o4J:to:USDT(BSC):0x468b9D5730773795D9A0345C0ccD3250255C76B7
4j2to:LTC:ltc1q2rfmzapyczhz94jwdlsqw3rd7vedn83wwt70pk
=j;ZJ9:to:USDT(BSC):0x1d8ba56B73F348F9d73C22C411302548eA53A425
?j=9zx:to:USDT(ERC20):0x6FB7f249844484152FeBAAf71C05312DD8141764
Aj?F9r:to:USDT(C-Chain):0x6E0B368fC548d572982039e013dc170cfdB029C8(
9j7to:USDT(BSC):0x9d210f1667d80F08162600f5b46681Da50E68Cce
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"5000"}h!
8j6from:26.4USDT(TRON):TV1sNma6EU5p3aGcoDgi6MUrJmh572vSHW
8j6from:1010USDT(TRON):TWvNkDjzFkXtN6xaGxKfsEmEvAHjAP1am2'
OjLL0x3d283c24df3c01c84a945ce2f5f482fef7b34a536515fa601599b668d5c9c31f=|lifi}
DjB0xf0a3fc251b55e9c78eada632042088691f2f8a5a6c0dbf334fc992bac9ebaa2d
DjB0x8aaa3d71c92a4fd30163687f50251abeed49206728b27c0f229daceacd1a6d9a
DjB0x247e1b37f66380208d819ca3afae53f5b52f169afb3c96c0a7d6561f21e94f8d
DjB0x14658662a97975897c1692e7652cb577fcefe73a7afd2069aac296ec7cbe591d
DjB0x829c0987ec3a989bee1e211836c1829360606c125b69a6cae288f9151e1c419b
DjB0xca05fae672cc2ce8fedd61896fb239c8e7d8074e0a53a8712fa0db3bf41c2a86
DjB0x4b3ad55acb732d79e30b27354188a87141082c090f60c0ef3a7b14a06c63d83c
DjB0xc1ea53d433b4fdffec8479c099d08e65e52cb6c69d543853101cca15aab58d86
DjB0x6c8093a0c29054d653cf81ed1b6f92606517b2140283a6e6e765798996781a8c
DjB0x46a21d6237f3ed6917f1475e7a45112b39dbee3b23305d4c07be81426c5eba78
DjB0x73490192993e8eb2d3d66e129a41bcb729a68b349e6e9dc0c0bb5943db86b2d2
DjB0x3987070d12aa30cef87c594cf63cb0c4103b58081ef3faae74f9edd80c5656b7
DjB0x89c941f627990fb4f8b73cb7824cb7088e425c3b3fb5bd123466ef0706af61ef
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"sats","amt":"790000000"}h!
DjB0x85c8696bccddf5d7933616036e949d70ed8542f23e33392070d8eb8b6e174aea
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"icca","amt":"700"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"Ff1e","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"Ff1e","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"Ff1e","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"Ff1e","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"Ff1e","amt":"100"}h!
DjB0xdc5ce30f0e85fb58a39078c6db2ce2a716629f56d0fd46dc6fba9f27010ca6ac
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
<j:{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"56000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"100"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"715420"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"42037733334"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"50000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"TRUM","amt":"2000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"22650"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"9.999"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"9.999"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"8000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BTG`","amt":"10000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"10000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1200104401"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"36P9","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"15"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"12000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"39000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"16000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"12000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"58000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"80000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"16000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"18000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"10000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"17000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"35000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"45000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"45000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"26000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"55000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"24000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"17000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"99000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"30000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"26000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"15000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"23000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"37000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"12000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"65000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"30000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"26000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"78000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"98000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"30000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"12000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"32000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"13000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"10000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"12000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4528800000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"X@AGI","amt":"5000000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"4096586257"}h!
text/plain;charset=utf-8
1a2e22a717d626fc5db363582007c46924ae6b28319f07cb1b907776bd8293fc.btch!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"4096586257"}h!
text/plain;charset=utf-8
G6fb976ab49dcec017f1e201e04395983204ae1a7c2abf7ced0a85d692e442799
if (w.__BOVINE_RACE__) return;
w.__BOVINE_RACE__ = true;
const COW = "beef152c1096a662c64fa8d25ff61f5224f18a93c6235f6192d1d3cc85e0e94ci0";
const GATE_MS = 20000;
w.BOVINE_RACE = race;
function $(id) { return document.getElementById(id); }
const a = w.BOVINE_INNER || 1120, b = w.BOVINE_OUTER || 1680;
const s = $("status");
if (s) s.textContent = t;
const g = $("bovineGateLine");
if (g) g.textContent = t;
if (typeof w.broadcastClub === "function") {
try { w.broadcastClub(msg); } catch (e) {}
if (w.isHost || w.isHostWithKenobi) return true;
if (w.clubHostId && w.myPlayerID && w.clubHostId === w.myPlayerID) return true;
if (w.multiplayerMode === false || w.multiplayerMode == null) return true;
const rem = w.remotePlayers;
const n = rem && typeof rem.size === M
"number" ? rem.size : (rem ? Object.keys(rem).length : 0);
function applyHeat(ids) {
if (!ids || !ids.length) return;
roster().forEach(r => { byId[r.id] = r; });
const heat = ids.map(id => byId[id]).filter(Boolean);
if (heat.length) race.heat = heat;
if (w.paintBovineCard) w.paintBovineCard();
if (w.BOVINE_BOOK && w.BOVINE_BOOK.refreshField) w.BOVINE_BOOK.refreshField();
function snapshot() {
type: "bovineState",
heat: (race.heat || []).map(r => r.id),
kHeight: race.lockHeight,
winner: race.winner && race.winner.id,
startedAt: race.startedAt
function syncHostUi() {
const host = amHost();
const live = race.phase === "betting" || race.phase === "gate" || race.phase === "running";
["bovineFieldBtn","bovineBetsBtn","bovinePostBtn","bovinePostBtnHud","bovineEntryWrap"].forEach(id => {
if (!host) { el.style.display = "none"; return; }
if (id === "bovineFieldBtn" && live) { el.style.display = "none"; return; }
const dockPost = $("bovinePostBtn");
if (dockPost && dockPost.closest && dockPost.closest("#clubDock")) {
dockPost.style.display = host ? "" : "none";
const ctx = new (w.AudioContext || w.webkitAudioContext)();
const now = ctx.currentTime;
[0, 0.22, 0.44].forEach((off, i) => {
const o = ctx.createOscillator();
const g = ctx.createGain();
o.frequency.value = i === 2 ? 660 : 880;
g.gain.setValueAtTime(0.0001, now + off);
g.gain.exponentialRampToValuM
eAtTime(0.18, now + off + 0.02);
g.gain.exponentialRampToValueAtTime(0.0001, now + off + 0.35);
o.connect(g); g.connect(ctx.destination);
o.start(now + off); o.stop(now + off + 0.4);
function injectUi() {
if ($("bovineRaceHud")) return;
const hud = document.createElement("div");
hud.id = "bovineRaceHud";
'<div id="bovineGateLine">paddock</div>',
'<button id="bovineFieldBtn" type="button">NEW FIELD</button>',
'<label id="bovineEntryWrap" style="display:flex;align-items:center;gM
ap:6px;font:700 11px Palatino,serif;letter-spacing:.08em">ENTRY <input id="bovineEntryAmt" type="number" min="1" step="1" value="250" style="width:72px;padding:4px 6px;background:#111;color:#f3ead6;border:1px solid #d4b46a"/></label>',
'<button id="bovineBetsBtn" type="button">OPEN BOOK</button>',
'<button id="bovinePostBtnHud" type="button">POST</button>'
Object.assign(hud.style, {
position: "fixed", top: "10px", left: "50%", transform: "translateX(-50%)",
zIndex: 6000, display: "flex", gap: "8px", aliM
flexWrap: "wrap", justifyContent: "center",
fontFamily: "Palatino,serif", color: "#f3ead6",
background: "rgba(10,10,12,.82)", border: "1px solid rgba(196,165,116,.4)",
padding: "8px 12px", pointerEvents: "auto"
document.body.appendChild(hud);
const dock = $("clubDockBody");
if (dock && !$("bovineDockControls")) {
const box = document.createElement("div");
box.id = "bovineDockControls";
box.className = "panel";
box.innerHTML = "<h3>PADDOCK</h3><div id=\"bovineDockNote\" styleM
=\"font-size:11px;margin-bottom:6px\">Host controls</div>";
dock.insertBefore(box, dock.firstChild);
const chat = document.createElement("div");
chat.id = "bovineChat";
'<div style="font-size:10px;letter-spacing:.16em;margin-bottom:4px">RAIL CHAT</div>',
'<div id="bovineChatLog"></div>',
'<form id="bovineChatForm"><input id="bovineChatIn" maxlength="160" placeholder="enter to send"/></form>'
document.body.appendChild(chat);
const css = document.createElement("style");
"#bovineChat{position:fixed;right:16px;bottom:132px;width:168px;z-index:441;background:rgba(10,10,12,.82);border:1px solid rgba(196,165,116,.35);padding:8px;color:#efe6d6;font:12px Palatino,serif}",
"#bovineChatLog{height:72px;overflow:auto;margin-bottom:6px;opacity:.9}",
"#bovineChatForm{display:block}",
"#bovineChatIn{width:100%;box-sizing:border-box;background:#111;color:#efe6d6;border:1px solid rgba(196,165,116,.35);padding:6px;font-size:16px}",
"#bovineBetsBtn,#bovineFieldBtn,#bovinePostBtn{background:#dM
4b46a;color:#111;border:0;padding:6px 10px;font:700 12px Palatino,serif;cursor:pointer}",
"#bovineGateLine{letter-spacing:.14em;font-size:13px;text-transform:uppercase}"
document.head.appendChild(css);
const rules = $("rulesOverlay");
const ul = rules.querySelector("ul");
const p = rules.querySelector("p");
const close = rules.querySelector(".close-btn");
if (ul) ul.innerHTML = [
ointer / menu</li>",
 allow the browser prompt. Floor is open. No host permission. Voices + Track sliders sit in MIX.</li>",
"<li>Mobile: left pad walk, J jump, drag right to turn. Tap menu or chat to type, tap mid-screen to walk again.</li>",
"<li>Stay off the dirt. Inner and outer gold rings are the rails. TO THE DOME / TO THE OUTER RAIL teleport you.</li>",
"<li>HOST: NEW FIELD draws 8
12 cows from the card. PLACE YOUR BETS opens the book. POST locks the heat, rings the bell, 20 seconds, then they M
"<li>PLAYERS: pick a racer, stake at least 1 rune less than your max so the ordinal stays on the sat, WRITE TICKET. Tell the host when you are in.</li>",
"<li>They run until the next Bitcoin block after POST. Photo is the block hash. Score is 45% speed, 25% grit, 20% burst, 10% gate, mixed with that hash. Highest score wins.</li>",
"<li>House takes 4% of the pool, rounded up, to the dump address. Rest of the pool to tickets on the winner. Book rebuilds after photo.</li>"
if (p) p.innerHTML =M
 "<strong>BOVINE RACING CLUB:</strong> House-owned stable. You are the railbirds. Walk the salon, watch the jumbotron chase or stand at the rail. Winner is the hash, not the host.";
if (close) close.textContent = "BACK TO THE PADDOCK";
$("bovineBetsBtn").addEventListener("click", placeYourBets);
$("bovineFieldBtn").addEventListener("click", () => newField(true));
const postHud = $("bovinePostBtnHud");
if (postHud) postHud.addEventListener("click", () => { if (w.lockBovinePost) w.lockBovinePost(); });
ost = document.createElement("style");
stylePost.textContent = "#bovinePostBtnHud{background:#d4b46a;color:#111;border:0;padding:6px 10px;font:700 12px Palatino,serif;cursor:pointer}";
document.head.appendChild(stylePost);
setInterval(syncHostUi, 400);
document.addEventListener("touchstart", function (ev) {
const el = ev.target;
const typeHere = el && el.closest && el.closest("#bovineChat,#clubDock,#clubMixer,input,textarea,select");
const stick = el && el.closest && el.closest("#movePad,#jumpBtn,#camM
eraCycleBtn,#pauseBtn");
if (typeof w.setClubUiMode === "function") w.setClubUiMode(true);
w.controlsEnabled = false;
const field = (el.closest && el.closest("input,textarea")) || $("bovineChatIn");
if (field && field.focus) setTimeout(function () { field.focus(); }, 0);
if (typeof w.blurGameInputs === "function") w.blurGameInputs();
else if (document.activeElement && document.activeElement.blur) document.activeElement.blur();
if (typeof w.setClubUiMode === "function") wM
.setClubUiMode(false);
w.controlsEnabled = true;
$("bovineChatForm").addEventListener("submit", e => {
const inp = $("bovineChatIn");
const text = (inp.value || "").trim();
pushChat("you", text);
net({ type: "bovineChat", text });
function pushChat(who, text) {
const log = $("bovineChatLog");
const line = document.createElement("div");
line.textContent = who + ": " + text;
log.appendChild(line);
log.scrollTop = log.scrollHeightM
return ((w.BOVINE_ROSTER && w.BOVINE_ROSTER.racers) || []).filter(r => !r.retired);
function heatSize() {
try { if (w.remotePlayers && w.remotePlayers.size) n += w.remotePlayers.size; } catch (e) {}
return n >= 6 ? 12 : 8;
function drawHeat() {
const all = roster();
if (!all.length) return [];
const n = Math.min(heatSize(), all.length);
const pool = all.slice();
while (heat.length < n && pool.length) {
heat.push(pool.splice(Math.floor(Math.random() * pool.lengM
if (w.paintBovineCard) w.paintBovineCard();
if (w.BOVINE_BOOK && w.BOVINE_BOOK.refreshField) w.BOVINE_BOOK.refreshField();
function clearCows() {
race.runners.forEach(run => {
try { if (run.mixer && run.mixer.stopAllAction) run.mixer.stopAllAction(); } catch (e) {}
if (!run.root) return;
run.root.traverse(function (o) {
if (o.geometry && o.geometry.dispose) o.geometry.dispose();
const mats = o.material ? (Array.isArray(o.material) ? o.materiaM
l : [o.material]) : [];
mats.forEach(function (m) {
["map", "normalMap", "roughnessMap", "metalnessMap", "emissiveMap"].forEach(function (k) {
if (m[k] && m[k].dispose && m[k] !== (race.chase && race.chase.rt && race.chase.rt.texture)) {
try { m[k].dispose(); } catch (e) {}
if (m.dispose) try { m.dispose(); } catch (e) {}
if (run.root.parent) run.root.parent.remove(run.root);
function newField(announce) {
if (!amHost()) return;
 "betting" || race.phase === "running" || race.phase === "gate") return;
if (w.BOVINE_LOCK) w.BOVINE_LOCK.locked = false;
race.phase = "idle";
race.wanderOn = false;
race.fieldAt = Date.now();
race.lockHeight = null;
if (w.BOVINE_BOOK) {
w.BOVINE_BOOK.open = false;
w.BOVINE_BOOK.tickets = [];
say("NEW FIELD on the card
 host can open the book");
if (announce) net({ type: "bovineNewField", heat: raM
ce.heat.map(r => r.id) });
function placeYourBets() {
if (!amHost()) return;
if (race.phase !== "idle" && race.phase !== "betting") return;
race.phase = "betting";
if (!race.heat.length) drawHeat();
const entryEl = $("bovineEntryAmt");
const entry = Math.max(1, Math.floor(Number(entryEl && entryEl.value || race.entry || 250)));
if (w.BOVINE_BOOK) {
w.BOVINE_BOOK.open = true;
w.BOVINE_BOOK.entry = entry;
 entry " + entry + "
 2 minutes to sign");
net({ type: "bovineBetsOpenM
", heat: race.heat.map(r => r.id), entry: entry });
clearInterval(w._bovineBookClock);
w._bovineBookClock = setInterval(function () {
if (race.phase !== "betting") {
clearInterval(w._bovineBookClock);
 entry " + entry + "
 " + left + "s to sign");
net({ type: "bovineBookTick", left: left, entry: entry });
clearInterval(w._bovineBookClock);
if (w.lockBovinePost) w.lockBovinePost();
const prevLock = w.lockBovinePosM
w.lockBovinePost = async function () {
if (!amHost()) return;
if (race.phase === "running" || race.phase === "photo") return;
if (prevLock) await prevLock();
race.phase = "gate";
if (w.BOVINE_BOOK) w.BOVINE_BOOK.open = false;
try { h = await (await fetch("/r/blockheight")).json(); } catch (e) {}
race.lockHeight = h;
if (w.BOVINE_LOCK) w.BOVINE_LOCK.height = h;
net({ type: "bovinePost", height: h, heat: race.heat.map(r => r.id) });
setTimeout(() => startRunning(), GATE_MS);
async function startRunning() {
if (race.phase !== "gate" && race.phase !== "betting") {
if (race.phase === "idle") return;
race.phase = "running";
race.startedAt = Date.now();
 photo on the next block");
if (!race.runners.length) await mountCows(false);
race.runners.forEach(run => { run.running = true; run.wander = false; playGait(run, "run"); });
say("THEY'RE RUNNING
 " + race.runners.length + " on the rail
race.lastError = String(err && err.message || err);
 " + race.lastError);
if (amHost()) net(snapshot());
function armChase() {
const THREE = w.THREE;
if (!race.chase || !race.chase.rt || !race.chase.cam) {
const cam = new THREE.PerspectiveCamera(42, 16 / 9, 0.5, 8000);
const rt = new THREE.WebGLRenderTarget(1024, 576);
if (rt.texture && THREE.SRGBColorSpace) rt.texture.colorSpace = THREE.SRGBColorSpace;
const mesh = w.stageScreenMesh;
mesh.material = new THREE.MeshBasicMaterial({
map: race.chase.rt.texture,
function chaseFrame() {
if (race.phase !== "running" || !race.chase || !w.renderer || !w.scene) return;
const pack = race.runners.filter(r => r.root);
if (!pack.length) return;
const lead = pack.reduce((a, b) => (a.theta >= b.theta ? a : b));
const back = lead.theta - 0.28;
const cam = race.chase.cam;
oot.position.y || 6) + 110;
cam.position.set(Math.cos(back) * (R + 36), hy, Math.sin(back) * (R + 36));
const look = lead.root.position.clone();
const mesh = w.stageScreenMesh;
if (mesh) mesh.visible = false;
const rend = w.renderer;
const prev = rend.getRenderTarget && rend.getRenderTarget();
rend.setRenderTarget(race.chase.rt);
rend.render(w.scene, cam);
rend.setRenderTarget(prev || null);
if (mesh) mesh.visible = true;
function score(racer, hex) {
0; i < 8 && i * 2 + 1 < hex.length; i++) {
bytes.push(parseInt(hex.slice(i * 2, i * 2 + 2), 16) / 255);
const rnd = bytes[racer.id % 8] || 0.5;
const burst = bytes[(racer.id + 3) % 8] || 0.5;
const gate = bytes[(racer.id + 5) % 8] || 0.5;
return 0.45 * racer.speed + 0.25 * racer.grit * (1 - rnd) + 0.20 * racer.burst * burst + 0.10 * racer.gate * gate;
async function pollPhoto() {
const tick = async () => {
if (race.phase !== "running") return;
const h = await (await fetch("/r/blockheight")).json();
ce.lockHeight != null && h > race.lockHeight) {
const hash = await (await fetch("/r/blockhash/" + h)).json();
finish(String(hash), h);
 waiting on block after " + race.lockHeight);
setTimeout(tick, 2500);
function finish(hash, height) {
race.phase = "photo";
let best = null, bestS = -1;
race.heat.forEach(r => {
const s = score(r, hash);
if (s > bestS) { bestS = s; best = r; }
race.runners.forEach(run => { ruM
n.running = false; });
 WIN #" + (best && best.id) + " " + (best && best.name) + "
 host holds the board");
const ranked = race.heat.slice().sort((a, b) => (b._score || 0) - (a._score || 0));
win: ranked[0] || best,
place: ranked[1] || null,
show: ranked[2] || null
net({ type: "bovinePhoto", hash: hash, height: height, winner: best && best.id, board: race.board });
if (w.paintBovineCard) w.paintBovineCard();
function trackY(x, z) {
if (typeof w.getTerrainHeight === "function") return w.getTerrainHeight(x, z) + 4;
async function makeLoader() {
if (typeof w.makeGltfLoader === "function") {
const got = w.makeGltfLoader();
return (got && typeof got.then === "function") ? await got : got;
if (!w.GLTFLoader) return null;
const loader = new w.GLTFLoader();
if (w.DRACOLoader) {
const WRAP = "1c59d4d184bfaadf33e641456d540dba14edc8d383d84634a418d75f149e1683i1";
const WASM = "1c59d4d184bfaadf33e641456d540dba14edc8d383dM
84634a418d75f149e1683i2";
const draco = new w.DRACOLoader();
draco._initDecoder = function () {
if (this.decoderPending) return this.decoderPending;
this.decoderPending = Promise.all([
fetch("/content/" + WRAP).then(function (r) { return r.text(); }),
fetch("/content/" + WASM).then(function (r) { return r.arrayBuffer(); })
]).then(function (parts) {
const factory = new Function(parts[0] + "\nreturn DracoDecoderModule;")();
return new Promise(function (res, rej) {
const mod = factory({
onModuleLoaded: function (m) { self._draco = m; res(m); }
if (mod && mod.then) mod.then(function (m) { if (!self._draco) { self._draco = m; res(m); } }).catch(rej);
return this.decoderPending;
loader.setDRACOLoader(draco);
function colorFor(i) {
const hues = [0xc45c26, 0x2c5aa0, 0x2f6b3a, 0x7a2f2f, 0xc9a227, 0x5a3d7a, 0xd4b46a, 0x1f1f1f, 0xb85c38, 0x4a7c59, 0x8b4513, 0x3d3d3d];
return hues[i % hues.length];
function fallbackCows() {
const THREE = w.THREEM
if (!THREE || !w.scene) return;
const heat = race.heat.length ? race.heat : drawHeat();
heat.forEach((racer, i) => {
const g = new THREE.Group();
const body = new THREE.Mesh(
new THREE.BoxGeometry(16, 9, 7),
new THREE.MeshStandardMaterial({ color: colorFor(i), roughness: 0.7 })
body.position.y = 8;
const head = new THREE.Mesh(
new THREE.BoxGeometry(6, 6, 6),
new THREE.MeshStandardMaterial({ color: colorFor(i) })
head.position.set(10, 10, 0);
g.add(body); g.add(head);
e = startPose(i, heat.length);
const theta = pose.theta, rad = pose.r;
const x = Math.cos(theta) * rad, z = Math.sin(theta) * rad;
g.position.set(x, trackY(x, z), z);
g.rotation.y = -theta + Math.PI / 2;
race.runners.push({ root: g, mixer: null, theta: theta, home: theta, radius: rad, racer: racer, running: false, wander: false, lastMoo: 0 });
function skinCow(root, texId) {
const THREE = w.THREE;
if (!THREE || !texId || !root) return;
const id = String(texId).split("/content/").pop();
[0-9a-f]{64}i[0-9]+$/i.test(id)) return;
const tex = new THREE.TextureLoader().load("/content/" + id, function (t) {
if (THREE.SRGBColorSpace) t.colorSpace = THREE.SRGBColorSpace;
t.needsUpdate = true;
root.traverse(function (o) {
if (!o.isMesh || !o.material) return;
const mats = Array.isArray(o.material) ? o.material : [o.material];
mats.forEach(function (m) {
if (m.color) m.color.setHex(0xffffff);
m.needsUpdate = true;
if (THREE.SRGBColorSpace) tex.colorSpace = THREE.SRGBCoM
function startPose(i, n) {
const cols = Math.min(4, Math.max(1, n));
const row = Math.floor(i / cols);
const col = i % cols;
const rows = Math.ceil(n / cols);
const inner = w.BOVINE_INNER || 1120;
const outer = w.BOVINE_OUTER || 1680;
const r = inner + 80 + ((row + 0.5) / Math.max(1, rows)) * (outer - inner) * 0.62;
const theta = -Math.PI / 2 + (col - (cols - 1) / 2) * 0.13;
return { theta: theta, r: r };
function startTheta(i, n) { return startPose(i, n).theta; }
function showPaddocM
race.fieldAt = Date.now();
mountCows().catch(function () { fallbackCows(); });
if (w.paintBovineCard) w.paintBovineCard();
async function mountCows() {
if (!w.THREE || !w.scene) throw new Error("no scene");
const THREE = w.THREE;
const loader = await makeLoader();
if (!loader || !loader.load) {
const heat = race.heat.length ? race.heat : drawHeat();
for (let i = 0; i < heat.length; i++) {
const racer = heat[i];
gltf = await new PromiseM
loader.load("/content/" + COW, res, undefined, rej);
race.lastError = String(e && e.message || e);
const root = gltf.scene;
root.traverse(function (o) {
if (!o.isMesh || !o.material) return;
const mats = Array.isArray(o.material) ? o.material : [o.material];
o.material = mats.map(function (m) {
const copy = m.clone ? m.clone() : m;
if (copy && "format" in copy) try { delete copy.format; } catch (e) {}
copy.color && copy.color.setHex(0xffffff);
copy.roughness = 0.72;
copy.side = THREE.DoubleSide;
copy.needsUpdate = true;
if (o.material.length === 1) o.material = o.material[0];
skinCow(root, racer && racer.texture);
root.scale.set(19.8, 19.8, 19.8);
const pose = startPose(i, heat.length);
const theta = pose.theta, rad = pose.r;
const x = Math.cos(theta) * rad, z = Math.sin(theta) * rad;
root.position.set(x, trackY(x, z), z);
root.rotation.y = -theta + Math.PI / 2;
root.visible = true;
const mixer = new THM
REE.AnimationMixer(root);
const clips = gltf.animations || [];
const c = clips.find(a => re.test(a.name));
return c ? mixer.clipAction(c) : null;
const idle = act(/idle|stand/i);
const walk = act(/walk/i);
const runA = act(/gallop|run/i) || walk || idle || (clips[0] ? mixer.clipAction(clips[0]) : null);
if (idle) idle.play();
else if (walk) walk.play();
else if (runA) runA.play();
race.runners.push({ root: root, mixer: mixer, idle: idle, walk: walk, runA: runA, theta: theta, home: theta, radiusM
: rad, racer: racer, running: false, wander: false, lastMoo: 0, facing: theta });
if (!race.runners.length) fallbackCows();
function playMoo() {
const ctx = new (w.AudioContext || w.webkitAudioContext)();
const now = ctx.currentTime;
const o = ctx.createOscillator();
const o2 = ctx.createOscillator();
const g = ctx.createGain();
o.type = "sawtooth";
o.frequency.setValueAtTime(170, now);
o.frequency.exponentialRampToValueAtTime(72, now + 0.55);
o2.frequency.setValueAtTime(85, now);
quency.exponentialRampToValueAtTime(48, now + 0.55);
g.gain.setValueAtTime(0.0001, now);
g.gain.exponentialRampToValueAtTime(0.42, now + 0.04);
g.gain.exponentialRampToValueAtTime(0.0001, now + 0.7);
o.connect(g); o2.connect(g); g.connect(ctx.destination);
o.start(now); o2.start(now);
o.stop(now + 0.72); o2.stop(now + 0.72);
function playGait(run, name) {
const next = name === "run" ? (run.runA || run.walk || run.idle)
: name === "walk" ? (run.walk || run.idle || run.runA)
: (run.idle || run.walk |M
[run.idle, run.walk, run.runA].forEach(function (a) {
if (a && a !== next) a.stop();
if (!next.isRunning || !next.isRunning()) next.reset().play();
function separateCows() {
const pack = race.runners.filter(r => r.root);
for (let i = 0; i < pack.length; i++) {
for (let j = i + 1; j < pack.length; j++) {
const a = pack[i], b = pack[j];
const dx = a.root.position.x - b.root.position.x;
const dz = a.root.position.z - b.root.position.z;
const d = Math.sqrt(dx * dx + dz * dz) || 0.0M
const push = (min - d) * 0.5;
const nx = dx / d, nz = dz / d;
a.root.position.x += nx * push;
a.root.position.z += nz * push;
b.root.position.x -= nx * push;
b.root.position.z -= nz * push;
a.theta = Math.atan2(a.root.position.z, a.root.position.x);
b.theta = Math.atan2(b.root.position.z, b.root.position.x);
function ballsHitCows() {
const balls = w.projectiles;
if (!balls || !balls.length) return;
const now = Date.now();
balls.forEach(function (ball) {
if (!ball || !ball.M
const p = ball.mesh.position;
race.runners.forEach(function (run) {
if (!run.root) return;
const dx = run.root.position.x - p.x;
const dy = (run.root.position.y || 0) - p.y;
const dz = run.root.position.z - p.z;
if (dx * dx + dy * dy + dz * dz < 22 * 22) {
if (now - (run.lastMoo || 0) > 700) {
w.bovineTick = function (dt) {
if (race.fieldAt && !race.wanderOn && race.phase !== "running" && race.phase !== "photo") {
if (Date.now() - race.fielM
race.wanderOn = true;
race.runners.forEach(run => { run.wander = true; });
 field is wandering
 host can still open the book");
race.runners.forEach(run => {
if (run.mixer) run.mixer.update(dt);
const rad = run.radius || R;
if (run.running && race.phase === "running") {
playGait(run, "run");
const v = (0.18 + (run.racer.speed || 50) / 400) * 0.4;
run.theta += v * dt;
run.facing = run.theta;
} else if (run.wander && race.phase !== "running") {
playGait(run, "walk");
run.wobble || 0) + dt * 0.55;
const prev = run.theta;
run.theta = (run.home || 0) + Math.sin(run.wobble + (run.racer.id || 1)) * 0.22;
const dir = run.theta - prev;
if (Math.abs(dir) > 0.0001) run.facing = dir > 0 ? run.theta : run.theta + Math.PI;
} else if (run.root) {
playGait(run, "idle");
if (run.running || run.wander) {
const x = Math.cos(run.theta) * rad, z = Math.sin(run.theta) * rad;
run.root.position.set(x, trackY(x, z), z);
run.root.rotation.y = -(run.facing != null ? run.facing : run.M
theta) + Math.PI / 2;
const prevNet = w.handleClubNet;
w.handleClubNet = function (msg, from) {
if (!msg || !msg.type) {
if (typeof prevNet === "function") return prevNet(msg, from);
if (msg.type.indexOf("bovine") === 0) {
if (msg.type === "bovineChat") pushChat(from || "rail", msg.text);
if (msg.type === "bovineNewField") {
race.phase = "idle";
if (msg.heat) applyHeat(msg.heat);
else if (amHost()) drawHeat();
say("NEW FIELD on the cardM
 cows at the start");
if (msg.type === "bovineBetsOpen") {
race.phase = "betting";
if (msg.heat) applyHeat(msg.heat);
if (msg.entry) race.entry = Number(msg.entry);
if (w.BOVINE_BOOK) {
w.BOVINE_BOOK.open = true;
if (msg.entry) w.BOVINE_BOOK.entry = Number(msg.entry);
 entry " + (msg.entry || race.entry) + "
 2 minutes to sign");
if (msg.type === "bovineBookTick") {
 entry " + (msg.entry || race.entry) + "
 " + msg.left + "s to sign");
if (msg.type === "bovinePost") M
if (msg.heat) applyHeat(msg.heat);
race.phase = "gate";
race.lockHeight = msg.height;
if (w.BOVINE_BOOK) w.BOVINE_BOOK.open = false;
setTimeout(() => startRunning(), GATE_MS);
if (msg.type === "bovineState") {
if (msg.heat) applyHeat(msg.heat);
if (msg.lockHeight != null) race.lockHeight = msg.lockHeight;
if (msg.hash) race.hash = msg.hash;
if (msg.phase === "running" && race.phase !== "running" && race.phase !== "photo") {
race.phase = "gate";
=== "photo" && race.phase === "running") {
finish(String(msg.hash || race.hash), msg.lockHeight);
if (msg.type === "bovinePhoto") {
if (msg.board) race.board = msg.board;
if (race.phase === "running") finish(String(msg.hash), msg.height);
else if (w.paintBovineCard) w.paintBovineCard();
if (amHost() && msg.type !== "bovineState") net(snapshot());
if (typeof prevNet === "function") prevNet(msg, from);
if (typeof prevNet === "function") return prevNet(msg, from);
if (!race.heat.length && w.BOVINE_ROSTER) drawHeat();
if (race.heat.length) showPaddock();
say(amHost() ? "HOST
 draw a field, set entry, open the book when the rail is ready" : "Wait for the host
 field will line up at the picture");
if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", boot);
SODA #8291 - Drawn May 23, 2026
dnamejSODA #8291edrawnlMay 23, 2026dseedjstretch 31hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
/Foundry USA Pool #dropgold/
6j4zoL:to:USDT(TRON):TCeQmEgoRTrXnVXYDVx411iy6CZvjwXbua7D
6j4j6Q:to:USDT(TRON):TVfxfUd9chPQEeSqddhZo6sSTzAWUBusiL
7j5H1T:to:ETH:0xbFE2fcFaF47bf7EDcAFB00D35Fddd024d1246b3dY
=j;jdR:to:USDT(BSC):0xf9bC707325C6a768D8928d162dc1eC2E9995A9De
{jLx0xaf9a51e173435b3ba2eaeb278f9818917a08a699ec176a7bf3f03bbe238b05a2|depositor=bc1qmjf0j5jd3dm4frvqxjd6a5szf9g8mze286jp64|
DjB0x2336ef88505face87ac59d942dee16dffd2f502cfd3f04a71ede9eee47104dd8
IjG=:e:0xB7864804288CC4677849E648ecA682a2B57cD5CE:6123895/350:sk/tan:7/144n
GjE{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"1454247.44296407"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"7"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"12000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"6000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"8000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"10000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"10000"}h!
SODA #8292 - Drawn May 23, 2026
dnamejSODA #8292edrawnlMay 23, 2026dseedjstretch 32hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
/Foundry USA Pool #dropgold/B6
6j4rto:to:USDT(TRON):TEWtyWDVCu5KxMua3kfkmDGGZ25iyrsSvJ
6j4knT:to:USDT(TRON):TDkEyzwNcKqLKvmNkYBPrUG2vpoH5zu71m
6j42wm:to:USDT(TRON):TMbSVi4g3fdJqfSC3JTpFYEUpCiKYAjbWW
6j4Fv7:to:USDT(TRON):TLFopfvmf7dqVdYpGqU9EaudPePRMMsTLP
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"ordi","amt":"315.836"}h!
6j4dA7:to:USDT(TRON):TLjwbazH5vRPgnsqHSoHAksz96zA9XXYfc
6j4P5x:to:USDT(TRON):TLS291mnvJU57HSKj8dqT6B5oW4j6Rshx9
6j4MiS:to:USDT(TRON):TTyu9x3zFjLhzL7bob7qLiRcbDwwDY1z6S
FjDOUT:8E5C16385D0A176ECB9183C4DA577D921DBEE35C56F2C00434E4C27A252FF8B6
6j437Z:to:USDT(TRON):TKE4Qg8JvS1BWXrRL8NWBtzpNwiVUFcEcS
=j;vjJ:to:USDT(BSC):0x49Bee79BFb08577Be2C5B2e2362475d30284F16Ao&
6j49aj:to:USDT(TRON):TZASv28Fctvg3Wk5ARg7xZqPmwRidNNccs
8j6Euj:to:LTC:ltc1qps2had4q9sp0prstq5f7hpepw44tn3hjceq5u5^
/j-ViB:to:TRX:TMbSVi4g3fdJqfSC3JTpFYEUpCiKYAjbWW
=j;IZf:to:USDT(BSC):0x1b7E105240203C8f4058fb77b15659c82ad3020B
6j4rL8:to:USDT(TRON):TPRdfFKnCGieUDSWGYCVXmGGedqNnyNrwj
?j=J6D:to:USDT(ERC20):0x11762165F6A0AF05819588DD0DaF08f7c7275D13
6j4kdE:to:USDT(TRON):TLFopfvmf7dqVdYpGqU9EaudPePRMMsTLP
6j4zlz:to:USDT(TRON):TAQmVRCYPuJ1DHTBcjL9BdTbXpj2ktnLkY{
6j4d3y:to:USDT(TRON):TGJ5svX7XF8TvzJZgdve2UzbmgrNPKQfyJy
6j4W38:to:USDT(TRON):TLBxexvQA3kdeixPFMKUF1Ho6S7fjGbGVqX
6j4dKn:to:USDT(TRON):THmj7Zs4st6NJnhT1bofkyfMXpJzBAG3vt^
6j4xI1:to:USDT(TRON):TLfYgRD2AMw4J6hB9qPWeYHj4RGrMykJZL
6j4qnZ:to:USDT(TRON):TTUUKjQfRxSqr8yPKoCxRbA2wxLZ3JNfAd|6
/j-z97:to:XRP:rpDtMyhyqHWiJ3GQT1XjLBWwafgetPuj3R
7j5tbz:to:ETH:0x6B149acf7Eca765Bb15104C3AE8B321c175912f6
8j67Iu:to:USDC:0x377db98faa1a95De6831cD16f38941D9c45881DD
=j;QmE:to:USDT(BSC):0xa5E18577D424390e05926AE1fc8e870351C49Bd4
=j;HHe:to:USDC(ARB):0x1B20bD8B6C01f55f5E421F505519F371B4E605C4
=j;bAZ:to:USDT(BSC):0x8D632219Fa4b4d0a2156a01b706a85cE1753bC5F
=j;Tzr:to:USDT(BSC):0xb24e93c847c9B2772a40b034DE05Ef8c4058f74f
6j4QWh:to:USDT(TRON):TDtxfQuZxMaYJsz8gQpDGx5QrbHE7GJBfj
6j4BHD:to:USDT(TRON):TXoyuza21gKJ4Bk7ds5gtDihMc8uVdoJ4s
=j;L8p:to:USDT(BSC):0x43Cd72606DE37D6527486E5b8f4F8a928Ca9F7A6
6j4gfb:to:USDT(TRON):TGtqjziuSuaJkgfgkcfS4wZBWQLu3oSk1R
6j4Tu7:to:USDT(TRON):TW4dCL9Xp2YuoPXYMbjZkWsyXQR8cXt65c
6j4z01:to:USDT(TRON):TQpYCYEZATm5KZ5jC7NmhwW1pHGYQLSr84
=j;ins:to:USDT(BSC):0x1d70BC8A59bf2fB9e30f0e5fAefE5D0f548C6F11
?j=9po:to:USDT(ERC20):0x73add45DE88F21784D56d54d524Ee434464a9120
?j=8Fr:to:USDT(ERC20):0xC68F11d7c02830480a8129a16171436d5A55192e
6j4G1X:to:USDT(TRON):TRacxnQU39UHUyBv13fuDaPUfYNqbAKZbV
OjLL0xac3eba8a1ac4bca9c99bf25cc8a51fd081da4561b0f3cc062db51e6d03e1f53e=|lifi
7j5from:300USDT(TRON):TKUFS5FLHP8bZbo99V48dGXHomBGpJae3Q
OjLL0xfed7f1c0ab156ff5aa73acbef85c9f7adb97846223cb4cc689328217b0d2ae68=|lifi,
OjLL0x38277c9de415b299a231ca67421cceeb2fe9b2e5458d305379ece64142d01d76=|lifi
DjB0x1b12394a435bbc46c47013e4d42d3ba5717cca71f535a4868db14ef2b4bf435c
DjB0xa5ab481e00f89d0f09a036c0a1827c95e6888fe96f4a98a220067ff8706a2058
DjB0xa8058bc6ba30ef52cbca03c2c39b16b97b4e116611c9ca8214727d9f70d3ea3f
DjB0x9599b0bb24595955e40bf79a62dfaf27d4f519ea71afb7daf2ba70f9b34aeafc
DjB0x90999fc7641c79992d2710a9893eaf6bcce8b7c06e15f741661cde852b14a95f
DjB0x5b10d1085f956d99949f43aed138894f1fb8ab06e5eb1346600ac5c69b19b949
DjB0x520312b935c8626e2e609211a28cbc38e317815605dabb614f8217b5379bf17c
DjB0x97e12b437ea2636cf80ec6005098256b81cffae0a5f0bc257656c6d277bca722
2j0to:USDT(TRON):TA3QwWuCB21kzjPTUu7cDoNHkYr36yu1F50*
OjLL0x5311554fef20741f89f693f026350a850ffacac2807d02bbd751bfdd87de1a17=|lifi
DjB0x189b585429e59831e672294d22df70017078f0d0941aafb918b161e32b3bec00
DjB0x256c92b80d82f64c24d2f617e6d419910fb75542e788203269b7d88c627f86bf
DjB0x1c401ed1ccae576f1cefc639cb13e6ee85b49b98d53d783883fa9390861d791a
DjB0x40dd44ef51d47e0323ebfb408b08afa2626e89d4ccb3f939318b266e1078d025
DjB0x21beef7876e2cad72a7f07ffc4b2c90ef2f8bb7012ee6440d33a2f3090e605c2
DjB0x0e1587407e6e0f447adad41728850637fe17c6ad095d39e8106f0104ae7b3b94
DjB0xd3e4125102e1acd4f01e36afa09812f096fbfa9a3367b8a0f648304ed7e81098
DjB0x1a0010e37c226874060daf38a581d21a9d207e94a208224eb2128bd2b34cc19d
DjB0x137c79adbbf6c4f4e1969bc1674014ae3ebc8210d26c119670fba5de33a118f6
DjB0x2bd60738fe3381235e37056ac63a8b88d2577af9063f3be0f29586abee91e6e0
6j4uQq:to:USDT(TRON):TZHtJbSExjgPaYJubapzhCXK2P9NJbVjG8
text/plain;charset=utf-8
?j=9b9:to:USDC(LINEA):0xd4e831e045321E3c4A3bb0FC5d05448dc28FaAb0."
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"180658"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"40000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"1900"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
DjB0xae32fcbf8311eb0c4eecf21f905a90b5edb8766844f2da223367a76f973f155b
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"2680"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3600000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3500000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"10000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"301"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"12000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"22000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"13000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"6200000000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"8000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"378"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"5000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"10000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"45000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"12000000000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"X@AGI","amt":"5000000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3100000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3100000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"30000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"1500"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"30000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Ally ","amt":"300"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3200000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3200000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"40000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"67000"}h!
DjB0x59d0a81a8ef6143bea7c366b1fd548e228bda476f1b96c9fdc1d6a832859b858
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"1500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"1800"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"200"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"2500"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"100"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"10000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"200"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ZAHY","amt":"2000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"68000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"17000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"190"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"100"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"9000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"8000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Ally ","amt":"500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"13000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"20"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"34000000000"}h!
if (w.__BOVINE_RACE__) return;
w.__BOVINE_RACE__ = true;
const COW = "beef152c1096a662c64fa8d25ff61f5224f18a93c6235f6192d1d3cc85e0e94ci0";
const GATE_MS = 20000;
w.BOVINE_RACE = race;
function $(id) { return document.getElementById(id); }
const a = w.BOVINE_INNER || 1120, b = w.BOVINE_OUTER || 1680;
const s = $("status");
if (s) s.textContent = t;
const g = $("bovineGateLine");
if (g) g.textContent = t;
if (typeof w.broadcastClub === "function") {
try { w.broadcastClub(msg); } catch (e) {}
if (w.isHost || w.isHostWithKenobi) return true;
if (w.clubHostId && w.myPlayerID && w.clubHostId === w.myPlayerID) return true;
if (w.multiplayerMode === false || w.multiplayerMode == null) return true;
const rem = w.remotePlayers;
const n = rem && typeof rem.size === M
"number" ? rem.size : (rem ? Object.keys(rem).length : 0);
function applyHeat(ids) {
if (!ids || !ids.length) return;
roster().forEach(r => { byId[r.id] = r; });
const heat = ids.map(id => byId[id]).filter(Boolean);
if (heat.length) race.heat = heat;
if (w.paintBovineCard) w.paintBovineCard();
if (w.BOVINE_BOOK && w.BOVINE_BOOK.refreshField) w.BOVINE_BOOK.refreshField();
function snapshot() {
type: "bovineState",
heat: (race.heat || []).map(r => r.id),
kHeight: race.lockHeight,
winner: race.winner && race.winner.id,
startedAt: race.startedAt
function syncHostUi() {
const host = amHost();
const live = race.phase === "betting" || race.phase === "gate" || race.phase === "running";
["bovineFieldBtn","bovineBetsBtn","bovinePostBtn","bovinePostBtnHud","bovineEntryWrap"].forEach(id => {
if (!host) { el.style.display = "none"; return; }
if (id === "bovineFieldBtn" && live) { el.style.display = "none"; return; }
const dockPost = $("bovinePostBtn");
if (dockPost && dockPost.closest && dockPost.closest("#clubDock")) {
dockPost.style.display = host ? "" : "none";
const ctx = new (w.AudioContext || w.webkitAudioContext)();
const now = ctx.currentTime;
[0, 0.22, 0.44].forEach((off, i) => {
const o = ctx.createOscillator();
const g = ctx.createGain();
o.frequency.value = i === 2 ? 660 : 880;
g.gain.setValueAtTime(0.0001, now + off);
g.gain.exponentialRampToValuM
eAtTime(0.18, now + off + 0.02);
g.gain.exponentialRampToValueAtTime(0.0001, now + off + 0.35);
o.connect(g); g.connect(ctx.destination);
o.start(now + off); o.stop(now + off + 0.4);
function injectUi() {
if ($("bovineRaceHud")) return;
const hud = document.createElement("div");
hud.id = "bovineRaceHud";
'<div id="bovineGateLine">paddock</div>',
'<button id="bovineFieldBtn" type="button">NEW FIELD</button>',
'<label id="bovineEntryWrap" style="display:flex;align-items:center;gM
ap:6px;font:700 11px Palatino,serif;letter-spacing:.08em">ENTRY <input id="bovineEntryAmt" type="number" min="1" step="1" value="250" style="width:72px;padding:4px 6px;background:#111;color:#f3ead6;border:1px solid #d4b46a"/></label>',
'<button id="bovineBetsBtn" type="button">OPEN BOOK</button>',
'<button id="bovinePostBtnHud" type="button">POST</button>'
Object.assign(hud.style, {
position: "fixed", top: "10px", left: "50%", transform: "translateX(-50%)",
zIndex: 6000, display: "flex", gap: "8px", aliM
flexWrap: "wrap", justifyContent: "center",
fontFamily: "Palatino,serif", color: "#f3ead6",
background: "rgba(10,10,12,.82)", border: "1px solid rgba(196,165,116,.4)",
padding: "8px 12px", pointerEvents: "auto"
document.body.appendChild(hud);
const dock = $("clubDockBody");
if (dock && !$("bovineDockControls")) {
const box = document.createElement("div");
box.id = "bovineDockControls";
box.className = "panel";
box.innerHTML = "<h3>PADDOCK</h3><div id=\"bovineDockNote\" styleM
=\"font-size:11px;margin-bottom:6px\">Host controls</div>";
dock.insertBefore(box, dock.firstChild);
const chat = document.createElement("div");
chat.id = "bovineChat";
'<div style="font-size:10px;letter-spacing:.16em;margin-bottom:4px">RAIL CHAT</div>',
'<div id="bovineChatLog"></div>',
'<form id="bovineChatForm"><input id="bovineChatIn" maxlength="160" placeholder="enter to send"/></form>'
document.body.appendChild(chat);
const css = document.createElement("style");
"#bovineChat{position:fixed;right:16px;bottom:132px;width:168px;z-index:441;background:rgba(10,10,12,.82);border:1px solid rgba(196,165,116,.35);padding:8px;color:#efe6d6;font:12px Palatino,serif}",
"#bovineChatLog{height:72px;overflow:auto;margin-bottom:6px;opacity:.9}",
"#bovineChatForm{display:block}",
"#bovineChatIn{width:100%;box-sizing:border-box;background:#111;color:#efe6d6;border:1px solid rgba(196,165,116,.35);padding:6px;font-size:16px}",
"#bovineBetsBtn,#bovineFieldBtn,#bovinePostBtn{background:#dM
4b46a;color:#111;border:0;padding:6px 10px;font:700 12px Palatino,serif;cursor:pointer}",
"#bovineGateLine{letter-spacing:.14em;font-size:13px;text-transform:uppercase}"
document.head.appendChild(css);
const rules = $("rulesOverlay");
const ul = rules.querySelector("ul");
const p = rules.querySelector("p");
const close = rules.querySelector(".close-btn");
if (ul) ul.innerHTML = [
ointer / menu</li>",
 allow the browser prompt. Floor is open. No host permission. Voices + Track sliders sit in MIX.</li>",
"<li>Mobile: left pad walk, J jump, drag right to turn. Tap menu or chat to type, tap mid-screen to walk again.</li>",
"<li>Stay off the dirt. Inner and outer gold rings are the rails. TO THE DOME / TO THE OUTER RAIL teleport you.</li>",
"<li>HOST: NEW FIELD draws 8
12 cows from the card. PLACE YOUR BETS opens the book. POST locks the heat, rings the bell, 20 seconds, then they M
"<li>PLAYERS: pick a racer, stake at least 1 rune less than your max so the ordinal stays on the sat, WRITE TICKET. Tell the host when you are in.</li>",
"<li>They run until the next Bitcoin block after POST. Photo is the block hash. Score is 45% speed, 25% grit, 20% burst, 10% gate, mixed with that hash. Highest score wins.</li>",
"<li>House takes 4% of the pool, rounded up, to the dump address. Rest of the pool to tickets on the winner. Book rebuilds after photo.</li>"
if (p) p.innerHTML =M
 "<strong>BOVINE RACING CLUB:</strong> House-owned stable. You are the railbirds. Walk the salon, watch the jumbotron chase or stand at the rail. Winner is the hash, not the host.";
if (close) close.textContent = "BACK TO THE PADDOCK";
$("bovineBetsBtn").addEventListener("click", placeYourBets);
$("bovineFieldBtn").addEventListener("click", () => newField(true));
const postHud = $("bovinePostBtnHud");
if (postHud) postHud.addEventListener("click", () => { if (w.lockBovinePost) w.lockBovinePost(); });
ost = document.createElement("style");
stylePost.textContent = "#bovinePostBtnHud{background:#d4b46a;color:#111;border:0;padding:6px 10px;font:700 12px Palatino,serif;cursor:pointer}";
document.head.appendChild(stylePost);
setInterval(syncHostUi, 400);
document.addEventListener("touchstart", function (ev) {
const el = ev.target;
const typeHere = el && el.closest && el.closest("#bovineChat,#clubDock,#clubMixer,input,textarea,select");
const stick = el && el.closest && el.closest("#movePad,#jumpBtn,#camM
eraCycleBtn,#pauseBtn");
if (typeof w.setClubUiMode === "function") w.setClubUiMode(true);
w.controlsEnabled = false;
const field = (el.closest && el.closest("input,textarea")) || $("bovineChatIn");
if (field && field.focus) setTimeout(function () { field.focus(); }, 0);
if (typeof w.blurGameInputs === "function") w.blurGameInputs();
else if (document.activeElement && document.activeElement.blur) document.activeElement.blur();
if (typeof w.setClubUiMode === "function") wM
.setClubUiMode(false);
w.controlsEnabled = true;
$("bovineChatForm").addEventListener("submit", e => {
const inp = $("bovineChatIn");
const text = (inp.value || "").trim();
pushChat("you", text);
net({ type: "bovineChat", text });
function pushChat(who, text) {
const log = $("bovineChatLog");
const line = document.createElement("div");
line.textContent = who + ": " + text;
log.appendChild(line);
log.scrollTop = log.scrollHeightM
return ((w.BOVINE_ROSTER && w.BOVINE_ROSTER.racers) || []).filter(r => !r.retired);
function heatSize() {
try { if (w.remotePlayers && w.remotePlayers.size) n += w.remotePlayers.size; } catch (e) {}
return n >= 6 ? 12 : 8;
function drawHeat() {
const all = roster();
if (!all.length) return [];
const n = Math.min(heatSize(), all.length);
const pool = all.slice();
while (heat.length < n && pool.length) {
heat.push(pool.splice(Math.floor(Math.random() * pool.lengM
if (w.paintBovineCard) w.paintBovineCard();
if (w.BOVINE_BOOK && w.BOVINE_BOOK.refreshField) w.BOVINE_BOOK.refreshField();
function clearCows() {
race.runners.forEach(run => {
try { if (run.mixer && run.mixer.stopAllAction) run.mixer.stopAllAction(); } catch (e) {}
if (!run.root) return;
run.root.traverse(function (o) {
if (o.geometry && o.geometry.dispose) o.geometry.dispose();
const mats = o.material ? (Array.isArray(o.material) ? o.materiaM
l : [o.material]) : [];
mats.forEach(function (m) {
["map", "normalMap", "roughnessMap", "metalnessMap", "emissiveMap"].forEach(function (k) {
if (m[k] && m[k].dispose && m[k] !== (race.chase && race.chase.rt && race.chase.rt.texture)) {
try { m[k].dispose(); } catch (e) {}
if (m.dispose) try { m.dispose(); } catch (e) {}
if (run.root.parent) run.root.parent.remove(run.root);
function newField(announce) {
if (!amHost()) return;
 "betting" || race.phase === "running" || race.phase === "gate") return;
if (w.BOVINE_LOCK) w.BOVINE_LOCK.locked = false;
race.phase = "idle";
race.wanderOn = false;
race.fieldAt = Date.now();
race.lockHeight = null;
if (w.BOVINE_BOOK) {
w.BOVINE_BOOK.open = false;
w.BOVINE_BOOK.tickets = [];
say("NEW FIELD on the card
 host can open the book");
if (announce) net({ type: "bovineNewField", heat: raM
ce.heat.map(r => r.id) });
function placeYourBets() {
if (!amHost()) return;
if (race.phase !== "idle" && race.phase !== "betting") return;
race.phase = "betting";
if (!race.heat.length) drawHeat();
const entryEl = $("bovineEntryAmt");
const entry = Math.max(1, Math.floor(Number(entryEl && entryEl.value || race.entry || 250)));
if (w.BOVINE_BOOK) {
w.BOVINE_BOOK.open = true;
w.BOVINE_BOOK.entry = entry;
 entry " + entry + "
 2 minutes to sign");
net({ type: "bovineBetsOpenM
", heat: race.heat.map(r => r.id), entry: entry });
clearInterval(w._bovineBookClock);
w._bovineBookClock = setInterval(function () {
if (race.phase !== "betting") {
clearInterval(w._bovineBookClock);
 entry " + entry + "
 " + left + "s to sign");
net({ type: "bovineBookTick", left: left, entry: entry });
clearInterval(w._bovineBookClock);
if (w.lockBovinePost) w.lockBovinePost();
const prevLock = w.lockBovinePosM
w.lockBovinePost = async function () {
if (!amHost()) return;
if (race.phase === "running" || race.phase === "photo") return;
if (prevLock) await prevLock();
race.phase = "gate";
if (w.BOVINE_BOOK) w.BOVINE_BOOK.open = false;
try { h = await (await fetch("/r/blockheight")).json(); } catch (e) {}
race.lockHeight = h;
if (w.BOVINE_LOCK) w.BOVINE_LOCK.height = h;
net({ type: "bovinePost", height: h, heat: race.heat.map(r => r.id) });
setTimeout(() => startRunning(), GATE_MS);
async function startRunning() {
if (race.phase !== "gate" && race.phase !== "betting") {
if (race.phase === "idle") return;
race.phase = "running";
race.startedAt = Date.now();
 photo on the next block");
if (!race.runners.length) await mountCows(false);
race.runners.forEach(run => { run.running = true; run.wander = false; playGait(run, "run"); });
say("THEY'RE RUNNING
 " + race.runners.length + " on the rail
race.lastError = String(err && err.message || err);
 " + race.lastError);
if (amHost()) net(snapshot());
function armChase() {
const THREE = w.THREE;
if (!race.chase || !race.chase.rt || !race.chase.cam) {
const cam = new THREE.PerspectiveCamera(42, 16 / 9, 0.5, 8000);
const rt = new THREE.WebGLRenderTarget(1024, 576);
if (rt.texture && THREE.SRGBColorSpace) rt.texture.colorSpace = THREE.SRGBColorSpace;
const mesh = w.stageScreenMesh;
mesh.material = new THREE.MeshBasicMaterial({
map: race.chase.rt.texture,
function chaseFrame() {
if (race.phase !== "running" || !race.chase || !w.renderer || !w.scene) return;
const pack = race.runners.filter(r => r.root);
if (!pack.length) return;
const lead = pack.reduce((a, b) => (a.theta >= b.theta ? a : b));
const back = lead.theta - 0.28;
const cam = race.chase.cam;
oot.position.y || 6) + 110;
cam.position.set(Math.cos(back) * (R + 36), hy, Math.sin(back) * (R + 36));
const look = lead.root.position.clone();
const mesh = w.stageScreenMesh;
if (mesh) mesh.visible = false;
const rend = w.renderer;
const prev = rend.getRenderTarget && rend.getRenderTarget();
rend.setRenderTarget(race.chase.rt);
rend.render(w.scene, cam);
rend.setRenderTarget(prev || null);
if (mesh) mesh.visible = true;
function score(racer, hex) {
0; i < 8 && i * 2 + 1 < hex.length; i++) {
bytes.push(parseInt(hex.slice(i * 2, i * 2 + 2), 16) / 255);
const rnd = bytes[racer.id % 8] || 0.5;
const burst = bytes[(racer.id + 3) % 8] || 0.5;
const gate = bytes[(racer.id + 5) % 8] || 0.5;
return 0.45 * racer.speed + 0.25 * racer.grit * (1 - rnd) + 0.20 * racer.burst * burst + 0.10 * racer.gate * gate;
async function pollPhoto() {
const tick = async () => {
if (race.phase !== "running") return;
const h = await (await fetch("/r/blockheight")).json();
ce.lockHeight != null && h > race.lockHeight) {
const hash = await (await fetch("/r/blockhash/" + h)).json();
finish(String(hash), h);
 waiting on block after " + race.lockHeight);
setTimeout(tick, 2500);
function finish(hash, height) {
race.phase = "photo";
let best = null, bestS = -1;
race.heat.forEach(r => {
const s = score(r, hash);
if (s > bestS) { bestS = s; best = r; }
race.runners.forEach(run => { ruM
n.running = false; });
 WIN #" + (best && best.id) + " " + (best && best.name) + "
 host holds the board");
const ranked = race.heat.slice().sort((a, b) => (b._score || 0) - (a._score || 0));
win: ranked[0] || best,
place: ranked[1] || null,
show: ranked[2] || null
net({ type: "bovinePhoto", hash: hash, height: height, winner: best && best.id, board: race.board });
if (w.paintBovineCard) w.paintBovineCard();
function trackY(x, z) {
if (typeof w.getTerrainHeight === "function") return w.getTerrainHeight(x, z) + 4;
async function makeLoader() {
if (typeof w.makeGltfLoader === "function") {
const got = w.makeGltfLoader();
return (got && typeof got.then === "function") ? await got : got;
if (!w.GLTFLoader) return null;
const loader = new w.GLTFLoader();
if (w.DRACOLoader) {
const WRAP = "1c59d4d184bfaadf33e641456d540dba14edc8d383d84634a418d75f149e1683i1";
const WASM = "1c59d4d184bfaadf33e641456d540dba14edc8d383dM
84634a418d75f149e1683i2";
const draco = new w.DRACOLoader();
draco._initDecoder = function () {
if (this.decoderPending) return this.decoderPending;
this.decoderPending = Promise.all([
fetch("/content/" + WRAP).then(function (r) { return r.text(); }),
fetch("/content/" + WASM).then(function (r) { return r.arrayBuffer(); })
]).then(function (parts) {
const factory = new Function(parts[0] + "\nreturn DracoDecoderModule;")();
return new Promise(function (res, rej) {
const mod = factory({
onModuleLoaded: function (m) { self._draco = m; res(m); }
if (mod && mod.then) mod.then(function (m) { if (!self._draco) { self._draco = m; res(m); } }).catch(rej);
return this.decoderPending;
loader.setDRACOLoader(draco);
function colorFor(i) {
const hues = [0xc45c26, 0x2c5aa0, 0x2f6b3a, 0x7a2f2f, 0xc9a227, 0x5a3d7a, 0xd4b46a, 0x1f1f1f, 0xb85c38, 0x4a7c59, 0x8b4513, 0x3d3d3d];
return hues[i % hues.length];
function fallbackCows() {
const THREE = w.THREEM
if (!THREE || !w.scene) return;
const heat = race.heat.length ? race.heat : drawHeat();
heat.forEach((racer, i) => {
const g = new THREE.Group();
const body = new THREE.Mesh(
new THREE.BoxGeometry(16, 9, 7),
new THREE.MeshStandardMaterial({ color: colorFor(i), roughness: 0.7 })
body.position.y = 8;
const head = new THREE.Mesh(
new THREE.BoxGeometry(6, 6, 6),
new THREE.MeshStandardMaterial({ color: colorFor(i) })
head.position.set(10, 10, 0);
g.add(body); g.add(head);
e = startPose(i, heat.length);
const theta = pose.theta, rad = pose.r;
const x = Math.cos(theta) * rad, z = Math.sin(theta) * rad;
g.position.set(x, trackY(x, z), z);
g.rotation.y = -theta + Math.PI / 2;
race.runners.push({ root: g, mixer: null, theta: theta, home: theta, radius: rad, racer: racer, running: false, wander: false, lastMoo: 0 });
function skinCow(root, texId) {
const THREE = w.THREE;
if (!THREE || !texId || !root) return;
const id = String(texId).split("/content/").pop();
[0-9a-f]{64}i[0-9]+$/i.test(id)) return;
const tex = new THREE.TextureLoader().load("/content/" + id, function (t) {
if (THREE.SRGBColorSpace) t.colorSpace = THREE.SRGBColorSpace;
t.needsUpdate = true;
root.traverse(function (o) {
if (!o.isMesh || !o.material) return;
const mats = Array.isArray(o.material) ? o.material : [o.material];
mats.forEach(function (m) {
if (m.color) m.color.setHex(0xffffff);
m.needsUpdate = true;
if (THREE.SRGBColorSpace) tex.colorSpace = THREE.SRGBCoM
function startPose(i, n) {
const cols = Math.min(4, Math.max(1, n));
const row = Math.floor(i / cols);
const col = i % cols;
const rows = Math.ceil(n / cols);
const inner = w.BOVINE_INNER || 1120;
const outer = w.BOVINE_OUTER || 1680;
const r = inner + 90 + ((row + 0.5) / Math.max(1, rows)) * (outer - inner) * 0.7;
const theta = -Math.PI / 2 + (col - (cols - 1) / 2) * 0.22;
return { theta: theta, r: r };
function startTheta(i, n) { return startPose(i, n).theta; }
function showPaddockM
race.fieldAt = Date.now();
mountCows().catch(function () { fallbackCows(); });
if (w.paintBovineCard) w.paintBovineCard();
async function mountCows() {
if (!w.THREE || !w.scene) throw new Error("no scene");
const THREE = w.THREE;
const loader = await makeLoader();
if (!loader || !loader.load) {
const heat = race.heat.length ? race.heat : drawHeat();
for (let i = 0; i < heat.length; i++) {
const racer = heat[i];
gltf = await new Promise(M
loader.load("/content/" + COW, res, undefined, rej);
race.lastError = String(e && e.message || e);
const root = gltf.scene;
root.traverse(function (o) {
if (!o.isMesh || !o.material) return;
const mats = Array.isArray(o.material) ? o.material : [o.material];
o.material = mats.map(function (m) {
const copy = m.clone ? m.clone() : m;
if (copy && "format" in copy) try { delete copy.format; } catch (e) {}
copy.color && copy.color.setHex(0xffffff);
copy.roughness = 0.72;
copy.side = THREE.DoubleSide;
copy.needsUpdate = true;
if (o.material.length === 1) o.material = o.material[0];
skinCow(root, racer && racer.texture);
root.scale.set(19.8, 19.8, 19.8);
const pose = startPose(i, heat.length);
const theta = pose.theta, rad = pose.r;
const x = Math.cos(theta) * rad, z = Math.sin(theta) * rad;
root.position.set(x, trackY(x, z), z);
root.rotation.y = -theta + Math.PI / 2;
root.visible = true;
const mixer = new THRM
EE.AnimationMixer(root);
const clips = gltf.animations || [];
const c = clips.find(a => re.test(a.name));
return c ? mixer.clipAction(c) : null;
const idle = act(/idle|stand/i);
const walk = act(/walk/i);
const runA = act(/gallop|run/i) || walk || idle || (clips[0] ? mixer.clipAction(clips[0]) : null);
if (idle) idle.play();
else if (walk) walk.play();
else if (runA) runA.play();
race.runners.push({ root: root, mixer: mixer, idle: idle, walk: walk, runA: runA, theta: theta, home: theta, radius:M
 rad, racer: racer, running: false, wander: false, lastMoo: 0, facing: theta });
if (!race.runners.length) fallbackCows();
function playMoo() {
const ctx = new (w.AudioContext || w.webkitAudioContext)();
const now = ctx.currentTime;
const o = ctx.createOscillator();
const o2 = ctx.createOscillator();
const g = ctx.createGain();
o.type = "sawtooth";
o.frequency.setValueAtTime(170, now);
o.frequency.exponentialRampToValueAtTime(72, now + 0.55);
o2.frequency.setValueAtTime(85, now);
uency.exponentialRampToValueAtTime(48, now + 0.55);
g.gain.setValueAtTime(0.0001, now);
g.gain.exponentialRampToValueAtTime(0.42, now + 0.04);
g.gain.exponentialRampToValueAtTime(0.0001, now + 0.7);
o.connect(g); o2.connect(g); g.connect(ctx.destination);
o.start(now); o2.start(now);
o.stop(now + 0.72); o2.stop(now + 0.72);
function playGait(run, name) {
const next = name === "run" ? (run.runA || run.walk || run.idle)
: name === "walk" ? (run.walk || run.idle || run.runA)
: (run.idle || run.walk ||M
[run.idle, run.walk, run.runA].forEach(function (a) {
if (a && a !== next) a.stop();
if (!next.isRunning || !next.isRunning()) next.reset().play();
function clampToDirt(run) {
const inner = (w.BOVINE_INNER || 1120) + 36;
const outer = (w.BOVINE_OUTER || 1680) - 36;
const x = run.root.position.x, z = run.root.position.z;
let rad = Math.sqrt(x * x + z * z) || inner;
if (rad < inner) rad = inner;
if (rad > outer) rad = outer;
const th = Math.atan2(z, x);
run.root.position.set(Math.cos(th) * rad, trackY(Math.cos(th) * rad, Math.sin(th) * rad), Math.sin(th) * rad);
function separateCows() {
const pack = race.runners.filter(r => r.root);
for (let i = 0; i < pack.length; i++) {
for (let j = i + 1; j < pack.length; j++) {
const a = pack[i], b = pack[j];
const dx = a.root.position.x - b.root.position.x;
const dz = a.root.position.z - b.root.position.z;
const d = Math.sqrt(dx * dx + dz * dz) || 0.001;
const push = (min - d) * 0.62;
const nx = dx / d, nz = dz / d;
a.root.position.x += nx * push;
a.root.position.z += nz * push;
b.root.position.x -= nx * push;
b.root.position.z -= nz * push;
pack.forEach(clampToDirt);
function ballsHitCows() {
const balls = w.projectiles;
if (!balls || !balls.length) return;
const now = Date.now();
balls.forEach(function (ball) {
if (!ball || !ball.mesh) return;
const p = ball.mesh.position;
race.runners.forEach(function (run) {
if (!run.root) return;
const dx = run.root.position.x - p.x;
.root.position.y || 0) - p.y;
const dz = run.root.position.z - p.z;
if (dx * dx + dy * dy + dz * dz < 22 * 22) {
if (now - (run.lastMoo || 0) > 700) {
w.bovineTick = function (dt) {
if (race.fieldAt && !race.wanderOn && race.phase !== "running" && race.phase !== "photo") {
if (Date.now() - race.fieldAt > 90000) {
race.wanderOn = true;
race.runners.forEach(run => { run.wander = true; });
 field is wandering
 host can still open the book")M
race.runners.forEach(run => {
if (run.mixer) run.mixer.update(dt);
const rad = run.radius || R;
if (run.running && race.phase === "running") {
playGait(run, "run");
const v = (0.18 + (run.racer.speed || 50) / 400) * 0.4;
run.theta += v * dt;
run.facing = run.theta;
const x = Math.cos(run.theta) * rad, z = Math.sin(run.theta) * rad;
run.root.position.set(x, trackY(x, z), z);
run.root.rotation.y = -run.theta + Math.PI / 2;
} else if (run.wander && race.phase !== "running") {
playGait(run, "walk");
 (run.heading != null ? run.heading : run.theta) + Math.sin((Date.now() / 1400) + (run.racer.id || 1)) * dt * 0.35;
const step = 18 * dt * 0.3;
run.root.position.x += Math.cos(run.heading) * step;
run.root.position.z += Math.sin(run.heading) * step;
run.facing = run.heading;
run.root.rotation.y = -run.heading + Math.PI / 2;
} else if (run.root) {
playGait(run, "idle");
const prevNet = w.handleClubNet;
w.handleClubNet = function (msg, from) {
f (!msg || !msg.type) {
if (typeof prevNet === "function") return prevNet(msg, from);
if (msg.type.indexOf("bovine") === 0) {
if (msg.type === "bovineChat") pushChat(from || "rail", msg.text);
if (msg.type === "bovineNewField") {
race.phase = "idle";
if (msg.heat) applyHeat(msg.heat);
else if (amHost()) drawHeat();
say("NEW FIELD on the card
 cows at the start");
if (msg.type === "bovineBetsOpen") {
race.phase = "betting";
if (msg.heat) applyHeat(msg.heat);
if (msg.entry) race.entry = NM
if (w.BOVINE_BOOK) {
w.BOVINE_BOOK.open = true;
if (msg.entry) w.BOVINE_BOOK.entry = Number(msg.entry);
 entry " + (msg.entry || race.entry) + "
 2 minutes to sign");
if (msg.type === "bovineBookTick") {
 entry " + (msg.entry || race.entry) + "
 " + msg.left + "s to sign");
if (msg.type === "bovinePost") {
if (msg.heat) applyHeat(msg.heat);
race.phase = "gate";
race.lockHeight = msg.height;
if (w.BOVINE_BOOK) w.BOVINE_BOOK.open = false;
setTimeout(() => startRunning(), GATE_MS);
if (msg.type === "bovineState") {
if (msg.heat) applyHeat(msg.heat);
if (msg.lockHeight != null) race.lockHeight = msg.lockHeight;
if (msg.hash) race.hash = msg.hash;
if (msg.phase === "running" && race.phase !== "running" && race.phase !== "photo") {
race.phase = "gate";
if (msg.phase === "photo" && race.phase === "running") {
finish(String(msg.hash || race.hash), msg.lockHeight);
if (msg.type === "bovinePhoto") {
ace.board = msg.board;
if (race.phase === "running") finish(String(msg.hash), msg.height);
else if (w.paintBovineCard) w.paintBovineCard();
if (amHost() && msg.type !== "bovineState") net(snapshot());
if (typeof prevNet === "function") prevNet(msg, from);
if (typeof prevNet === "function") return prevNet(msg, from);
if (!race.heat.length && w.BOVINE_ROSTER) drawHeat();
if (race.heat.length) showPaddock();
say(amHost() ? "HOST
 draw a field, set entry, open the booL
k when the rail is ready" : "Wait for the host
 field will line up at the picture");
if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", boot);
SODA #8293 - Drawn May 23, 2026
dnamejSODA #8293edrawnlMay 23, 2026dseedjstretch 33hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
HjFark:00e77aca85f052d4c8006632d224d15abb02741405ec4be7cf9c0552a16fd0c1i0:
LjJ=:ETH.DAI:0xcbe1864B17187c3143B1CEfC22866C074Faa67c5:54609059913/0/3:sto:0
6j48Mn:to:USDT(TRON):TNipcLCELCKQCH2zEVaZ2L1mTREZLiyjhX
6j4Hbw:to:USDT(TRON):TWqBAGcngapKMbyxe66iTQPqtG8F18X2mQ
6j4mUZ:to:USDT(TRON):TCHFpb88tFp41ndYjgiZKZzVdC4v4Qggtw
?j=from:100USDC(BASE):0xB9c4F362676c2E3D95Cc273f1fD7eEd2eC0f9d37
6j4ogd:to:USDT(TRON):TSsDMqvnB42ESrcg9sWv34WCpRJ1NCDu3f
6j4k5E:to:USDT(TRON):TRacxnQU39UHUyBv13fuDaPUfYNqbAKZbV
FjDOUT:1AE579E45515BA8C0EC2BE8F5B7BABC9F04D3EDAA8B9256F24B6D0C9ACF83563
B0b52c79269348812a3fed69e11d8f95edee78e5cd15504444b813ec6717d030b:0a
6j45yV:to:USDT(TRON):TPHj3WmxsrnAAtfPRWaCE8rv2mpTDxmrwK
/j-xMR:to:TRX:TWAdLnTxEAgGE2d9gJF1LF5d4wTvqoA7zc
?j=PFg:to:USDT(ERC20):0xF505B37cD33938F06DEcb926A08fe5F88465E5eD
6j4rTu:to:USDT(TRON):TFKNyvQYJqXrRS5JmfJ9R5RKrHgSe8snTt
6j4URt:to:USDT(TRON):TQuUCw6muVaDartTAGdJYySQbJtMPRKF6D
6j4Iir:to:USDT(TRON):TRuH1MqCsbAwSPfWHLTc4VCwqRt6njMvzT
6j46T0:to:USDT(TRON):TBJVWUBFP3SAr7XbxftdoqDJdME4VrnWYyz9
6j4Et5:to:USDT(TRON):TFKNyvQYJqXrRS5JmfJ9R5RKrHgSe8snTt
6j4IGS:to:USDT(TRON):TEJnmPmw814zKfFotr5dWqg98MarDkGQZx
6j4T2B:to:USDT(TRON):TEAaxm69sCA9HiFQ53ocVRFRsyesokDwxe
6j4DPh:to:USDT(TRON):TJwvf1L7rhR3UrsXsJNYqaNGjwbq3Y7Mue
=j;pUd:to:USDT(BSC):0xfE363cDF24C0514Bf4d5ccb108dBca83c0398E1A
<j:uD3:to:ZEC(BSC):0x856d66126204cfE9769a8559aa00F67efAf34DdC
6j4MOA:to:USDT(TRON):TLetzqmGQNTDyXxkxpTgyDuB2T65eF9reh
=j;4bL:to:USDT(BSC):0xBbcAA9dD8329192b9442A3AC7FD67ABE0404Ac60
=j;s8x:to:USDT(BSC):0x980B70d9fF5D305143E5e96AcF22e02681999Fc5
OjLL0x68afdf1052fd4dd900c9a53a8552e0ec6c7b8f28c8cbb98b16673a5f77c5cca9=|lifi
DjB0xe813d4c36c12e5e1e48668e4c4c2263bc692e7e5f30097d3278dfc5843048849
2j0to:USDT(TRON):TRz1VEijpKDht2u5NWRjHTQ34ZbiwrYUSL21
DjB0x3709735a3367f28bbb6d3de39cc81f0fd627bc576d2e24a3c5dab1fe1f931459
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"8200"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"30000"}h!
OjLL0x85cd78c61cd98e63ae76234d116de9cac4be61f248835a337cbbc8bfea3d3970=|lifi|
OjLL0x6933dbd97693e58bdf16eac8ed265711db8bd953c76cefb5f421181f9601578a=|lifiO>
OjLL0x2f90909b2170a5756258d0511533787d7cf76134047df880ee58b27d2927632c=|lifi
DjB0xade8698c229ba1d6064acca0d8565fc9e7a99bd8652068dcde776bce7085c4d2
OjLL0x51a7c9259c52c91fe5ad4480629a091c02bf360870b3a656c66ff028f59a34c5=|lifi
DjB0x10a3b813f70c9baa5391337b7a954bbdfc40c1c8656de341b0fe68e8c77fb44f
DjB0x1c7c9f48310a31c9ea4680d101bc7646cd2175a7abee76f2bd776542c390af97
DjB0xb054394ffddbf23c58bb805c7d2f2170fc32d5623c619b2b9fcd0c98253ae851
DjB0xb699b08a034540658124fc536c187d14b1c224efef70c388011ed4f516ab9595
DjB0x71718d7269418acbb99c7f372057c58895f5714b17ad5f275de359cce633bdb9
6j4O5D:to:USDT(TRON):TZHtJbSExjgPaYJubapzhCXK2P9NJbVjG8
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"17000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"24000"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":" UBI","amt":"100000000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"9000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"18000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"648"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"16000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"10"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5100000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5100000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"567"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"AMT  ","amt":"80"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"30000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"TRUM","amt":"2288"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"34000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"26000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Dl
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"14000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"10000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"55000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5100000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"25000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"10000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"24000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"22000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"25555555554"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"12000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"491"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Dl
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"89000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"26000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"35000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4800000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"30000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"X@AGI","amt":"5000000000000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTC.z","amt":"80"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"14000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4800000000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"core","amt":"25000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"10000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3999999999"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":" UBI","amt":"150000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"11000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"15000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"20000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"16000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"74"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"23000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"DIOR","amt":"5000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"78000"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"66000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"11000000000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"16000"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"13000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"100"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"98000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5100000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"635"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"14000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"552"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"15"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"30000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BAAI","amt":"14"}h!
SODA #8294 - Drawn May 23, 2026
dnamejSODA #8294edrawnlMay 23, 2026dseedjstretch 34hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
text/plain;charset=utf-8
J{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1387.3000000000000000"}h!
;j9to:USDT(ERC20):0x88f29dA9f5F5D02267BF74a53088be5420D8aa79
;j9to:USDT(SOL):4DHFQqc3Vhb5TLY664VxKSNWn7cA1J9SWixsazu4v7Un
6j4QaP:to:USDT(TRON):TFspTg23Ny1S9ZKCqEoH52mfTSKyH5yCtCS
:j8=:e:0xA8f86eb7284c68fCF92E7d91E6940441ca694122:119693562
:j8=:e:0xe5aA176B8bFCAf598E41b09fb0a1CEAeCe5958e2:263273822
>j<=:e:0x1B34311C63e160eBAa87Da04716efcA789FE3238:428053685/0/2
6j4B55:to:USDT(TRON):TPzWvqMbSnb62D3J96j8yKnMiB3YtNEruA
=j;49y:to:USDT(BSC):0x8C22587894F9FA02d4507554304073031A7d6963
=j;MAr:to:USDT(BSC):0x1cad4fDb77f056702737FdF65873126a8DD171Bf
6j4IdG:to:USDT(TRON):TJwvf1L7rhR3UrsXsJNYqaNGjwbq3Y7Mue
2j0to:USDT(TRON):TEWuZBU4GW8GH9wEbZpyRD3DGyKSnoM5up
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"51000"}h!
2j0to:USDT(TRON):TTrhkg1JzPxapVUkkzVebWfaXs7kLUAzoH
DjB0xbbc771e16e6334086959f09be2aba142d65f3d1a1757b1e31e84868980847140
DjB0x23d0e6cd2ac6d6b5d9272d113f138b6c7091118da2b128ba2a608f7addaf356b
DjB0xa44a77596b63f906760c420d46b3286a2117a8479e729020bd57a15aa4a10570
DjB0x66219fa772b4ed7c7baec2e22e021fc4e0006aa25a4a283e1f2ac30fa8f58d3e
DjB0xc83b0195078a8f18a89a34c4c32dabf4277f834372b49b7224891cd62fa1ca78
DjB0xcea5d60dedbc0f2b20ce13d887b977dc31170f002b7f87645a8987d0a2a0e6f9
DjB0xbed930aa539455bf1c0176049219f032a82eace72d2731872f60dc10f6bde671
OjLL0x2b9ab941f1beef7e235736cb7915c13a9463c555ecfb26f68983bd24bfcbc686=|lifi
DjB0xf85fdd0e9f7163bcc01b94e5409e2cc3ccc29cb12717039d06217cde87cd726d
DjB0x009989333ca3c55f26dacf76a35cdfc82eb060a2a8a7b57064d6d9795f5cba1d
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"300000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"20"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"30"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"30000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"30"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"X@AGI","amt":"5000000000000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"500"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"29000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"50"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"28000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"10000000000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"BTC.z","amt":"1405"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"BTC $","amt":"845043"}h!
SODA #8295 - Drawn May 23, 2026
dnamejSODA #8295edrawnlMay 23, 2026dseedjstretch 35hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
FjDOUT:46A10FB850C84BDB2BB756A92C3A3F15262C04233822E5994F03C348ACA8A612
8j6STH:to:LTC:ltc1qr24fcw550ztz9yvt022kj077k07ugx8hrvtpf8
sjLp0x06e3b58e17a401e5f505e770b7332a9d3111a03486ef8cceaedcc0e21c18a24b|depositor=394FaY2Bc2N8Ng2MKtgj7gDHa3iUw7BRhq|
OjLL0xb433a022bbd95d760633eb7844f84550691b6b971c60062b0655f7d35d6acb40=|lifi
DjB0x44626194a1aa47e415f34208605cb752086da85f4d4a39a41ce661506043839d
;j9{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"1000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"193264"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
SODA #8296 - Drawn May 23, 2026
dnamejSODA #8296edrawnlMay 23, 2026dseedjstretch 36hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
2j0to:USDT(TRON):THqMaCa187TnNQPLW2YmRiX4sSZtr4jfnu
6j4BIB:to:USDT(TRON):TZHtJbSExjgPaYJubapzhCXK2P9NJbVjG8
8j6pmr:to:SOL:MFU2CZpFYbAXT1MNU4d7rtQU8XBTh3rRSARtysNBB4hr
6j4hkh:to:USDT(TRON):TLhd2PtxtFZcayuRqRq81fmfpSSCPBiZ5J,
6j4HjQ:to:USDT(TRON):TH5JHibUSRXmefpgypzpvQfE8Y6NBLYwG2
PjLMK99:to:SUI:0xd405bbc983c4b5ae085e9668cf3a0706d4019aa661216fe705803987146014f1
6j4by8:to:USDT(TRON):TNWpar5rxpTTXWdg9tcPvJhYZqYAo8Nyei
6j4Scr:to:USDT(TRON):TMu8ZvceioyYDhv4BLhDrDruwjD6pz3acB
2j0to:USDT(TRON):TGYChJgQDhDgiMVVSSWcDQ88hNYcvCTT6V
2j0to:USDT(TRON):TS7G1fr5ATSVRz7xgwBowvhWkNAXUpTgQ20*
6j42ej:to:USDT(TRON):TVELwZSHwZPFfJS8uGfakQMt6KuChmKC42-
6j4tmo:to:USDT(TRON):TMf9PiNxUVnBUaQsRJcAGy9Zx7pAa9jxUCV"
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"ordi","amt":"967.24"}h!
6j4hfx:to:USDT(TRON):TVmxq7k6CaZokvMKyzAuj7VdD2nMCnxY8PE
6j4iyX:to:USDT(TRON):TGCtvgBSQMzarMxnJe7SiqpwV3qZBLPGNXY9
6j4ES3:to:USDT(TRON):TMnnRvEcJNGMY7TNQTmzbUtqM4im5tanXr
9j7=:e:0x8B0756c361aCc62fbfbcc5D21F51006759a7d6f4:82276164
9j7=:e:0xC65EA4b9a2cDC3b57d06D35edbfB35BaE9a956B5:89921483
6j4JNw:to:USDT(TRON):TZASv28Fctvg3Wk5ARg7xZqPmwRidNNccsz
6j4Ty5:to:USDT(TRON):TLG5rV1biuBpNgZ4zcsr5iNTYaajRnhudz
6j4rEL:to:USDT(TRON):TWoy7PbDjb9mnkxx2KuxH9cvajjpV8ggYL
6j4XRq:to:USDT(TRON):TZ9tdeGt3NH1qyXAquszYZ5JZ7T2p4A7h1
6j4pI3:to:USDT(TRON):TTH1w2ZM71gDdGya5Bp4Zob6bqLW12ACsp
=j;Iv4:to:USDT(BSC):0x9B8508E53220a3A7CE05900A0606B373773215B0
8j6zYa:to:USDC:0x7bf1C0B04fD7459D07a6C4e62a7F8f99Bea1108A
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"100"}h!
DjB0x0aae142058e21c2e8f50097267512b156d7ec50173a9374656111ab98cc3a7c4
OjLL0x5582c91043ecc29d9400f032ca6a5e8839668454e59d9488117c3b3b3abb6e13=|lifiP
DjB0xa9dbff58d018e1a0dd7d7155b8e78a2eb6d77e4f359e4cd624464abf39819bff
DjB0x802c3fcad00730cc3b4f7b6d5652a6a411d077a571f3c7be689a0b03de4a3313
DjB0xab9e3a8fb63675f761c46aa683cb7be15dbe7f595e3837c05a0a37873b1d41f0
DjB0xeb77b71543bafd14865cb457c7862fe78c7b74e508cc97b1f6a41ac8c2d0ea00
OjLL0xe6f00bf3412f7d5a5ca092576fbb7257b282aefaa11197e95dd479419eae8c54=|lifi(C
OjLL0x367d1adff3276bafd74521e5e05b5dddc974e87c15244597fc1b71c70b3991b4=|lifi
DjB0x14c7557833855acd8c470789b5fa7065df1b56b055364e2ce8c1173b1c257f9d
{"p":"brc20-prog","op":"c","c":"0xdbb5b6a1d422fca2813cf486e5f986adb09d8337","b":"AVYI+Ff/DGKHm7PdlJxM8G9xv3woHc8k0WPn/x9A/x4D/w3btbah1CL8ooE89Ibl+YatsJ2DN/8fAf8fwP8eBtT/HgHg/x4CgP8eAf8SgT9LdiPcFuO/gLs6ZvuB1Igeywzdl/zatF7HAPxaaHoRE4SKOdsfiBeO9Nv4mMj/EAJO0hGNHQpr6PwI/Af8WeawQCU5NXY55szi2x1LAcUPUYWVwM+saY9n30gIAZWuYf8QBnj+I/cSmXs3+CiNiyDfNNX9+oRHejzOKMGgXyo+R8NMfavKyZrmmSkXDpAC9bVL/xAZbkEESR73BSLiBvZsCOHPggKl1vN3s8gfjg9zpv1Sz8z8uyPG7yQVt6jze1uRyID/H4D/EBWs2MB7AnWXE8uupINdiY32c8w7/e3/AU4qT8xba8oxyrc1MC1rRpuUOkvLydNa8VLL
/EBXulBDwQ8VF5TJ2wrh6spOkBhzFg5LmFy/Xyqk0jqfFnmj/AcBVixv1N75yS/TUc0X/H0EB/TU5BV2ALt3Hp4nCyQpE39ETgLe5+9BFLH3iGxv3k0gz7AEthtF/nRfA7kbfUKGJQ9Kk5SpdD59TW/2/Fe3JG/8f"}h!
DjB0x9e8c900aeec10e5d87059ad15360b30638d3a1dbaa763dd5ee926c6f347c3c0c
DjB0x3de694ab2d7af81a5a3ec3576ba9d45096f67a85eaea4768c7b43ac3de5f06c1
DjB0x4a8669e124e3c3fe7032e6b43ba78b88426a98504f940ec6cae72be9cfcd86ac
DjB0x20861ab591ab6cf03ec17464a16ced68c7301fc1f741f3b3a9097ea7418d3fa7
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1.77"}h!
DjB0x4a0f49924ae5fe81afa70d1b107b2c77a881bea834e64e81ac2689ce6f2bb556
DjB0xde222096b66e20a56cf141e0deaa95ab41e6d3b601650e1cd1f671bd69da1786
DjB0xc37a9534cf78fcda8edc9ffdd159defefc6bd52332a629093c0072380c36136c
DjB0xd9f8bacfd7a8e94b4753b0be259da8518e3c7aa3fcf4615f9841f0be49df210a
DjB0x787276fd4fd602b5b643abe9e44db187deeae8253553cbabeb7373200c25bf013
;j9{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"8782"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"200174.14590169"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"138248.64092336"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"138694.96404475"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"200374.72521333"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"TRUM","amt":"2000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"fifa","amt":"307.0001"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"VRQQ.","amt":"10000000000"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":" UBI","amt":"200000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BAAI","amt":"15"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5700000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5500000000"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"X@AGI","amt":"5000000000000"}h!
/Foundry USA Pool #dropgold/`
text/plain;charset=utf-8
H{"p":"brc-20","op":"transfer","tick":"ordi","amt":"52.7787600000000000"}h!
6j4DC9:to:USDT(TRON):TQPiXVKvTHGmXsBhibtugx75L7bVgMcPmRm
6j4eiU:to:USDT(TRON):TCUeasU1eF8ewjo7nBbXPooysKww4TXZjq
6j4STM:to:USDT(TRON):TA7eZCLka2PX4WBxSxDj5qbk6Ur7cmpKYK
6j4MhK:to:USDT(TRON):TNipcLCELCKQCH2zEVaZ2L1mTREZLiyjhXx
/j-nGV:to:TRX:TVELwZSHwZPFfJS8uGfakQMt6KuChmKC42+
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"ZFBE*","amt":"151884848488"}h!
=j;o3s:to:USDT(BSC):0xC437778a7F5C51b246657AFF0718CB0f6B5a9b98
6j4Pgc:to:USDT(TRON):THFo3iooye2oKJqDMtUT9XxujZo6tikDa1
6j4Exr:to:USDT(TRON):THFo3iooye2oKJqDMtUT9XxujZo6tikDa1
=j;HNg:to:USDT(BSC):0xe7D626e4f6557A9969dFb6A6A9cFEe8933E79268
7j5Lz9:to:ETH:0x5E7A8Ad9a2EE678fd7715FF3407BC8bA5514749C
=j;tYf:to:USDT(BSC):0x932E50fe5311Bd95875a2C181b40A8A0D0EdCD95
?j=dCf:to:USDT(ERC20):0xB3bf9C23c43BACC7A80C48FA2bCFaf5FcB270228
=j;1iW:to:USDT(BSC):0x9F2D3F8346cE9ea0A7ce94Ca44D98d86C6C9d832
6j4lxP:to:USDT(TRON):TF11UERob9KnesopzkxkyPpKC41eQmT2Qi
{jLx0x75db908933ee6cdbd9d043859e21dd183257268c676708a00b812310939bc81a|depositor=bc1q922g9vcfnm3wrp3aslgsjheqt47h8drexm2xqq|
OjLL0x0c66bfa355e7d4f4431219ae4f6af0844d5a1b580cb39e174b55e18f4dad22ac=|lifii
OjLL0x5371bce229f89218c3a70187912fbcf49d6594f9a79500673eeb3b65b95bbce6=|lifi
OjLL0x9b82521ccf22d73ae9d9737dbf45440a4a5189a5df2c35d07a72a0121cde904c=|lifiT
OjLL0x904baf4cc7723a0dbc39c6803d9c8cd15df2879679123d67aa167718453bd036=|lifi
OjLL0x3b02e3eed4400c0927b48be0251ccef8bea6c5bc1adff0b8a9655978f2cb04fa=|lifi
<j:{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"74206"}
DjB0x73b552a4d5b239b3f57bb300590659a2b308839ec82724a8a0880cfc340995c1
DjB0xfc965c095973c7f36bdf17182097af4ad7c335e5ec3cb70df52261d9287f49b1
?stamp:{"p":"src-20","op":"tranJ
 sfer","tick":"mskk","amt":300000J
GjE=:u:0xAf5E1690cc11e6b2418d533CbF44A7BBEbAf2c2A:566983960516/200:two:0
DjB0x2ef700c4a1f40269a56ee7c923af9437fab3640c9e727f72e86e9113166d8df6
DjB0xf392ba61aad5642d777052c9d85a8b39419b23f94168bad88eb81fe6dfda1eb6
DjB0xd24c9183f72fb538e53cf9d0c9b22ac984785e62c2df7a873c5b6eea75916855
DjB0xf2d94ccaf2cabcc1d3c89a701f66e7da307578528afe9124b04b112af6f53134
DjB0xb64c04f67abe83863c923dfb035c98dba8279020d7e22cda7bbc68c9834ce9f7
DjB0x429cf2aff536362b839378f30e4323c05f769d80185552932e335cb3bc84aeed
DjB0x6ae6392568bad7ada5dabd1af425da83e41248d87bebb1545d8640b0b4b56bf6
KjI=:e:0xAd5BA73e9546C1B6Ded2b105fBE90B8E39c60E02:172052083/350:sk/tan:7/144
DjB0x4e30c3111e372d7f86da8c8686ab49f9abd0bb0a79671738ed098b3032d494fcs
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"166009.48966637"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"212315.38691644"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"723672.57734028"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"11"}h!
DjB0x96d65c9b33fc7d6ca1e5009a1aa8c59406e49e7a528649afa64c0a351f7c5fe5
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":" UBI","amt":"200000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"X@AGI","amt":"5000000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"50"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"1000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"50"}h!
SODA #8297 - Drawn May 23, 2026
dnamejSODA #8297edrawnlMay 23, 2026dseedjstretch 37hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
j| MARA Made in USA
6j4YeJ:to:USDT(TRON):TKCkXoEjjMWJd39RWLMqkbj6JNdgjn35nJ
6j4Eyb:to:USDT(TRON):TVELwZSHwZPFfJS8uGfakQMt6KuChmKC42
2j0to:USDT(TRON):TUijUZMrAiqjhifBHNzUdKLamA7uAjQXbm
2j0to:USDT(TRON):TEuB3xHw8cvnxEcnazQLNXcEnDjSAcHVaC
FjDOUT:9CCC426B3752B9914F62F81867D557FD3897E3AA340477C8B65CC0AA52558D95
6j4GJW:to:USDT(TRON):TY2QkP5dpGbp9J2Lk9AiQyKvDVBJG3HjsQ
=j;zmY:to:USDT(BSC):0xE2bC27E32172dCAA71f203Af49cF445FC246eb87
6j4MvO:to:USDT(TRON):TDdTKCww1y7X1KZpgeKgFwArGEjgqKUTRKy
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"319"}h!
=j;IzV:to:USDT(BSC):0xE3017ed24fC2ce7e277bdDA8d9B729191769fCBD
6j4qaX:to:USDT(TRON):TRL8HjNwDdPDJEPJVj28jd7ciECi9ZKJBKn
7j5iUY:to:ETH:0x5E7A8Ad9a2EE678fd7715FF3407BC8bA5514749C
7j5W38:to:ETH:0x5f35f69C86670D6806F0fE6303F336adC4374622
=j;BJy:to:USDT(BSC):0x6bdaA4b269E74fA338081459E9e496916AB23b64
8j6LtY:to:LTC:ltc1q8ytsvuvydzvgk7n8utczx836eurkpcdeyksmgs#
=j;PvP:to:USDT(BSC):0xc863932097f86e6CaE9eEEEbD6F05F303757A706
=j;zXF:to:USDT(BSC):0x0df0b3dE540E0971c759b8538a0924564692578DT
>j<TiN:to:ASTER(BSC):0xD6A2d0ee239d9cE5BC03FaA7e01db32fF53f8AF2<
9j7to:USDT(BSC):0xef34Ff5d95dE569629eE9CC53C6C4CDB9EE5E54C
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"4600"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"5214"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"6179"}h!
;j9from:4.323LTC:ltc1qwtglrg483g275j4mt0exv5q4ec85ywar6pcf6m
7j5from:300USDT(TRON):THMzLrje3iUdm4vithMJ8QkjJsrJNX1JjC
SjLPfrom:2725KAS:kaspa:qq9ra6ut07j9dvwgdfw9aakleng0es5qmfjj9qtz9lr63x6gkpsgvdjpggtke
SjLPfrom:5000KAS:kaspa:qq9ra6ut07j9dvwgdfw9aakleng0es5qmfjj9qtz9lr63x6gkpsgvdjpggtke
SjLPfrom:2240KAS:kaspa:qq9ra6ut07j9dvwgdfw9aakleng0es5qmfjj9qtz9lr63x6gkpsgvdjpggtke_f
OjLL0xc86836775749202e08331aa77397c790f3cedf2bc8e13a8cfed1ce991b1685f9=|lifi
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"138472"}
DjB0xddd20e567533b87f7cf1c9a9a555b1e881c40345550199db1ee90b96198e9c19
DjB0xeebec6c0dfee1d62f69ab5fc723b394d93fa1494f4b4f71e19b79c0222424094
DjB0xdd883a4ac0e5a0fc5277691216d5cf73d6619b9a30e7c67fc96cae54712d6164
DjB0xd9cdc9301c1af428d42560ec87dbd4159f7aef4635e95d2ed41b7b69b2b74ebe
DjB0x2659497120e9220db5ddf2379fe1a4413b01f24ffaa21d963a2e92b7c72c8e2b
DjB0xae2b0585a944e80a006aa7380d56aabf35d41c89f2114dfd06fc43517e54bf6b
DjB0x4401249d23be27e34bd8eafe644172527d710bf59676b877c2e19eda790da5f1
DjB0x85c67cea982a7bdbf0c6c70b58eed9662b91e91c1da4ff1b90026a9c190c80a6
DjB0x4e30c3111e372d7f86da8c8686ab49f9abd0bb0a79671738ed098b3032d494fc
DjB0x46aefcc2747b80f813accfa7132883ecd5712953fc4b0442aa7a844c044679e1
DjB0x8f5276b662efd6dfeb18be06678a60c7a1da68e8e4f1dea5f5f2d8acabdd36e9
DjB0xe2775ded346af3e1bd406ef0d6ae3a7cd4903caf70e2f4edea1e05f8714f9cd1
DjB0x6c1d32f0f1eb424c306801ae7ae4887ca146ea6b9f6d295125ad5e349869ab31
DjB0x5c503d457f43bd79e19f93d01181ecf39c7951ad3b1d05ecc9d367f1b92b0247
DjB0x6fe86b31b8eca5445a1c3a42b77c1cc2b9c24da7fd13786e877ed543110144fd
DjB0xdbffd1140d2ea42adb4234f6effdb40d3771d6a31b76fd026ccef0faf6682e38N
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"100"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"3650"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4900000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"75"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"100"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"85"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"2"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"75"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"65"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"55"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4900000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"1033333334"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"X@AGI","amt":"5000000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"95"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"DIOR","amt":"1000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"20"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"33511"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300.02"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4900000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4900000000"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"3075"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"16"}h!
DjB0x699768c080fc27dd2c2130709de9503963257a0d5aa3964cbd17b048c33a8972
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"fifa","amt":"25.001"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"2976"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"4000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"80"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"8980"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4900000000"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"101"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BAAI","amt":"10"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"20000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"1100"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"60"}h!
SODA #8298 - Drawn May 23, 2026
dnamejSODA #8298edrawnlMay 23, 2026dseedjstretch 38hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
6j4H1N:to:USDT(TRON):TG6tQty8x9ycwWf31ckEWiy9sGJ3kLJnXL
6j4V6z:to:USDT(TRON):TMQMqsnBSR8vSdyWbETQw1LXgFjJdnDoXqX
6j45pu:to:USDT(TRON):TBdmurFPQZrqCPrnSd9fmFM5Mg9dGJA244F
?j=UEz:to:USDT(ERC20):0xc9DC77997B4705e1Bc7A0EcC7c3ec0F4BFa9a667
OjLL0x31d621ffd4b725c72278d6aa575db38bcab3d3a73f294f8f2318c0784784de11=|lifiq
OjLL0xbd240c733054827767b91cf7d0c2f26d9db393a50c0126905ef3e877454db48a=|lifiE
OjLL0x20dead4b551b92b74ac77048bbc8d3cdc0cf8e23a4e9ea13785fe5a3c41ba5fb=|lifi
9j7to:USDT(BSC):0x7faC2ECA3B55d2B2091b94f4879338202D0dCcFa
DjB0xc6d57a821888876edd8e656977698970c49d6d9c90c42c0bde19987d6423733b
{jLx0x2c7f8e1032e9c997af8066d04aa2d18cd6be8e9b641b5c2e8ae377083e707aed|depositor=bc1qte8ugtned6wllag8v3rd3k7tnv3uzqmyxdnfxd|
DjB0xa86925c33021d52c46b397bdac90f76892b45b78a204173ceb3c161c0fbeb84a
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"372806.69293519"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"207397.00776527"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"206421.07280949"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
SODA #8299 - Drawn May 23, 2026
dnamejSODA #8299edrawnlMay 23, 2026dseedjstretch 39hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
/ViaBTC/Mined by zavnew1925/,
text/plain;charset=utf-8
I{"p":"brc-20","op":"transfer","tick":"ordi","amt":"967.2900000000000000"}h!
text/plain;charset=utf-8
LO{"p":"brc-20","op":"transfer","tick":"sats","amt":"698417859.6000000000000000"}h!
MTLD_BATCH_393592_393570%X
6j4Vv4:to:USDT(TRON):TVNF8MBifWSCvTrYxJHCimYr88H34foHPY[1
GjE=:ETH.USDT:0xbae93b22326779ce12ee70525bf6708767571669:20805485554/1/0
2j0to:USDT(TRON):TCaXmU6TFumwjTYcCBvEHwLt2HV4hsBT8J
6j4RNF:to:USDT(TRON):TD4ryL9pBg2BbTQ8zZuxS2PbU928eoqxid
verigent.ai/anchor/v1|chain=btc-main|proof-or-zerok
verigent.ai/anchor/v1|chain=btc-main|proof-or-zero=}
2j0to:USDT(TRON):TYkd57qW52gcerEbAwiQaJvXT7SGRzgyd5
Bstamp:{"p":"SRC-20","op":"TRANM
 SFER","tick":"MSKK","amt":"30000M
9j7to:USDT(BSC):0x46Fb89d2c5660211b1D1d4B873367bC0C247CC3A
DjB0x9de114baf4d8b77c5e776ae110952a1275236f2d8e4a97ba75c4035007ed220f
FjDOUT:A27F9F12ABC160DE413487004A248151AEF69C75A8F77523F5243D004F29A7A4
6j4bkU:to:USDT(TRON):TLusQc4dxV9fH8aSrWT3LQp26gAsCF1puR
6j4J84:to:USDT(TRON):TALf9PJskEaF4KgqQkzcQBFZPqXxaEqvz7~
/j-VC4:to:TRX:TYqXQ5kK78pEwMbxyV37S3xbGFoGyHdkZ3
DjB0xf35d6719a04c73d80dbc7cfe57ca5a7ed6e2331ea0b3a19c8b6084c5fc42aa27
6j4jVA:to:USDT(TRON):THsL4yEYkqvfaVWe4971rhx3p7HWUmh623#
6j4H4J:to:USDT(TRON):TH9kNRPLWPWeAhdEf2q4bm7bSZD1f9iyH8
6j4Ul5:to:USDT(TRON):TMRwLvcB13uawbRGAn4ynEY9KnB2nxsjc3
6j4fjH:to:USDT(TRON):TMpsXyT2QvgcjnL2BvTXR4VPTuB2ZEyt3p=
6j4abX:to:USDT(TRON):TRzxpCUzEb4A7iXCmUwTrTNAWzknp9qZaw
6j43fh:to:USDT(TRON):TNo37ptgCxNx7Ngig9jkgBxACPq5sECHBUK
6j4md8:to:USDT(TRON):TE5MNgkbGpBezm2mtr6rxBpjtZiBf7uMAhxK
6j4xPz:to:USDT(TRON):TJmCzAg3y79MQu8HTenVPnEj4ZL9LeTSYHd
6j4muD:to:USDT(TRON):TScPZaPoMvD7Zs5iZzNhULxekc4Y8P2EsCRF
6j4HIS:to:USDT(TRON):TSGceLuCAhXFdAshXPygqeig8sbvUXAHzN
6j4IPp:to:USDT(TRON):TE5MNgkbGpBezm2mtr6rxBpjtZiBf7uMAh@
<j:IMN:to:BNB(BSC):0xf7049a6c425f2519c5c654436edFB80FFa795e4b
6j4Djx:to:USDT(TRON):TYPqJ6b5ei2YKKhyAFxJHKV1RcCXP9K63a
=j;QpX:to:USDT(BSC):0xEf1c247CD84c79a412187056B9B6214a9ddE3842
=j;Rek:to:USDT(BSC):0x4CCA01A56D08dA6f34614AA37c3d3eCfbF386883
8j6Kfn:to:USDC:0x6fD39179EDe3366c0D8C45a5b04284dbB2282a27Z
/j-tdm:to:XRP:rLCCygafoDhRYTyPCk7LJPLRLkZ6zrnEk4
?j=tUj:to:USDT(ERC20):0x6415DEdEEE0cE2B75f77C7CC7eF8596cF43B8dFf
{jLx0xca7d5e1c5744edbeefd802a8a5566635d7f2b025b88121b2ba35a7c92227fba9|depositor=bc1qvkztj8t5k0tffu2u9zpf35svac4qh096hej4ul|
OjLL0x5ae510aa92ca3f720b081db8dec17ced23b0724b8bfbc1b998e9fdec499a9465=|lifi
DjB0x9bd9845f491ab59231e2d148842b70e89e04b405900e9f8b524375137b856b2f
DjB0x5bd910e59c35f85efdc38e4813df5d47bde1ce71fd62fdb509ce6463f690056f
;j9to:USDT(ERC20):0x1c2FFd16a629564B3e944e1e439F5e9C49ec97FD
DjB0x351e24bccf98fbdb86d276151dc9da1f6e70e681c750ac1a469f2ddcb9a31659
{jLx0xbbf0482881143bf93f305bbdd8783bea83aa80332101d023a61dc0c181932dff|depositor=bc1qt4s7g0z98k2m8h77z3c6kr2calv9d7vfvvzl5j|
DjB0x6d9f7b1f72fb0162f199d04b07d171e8ca2aaa0eb4eb87b1a3c8082a7eeb27af
DjB0xedf2d32fc84c1f761b06d43a89d56a13e76420714e204e5e28291649e5829d71
DjB0x8daab689914388daf5a4a013f008262af1d1d790384734cbf8e15d3542e4868e
DjB0x79dd009088822444cc5e7e528d797676a1b1f64a375e1f3b82279164df7cb9c3
DjB0x3a6954950f44a14c8075d556025766a431bfb103f0cdc8bcab15749043589858
DjB0xe91585e963207370f3b46f38c16cd21321ab67142d3246c33db24cfc05ac17de
DjB0xae502c10c9bf671db6fdb760b3867f0915fe0c3a5f21c2579dbeda132c3a23e7
DjB0x5276ef5dd156dbcd1a6a63fcf8ef82d33375a8e7a17fa0ae52e3514f6b2c31d3
DjB0x09504c8526a8f18d21213a76b7db4dbfba2977820032aecb48d4d58f323b3116
DjB0xf3f901456808c81db9a529a868e45a739d2c9a6f1dfe1527fc7d083406860bd7
OjLL0xf2d60554695b1b14933fd0c1be4bc52ddd389d668ced266794a2be7f72aa5189=|lifi
DjB0x556f107449c3cd9454e654bc8bcc5df995d01b64ec4a3d68a606e1873f2f9c2e
DjB0x5ae85d9227cb42d62af89475e8557a0aa32c3103737b50687345d03b75215b15
DjB0x31a1b8d0259d2bed7ec74031f158aa909e096cc0a138e9ab1807b968767ce4c9
DjB0xc1e905caf06713b2c9286a98416987887c65c474d00326c140e85490641bd62e
DjB0x9f3eaa09eeee9e0d8747b0953684bb11114c6e12f8e58f3b73785ef8c30e9366
OjLL0x163c745a6a296478a4c88cc95f37942dda7c78678e25e1b2eb9d6e7a1d335693=|lifiJ
OjLL0xc0d7000c570833fc0e4200d5754aaf62be23e3025f8ed3159dfb83c14bbfe47f=|lifi$
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"ordi","amt":"9.556516"}h!
OjLL0xf4a3591c4713365a75cf28fbbf580e9de1b98ce0fa97e61696a5de0973940a6e=|lifi|
OjLL0x9f0d7c74907243b82ae97a639e877b49647a09bab13ebc4e70b13df218f1a917=|lifiy?
OjLL0xe3df0ce9497e6317ea3de2c34573d2d780bfaf17f30a7691dfb1eddaf9140fe9=|lifi
OjLL0x054cdccd460301067047edafe1364927e1e37cee5918bb9d70d36dc224c4a081=|lifi
OjLL0x5e02926140dcb38a2e9eb1acbca14d254c3a12b7561bd3a302f7f0e83bbd14ec=|lifi8%3
DjB0xec71697f17691ae49eac8cc3dd7ec16dd8cea51b1b9b41a13b1ccbcae240a4bc3
6j4UGB:to:USDT(TRON):TWQWfcy2QCzUxh3zme9X1uGLMZZDd7C5B53
2j0to:USDT(TRON):TAA1c17amwpXrkZkAdoroK51GWj3mrEnUfYY$
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"100"}h!
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"932960.70397293"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"9800"}h!
text/plain;charset=utf-8
{"p":"tap","op":"token-send","items":[{"tick":"dmt-nat","amt":"1807156848","address":"bc1pcukxh2teu3h8jjvad0ynx7kgr2m7c2wuz7q02uunagujsqfux0rqed9k7u"},{"tick":"dmt-nat","amt":"150166125","address":"bc1p7ncudwy8egx88hk53tc2ldj725mxpvv6kjzp7859ttccec9asavsq3w2ca"},{"tick":"dmt-nat","amt":"64450119","address":"bc1q4ulvmqnsrsq5grn4243042rrfluyzadegtc8tn"},{"tick":"dmt-nat","amt":"44132196","address":"bc1pwx0wavwljvuctrz47cx4prvja55yjjrycnpr4pcx5rtd90l49lkskmyfey"},{"tick":"dmt-nat","amt":"42161640","address":"bc1plhl6qM
tj8zkyxuq3f70cw63knc7r2hrv9mjd0zcw3ep7lh797gg5qmkrd8h"},{"tick":"dmt-nat","amt":"37952757","address":"bc1q96rgt32cfsvhn5ucr9jvll5r9y6t4mfsnktefp"},{"tick":"dmt-nat","amt":"35294435","address":"bc1qf58nu383rg3qvsvyd38z680w7dw874q0czvjum"},{"tick":"dmt-nat","amt":"19908957","address":"bc1p8x5eg2wqmgnpkm6hrsxx7jml7v2qvs6nndh6gspp9elxxqlg0mtsle8n0y"},{"tick":"dmt-nat","amt":"19279412","address":"bc1pk57998kylwwdvw5266lr7xwagggdmvr2mnp4sjsxgmg0wmrc42gsszygpr"},{"tick":"dmt-nat","amt":"18595458","address":"bc1q3pkhz0xzt2M
te6yqczevck5q04j4yl0vaaju0w8"},{"tick":"dmt-nat","amt":"16986345","address":"bc1q9kn0lvq45njgw2ag4hf63rlcag23tdv35jk9xa"},{"tick":"dmt-nat","amt":"16261013","address":"bc1qzgqwvqzwtj4ppdtaw8ctvzsawffw2tjhcazs3m"},{"tick":"dmt-nat","amt":"12315592","address":"bc1pgym94yzzh5mj63tqkwc29xfe4ff0cfftp9nl4uas6e036q0mxd0svkk90z"},{"tick":"dmt-nat","amt":"12085137","address":"bc1p9rzvclxc2uyh70v9zxusxyejv59p5zh2hg7s9h3meef9d6ykegaqdadywf"},{"tick":"dmt-nat","amt":"11623042","address":"bc1qhx4het5k7vfqj67aqxhqp0cd97jsmlxfnk9M
qjt"},{"tick":"dmt-nat","amt":"11379705","address":"bc1q534azmde40hmv6tqedaqsddheq2mrt97c3zqw8"},{"tick":"dmt-nat","amt":"10961382","address":"bc1qnkdzflafp5qyml82n6yzr63rkty22cnwhj4zjr"},{"tick":"dmt-nat","amt":"10432594","address":"bc1q78yf7nvux9g0lhvf6lzsjk3eh9f3ajjpqx73a2pgj26lrjpu8kjs3v3eyv"},{"tick":"dmt-nat","amt":"9933534","address":"bc1phdshnhy5qvclm7flxhsul386ctpxxw2cyfkrpavq0cm3myuw264snur4fs"},{"tick":"dmt-nat","amt":"8522818","address":"bc1pahnvlyflkmauewqnksv45veuwa56htcf38jvag4qpf0ut0ppxqdsmd6txm"},{M
"tick":"dmt-nat","amt":"8354008","address":"bc1q4y6r522frehdsm653gn56whdhypxlwjv05lzun"},{"tick":"dmt-nat","amt":"7920897","address":"bc1qc3jnsv86ua5wc0hctzh69r7twzfyc47a83qd4u"},{"tick":"dmt-nat","amt":"6966177","address":"bc1qnygdzszkswhu68wr6wvcw46x2smeydm0unpltm"},{"tick":"dmt-nat","amt":"6897267","address":"bc1qdwze833p5escrnq765wyj7esu9jr2emkpqpkeu"},{"tick":"dmt-nat","amt":"6552979","address":"bc1qpl5wdnvnajxdldep3u92gstcfqjhxwna7dsn5d"},{"tick":"dmt-nat","amt":"6379806","address":"bc1qgmsk0mcwz6e3raug4jhlceM
u2qscwaturjqu72q"},{"tick":"dmt-nat","amt":"5849239","address":"bc1p04tskka87n0z86534zek2j0fc23q5acf8tkcemhxg4p4d3545pssf0ajx8"},{"tick":"dmt-nat","amt":"5839181","address":"bc1qgteq0x6c606jk25rn79kezwzukedygqv5k6kqr"},{"tick":"dmt-nat","amt":"5650427","address":"bc1qla3z44n2pw7lu8p467tnddthx2md6gne4sy59f"},{"tick":"dmt-nat","amt":"5494566","address":"bc1pwvxeen0cz0ynjndqd028lj6vz6c0clw8jy3qugsh7vthfhrfp67qackuj8"},{"tick":"dmt-nat","amt":"5442797","address":"bc1p6mvvthverup0k0r2heutx0kkv8892xsxt7dh378jpq8unndgewmsM
te6lkd"},{"tick":"dmt-nat","amt":"5421478","address":"bc1p5tcusmust97v7fnuvh8jk3vu9ypmhs3fzzy3hgxdw2jlp0jff9mq6nx64z"},{"tick":"dmt-nat","amt":"5404616","address":"bc1pn3z7ma8mcqawfgegruaneuwrlkqegrzv2s2yywa43h33hvafaz8qvyegx8"},{"tick":"dmt-nat","amt":"5402578","address":"bc1ptej68qqfgm0taaljc3jp4kznjctjuppnasu7exxks6kffku9e47ssyga5v"},{"tick":"dmt-nat","amt":"5332033","address":"bc1q457e5qhjsdveq0mzsy77jmzfd240p3q2l8l89v"},{"tick":"dmt-nat","amt":"5259719","address":"12KkFRfMCLAvuEapHhyyAASHTcvksmxujG"},{"tick":"M
dmt-nat","amt":"5245893","address":"bc1pr3agpcm8j9aj5smfklex58d682xd6s70u3ngxpwh8349e5m0rjps4pe453"},{"tick":"dmt-nat","amt":"5234083","address":"1GSdbjcWUooUwtjTLnDsBMHJVRyoTdC9b7"},{"tick":"dmt-nat","amt":"5231598","address":"bc1p6yzqcdrj0ww8yysa40g96zne8ke4lny4aq5f6fsjzfsx40qvxe7qk4j262"},{"tick":"dmt-nat","amt":"5120972","address":"bc1pqz7gc0qz478vhmvn7yaarz4v8x68ls2ks2vwh0egaqhatnmh47dqq4mmqz"},{"tick":"dmt-nat","amt":"5062221","address":"bc1ptjtxgls0fma4psnxfwhvk5tzcg8dhdfe03l2vjmpze8637nhlyjqzegx45"},{"tick"Lh:"dmt-nat","amt":"5011508","address":"bc1pssnf6y3wx8de9rqeuavfevvum3hwc392vne5x0a3lp9t850d99hqafm6jq"}]}h!
DjB0xb0e63c6fbd99fa77418f7a644e3fdf28d3d620600fdbeb6335af3066953c771b
DjB0xc32fd0ef393432e33a5e05ee061044b547987284a11b06f59b05f0a12621b771
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"ordi","amt":"212.983964"}h!
DjB0x2635812388466f7336f340793fed4efcae12cb2aef97da12d3b0131864351ca5
DjB0x996cfd097855b3c91996b084f43797d0695b6f472bdeb2f27faecb07c7787ba2
DjB0xb0d07be8a499461453af38718355d5c19eb3b6f9c11a4882a0aa974bc0d5bab4
DjB0x4867cdbbe2c400bb141d409d99361dd3f28a12ceec32341f1f7e8c0acdd9becd
DjB0x64af942636f6f112445d3522edd2308d4843e1a7a1230e0792e81b781b094859
DjB0xa9ccb8ed1d59bca594fbe4351069f7370201fb29cbcace5a2497c7ee51dbc43f
DjB0x94c55ddc914cceb1980865ad4bf91a17e54158c396942a41a7e00fdab07c6062
DjB0x038a517a511aa416f4217b20aa5333a4bc0d63eca842a70599711f94d5639252
DjB0x6f33785988318c7280d7b8b82d1bc8d3d2c7dfa49081ecc05c0b9c7c1e109a7f
text/plain;charset=utf-8
F{"p":"brc-20","op":"transfer","tick":"sats","amt":"4618424218.322771"}h!
DjB0xfaf5be0d27412817682146cbc4553bdb98c9c5c14f6704526dfaffdd3ce65133
DjB0x78b83071f47e67b83fdfaf8579f1ea9e3e1ec3dd6b8741415212c2b0ab9f8aa9
DjB0xa808c49f4c4258104830b0249d0d97e9a3d32665bc397edcc92310e347ebcaaa
JjH=:e:0x5B44e3381Fa00B52c2BE0bbCA93083E2A442bFfD:26607609/350:sk/tan:7/144
OjLL=:u:0x8656d38dCf8f7eD12c12fA51288007c9e63DdE45:160250012458/350:sk/tan:7/125
text/plain;charset=utf-8
E{"p":"brc-20","op":"transfer","tick":"sats","amt":"360195254.298908"}h!
{"p":"brc20-prog","op":"c","c":"0x81f0ef688b8dcad3f3ddaba69ad529a99f03a1b7","b":"AQlep7P/DGKHm7PdlJxM8G9xv3woHc8k0WPn/wL/Av8C/wL/Av8C/wL/Av8C/wL/Av8C/wL/Av8C/wI"}h!
{"p":"brc20-prog","op":"c","c":"0x62879BB3dD949c4CF06f71BF7c281DcF24D163e7","b":"AfZoFej/DIHw72iLjcrT892rpprVKamfA6G3/x8M/xY8yDlC2FeZrdD/IOD/Hgdn/x4C/x8CoP8eAf8RDmt1Kr5ddp8yKbANeu7c80YWFzDgIpliEXCyjVfdl8V1pxOAO1S8hXEMNr0QahNP/xAC6moGyA1E5W6sEj7fpL4seNwJB2Y9JxQigNKAqCquI9zA8ANrVyNo/sHpMHy0zRv/EBMMYmUfVLAZGJadhi49nEkFEMhenWcVfzkUuCNtldQihLGQCs7aQzAOWU9I0CIB+P8QB9UkdRqgGd2CVs9GPzL2JZO0GH9sxP8BBYx+oPC8UQUZ6LLSU7AzBa+ioGKoDa0cwP8fgP8QE7xkXjDaiIe0IQDUE+wyLnNJCUa5LAJ+fMfr2HGtQy1TjqsXqfqwzFViIUx7yP2G/xAGRRVVkhwyzzwq6rtT6GvL
myD+U28P2DGQgs2e55HnuyduTRbyrwLmBtC0YlVk8WKD/H0HkoJ0GHTClTnfrWNWpQMPoD+l21IaOd6cAgSGauLudRm259aIggioiffjXH57ex8bjBWrE2a1BrA8g1cpPDVcxHP8f"}h!
{"p":"brc20-prog","op":"c","c":"0x81f0ef688b8dcad3f3ddaba69ad529a99f03a1b7","b":"AQlep7P/DGKHm7PdlJxM8G9xv3woHc8k0WPn/wL/Av8C/wL/Av8C/wL/Av8C/wL/Av8C/wL/Av8C/wI"}h!
{"p":"brc20-prog","op":"c","c":"0x62879BB3dD949c4CF06f71BF7c281DcF24D163e7","b":"AfZoFej/DIHw72iLjcrT892rpprVKamfA6G3/x8M/xY8yDlC2FeZrdD/IOD/Hgdn/x4C/x8CoP8eAf8RDmt1Kr5ddp8yKbANeu7c80YWFzDgIpliEXCyjVfdl8V1pxOAO1S8hXEMNr0QahNP/xAC6moGyA1E5W6sEj7fpL4seNwJB2Y9JxQigNKAqCquI9zA8ANrVyNo/sHpMHy0zRv/EBMMYmUfVLAZGJadhi49nEkFEMhenWcVfzkUuCNtldQihLGQCs7aQzAOWU9I0CIB+P8QB9UkdRqgGd2CVs9GPzL2JZO0GH9sxP8BBYx+oPC8UQUZ6LLSU7AzBa+ioGKoDa0cwP8fgP8QE7xkXjDaiIe0IQDUE+wyLnNJCUa5LAJ+fMfr2HGtQy1TjqsXqfqwzFViIUx7yP2G/xAGRRVVkhwyzzwq6rtT6GvL
myD+U28P2DGQgs2e55HnuyduTRbyrwLmBtC0YlVk8WKD/H0HkoJ0GHTClTnfrWNWpQMPoD+l21IaOd6cAgSGauLudRm259aIggioiffjXH57ex8bjBWrE2a1BrA8g1cpPDVcxHP8f"}h!
DjB0x710845b687712fb35d592567dda041c37dd8445f5cb4464f6f9d79693ab11bb03
/ViaBTC/Mined by happytimes/,
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"ordi","amt":"967.24"}h!
DjB0x5fb231891a0ba085067ec7fd1da050a179bf3c228fc2edde53e07f85b5ff3eee
<j:lyU:to:BNB(BSC):0x5022aEfD479901b4689E0bb8b0009815e3fd37dBy
6j4h9Y:to:USDT(TRON):TA8hkJ1Et4ctZG2WbhZeTpMzh1uRndaB8n
<j:ukp:to:BNB(BSC):0xD7c67B35f146125dEa69E8D31d4bDd22aeCE71c9
8j6b5n:to:USDC:0x6a7196d0f79a3444F44801976d09658D8BF00f33
>stamp:{"p":"src-20","op":"tranJ
 sfer","tick":"MSKE","amt":96400}#
DjB0xc46eecefe97e779a53140645457cab6c1e22378fb89f957179dee8bb4e51d856
FjDOUT:4EC843332BA487E88339DE0F76E11DC03EFDCE0F4D9768DE81140FCA3F8D399D
2j0to:USDT(TRON):TWYJtzTTET7paa32Jz2H7z4nq56ncz4LBW
DjB0xd87d078f4bcede24a2ba8a2d8d0d7925dcb8166897a13cd90d3b0202df8d57c2
DjB0xa615390bdf6098c05cccea40f0d50ed59a753d04c7da4f877e0af355c6cafec3
DjB0xa842388af03c1ea2913179987a3f0aec9e11177ef5bfc01c4a418a1e4d580aa6
DjB0xe5a83e068979fd7b5033f067f785fccf85fa691201e86d374d0b68eb312151f7
DjB0x53cf8a17b87dea47688d878fe023243529a36bff963ef476782a49e466a42eb2
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"111795"}
DjB0xf3dfc24742d03be9c2e8d0acd48f36a6029c01e76dcbc547c1595427313eabd4
DjB0xbd73a62884d8bc110058af427cc2c2a05e9d42d3835773403911149422ab1532
DjB0x4f621f3b739a10b72a17f4651ae7058ef99960182a26eaa54981b1c3c2837d92
DjB0x4cac045249c5006e0d1ca5e68d749541a45616f4e7011b086ae2da1ed0cb5905
DjB0xbd93b322436a1cd8218679275168c613f08f1d04ecce8797a87e542c11664c17
DjB0x6c38234db5eaed4be395da9d081ea4f2bc9a22c5e44a9eaeadd25b040944cdce
DjB0xffb2a1af61f801b98c6e688a902ef3197666a3ba8268b81e40f07ea85ac949fa
DjB0x77166f9bbfcda5fa5fa01357b09b7dc50cf47be8adb1319b2a3c69099aa9fcf9
DjB0x795df904baf11b2708594cce5cb1cfdcfced34b1f4277d6ec028beccd7e443f4
GjE{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"1758857.45862479"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
DjB0x0fe649ad964fb0a91b5e5e6bedfd1fe3226febe2c02a14a243b385c56f4fead3
DjB0xfa6d733b5fafaeb33afce0aed75868dfbe30f958fe98c3a4067737c225e877ef
DjB0xc0d7000c570833fc0e4200d5754aaf62be23e3025f8ed3159dfb83c14bbfe47f
{jLx0x5b197285d07153769c0189ab5395071b5032af0f4b6aeddc9d662b30d8a968e6|depositor=bc1qaupwzxul96jw7x5jkad8mv2tthg7aezs0hdu2y|
Bj@52494842c0aed99a9ca1483cef97c5c6307acca164ee2a50e83bcaaa72c320036
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"212678"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
DjB0xf652913818f5d7ae09f5fd5bfeaa972613a303cbe5eebe53a65ad910041c2e07P4
DjB0xd38471744c1501983f6bdc8499d6d6c2b6c7dbf2bf5d7066b5babcac5672ef15
DjB0x1ffbd69bc4722411254ef6adcc6ca8e37084b8d270022573eec37ce4ee697433
DjB0x7c45bd994d4d68d4a83a001ef21f0cbc442e05fd622e0873c889b5bd6b741a76
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"Tslau","amt":"888888"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"Tslau","amt":"888888"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"Tslau","amt":"888888"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"Tslau","amt":"888888"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"Tslau","amt":"888888"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"13648454858"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"13648454858"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"13645454245"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"13645454245"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"14646484553"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"14646484553"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"14245424555"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"14245424555"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"21245248422"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"21245248422"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"13648454852"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"13648454852"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"13645424555"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"13645424555"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"14845484552"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"Vrqq","amt":"14845484552"}h!
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"743740.81962577"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"100073.28508773"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
GjE{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"1871349.49458592"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
FjD{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"129889.56457683"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"300"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"282"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"200"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"400"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"beat","amt":"268"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"rats","amt":"1000000"}h!
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"2850.7"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"31258585858"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"65581200000"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"88307320000"}h!
text/plain;charset=utf-8
D{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"12260863437.057"}h!
EjC{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"184859.6583831"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"2"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"2"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"4"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"400"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"80.6"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"DKOS","amt":"4120"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"4010"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"3334"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"TRUM","amt":"2700"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BIUR","amt":"1280"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTTY","amt":"2000"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"ligo","amt":"15000000"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"284949660000"}h!
>j<{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"2000000"}
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"3"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"2"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"1354"}h!
text/plain;charset=utf-8
:{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"1.999"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300.0616"}h!
text/plain;charset=utf-8
>{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300.0616"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"2426500000000"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"2861850000000"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3122076000000"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3369040000000"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"2535240000000"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4055688000000"}h!
text/plain;charset=utf-8
B{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3168888000000"}h!
text/plain;charset=utf-8
3{"p":"brc-20","op":"mint","tick":"nulix","amt":"1"}h!
text/plain;charset=utf-8
3{"p":"brc-20","op":"mint","tick":"avsor","amt":"1"}h!
text/plain;charset=utf-8
3{"p":"brc-20","op":"mint","tick":"tslau","amt":"1"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"20"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"2000000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"beat","amt":"20"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"beat","amt":"25"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"40"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FTSS","amt":"50"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3200000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"3000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"5000000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"4602154221"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"14269891944.42"}h!
text/plain;charset=utf-8
C{"p":"brc-20","op":"transfer","tick":"X@AGI","amt":"5000000000000"}h!
text/plain;charset=utf-8
G{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"38219273543.116923"}h!
text/plain;charset=utf-8
G{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"39513696086.595448"}h!
text/plain;charset=utf-8
G{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"13123190573.033596"}h!
text/plain;charset=utf-8
G{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"26603584554.661093"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"30"}h!
DjB0x5e2a1fdeb343663b8828c46a36377a16fd3203d15dd1a13713d07e626893d4e0
DjB0x9908f66d7522fdea86a02c07b75d6f890af87f3da526e3ce334194f7c41f2977
DjB0x8efaca4065a9954c01bf2d39c1d44c7551f5cd03f7dfa634093c938524736415
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"565"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"146738000000"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
SODA #8300 - Drawn May 23, 2026
dnamejSODA #8300edrawnlMay 23, 2026dseedjstretch 40hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
<meta charset="UTF-8"/><title>Bovine Racing Club</title><style>html,body{background:#080906 url(/content/ffc4dfb9f7babbbd148793446a3d2ff0f7c0c2daa4d3d60ef876646235fe7a53i0) center/cover fixed no-repeat}</style> <link rel="preconnect" href="https://fonts.googleapis.com"/> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/> <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&dM
isplay=swap" rel="stylesheet"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' 'unsafe-eval' data: blob: ws: wss: https:;"/><link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'%3E%3Ctext y='20' font-size='20'%3E%F0%9F%92%80%3C/text%3E%3C/svg%3E" type="image/svg+xml"/><style>body{margin:0;overflow:hidden;background:#050506;font-family:"CormoraM
nt Garamond",Palatino,"Times New Roman",serif;cursor:none;color:#efe6d6}#overlay,#p2p-lobby,#previewOverlay,#rulesOverlay{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'%3E%3Ctext y='20' font-size='20'%3E%F0%9F%92%80%3C/text%3E%3C/svg%3E") 16 16,auto}canvas{display:block;cursor:none;touch-action:none}#overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at 50% 28%,rgba(40,34,28,.28),transparent 52%),rgba(M
6,6,8,.72);color:#efe6d6;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;z-index:100;text-align:center;padding:28px 20px;overflow-y:auto;max-height:100vh;letter-spacing:.02em}#overlay h1{font-family:Cinzel,Palatino,serif;font-weight:600;font-size:clamp(1.7rem, 4.6vw, 2.7rem);margin:0;color:#f4ead8;letter-spacing:.18em;text-transform:uppercase;text-shadow:0 0 28px rgba(196,165,116,.22);line-height:1.15}#overlay p.subtitle{font-size:clamp(.92rem, 2.1vw, 1.12rem);margin:0 0 10px;coM
lor:#c4a574;font-style:italic;letter-spacing:.08em;text-shadow:none}button{margin-top:6px;padding:9px 22px;font-family:Cinzel,Palatino,serif;font-size:.78rem;font-weight:600;background:0 0;color:#f0e6d4;border:1px solid rgba(196,165,116,.55);cursor:pointer;text-transform:uppercase;letter-spacing:.16em;border-radius:1px;min-width:220px}button:disabled{background:0 0;color:rgba(240,230,212,.35);border-color:rgba(196,165,116,.18);cursor:not-allowed;opacity:1}button:hover:not(:disabled){background:rgba(196,165,116,.12)M
;border-color:#d4b896}#status{margin:8px 0 4px;font-size:.95rem;min-height:1.4em;color:rgba(239,230,214,.62);font-style:italic}#charIdInput{width:min(380px,82vw);padding:9px 12px;font-family:"Cormorant Garamond",Palatino,serif;font-size:1.05rem;background:rgba(12,12,14,.72);border:1px solid rgba(196,165,116,.35);color:#efe6d6;border-radius:1px;text-align:center;margin:6px 0 2px;letter-spacing:.04em}#charIdInput::placeholder{color:rgba(196,165,116,.45)}#movePad{position:absolute;left:10px;bottom:58px;width:132px;heiM
ght:132px;border-radius:16px;background:rgba(16,10,6,.3);border:1px solid rgba(201,162,39,.4);z-index:72;display:none;touch-action:none;pointer-events:auto}#movePad .pad-cross{position:absolute;inset:10px;border-radius:12px;background:linear-gradient(rgba(232,213,163,.28),rgba(232,213,163,.28)) center/10px 70% no-repeat,linear-gradient(rgba(232,213,163,.28),rgba(232,213,163,.28)) center/70% 10px no-repeat;pointer-events:none}#movePad .pad-knob{position:absolute;width:36px;height:36px;margin:-18px 0 0 -18px;left:50%M
;top:50%;border-radius:50%;background:rgba(30,232,255,.35);border:1px solid rgba(30,232,255,.7);pointer-events:none}#throttleIndicator{display:none!important}#throttleFill{position:absolute;bottom:4px;left:4px;width:calc(100% - 8px);background:linear-gradient(to top,#6b2b1f,#d4af37);border-radius:9999px;height:0%;box-shadow:0 0 12px #0ff}#previewOverlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.22);color:#e8d5a3;display:none;align-items:center;justify-content:center;flex-directionM
:column;z-index:100;padding:clamp(20px,5vw,40px);box-sizing:border-box}#previewOverlay p{font-size:clamp(1.35rem, 3.8vw, 1.7rem);margin-bottom:auto;text-shadow:0 0 14px #7a4a1a}#previewButtons{display:flex;gap:clamp(15px,4vw,30px);margin-top:auto;width:100%;justify-content:center}#previewButtons button{background:0 0!important;border:3px solid #c9a227;color:#d4af37;text-shadow:0 0 12px #7a4a1a;box-shadow:0 0 22px rgba(196,162,106,.55);padding:clamp(12px,3vw,18px) clamp(30px,6vw,45px);font-size:clamp(1.2rem, 3.5vw, M
1.6rem)}#p2p-lobby{position:fixed;inset:0;display:none;justify-content:center;align-items:center;z-index:2000;background:rgba(0,0,0,.95)}.lobby-box{background:rgba(10,10,12,.94);border:1px solid rgba(196,165,116,.38);box-shadow:0 24px 80px rgba(0,0,0,.55);padding:32px 36px;max-width:480px;width:92%;max-height:92vh;overflow-y:auto;border-radius:2px}.lobby-title{text-align:center;font-family:Cinzel,Palatino,serif;font-size:22px;font-weight:600;color:#f4ead8;letter-spacing:.2em;text-shadow:none;margin-bottom:6px}.lobbM
y-sub{text-align:center;color:#c4a574;font-size:11px;letter-spacing:.22em;margin-bottom:22px;text-transform:uppercase}.lobby-label{font-family:Cinzel,Palatino,serif;font-size:10px;color:#c4a574;margin-bottom:6px;display:block;letter-spacing:.16em;text-transform:uppercase}.lobby-field{width:100%;background:rgba(36,22,12,.9);border:1px solid #8a6a3b;color:#e8d5a3;font-family:monospace;font-size:13px;padding:9px 11px;outline:0;margin-bottom:10px;border-radius:4px}textarea.lobby-field{resize:vertical;min-height:55px}.lM
obby-btn{width:100%;padding:10px 14px;background:0 0;border:1px solid rgba(196,165,116,.5);color:#f0e6d4;font-family:Cinzel,Palatino,serif;font-size:11px;font-weight:600;letter-spacing:.16em;cursor:pointer;text-transform:uppercase;margin-bottom:8px;border-radius:1px;min-width:0}.lobby-btn:hover:not(:disabled){background:rgba(196,165,116,.12)}.lobby-btn:hover{background:rgba(138,58,36,.45);box-shadow:0 0 18px #8a3a24}.lobby-btn.green{border-color:#c9a227;color:#c4a36a;background:rgba(138,58,36,.28)}.lobby-btn.small{M
padding:8px;font-size:11px}.lobby-or{text-align:center;color:#666;font-size:11px;letter-spacing:4px;margin:12px 0}.code-out{background:#1c120c;border:1px solid #8a6a3b;padding:10px;margin:8px 0;font-size:11px;color:#e8d5a3;word-break:break-all;max-height:80px;overflow-y:auto;cursor:pointer;font-family:monospace;border-radius:4px;display:block}#liveGamesContainer{margin-top:12px;border-top:1px solid #8a6a3b;padding-top:12px}#liveGamesList{max-height:240px;overflow-y:auto}.live-game-item{background:rgba(107,43,31,.35M
);border:1px solid #8a6a3b;margin:6px 0;padding:10px;border-radius:4px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:#0f0!important}.live-game-item.stale{background:rgba(255,60,60,.12);border:1px solid #f66}.live-game-item.stale strong{color:#f55!important}.live-game-item.stale small{color:#faa!important}.live-game-item>div{color:#e8d5a3}.live-game-item strong{color:#e8d5a3}.live-game-item small{color:#d4af37}.live-game-item:hover{background:rgba(138,58,36,.4)}#lobby-status{textM
-align:center;font-size:1.25rem;padding:10px;color:#d4af37;min-height:1.6em;font-weight:700}#hud{position:absolute;top:16px;left:16px;color:#0a0;font-size:clamp(.55rem, 1.25vw, .65rem);text-shadow:0 0 6px #040;pointer-events:none;z-index:50;opacity:.9}#customCursor{position:absolute;width:20px;height:20px;background:radial-gradient(circle,#d4af37 30%,transparent 70%);border:2px solid #c9a227;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);z-index:200;opacity:.9;mix-blend-mode:difference;displayM
:none}#pauseHint{position:absolute;top:18px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.85);color:#d4af37;padding:8px 16px;border:2px solid #c9a227;border-radius:8px;font-size:clamp(.75rem, 2vw, .95rem);display:none;z-index:300;text-align:center;max-width:90vw;pointer-events:none}#chat-container,#chatModeHint,#cpIndicator,#flagCarryHint,#freezeCharge,#scoreboard{display:none!important}#chat-container{position:fixed;bottom:155px;left:20px;width:clamp(280px,38vw,340px);z-index:150;display:none}#chat-meM
ssages{max-height:240px;overflow-y:auto;background:rgba(0,0,0,.75);padding:8px;border:1px solid #8a6a3b;border-radius:4px}.chat-msg{color:#ddd;font-size:13px;padding:2px 0;word-break:break-word}#chat-input{width:100%;padding:8px;background:rgba(0,0,0,.85);border:1px solid #8a6a3b;color:#e8d5a3;font-family:monospace;font-size:13px;margin-top:6px;border-radius:4px;outline:0}#chat-input:focus{border-color:#d4af37;box-shadow:0 0 8px #8a5a2a}#chatModeHint{position:absolute;bottom:355px;left:20px;background:rgba(255,0,0,M
.85);color:#fff;padding:8px 16px;border-radius:4px;font-size:13px;display:none;z-index:160;pointer-events:none}#freezeCharge{position:absolute;bottom:25px;right:25px;width:220px;z-index:60;pointer-events:none}#freezeCharge .label{color:#d4af37;font-size:clamp(.7rem, 1.5vw, .85rem);text-shadow:0 0 8px #7a4a1a;margin-bottom:3px}#freezeCharge .bar-outer{height:6px;background:#111;border:2px solid #c9a227;border-radius:4px;overflow:hidden}#freezeCharge .bar-inner{height:100%;width:0%;background:linear-gradient(90deg,#0M
ff,#88f);transition:width .1s linear}#freezeCharge.lava-ready .label{color:#f80;text-shadow:0 0 8px #f80}#freezeCharge.lava-ready .bar-outer{border-color:#f80}#freezeCharge.lava-ready .bar-inner{background:linear-gradient(90deg,#f40,#fa0)}#flagCarryHint{position:absolute;top:14px;left:50%;transform:translateX(-50%);color:#fff;font-size:clamp(.76rem, 1.75vw, .96rem);font-weight:700;text-shadow:0 1px 2px #000;opacity:.85;pointer-events:none;z-index:110;display:none;font-family:monospace;letter-spacing:.04em;backgrounM
d:rgba(0,0,0,.55);padding:4px 14px;border-radius:6px}#ctfHud{position:absolute;top:2px;left:50%;transform:translateX(-50%);z-index:400;text-align:center;pointer-events:none;font-family:monospace;background:rgba(0,0,0,.55);padding:4px 16px 6px;border-radius:8px;border:1px solid rgba(0,255,255,.2)}#ctfScoreLine{color:#fff;font-size:clamp(.7rem, 1.5vw, .8rem);text-shadow:0 1px 2px #000;margin-bottom:2px}#ctfTeamLine{color:#d4af37;font-size:clamp(.6rem, 1.2vw, .7rem);text-shadow:0 1px 2px #000}#cpIndicator{position:absM
olute;bottom:80px;right:25px;color:#d4af37;font-size:clamp(.85rem, 2vw, 1rem);text-shadow:0 0 10px #7a4a1a;background:rgba(0,0,0,.6);padding:4px 10px;border-radius:6px;display:none;z-index:65;pointer-events:none;white-space:nowrap}#scoreboard{position:absolute;bottom:25px;left:20px;width:clamp(280px,38vw,340px);z-index:55;background:rgba(0,0,0,.75);border:1px solid #8a6a3b;border-radius:4px;padding:8px;display:none}#scoreboard .title{color:#d4af37;font-size:13px;margin-bottom:6px;text-align:center}#scoreList{color:M
#ddd;font-size:13px;line-height:1.4}#rulesOverlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.92);color:#e8d5a3;display:none;align-items:center;justify-content:center;flex-direction:column;z-index:400;padding:clamp(20px,5vw,40px);overflow-y:auto;text-align:center;box-sizing:border-box}#rulesOverlay h2{font-size:clamp(1.8rem, 5vw, 2.8rem);margin:0 0 20px 0;text-shadow:0 0 16px #7a4a1a;color:#d4af37}#rulesOverlay ul{list-style:none;padding:0;max-width:820px;text-align:left;margin:0 auM
to 24px;font-size:clamp(.95rem, 2.4vw, 1.15rem)}#rulesOverlay li{margin:8px 0}#rulesOverlay p{max-width:820px;margin:0 auto 18px;text-align:left;font-size:clamp(.95rem, 2.4vw, 1.15rem);line-height:1.45}#rulesOverlay .close-btn{background:#8a3a24;color:#f3e6c4;margin-top:20px}#pauseRulesBtn{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);background:rgba(107,43,31,.45);border:3px solid #c9a227;color:#d4af37;padding:clamp(8px,2.5vw,14px) clamp(20px,5vw,32px);font-size:clamp(1.1rem, 3vw, 1.4rem);font-M
weight:700;text-transform:uppercase;border-radius:12px;box-shadow:0 0 22px #8a5a2a;cursor:pointer;z-index:350;display:none}#pauseRulesBtn:hover{background:rgba(138,58,36,.5)}#lavaPowerHint{position:absolute;top:80px;left:50%;transform:translateX(-50%);background:rgba(255,80,0,.9);color:#fff;padding:8px 24px;border:3px solid #ff0;border-radius:9999px;font-size:1.1rem;font-weight:700;display:none;z-index:120;text-shadow:0 0 12px #ff0;box-shadow:0 0 25px #f80}#cameraCycleBtn,#pauseBtn{position:absolute;right:16px;backM
ground:rgba(107,43,31,.55);border:3px solid #c9a227;color:#d4af37;font-size:1.35rem;font-weight:700;width:48px;height:48px;border-radius:50%;display:none;align-items:center;justify-content:center;z-index:5000;box-shadow:0 0 18px #8a5a2a;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}#jumpBtn{display:none;position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:rgba(16,10,6,.3);border:1px solid rgba(20M
1,162,39,.4);color:#e8d5a3;font-size:.8rem;font-weight:700;width:168px;height:38px;border-radius:14px;display:none;align-items:center;justify-content:center;z-index:72;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none}#jumpBtn:active{background:rgba(16,10,6,.5);color:#f3e6c4}#cameraCycleBtn{display:none;top:18px}#pauseBtn{display:none;top:78px}#micBtn{position:absolute;bottom:55px;right:61px;z-index:70;width:28px;height:28px;padding:0;font-size:.55M
rem;line-height:1;font-weight:700;font-family:monospace;background:#04181c;border:1px solid #1ee8ff;color:#1ee8ff;border-radius:6px;cursor:pointer;pointer-events:auto;touch-action:manipulation;display:none}#micBtn.on{background:#1ee8ff;color:#04181c;border-color:#f5ff7a}#cameraCycleBtn:active,#pauseBtn:active{background:#6b2b1f;color:#f3e6c4}#clubMixer{position:fixed;right:16px;bottom:18px;z-index:440;width:168px;padding:10px 12px 12px;background:rgba(10,10,12,.82);border:1px solid rgba(196,165,116,.35);border-radiM
us:2px;color:#efe6d6;font-family:Cinzel,Palatino,serif;pointer-events:auto;display:none}#clubMixer .mix-title{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#c4a574;margin-bottom:8px}#clubMixer label{display:block;font-size:10px;letter-spacing:.08em;margin:6px 0 0;color:#efe6d6}#clubMixer input[type=range]{width:100%;margin-top:4px;accent-color:#c4a574;cursor:pointer}#clubDockToggle{position:absolute;top:12px;left:12px;z-index:430;width:28px;height:28px;padding:0;border-radius:8px;border:1px solM
id rgba(255,255,255,.12);background:rgba(18,18,20,.92);color:#eee;font-size:14px;line-height:26px;text-align:center;cursor:pointer;display:none}#clubDock.collapsed{width:28px;height:28px;padding:0;overflow:hidden;border-radius:8px}#clubDock.collapsed #clubDockBody,#clubDock.collapsed .panel{display:none!important}#clubDock{position:absolute;top:12px;left:12px;width:236px;max-height:calc(100vh - 24px);overflow-y:auto;padding-top:36px;z-index:420;display:none;pointer-events:auto;font-family:ui-sans-serif,system-ui,-aM
pple-system,sans-serif;background:rgba(18,18,20,.92);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:10px 10px 12px;box-shadow:0 8px 28px rgba(0,0,0,.35);backdrop-filter:blur(14px);color:#e8e6e3}#clubDock .panel{background:0 0;border:none;box-shadow:none;border-radius:0;padding:8px 2px 10px;margin:0 0 4px;border-bottom:1px solid rgba(255,255,255,.06);color:#e8e6e3}#clubDock .panel:last-child{border-bottom:none;margin-bottom:0}#clubDock h3{margin:0 0 6px;font-size:10px;font-weight:600;letter-spacinM
g:.08em;text-transform:uppercase;color:rgba(255,255,255,.42)}#clubRoleLine{font-size:11px;color:rgba(255,255,255,.55);margin-bottom:6px}#clubDock button{width:100%;margin:3px 0 0;padding:5px 8px;font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);color:#f2f1ee;box-shadow:none}#clubDock button:hover:not(:disabled){background:rgba(255,255,255,.11)}#clubDock button:disabled{opacity:.45;background:rgba(255,255,255,M
.04)}#clubPlayerList{font-size:11px}.club-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.05)}.club-row:last-child{border-bottom:none}.club-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:118px;font-size:11px}.club-tag{font-size:9px;letter-spacing:.04em;padding:1px 6px;border-radius:99px;border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.55)}.club-tag.host{color:#e6c36a;border-color:rgba(230,195,10M
6,.35)}.club-tag.speak{color:#7bcfa0;border-color:rgba(123,207,160,.35)}.club-tag.wait{color:#8bb4e8;border-color:rgba(139,180,232,.35)}#clubDock button{min-width:0;width:100%;margin-top:4px;padding:6px 8px;font-size:10px;letter-spacing:.1em}#clubDock .club-actions button{width:auto;display:inline-block;margin:0 0 0 4px;padding:3px 8px;font-size:10px;min-width:0;pointer-events:auto;cursor:pointer}#clubMicBtn,#clubMuteBtn,#clubRoomMuteBtn,#clubScreenBtn,#clubSpeakBtn,#clubWalkBtn{width:100%;margin-top:4px}#clubMicHiM
nt{font-size:10px;color:rgba(255,255,255,.38);margin-top:6px}#screenUrlInput{width:100%;box-sizing:border-box;margin:4px 0;padding:6px 8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:#eee;border-radius:8px;font-family:inherit;font-size:11px}#stageScreenFrame{position:fixed;left:0;top:0;width:1280px;height:720px;transform-origin:0 0;pointer-events:none;z-index:1;overflow:hidden;border:2px solid rgba(201,162,39,.55);border-radius:4px;background:#07060a;display:none}#stageScreenFrame.iM
nteract{pointer-events:auto;z-index:3}#stageScreenFrame iframe,#stageScreenFrame img{width:100%;height:100%;border:0;background:#000;pointer-events:inherit}canvas{position:fixed!important;inset:0;z-index:2!important;touch-action:none;background:0 0!important}</style> <script type="importmap">{
"three": "/content/0d013bb60fc5bf5a6c77da7371b07dc162ebc7d7f3af0ff3bd00ae5f0c546445i0",
"three/addons/loaders/GLTFLoader.js": "/content/af27eb654e3f1ce4036fd5b415fe441202f0c784e3e1e03cb63890b5e820297ci0",
addons/loaders/DRACOLoader.js": "/content/701931ffd87e9a547834542357cbf5d975b740073aec9eeb62ef96254f570520i0"
}</script> </head><body><div id="bovineBoot" style="position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#080906 url(/content/ffc4dfb9f7babbbd148793446a3d2ff0f7c0c2daa4d3d60ef876646235fe7a53i0) center/cover no-repeat;color:#f3ead6;font-family:Palatino,Georgia,serif;letter-spacing:.18em;text-align:center;text-shadow:0 2px 12px #000"><bM
 style="color:#d4b46a;font-size:24px">BOVINE RACING CLUB</b><div style="margin-top:12px;font-size:14px">RESOLVING VENUE
</div><small style="opacity:.55;margin-top:16px">0rdinals.com
 sat /at/-1</small></div>
  var GAME_SAT="2005686177378564";
  var boot=document.getElementById("bovineBoot");
  function hide(){ if(boot) boot.remove(); }
  try{ framed=window.top!==window.self; }catch(e){ framed=true; }
  if(!framed){ hide(); return; }
  fetch("/r/sat/"+GAME_SAT+"/at/-1",{M
cache:"no-store"}).then(function(r){return r.json();}).then(function(j){
    if(!j||!j.id){ hide(); return; }
    var parts=["sat="+GAME_SAT];
      var hash=(location.hash||"").replace(/^#/,"");
      var qs=new URLSearchParams((location.search||"").replace(/^\?/,"")+"&"+hash);
      var room=(qs.get("room")||"").toUpperCase();
      if(/^[A-Z0-9]{4,8}$/.test(room)) parts.push("room="+room);
      var wallet=qs.get("wallet")||qs.get("inscriptionId")||"";
      if(/^[0-9a-f]{64}i\d+$/i.test(wallet)) parts.M
push("wallet="+wallet);
    var dest="https://0rdinals.com/content/"+j.id+"#"+parts.join("&");
    try{ window.top.location.replace(dest); }catch(e){ hide(); }
  }).catch(function(){ hide(); });
window.__BIPTHIS_ID=window.__BIPTHIS_ID||(function(){try{var q=new URLSearchParams((location.hash||'').replace(/^#/,''));return q.get('wallet')||'';}catch(e){return '';}})();
</script><div id="customCursor"></div><div id="clubDock"><button id="clubDockToggle" type="button" title="Hide menu">
><div id="clubDockBody"><div class="panel"><h3>AUDITORIUM</h3><div id="clubRoleLine">Role: member
 floor is open</div><button id="clubWalkBtn" type="button">Walk (back to avatar)</button>
<button id="bovineInsideBtn" type="button">To the dome</button>
<button id="bovineRailBtn" type="button">To the outer rail</button><button id="clubSpeakBtn">Open my mic</button><button id="clubMicBtn" type="button">Enable microphone</button><button id="clubMuteBtn" type="button" style="display:none">Mute my mic</button><button iM
d="clubRoomMuteBtn" type="button" style="display:none">Mute room</button><div id="clubMicHint" style="font-size:10px;color:#d4af37;margin-top:6px;opacity:.85">Mic only turns on from these buttons (needed inside iframes)</div></div><div class="panel" id="clubPeoplePanel"><h3>IN THE ROOM</h3><div id="clubPlayerList">
</div></div><div class="panel" id="clubScreenPanel" style="display:none"><h3>STAGE SCREEN</h3><input id="screenUrlInput" placeholder="card cycles the field" readonly/><button id="clubScreenBtn" style="M
display:none">Show on stage</button><button id="clubUnmuteBtn" type="button">Unmute video</button><button id="bovinePostBtn" type="button">POST
 lock the heat</button><button id="clubShareStopBtn" type="button" style="display:none">Stop share</button><div style="font-size:10px;color:#d4af37;margin-top:6px;opacity:.8">Host only
 many sites block embeds</div></div></div></div><div id="clubMixer" aria-label="Audio mix"> <div class="mix-title">Mix</div> <label>Voices <input id="mixVoice" type="range" min="0" max="2M
00" value="140"/></label> <label>Track <input id="mixJumbo" type="range" min="0" max="100" value="28"/></label> </div> <div id="stageScreenFrame"><audio id="stageShareAudio" autoplay playsinline></audio><video id="stageShareVideo" autoplay playsinline muted style="display:none"></video><iframe id="stageIframe" allow="autoplay; encrypted-media; picture-in-picture; fullscreen; accelerometer; gyroscope" allowfullscreen referrerpolicy="strict-origin-when-cross-origin"></iframe></div><div id="throttleIndicator"><div id=M
"throttleFill"></div></div><div id="movePad" aria-hidden="true"><div class="pad-cross"></div><div class="pad-knob" id="movePadKnob"></div></div><button id="jumpBtn">JUMP</button><button id="cameraCycleBtn">C</button><button id="pauseBtn">P</button><button id="micBtn" title="Voice chat" style="display:none!important">MIC</button><div id="overlay"><h1>Bovine Racing Club</h1><p class="subtitle">Trackside salon
 watch the rail or the jumbotron</p><div id="status">Loading core assets...</div><input id="charIdInput" tyM
pe="text" placeholder="Your skull inscription"/><button id="enterCustomBtn">Present skull</button><select id="mapSelect" style="display:none"><option value="club-hall" selected="selected">Club</option></select><button id="rulesBtn">House rules</button><button id="startBtn" disabled="disabled">Enter the club</button><button id="multiBtn">Paddock lounge</button></div><div id="p2p-lobby"><div class="lobby-box"><div class="lobby-title">BOVINE RACING CLUB</div><div class="lobby-sub">PADDOCK LOUNGE</div><label class="lobM
by-label">Your Name</label><input id="lobbyNameInput" class="lobby-field" placeholder="Your rail name" maxlength="20" value="Guest"/><div id="liveGamesContainer"><div class="lobby-label" style="margin-top:4px">Open rooms</div><div id="liveGamesList"><div style="color:#0af;padding:8px;text-align:center;font-size:.85rem"> Looking for rooms
 </div></div><button class="lobby-btn small green" id="refreshLiveBtn" style="margin-top:8px"> REFRESH </button></div><button class="lobby-btn" id="lobbyHostBtn" style="margin-toM
p:14px"> Host a race </button><div id="lobbyOfferCode" class="code-out" style="display:none"></div><button id="lobbyCopyOffer" style="display:none"></button><button id="searchLiveGamesBtn" style="display:none"></button><button id="newInviteBtn" style="display:none"></button><button id="manualPublishBtn" style="display:none"></button><div id="extraOffers" style="display:none"></div><textarea id="lobbyAnswerInput" style="display:none"></textarea><button id="lobbyAcceptBtn" style="display:none"></button><textarea id="M
lobbyPeerCode" style="display:none"></textarea><button id="lobbyJoinBtn" style="display:none"></button><div id="lobbyAnswerCode" class="code-out" style="display:none"></div><button id="lobbyCopyAnswer" style="display:none"></button><div id="lobbyHostControls" style="display:none"><div class="lobby-label" style="margin-top:8px">Connected players</div><div id="hostPlayerList" style="background:rgba(36,22,12,.7);border:1px solid #8a6a3b;border-radius:6px;padding:8px;font-size:.85rem;color:#e8d5a3;max-height:120px;overM
flow-y:auto;margin-bottom:8px">
 </div><button class="lobby-btn start-btn" id="lobbyStartBtn"> Enter the rail </button><div style="color:#0af;font-size:.8rem;margin-top:8px;text-align:center"> Live listing updates automatically
 late joiners can still find this race </div></div><button class="lobby-btn green" id="lobbyReturnToGameBtn" style="display:none;margin-top:10px"> RETURN TO THE RAIL </button><div id="lobby-status">Enter a name
 Host a race or join one below</div></div></div><div id="previewOverlay">M
<p>CUSTOM CHARACTER LOADED SUCCESSFULLY</p><div id="previewButtons"><button id="startSingleFromPreview">Enter the club</button><button id="goToMultiFromPreview">GO TO THE PADDOCK</button></div></div><div id="rulesOverlay"><h2>HOUSE RULES</h2><ul><li>MOUSE LEFT / RIGHT
 WALK FORWARD &nbsp;|&nbsp; SHIFT+W
 BACK UP</li><li>A / D
 SIDESTEP</li><li>SPACE
 JUMP</li><li>LEFT MOUSE
 TOSS A FREEZE BALL (playful)</li><li>C
 CAMERA &nbsp;|&nbsp; P
 PAUSE / ORBIT</li><lM
 allow the browser prompt
 floor is open</li><li>L
 LOBBY WHILE PAUSED &nbsp;|&nbsp; ESC
 CHAT / RELEASE POINTER</li><li>MOBILE: pad to walk, J jump, drag right to turn</li></ul><p><strong>BOVINE RACING CLUB:</strong> A virtual auditorium. Walk the floor, gather at the stage, request the mic like an X Space. Everyone may speak after allowing their mic. Voices slider stays in Mix. Host still drives the stage screen.</p><button class="close-btn" id="closeRules">BACK TO MENU / GAME</button></div><buttM
on id="pauseRulesBtn">House rules</button><div id="hud"> CAM: <span id="camMode">CHASE</span>
 IN ROOM: <span id="playerCount">1</span></div><div id="pauseHint"> Paused
 <strong>L</strong> members lounge
 <strong>P</strong> return </div><div id="chatModeHint"> MENU
 ESC or Walk to return to your avatar </div><div id="chat-container"><div id="chat-messages"></div><input id="chat-input" type="text" placeholder="Type message and press ENTER to send..." maxlength="200"/></div><div id="freezeCharge"><div classM
="label" id="chargeLabel">FREEZE CHARGE</div><div class="bar-outer"><div id="chargeBar" class="bar-inner"></div></div></div> <script src="/r/sat/957337645267059/at/-1/content"></script> <script type="text/placeholder-removed"></script> <div id="cpIndicator" style="display:none"></div> <div id="scoreboard" style="display:none"><div id="scoreList"></div></div> <div id="flagCarryHint" style="display:none"></div> <div id="lavaPowerHint" style="display:none"></div> <div id="ctfHud" style="display:none"><div id="ctfScoreM
Line"></div><div id="ctfTeamLine"></div></div> <canvas id="ctfRadar" width="120" height="120" style="display:none"></canvas> <button id="teamToggleBtn" type="button" style="display:none"></button> <script type="module">import*as THREE from"three";import{GLTFLoader}from"three/addons/loaders/GLTFLoader.js";import{DRACOLoader}from"three/addons/loaders/DRACOLoader.js";window.THREE=THREE;window.GLTFLoader=GLTFLoader;window.DRACOLoader=DRACOLoader;const DRACO_WRAPPER_ID="1c59d4d184bfaadf33e641456d540dba14edc8d383d84634a4M
18d75f149e1683i1",DRACO_WASM_ID="1c59d4d184bfaadf33e641456d540dba14edc8d383d84634a418d75f149e1683i2";let _gltfLoader=null;async function makeGltfLoader(){window.makeGltfLoader=makeGltfLoader;if(_gltfLoader)return _gltfLoader;const e=new GLTFLoader;try{const t=new DRACOLoader;t._initDecoder=function(){if(this.decoderPending)return this.decoderPending;const e=this;return this.decoderPending=Promise.all([fetch("/content/"+DRACO_WRAPPER_ID).then(e=>e.text()),fetch("/content/"+DRACO_WASM_ID).then(e=>e.arrayBuffer())]).tM
hen(t=>{const a=new Function(t[0]+"\nreturn DracoDecoderModule;")();return new Promise((o,n)=>{const r=a({wasmBinary:t[1],onModuleLoaded:t=>{e._draco=t,o(t)}});r&&r.then&&r.then(t=>{e._draco||(e._draco=t,o(t))}).catch(n)})}),this.decoderPending},t.preload=function(){return this._initDecoder(),this};const a=t.decodeDracoFile.bind(t);t.decodeDracoFile=function(e,t,o,n,r,s){const l={};if(n)for(const e in n){const t=n[e];l[e]="function"==typeof t?t.name:t}return a(e,function(e){!e||e.attributes,t(e)},o,l,r,function(e){M
s&&s(e)})},e.setDRACOLoader(t)}catch(e){}return _gltfLoader=e,e}const NOSTR_RELAYS=["wss://nos.lol","wss://nostr.wine","wss://relay.damus.io","wss://relay.nostr.band","wss://nostr-pub.wellorder.net","wss://relay.primal.net","wss://nostr.orangepill.dev"],KENOBI_GAME_NAMESPACE="CSCSC",KENOBI_HEARTBEAT_INTERVAL=8e3,LIVE_GAME_MAX_AGE_SEC=120,LIVE_GAME_DROP_SEC=180,LIVE_SEARCH_SINCE_SEC=900;let nostrSecretKey=null,nostrPubkey=null;const liveGamesByRoom=new Map;let liveListRefreshTimer=null;function initNostrKeys(){if(noM
strSecretKey)return!0;if(void 0===window.NostrSign)return!1;try{return nostrSecretKey=window.NostrSign.generateSecretKey(),nostrPubkey=window.NostrSign.getPublicKey(nostrSecretKey),!0}catch(e){return!1}}let nostrSockets=[],nostrRoomId=null,kenobiHeartbeatTimer=null,lastConnectTime=0,isHostWithKenobi=!1;function attachNostrHandlers(e,t){e.onmessage=e=>{try{const t=JSON.parse(e.data);if("EVENT"===t[0]&&t[2]&&30311===t[2].kind){if(t[2].tags.some(e=>"t"===e[0]&&"CSCSC"===e[1])){t[2].tags.find(e=>"answer"===e[0])?handleM
AnswerEvent(t[2]):handleLiveGameEvent(t[2])}}}catch(e){}},e.onerror=()=>e.onclose=()=>{nostrSockets=nostrSockets.filter(t=>t!==e&&t.readyState!==WebSocket.CLOSED)}}function subscribeLiveFilter(e,t){if(e.readyState!==WebSocket.OPEN)return;const a=Math.floor(Date.now()/1e3),o=(t?"search-":"live-")+Date.now()+"-"+Math.random().toString(36).slice(2,6),n={kinds:[30311],"#t":["CSCSC"],since:a-900};try{e.send(JSON.stringify(["REQ",o,n]))}catch(e){}}function connectNostrRelays(e=!1,t=!1){const a=Date.now();if(!t&&a-lastConM
nectTime<(e?1200:2500))return void(e&&nostrSockets.forEach(e=>subscribeLiveFilter(e,!0)));lastConnectTime=a,nostrSockets=nostrSockets.filter(e=>e.readyState===WebSocket.OPEN||e.readyState===WebSocket.CONNECTING);const o=new Set(nostrSockets.map(e=>e._relayUrl).filter(Boolean));NOSTR_RELAYS.forEach(t=>{if(o.has(t)){const a=nostrSockets.find(e=>e._relayUrl===t);return void(a&&a.readyState===WebSocket.OPEN&&subscribeLiveFilter(a,e))}try{const a=new WebSocket(t);a._relayUrl=t,a.onopen=()=>{subscribeLiveFilter(a,e)},attM
achNostrHandlers(a,t),nostrSockets.push(a)}catch(e){}}),liveListRefreshTimer||(liveListRefreshTimer=setInterval(renderLiveGamesList,3e3))}function getMapDisplayName(e){const t=MAP_DEFS[e||currentMapId];return t&&t.name||e||"Grassy Dunes"}function publishKenobiHeartbeat(e,t){if(!nostrRoomId)return;0===nostrSockets.filter(e=>e.readyState===WebSocket.OPEN).length&&connectNostrRelays(!1,!0);const a=initNostrKeys(),o=getMapDisplayName(currentMapId),n=null!=t?t:1+remotePlayers.size,r=(document.getElementById("lobbyNameInM
put")&&document.getElementById("lobbyNameInput").value.trim()||(myPlayerID||"Host").split("-")[0]||"Host").slice(0,20),s="Paddock",l=`Paddock
 ${n} Racers`,i={kind:30311,created_at:Math.floor(Date.now()/1e3),tags:[["d",nostrRoomId],["t","CSCSC"],["t",s],["title",l],["status","live"],["offer",e||""],["players",String(n)],["map","Paddock"],["host",r]],content:l};let c=i;if(a)try{c=window.NostrSign.finalizeEvent(i,nostrSecretKey)}catch(e){}let d=0;nostrSockets.forEach(e=>{if(e.readyState===WebSocket.OPEN)tryM
{e.send(JSON.stringify(["EVENT",c])),d++}catch(e){}}),0===d&&connectNostrRelays(!1,!0)}function publishAnswerToNostr(e,t){0===nostrSockets.length&&connectNostrRelays(!0);const a=initNostrKeys(),o={kind:30311,created_at:Math.floor(Date.now()/1e3),tags:[["t","CSCSC"],["offer",e],["answer",t],["type","answer"]],content:"Answer for offer"};let n=o;if(a)try{n=window.NostrSign.finalizeEvent(o,nostrSecretKey)}catch(e){}nostrSockets.forEach(e=>{e.readyState===WebSocket.OPEN&&e.send(JSON.stringify(["EVENT",n]))})}function sM
tartKenobiLobbyPing(e){kenobiHeartbeatTimer&&clearInterval(kenobiHeartbeatTimer),nostrRoomId="pod-"+Math.random().toString(36).substring(2,11),isHostWithKenobi=!0,connectNostrRelays(!1,!0);const t=()=>{publishKenobiHeartbeat(document.getElementById("lobbyOfferCode")&&document.getElementById("lobbyOfferCode").textContent||hostOfferCodes&&hostOfferCodes[0]||e,1+remotePlayers.size)};setTimeout(t,600),setTimeout(t,2e3),kenobiHeartbeatTimer=setInterval(t,8e3),window._kenobiVisBound||(window._kenobiVisBound=!0,document.aM
ddEventListener("visibilitychange",()=>{"visible"===document.visibilityState&&isHost&&isHostWithKenobi&&nostrRoomId&&t()}))}function handleLiveGameEvent(e){const t=e.tags.find(e=>"d"===e[0]),a=t?t[1]:null;if(a&&a===nostrRoomId)return;const o=e.tags.find(e=>"offer"===e[0]);if(!o||!o[1])return;const n=o[1],r=e.tags.find(e=>"title"===e[0]),s=e.tags.find(e=>"players"===e[0]),l=e.tags.find(e=>"map"===e[0]),i=e.tags.find(e=>"host"===e[0]),c=s&&parseInt(s[1],10)||1,d=l?getMapDisplayName(l[1]):"Map",u=i?i[1]:"",m=r?r[1]:`$M
 ${c} Players`,p=a||n.substring(0,48),y=liveGamesByRoom.get(p);y&&e.created_at<y.createdAt||(liveGamesByRoom.set(p,{offer:n,title:m,players:c,mapName:d,createdAt:e.created_at,updatedAt:Date.now()}),renderLiveGamesList())}function renderLiveGamesList(){const e=document.getElementById("liveGamesList");if(!e)return;const t=Date.now()/1e3;for(const[e,a]of liveGamesByRoom)t-a.createdAt>180&&liveGamesByRoom.delete(e);const a=[];for(const[e,o]of liveGamesByRoom)t-o.createdAt<=120&&a.push({key:e,...o}M
);a.sort((e,t)=>t.createdAt-e.createdAt),a.length?(e.innerHTML="",a.forEach(t=>{const a=document.createElement("div");a.className="live-game-item",a.dataset.offer=t.offer,a.dataset.room=t.key;const o=(t.title||`${t.mapName||"Paddock"}
 ${t.players} Racers`).replace(/^(CSCSC|CSC)\s*[
]\s*/i,"").replace(/^club\s*hall/i,"Paddock").replace(/\b(\d+)p\b/gi,"$1 Players");a.innerHTML=`<div><strong>${o}</strong></div><button class="lobby-btn small green" style="width:auto;padding:4px 12px;font-size:10px;">JOIN</bM
utton>`,a.querySelector("button").onclick=e=>{e.stopImmediatePropagation();const a=document.getElementById("lobbyPeerCode");a&&(a.value=t.offer),document.getElementById("lobbyJoinBtn").click()},e.appendChild(a)})):e.innerHTML='<div style="color:#888;padding:10px;text-align:center;font-size:0.85rem;">No live races right now
 Host one!</div>'}const usedAnswerTokens=new Set;function handleAnswerEvent(e){if(!isHost)return;const t=e.tags.find(e=>"offer"===e[0]),a=e.tags.find(e=>"answer"===e[0]);if(!t||!a)return;constM
 o=t[1],n=a[1];if(!n||usedAnswerTokens.has(n))return;if(!hostOfferCodes.includes(o))return;pcList.some(e=>e&&"have-local-offer"===e.signalingState)&&(usedAnswerTokens.add(n),document.getElementById("lobbyAnswerInput").value=n,setTimeout(()=>{const e=document.getElementById("lobbyAcceptBtn");e&&e.click()},300))}function searchLiveGames(){const e=document.getElementById("liveGamesList");e&&(e.innerHTML='<div style="color:#0af;padding:8px;text-align:center;font-size:0.85rem;">Scanning relays for live races
connectNostrRelays(!0),setTimeout(renderLiveGamesList,2500)}const MINION_ID="a4ece09037d2e227554c6c6a7c0fe1b15d7ce94510adbe5eef575b852c351152i0";try{THREE.Cache&&(THREE.Cache.enabled=!1)}catch(e){}const SAMPLE_SKULL_ID="e40a2dd269eb0e878b658df30ac779085cee71ac0601a4c546b2d6aea802b7d2i0";let minionTemplate=null,minionMixer=null,minionActions={},minionRoot=null;const MINION_SCALE_MENU=4.5,MINION_SCALE=5.69;let jumpRequested=!1,jumpHeld=!1,jumpStartY=0,jumpStartAt=0;const MAX_JUMP_HEIGHT=280,MAX_JUMP_HOLD_MS=1400;let M
currentAnim="";const FALLBACK_ID="53efe58237bf922eb0b2989af602e18092195562b47fff8174739da90cd3d9b7i0",BLOCK_TEXTURE_ID="c5ceb6b6cd1bcc564a9167bab9586691b254a0ea0155858dafbb0d1b9cd64a9di0",STAR_ID="893344c8a0205d190e8dc1f36f54530b2501ff821aa560e5cfbecf08288cdc40i0",LAVA_ID="d2bf68f7c49e947e24f856d9fb15c3b6deefc1268cac684dfe8fb91f10207ea0i0",POD_YAW_OFFSET=Math.PI,MAP_DEFS={"club-hall":{name:"Paddock",mode:"club",domeModelId:"e4f5f9ff44b15f7ee9f4af3949ed844bbd8d8754b94359241c9646d2dbe94b7di0",content:null,duneScale:.M
28,innerWall:!1,outerRadiusOverride:2700,groundTexId:"8afd4d71e03b661687dacd09e7b86da7d949b437a365a8fcf682eea74d615b39i0",wallTexId:"16d53cd3cba7e0853d7dc0ea3a3f9133a96cbfeedac95fc442926d12fb103f82i0",skyTexId:"b1a6b0a7dc61eeb4764607ab0505d571b4e42a6b31ca0e2d0c9bc8fe7014ac97i0"}};let scene,camera,renderer,cart,playerModel,skyDome,terrainMesh,currentMapId="club-hall",gameMode="club",lastBuiltMapId=null,loadedMapScripts=new Set,mapScriptPromises={},applyingHostMap=null,coreGrassTex=null,coreWallTex=null,coreSkyTex=nuM
ll,activeGrassTex=null,activeWallTex=null,activeTrackTex=null,trackSurfaceMesh=null,wallMeshList=[],mapObstacleList=[],mapExtraColliders=[],solidBoxes=[],keys={},mouseXNormalized=0,mouseYNormalized=0,cameraMode="chase",gameStarted=!1,paused=!1,previewMode=!1,multiplayerMode=!1,pendingGuestStart=!1,inLobby=!0,controlsEnabled=!0,typingChat=!1;function fieldIsVisible(e){if(!e||!e.getBoundingClientRect)return!1;const t=window.getComputedStyle(e);if("none"===t.display||"hidden"===t.visibility||"0"===t.opacity)return!1;lM
et a=e;for(;a&&a!==document.body;){const e=window.getComputedStyle(a);if("none"===e.display||"hidden"===e.visibility)return!1;a=a.parentElement}const o=e.getBoundingClientRect();return o.width>2&&o.height>2}function isTypingNow(){const e=document.activeElement;if(!e)return!!typingChat;const t=(e.tagName||"").toUpperCase();return"INPUT"===t||"TEXTAREA"===t||"SELECT"===t||e.isContentEditable?!!fieldIsVisible(e)&&!(gameStarted&&!clubUiMode&&"screenUrlInput"!==e.id&&"chat-input"!==e.id):!!typingChat}function clearMoveKM
eys(){["w","a","s","d","arrowup","arrowdown","arrowleft","arrowright"," ","space","shift"].forEach(e=>{keys[e]=!1}),jumpHeld=!1,jumpRequested=!1}let menuShowcaseActive=!0,showcaseModel=null,car={pos:new THREE.Vector3(0,120,0),vel:new THREE.Vector3(0,0,0),rotation:0,pitch:0,onGround:!0};const PITCH_MAX=1.52,PITCH_RATE=1.85;let lastFwdVel=0,orbitAzimuth=0,orbitPolar=0,orbitRadius=30,orbitTarget=new THREE.Vector3,isDragging=!1,lastMouseX=0,lastMouseY=0,colliders=[],projectiles=[],lastFireTime=0;window.projectiles=projM
ectiles;const FIRE_COOLDOWN=2100;function getFireCooldown(){return"ctf"===gameMode?1050:2100}function updateChargeMeterUI(){const e=document.getElementById("freezeCharge"),t=document.getElementById("chargeLabel");e&&t&&(hasLavaPower?(e.classList.add("lava-ready"),t.textContent="Lava Ready"):(e.classList.remove("lava-ready"),t.textContent="FREEZE CHARGE"))}function updateFlagCarryHint(){const e=document.getElementById("flagCarryHint");if(!e)return;let t=!1;t="ctf"===gameMode?CTF.redHolder===myPlayerID||CTF.blueHoldeM
r===myPlayerID:flagHolder===myPlayerID,e.style.display=t&&gameStarted?"block":"none"}let slowEndTime=0,consecutiveFreezeHits=0,scores=new Map;const PROJECTILE_SPEED=405,MAX_PROJECTILE_DIST=2550,PROJECTILE_GRAVITY=-84,FREEZE_DURATION=5e3;let flagCooldown=0,stealCooldown=0;const STEAL_COOLDOWN_MS=1500;let droppedFlagPos=null,flagHomePos=null;const TERRAIN_SIZE=5e3,TERRAIN_SEGMENTS=160,BASE_HEIGHT=0,DUNE_AMPLITUDE=18,DUNE_FREQ_LARGE=.0099,DUNE_FREQ_MED=.0054,DUNE_FREQ_SMALL=.0098,JUMP_HUMPS=[{cx:-120,cz:-180,height:19M
0,radius:160},{cx:140,cz:-60,height:44,radius:135},{cx:-10,cz:220,height:180,radius:280},{cx:80,cz:90,height:70,radius:145}],MAX_SPEED_BASE=180,MAX_SPEED_BOOST_MUL=1.25,COAST_DRAG=.78,ACCEL_DRAG=.993,ACCEL=36,TURBO_MUL=1.55,BRAKE_FORCE=25,REVERSE_FORCE=12.5,REVERSE_MAX=-38/3.6,TURN_RATE_BASE=1.7,TURN_MULT=1.35,BASE_LATERAL_GRIP=.42,MIN_LATERAL_GRIP=.18,GRIP_DROP_SPEED=180,GRIP_FULL_DROP=260,STEER_DEADZONE=.05,MOUSE_SMOOTH=.2,AUTO_COUNTER=.18,GRAVITY=-250,GROUND_RESTITUTION=.5,LATERAL_VEL_THRESHOLD=2/3.6,FWD_VEL_BRAM
KE_THRESHOLD=2/3.6,OUTER_RADIUS=6900,INNER_RADIUS=6650,MEANDER_AMP=170,MEANDER_WAVES=10,GAP_ANGLES_DEFAULT=[{center:.25*Math.PI,width:.048*Math.PI},{center:.75*Math.PI,width:.048*Math.PI},{center:1.25*Math.PI,width:.048*Math.PI},{center:1.75*Math.PI,width:.048*Math.PI}],GAP_ANGLES_SNAKE=[{center:.25*Math.PI,width:.024*Math.PI},{center:.5*Math.PI,width:.024*Math.PI},{center:.75*Math.PI,width:.024*Math.PI},{center:1.25*Math.PI,width:.024*Math.PI},{center:1.5*Math.PI,width:.024*Math.PI},{center:1.75*Math.PI,width:.024M
*Math.PI}];function getGapAngles(){const e=MAP_DEFS[currentMapId];return e&&(e.trackAspect||1)>1.2?GAP_ANGLES_SNAKE:GAP_ANGLES_DEFAULT}function getTrackParams(){const e=MAP_DEFS[currentMapId]||MAP_DEFS["club-hall"],t=e.trackAspect>0?e.trackAspect:1,a=null!=e.meanderLong?e.meanderLong:170,o=null!=e.meanderShort?e.meanderShort:170,n=null!=e.meanderWaves?e.meanderWaves:10,r=e.trackWidthScale>0?e.trackWidthScale:1,s=e.outerRadiusOverride>0?e.outerRadiusOverride:6900,l=250*r,i=!!e.chaosArena||!1===e.innerWall;return{aspM
ect:t,openArena:i,outerRx:s,outerRz:s*t,innerRx:i?1:s-l,innerRz:i?1:(s-l)*t,meanderLong:a,meanderShort:o,waves:n,terrainSize:i?2*s:Math.max(5e3,s*t*2.35),floorHalf:i?s:null}}function getWallPoint(e,t){const a=getTrackParams(),o=t?a.innerRx:a.outerRx,n=t?a.innerRz:a.outerRz;let r,s;if(a.aspect>1.15){const t=Math.pow(Math.abs(Math.sin(e)),2);r=a.meanderShort+(a.meanderLong-a.meanderShort)*t,s=1}else r=170,s=1;const l=r*Math.sin(a.waves*s*e),i=o*Math.sin(e),c=n*Math.cos(e),d=Math.hypot(i,c)||1;return{x:i+i/d*l,z:c+c/dM
*l,theta:e}}function isOnTrackXZ(e,t){const a=getTrackParams();if((MAP_DEFS[currentMapId]||{}).chaosArena||a.floorHalf){const o=(a.floorHalf||a.outerRx)+40;return Math.abs(e)<=o&&Math.abs(t)<=o}const o=.55*Math.max(a.meanderLong,170)+80,n=e*e/Math.pow(a.outerRx+o,2)+t*t/Math.pow(a.outerRz+o,2)<=1;if(a.openArena)return n;const r=Math.max(40,.35*o),s=e*e/Math.pow(Math.max(80,a.innerRx-r),2)+t*t/Math.pow(Math.max(80,a.innerRz-r),2)<=1;return n&&!s}const SHRINK_ENDS_BY=.5,COL_SEGMENT_LEN=3,EXTRA_MARGIN=.1,RESTITUTION=.M
35,WALL_FRICTION=.98,POS_CORRECTION=.8,MAX_COLLISION_ITER=4,DISCONNECT_TIMEOUT_MS=22e3,DISCONNECT_HOST_GRACE_MS=4e4;let netKeepaliveTimer=null,peerPingTimer=null;const CHECKPOINT_ANGLES=[0,Math.PI/2,Math.PI,3*Math.PI/2];let flagPoleMesh,flagMesh,heldFlagMesh,checkpointStars=[],myCompletedCheckpoints=new Set,myLaps=0,playerLaps=new Map,flagHolder=null,myTeam=null,teamScores={red:0,blue:0};const CTF={redHolder:null,blueHolder:null,redDrop:null,blueDrop:null,redHome:null,blueHome:null,redPole:null,bluePole:null,redFlaM
gMesh:null,blueFlagMesh:null,heldRedMesh:null,heldBlueMesh:null};let starGLTF,lavaGLTF,lavaPatches=[],myLapStartTime=0,myLapPausedTime=0,myLapIsPaused=!1,playerLapTimes=new Map,dustParticles=[],hasLavaPower=!1,touchThrottle=0,padKeys={w:0,a:0,s:0,d:0},padRamp=0,padTouchId=null,ignoreMouseSteerUntil=0,coarsePointer=!1;function isPhoneUI(){const e=navigator.userAgent||"";return!!/Mobi|Android|iPhone|iPod|webOS|BlackBerry/i.test(e)||!!(/iPad/i.test(e)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1)}let tM
ouchSteer=0,throttleTouchId=null,steerTouchId=null,steerTouchStartX=0,steerTouchStartY=0,potentialFireTouch=null,hudVisible=!0;function updateCursorForLobby(){"none"!==document.getElementById("overlay").style.display||"none"!==document.getElementById("p2p-lobby").style.display||"none"!==document.getElementById("previewOverlay").style.display||"none"!==document.getElementById("rulesOverlay").style.display?document.body.style.cursor='url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27M
 height=%2732%27 viewBox=%270 0 24 24%27%3E%3Ctext y=%2720%27 font-size=%2720%27%3E%F0%9F%92%80%3C/text%3E%3C/svg%27") 16 16, auto':gameStarted&&(document.body.style.cursor="none")}const SMALL_SKY_ID="b1a6b0a7dc61eeb4764607ab0505d571b4e42a6b31ca0e2d0c9bc8fe7014ac97i0",BLOCKED_TEX=["4aabdef09087eec3f1e46a631a90d205c230542db7dc69c1b5a6cdb8ffe15910i0","dee0872513415146a6d47576ad4ae48b51ab58081c4b6eca49f7fa919cf26575i0"];function texUrlBlocked(e){const t=String(e||"");return BLOCKED_TEX.some(e=>-1!==t.indexOf(e))}{consM
t e=THREE.TextureLoader.prototype.load;THREE.TextureLoader.prototype.load=function(t,a,o,n){return texUrlBlocked(t)?("function"==typeof n&&n(),this):e.call(this,t,a,o,n)}}function loadTex(e){return!e||texUrlBlocked(e)?Promise.resolve(null):new Promise(t=>{(new THREE.TextureLoader).load(e,e=>{e.flipY=!1,e.wrapS=e.wrapT=THREE.RepeatWrapping;try{void 0!==THREE.SRGBColorSpace&&(e.colorSpace=THREE.SRGBColorSpace)}catch(e){}t(e)},void 0,()=>t(null))})}function normalizeCharId(e){const t=String(e||"").trim(),a=t.match(/([M
0-9a-fA-F]{64}i[0-9]+)/);return a?a[1]:/^[0-9a-fA-F]{64}$/.test(t)?t+"i0":""}function readMyCharIdFromInput(){const e=document.getElementById("charIdInput"),t=normalizeCharId(e&&e.value)||SAMPLE_SKULL_ID;return myCharId=t,t}function uniqueTex(e){if(!e)return null;const t=e.clone();t.needsUpdate=!0,t.flipY=!1,t.wrapS=t.wrapT=THREE.RepeatWrapping;try{void 0!==THREE.SRGBColorSpace&&(t.colorSpace=THREE.SRGBColorSpace)}catch(e){}return t}function absContent(e){if(!e)return null;const t=String(e).match(/([0-9a-fA-F]{64}iM
0)/);return t?`/content/${t[1]}`:String(e).startsWith("/")?e:null}async function parseCscTexturePack(e){const t=(e||"").trim(),a=t?t.replace(/i0$/,"")+"i0":SAMPLE_SKULL_ID,o={skinUrl:null,skyUrl:null,envUrl:null,modelUrl:null};try{const e=await fetch(`/content/${a}`);if(!e.ok)return o;const t=await e.text(),n=(new DOMParser).parseFromString(t,"text/html"),r=n.querySelector("model-viewer");r&&(o.modelUrl=absContent(r.getAttribute("src")),o.skyUrl=absContent(r.getAttribute("skybox-image")||r.getAttribute("skyboxImageM
")),o.envUrl=null);const s=n.querySelectorAll("script");for(const e of s){const t=e.textContent||"",a=t.match(/const\s+textureFilePath\s*=\s*["']([^"']+)["']/)||t.match(/textureFilePath\s*=\s*["']([^"']+)["']/);a&&(o.skinUrl=absContent(a[1]));const n=t.match(/const\s+skybox(?:Texture|Image|FilePath|Path)?\s*=\s*["']([^"']+)["']/)||t.match(/skyboxImage\s*=\s*["']([^"']+)["']/);n&&!o.skyUrl&&(o.skyUrl=absContent(n[1]))}o.envUrl=null}catch(e){}return o}function applyPackToMinion(e,t){const{skin:a,sky:o}=t,n=uniqueTex(M
a),r=uniqueTex(o)||n;e.traverse(e=>{if(!e.isMesh)return;const t=(Array.isArray(e.material)?e.material:e.material?[e.material]:[null]).map(t=>{const a=(t&&t.name||e.name||"").toLowerCase(),o=new THREE.MeshStandardMaterial({name:t&&t.name||e.name||"minion",color:16777215,metalness:.28,roughness:.35,side:THREE.DoubleSide});return a.includes("glow")||a.includes("eye")?(r&&(o.map=uniqueTex(r),o.emissiveMap=o.map),o.emissive=new THREE.Color(16772744),o.emissiveIntensity=1.1):n&&(o.map=uniqueTex(n),o.emissiveMap=o.map,o.eM
missive=new THREE.Color(3355443),o.emissiveIntensity=.55),o.needsUpdate=!0,o});e.material=1===t.length?t[0]:t})}function parallelTraverse(e,t,a){a(e,t);for(let o=0;o<e.children.length;o++)t.children[o]&&parallelTraverse(e.children[o],t.children[o],a)}function cloneSkinned(e){const t=new Map,a=new Map,o=e.clone(!0);return parallelTraverse(e,o,(e,o)=>{t.set(e,o),a.set(o,e)}),o.visible=!0,o.traverse(e=>{if(e.visible=!0,e.isMesh&&e.material&&(e.material=Array.isArray(e.material)?e.material.map(e=>e.clone()):e.material.M
clone()),!e.isSkinnedMesh||!e.skeleton)return;const o=a.get(e);if(!o||!o.skeleton)return;const n=o.skeleton.bones.map(e=>t.get(e)).filter(Boolean);e.bind(new THREE.Skeleton(n,o.skeleton.boneInverses.slice()),o.bindMatrix.clone())}),o}function playAnimOn(e,t){if(!e||!e.userData||!e.userData.actions)return;const a=e.userData.actions;if(e.userData.currentAnim===t)return;const o=a[t]||a.Idle;o&&(Object.values(a).forEach(e=>{e!==o&&e.fadeOut(.15)}),o.reset().fadeIn(.15).play(),e.userData.currentAnim=t)}function cacheSwiM
ngBones(e){if(!e)return;const t={};e.traverse(e=>{const a=(e.name||"").toLowerCase();"upperarm.l"===a||a.endsWith("upperarm.l")?t.aL=e:"upperarm.r"===a||a.endsWith("upperarm.r")?t.aR=e:"lowerarm.l"===a||a.endsWith("lowerarm.l")?t.eL=e:("lowerarm.r"===a||a.endsWith("lowerarm.r"))&&(t.eR=e)}),["aL","aR","eL","eR"].forEach(e=>{t[e]&&!t[e+"Q"]&&(t[e+"Q"]=t[e].quaternion.clone())}),e.userData.swingPack=t,e.userData.swingReady=!(!t.aL||!t.aR)}const _swingQ=new THREE.Quaternion,_swingZ=new THREE.Vector3(0,0,1),_swingX=newM
 THREE.Vector3(1,0,0);function poseSwing(e,t,a){e&&t&&(e.quaternion.copy(t),_swingQ.setFromAxisAngle(_swingZ,a),e.quaternion.multiply(_swingQ),_swingQ.setFromAxisAngle(_swingX,.45*a),e.quaternion.multiply(_swingQ))}function applyArmSwing(e,t){}function playMinionAnim(e){playAnimOn(minionRoot,e),currentAnim=e,minionRoot&&minionRoot.userData&&(minionMixer=minionRoot.userData.mixer,minionActions=minionRoot.userData.actions)}let attackUntil=0;function playThrowAnim(){const e=minionRoot&&minionRoot.userData&&minionRoot.M
userData.actions||minionActions||{},t=Object.keys(e).find(e=>/attack|punch|throw|slash|hit/i.test(e));if(t)return playMinionAnim(t),void(attackUntil=Date.now()+480);if(!minionRoot)return;let a=null;if(minionRoot.traverse(e=>{if(a||!e.isBone)return;const t=e.name.toLowerCase();(t.includes("right")||t.endsWith("_r")||t.endsWith(".r"))&&(t.includes("arm")||t.includes("hand")||t.includes("shoulder"))&&(a=e)}),!a)return;const o=a.rotation.clone();a.rotation.x-=1.15,attackUntil=Date.now()+280,setTimeout(()=>{a&&a.rotatioM
n.copy(o)},280)}function bindMinionClips(e,t){const a=new THREE.AnimationMixer(t),o={},n=e.animations||[],r=n.find(e=>/walk/i.test(e.name)),s=n.find(e=>/run/i.test(e.name));return n.forEach(e=>{let t=e;if(s&&r&&e===s){const a=e.tracks.filter(e=>!/arm|hand|wrist|elbow/i.test(e.name)),o=r.tracks.filter(e=>/arm|hand|wrist|elbow/i.test(e.name)).map(t=>{const a=t.clone(),o=e.duration/Math.max(.01,r.duration);for(let e=0;e<a.times.length;e++)a.times[e]*=o;return a});t=new THREE.AnimationClip(e.name,e.duration,a.concat(o)M
)}o[e.name]=a.clipAction(t)}),t.userData.mixer=a,t.userData.actions=o,t.userData.currentAnim="",playAnimOn(t,"Idle"),a.update(0),t.userData.swingReady=!1,cacheSwingBones(t),a}function patchGlbDropEmptyAccessors(e){try{const t=new Uint8Array(e),a=new DataView(e);if(1179937895!==a.getUint32(0,!0))return e;const o=a.getUint32(12,!0),n=JSON.parse((new TextDecoder).decode(t.subarray(20,20+o)));if(!n.accessors||!n.animations)return e;let r=!1;for(const e of n.animations){const t=[];for(const a of e.channels||[]){const o=M
e.samplers[a.sampler];if(!o)continue;const s=n.accessors[o.output],l=n.accessors[o.input];s&&void 0!==s.bufferView&&l&&void 0!==l.bufferView?t.push(a):r=!0}e.channels=t}if(!r)return e;const s=(new TextEncoder).encode(JSON.stringify(n)),l=(4-s.length%4)%4,i=new Uint8Array(s.length+l);i.set(s,0);for(let e=s.length;e<i.length;e++)i[e]=32;const c=i.length,d=20+o,u=t.subarray(d),m=new Uint8Array(20+c+u.length),p=new DataView(m.buffer);return p.setUint32(0,1179937895,!0),p.setUint32(4,2,!0),p.setUint32(8,m.byteLength,!0)M
,p.setUint32(12,c,!0),p.setUint32(16,1313821514,!0),m.set(i,20),m.set(u,20+c),m.buffer}catch(t){return e}}async function loadMinionTemplate(){return minionTemplate||new Promise(async e=>{const t=await makeGltfLoader();fetch(`/content/${MINION_ID}`).then(e=>{if(!e.ok)throw new Error("minion HTTP "+e.status);return e.arrayBuffer()}).then(a=>{const o=patchGlbDropEmptyAccessors(a);t.parse(o,"",t=>{minionTemplate=t,t.scene&&(t.scene.visible=!1),e(t)},t=>{const a=document.getElementById("status");a&&(a.textContent="MinioM
n GLB failed."),e(null)})}).catch(t=>{e(null)})})}async function loadSkinnedMinion(e,t){const a=await loadMinionTemplate();if(!a)return null;const o=!t||!1!==t.local,n=cloneSkinned(a.scene);n.visible=!0,n.traverse(e=>{e.visible=!0,e.isMesh&&(e.castShadow=!0,e.frustumCulled=!1,e.visible=!0,e.material&&(e.material.side=THREE.DoubleSide,e.material.transparent=!1,e.material.depthWrite=!0,e.material.needsUpdate=!0)),e.isSkinnedMesh&&(e.frustumCulled=!1)});const r=normalizeCharId(e)||SAMPLE_SKULL_ID,s=await parseCscTextuM
rePack(r);return applyPackToMinion(n,{skin:await loadTex(s.skinUrl),sky:null}),n.scale.setScalar(5.69),n.position.set(0,0,0),n.rotation.set(0,0,0),n.userData.isMinion=!0,n.userData.isPlayerChar=!0,n.userData.skullId=r,bindMinionClips(a,n),o&&(minionRoot=n,minionMixer=n.userData.mixer,minionActions=n.userData.actions),n}function applyEmissiveAndTexture(e,t=null){e.traverse(e=>{if(e.isMesh&&e.material){(Array.isArray(e.material)?e.material:[e.material]).forEach(e=>{t&&(e.map=t,e.emissiveMap=t),e.emissive=new THREE.CoM
lor(4473924),e.emissiveIntensity=.85,e.needsUpdate=!0})}})}async function getModelAndTexture(e){const t=`/content/${e}`;try{const e=await fetch(t);if(!e.ok)throw new Error(`Fetch failed: ${e.status}`);const a=await e.text(),o=(new DOMParser).parseFromString(a,"text/html");let n=null;const r=o.querySelector("model-viewer");r&&r.hasAttribute("src")&&(n=r.getAttribute("src"));let s=null;const l=o.querySelectorAll("script");for(let e of l){const t=(e.textContent||"").match(/const\s+textureFilePath\s*=\s*["']([^"']+)["'M
]/);if(t&&t[1]){s=t[1];break}}return{modelUrl:n,textureUrl:s}}catch(e){return{modelUrl:null,textureUrl:null}}}const IMAGE_SPHERE_MODEL_ID="c569b9ea81d2bc78fd86b328c7c1659b193f461ceb1c1ae9e79ac21e2713a171i0";let imageSphereTemplate=null;async function ensureImageSphere(){return imageSphereTemplate||new Promise(e=>{(new GLTFLoader).load(`/content/${IMAGE_SPHERE_MODEL_ID}`,t=>{const a=t.scene;a.traverse(e=>{e.isMesh&&(e.castShadow=!0)}),imageSphereTemplate=a,e(a)},void 0,t=>{e(null)})})}async function probeIsImageInscM
ription(e){try{let t=await fetch(`/content/${e}`,{method:"HEAD"});if(t.ok&&t.headers.get("content-type")||(t=await fetch(`/content/${e}`,{method:"GET"})),!t.ok)return!1;const a=(t.headers.get("content-type")||"").toLowerCase();if(a.startsWith("image/"))return!0;if(a.includes("octet-stream")||""===a||a.includes("binary")){const e=await t.clone().arrayBuffer(),a=new Uint8Array(e.slice(0,12));if(137===a[0]&&80===a[1]&&78===a[2]&&71===a[3])return!0;if(255===a[0]&&216===a[1]&&255===a[2])return!0;if(71===a[0]&&73===a[1]&M
&70===a[2])return!0;if(82===a[0]&&73===a[1]&&70===a[2]&&70===a[3]&&87===a[8]&&69===a[9]&&66===a[10]&&80===a[11])return!0}return!1}catch(e){return!1}}async function loadImageSphereCharacter(e){try{const t=await new Promise(t=>{(new THREE.TextureLoader).load(`/content/${e}`,e=>t(e),void 0,()=>t(null))});if(!t)return null;t.flipY=!0,t.wrapS=THREE.ClampToEdgeWrapping,t.wrapT=THREE.ClampToEdgeWrapping,t.repeat.set(1,1),t.offset.set(0,0);try{void 0!==THREE.SRGBColorSpace?t.colorSpace=THREE.SRGBColorSpace:void 0!==THREE.sM
RGBEncoding&&(t.encoding=THREE.sRGBEncoding)}catch(e){}const a=new THREE.SphereGeometry(1,64,48),o=new THREE.MeshStandardMaterial({map:t,emissiveMap:t,emissive:new THREE.Color(2236962),emissiveIntensity:.45,metalness:.08,roughness:.55}),n=new THREE.Mesh(a,o);n.castShadow=!0;const r=new THREE.Group;return r.add(n),r.scale.setScalar(1.65),r.position.set(0,2.25,-.4),r.rotation.y=-Math.PI/2,r.userData.isImageSphere=!0,r}catch(e){return null}}const LORDINAL_MODEL_ID="c33b6ea4e111364a094e28176a52208a977c2010bcef2a4c7fd10M
ab25b9f7515i0",LORDINAL_CATALOG_ID="67bfb966121e697a0bbc773567bf30bf59b95364f2e8e8c00bf2a80e54210018i0";let lordinalBodyTemplate=null,lordinalTextureIds=null;function parseLordinalCatalog(e){const t=[],a=/\[\s*\d+\s*,\s*["']([0-9a-fA-Fi]+)["']\s*\]/g;let o;for(;null!==(o=a.exec(e));)t.push(o[1]);return t.length?t:null}async function ensureLordinalCatalog(){if(lordinalTextureIds)return lordinalTextureIds;try{const e=await fetch(`/content/${LORDINAL_CATALOG_ID}`);if(!e.ok)throw new Error("catalog HTTP "+e.status);conM
st t=await e.text();return lordinalTextureIds=parseLordinalCatalog(t),lordinalTextureIds}catch(e){return null}}async function ensureLordinalBody(){return lordinalBodyTemplate||new Promise(e=>{(new GLTFLoader).load(`/content/${LORDINAL_MODEL_ID}`,t=>{const a=t.scene;a.traverse(e=>{e.isMesh&&(e.castShadow=!0)}),lordinalBodyTemplate=a,e(a)},void 0,t=>{e(null)})})}function applyLordinalProjectedUVs(e){e.updateMatrixWorld(!0);const t=(new THREE.Box3).setFromObject(e),a=t.getSize(new THREE.Vector3);if(a.x<1e-6||a.y<1e-6)M
return;const o=new THREE.Vector3;e.traverse(e=>{if(!e.isMesh||!e.geometry)return;e.geometry=e.geometry.clone();const n=e.geometry.attributes.position,r=new Float32Array(2*n.count);for(let s=0;s<n.count;s++)o.fromBufferAttribute(n,s),e.localToWorld(o),r[2*s]=(o.x-t.min.x)/a.x,r[2*s+1]=(t.max.y-o.y)/a.y;e.geometry.setAttribute("uv",new THREE.BufferAttribute(r,2))})}function applyTextureToModel(e,t){if(t){t.flipY=!1,t.wrapS=t.wrapT=THREE.RepeatWrapping;try{void 0!==THREE.SRGBColorSpace?t.colorSpace=THREE.SRGBColorSpacM
e:void 0!==THREE.sRGBEncoding&&(t.encoding=THREE.sRGBEncoding)}catch(e){}e.traverse(e=>{if(!e.isMesh||!e.material)return;const a=(Array.isArray(e.material)?e.material:[e.material]).map(e=>{const a=e.clone();return a.map=t,a.emissiveMap=t,a.emissive=new THREE.Color(2236962),a.emissiveIntensity=.6,"metalness"in a&&(a.metalness=.05,a.roughness=.55),a.needsUpdate=!0,a});e.material=Array.isArray(e.material)?a:a[0]})}}async function loadLordinalFromEntry(e){try{const t=await fetch(`/content/${e}`);if(!t.ok)return null;coM
nst a=(await t.text()).match(/P\s*=\s*(\d+)/);if(!a)return null;const o=parseInt(a[1],10),n=await ensureLordinalCatalog();if(!n||o<1||o>n.length)return null;const r=n[o-1],s=await ensureLordinalBody();if(!s)return null;const l=s.clone(!0);l.scale.setScalar(2.04),l.position.set(0,1.55,-.4),l.rotation.y=0,l.userData.isLordinal=!0,applyLordinalProjectedUVs(l);const i=await new Promise(e=>{(new THREE.TextureLoader).load(`/content/${r}`,t=>e(t),void 0,()=>e(null))});return i?applyTextureToModel(l,i):applyEmissiveAndTextM
ure(l),l}catch(e){return null}}function finalizeCscModel(e,t,a){if(e.scale.setScalar(.8),e.traverse(e=>{e.isMesh&&(e.castShadow=!0)}),e.position.set(0,.35,-.4),e.rotation.y=0,t){t.flipY=!1;try{void 0!==THREE.SRGBColorSpace?t.colorSpace=THREE.SRGBColorSpace:void 0!==THREE.sRGBEncoding&&(t.encoding=THREE.sRGBEncoding)}catch(e){}applyEmissiveAndTexture(e,t)}else applyEmissiveAndTexture(e);return modelCache.set(a,e),e.clone()}async function loadCharacterModel(e){try{let t=(e||"").trim(),a=t.replace(/i0$/,"")+"i0";if(t&M
&"i0"!==a||(a=FALLBACK_ID),modelCache.has(a))return modelCache.get(a).clone();let o="";const n=await probeIsImageInscription(a);if(!n)try{const e=await fetch(`/content/${a}`);e.ok&&(o=await e.text())}catch(e){}if(/P\s*=\s*\d+/.test(o)){const e=await loadLordinalFromEntry(a);if(e)return modelCache.set(a,e),e.clone(!0)}if(n){const e=await loadImageSphereCharacter(a);if(e)return modelCache.set(a,e),e.clone(!0)}let r=await getModelAndTexture(a);return r&&r.modelUrl?new Promise(e=>{(new GLTFLoader).load(r.modelUrl,t=>{cM
onst o=t.scene;r.textureUrl?(new THREE.TextureLoader).load(r.textureUrl,t=>e(finalizeCscModel(o,t,a)),void 0,()=>e(finalizeCscModel(o,null,a))):e(finalizeCscModel(o,null,a))},void 0,t=>{e(null)})}):a!==FALLBACK_ID&&(r=await getModelAndTexture(FALLBACK_ID),r&&r.modelUrl)?new Promise(e=>{(new GLTFLoader).load(r.modelUrl,t=>{e(finalizeCscModel(t.scene,null,FALLBACK_ID))},void 0,()=>e(null))}):null}catch(e){return null}}async function preloadCoreAssets(){const e=[];e.push(new Promise((e,t)=>{(new THREE.TextureLoader).lM
oad("/content/ca1be2e1bcda5cd624ea2c73995f470fa58674187f196c1571cc69e827aa1d13i0",t=>{t.wrapS=t.wrapT=THREE.RepeatWrapping,t.repeat.set(160,160),e(t)},void 0,t)})),e.push(new Promise((e,t)=>{(new THREE.TextureLoader).load("/content/b1a6b0a7dc61eeb4764607ab0505d571b4e42a6b31ca0e2d0c9bc8fe7014ac97i0",e,void 0,t)})),e.push(new Promise((e,t)=>{(new THREE.TextureLoader).load(`/content/${BLOCK_TEXTURE_ID}`,e,void 0,t)})),e.push(new Promise((e,t)=>{(new GLTFLoader).load("/content/756a5fe7b548354837d57c4c1db157f4bc7b9ac603M
033163fe41e3359bf35e70i0",t=>{cart=t.scene,cart.scale.setScalar(1.8),cart.traverse(e=>{e.isMesh&&(e.castShadow=!0,e.receiveShadow=!0)}),e()},void 0,t)})),e.push(new Promise((e,t)=>{(new GLTFLoader).load(`/content/${STAR_ID}`,t=>{starGLTF=t,starGLTF.scene.scale.setScalar(12),e()},void 0,t)})),e.push(new Promise((e,t)=>{(new GLTFLoader).load(`/content/${LAVA_ID}`,t=>{lavaGLTF=t,e()},void 0,t)}));try{const[t,a,o]=await Promise.all(e);return coreGrassTex=t,coreSkyTex=a,coreWallTex=o,activeGrassTex=t,activeWallTex=o,staM
tusEl.textContent="The house is prepared",startBtn.disabled=!1,ensureLordinalBody().catch(()=>{}),ensureLordinalCatalog().catch(()=>{}),ensureImageSphere().catch(()=>{}),{grassTex:t,skyTex:a,wallTex:o}}catch(e){return statusEl.textContent="Some assets failed to load
 proceeding anyway",startBtn.disabled=!1,ensureLordinalBody().catch(()=>{}),ensureLordinalCatalog().catch(()=>{}),ensureImageSphere().catch(()=>{}),null}}function getTerrainHeight(e,t){const a=MAP_DEFS[currentMapId]||MAP_DEFS["club-hall"],o=void 0!==M
a.duneScale?a.duneScale:1,n=a.floorLift||0;let r=0;r+=18*o*Math.sin(.0099*e+.0099*t*.7),r+=18*o*.6*Math.sin(.0054*e*1.4+.0054*t*.9+1.7),r+=18*o*.35*Math.sin(.0098*e*2.3+.0098*t*1.8+4.1);const s=a.chaosArena?1.35:"club"===a.mode?0:1;return s>0&&JUMP_HUMPS.forEach(o=>{const n=e-o.cx,l=t-o.cz,i=n*n+l*l,c=Math.exp(-i/(o.radius*o.radius*2*(a.chaosArena?1.2:1)));r+=o.height*s*c*c}),r+n}function buildTerrain(e){const t=getTrackParams(),a=t.terrainSize,o=t.aspect>1.2?Math.min(220,200):160,n=new THREE.PlaneGeometry(a,a,o,o)M
;n.rotateX(-Math.PI/2);const r=n.attributes.position.array;for(let e=0;e<r.length;e+=3){const t=r[e],a=r[e+2];r[e+1]=getTerrainHeight(t,a)}n.computeVertexNormals();const s=n.attributes.position.array,l=[];for(let e=0;e<s.length;e+=3){const t=isOnTrackXZ(s[e],s[e+2])?0.42:1;l.push(.82*t,.91*t,.78*t)}n.setAttribute("color",new THREE.Float32BufferAttribute(l,3));const i=new THREE.MeshStandardMaterial({map:e,vertexColors:!0,roughness:.88,metalness:.06});terrainMesh=new THREE.Mesh(n,i),terrainMesh.receiveShadow=!0,sceneM
.add(terrainMesh)}function clearTrackSurface(){if(trackSurfaceMesh){scene.remove(trackSurfaceMesh);try{trackSurfaceMesh.geometry.dispose(),trackSurfaceMesh.material&&(trackSurfaceMesh.material.map&&(trackSurfaceMesh.material.map=null),trackSurfaceMesh.material.dispose())}catch(e){}trackSurfaceMesh=null}}function buildBlueTrackSurface(){clearTrackSurface();const e=[],t=[];for(let t=0;t<=360;t++){const a=t/360*Math.PI*2,o=getWallPoint(a,!1),n=getWallPoint(a,!0),r=getTerrainHeight(o.x,o.z)+1.5,s=getTerrainHeight(n.x,nM
.z)+1.5;e.push(o.x,r,o.z),e.push(n.x,s,n.z)}for(let e=0;e<360;e++){const a=2*e,o=a+1,n=a+2,r=a+3;t.push(a,o,n,o,r,n)}const a=new THREE.BufferGeometry;a.setAttribute("position",new THREE.Float32BufferAttribute(e,3)),a.setIndex(t),a.computeVertexNormals();const o=new THREE.MeshStandardMaterial({color:1735423,emissive:671129,emissiveIntensity:.55,roughness:.65,metalness:.08,side:THREE.DoubleSide});trackSurfaceMesh=new THREE.Mesh(a,o),trackSurfaceMesh.receiveShadow=!0,scene.add(trackSurfaceMesh)}function buildWall(e,t,M
a=!1){t.flipY=!1;const o=getGapAngles();let n=[];for(let e=0;e<7200;e++){const t=e/7200*Math.PI*2,r=getWallPoint(t,a),s=r.x,l=r.z;let i=getTerrainHeight(s,l);if(a){let e=!1;for(const a of o){const o=Math.abs(t-a.center),n=Math.abs(t-(a.center+2*Math.PI)),r=Math.abs(t-(a.center-2*Math.PI));if(Math.min(o,n,r)<a.width/2){e=!0;break}}e&&(i-=100)}n.push(new THREE.Vector3(s,i,l))}n[0].distanceTo(n[n.length-1])>1&&n.push(n[0].clone());let r=[0],s=0;for(let e=2;e<n.length;e++){let t=n[s],a=n[e];if(a.distanceTo(t)>35){r.pusM
h(e-1),s=e-1;continue}let o=0;const l=a.clone().sub(t).clone().normalize();for(let a=s+1;a<e;a++){const e=n[a],r=e.clone().sub(t).dot(l),s=t.clone().addScaledVector(l,r),i=e.distanceTo(s);i>o&&(o=i)}o>.4&&(r.push(e-1),s=e-1)}0!==r[r.length-1]&&r.push(0);for(let e=0;e<r.length-1;e++){let o=r[e],s=r[e+1],l=n[o],i=n[s],c=l.clone().add(i).multiplyScalar(.5),d=i.clone().sub(l),u=d.length();if(u<.5)continue;let m=d.clone().normalize(),p=Math.atan2(m.x,m.z)+Math.PI/2;const y=new THREE.BoxGeometry(1,23,2),h=new THREE.MeshSM
tandardMaterial({map:t,roughness:.92,metalness:.08});{const e=MAP_DEFS[currentMapId]||{},t=null!=e.wallRepeatY?e.wallRepeatY:4;h.map.repeat.set(1,t)}h.map.wrapS=h.map.wrapT=THREE.RepeatWrapping,h.needsUpdate=!0;const f=new THREE.Mesh(y,h);f.castShadow=!0,f.receiveShadow=!0;const g=u/1;f.scale.set(g,1,1),f.position.copy(c),f.position.y+=9.2,f.rotation.y=p,f.userData.isMapWall=!0,f.userData.isInnerWall=!!a,scene.add(f),wallMeshList.push(f);const b=Math.max(1,Math.ceil(u/3));for(let e=0;e<b;e++){let t=e/b,o=(e+1)/b;coM
nst n=0===e||e===b-1?0.5:.1;if(t+=n/u,o-=n/u,t>=o)continue;const r=l.clone().lerp(i,t),s=l.clone().lerp(i,o),c=r.clone().add(s).multiplyScalar(.5),d=r.distanceTo(s),y=2,h=23,f=new THREE.Mesh(new THREE.BoxGeometry(d,h,y),new THREE.MeshBasicMaterial({visible:!1}));f.position.copy(c),f.position.y+=h/2.5,f.rotation.y=p;const g=new THREE.Vector3(m.z,0,-m.x).normalize();a&&g.negate(),f.userData={wallDir:m.clone(),wallNormal:g,isMapWall:!0,isInnerWall:!!a},scene.add(f),colliders.push(f)}}}function clearLavaPatches(){lavaPM
atches.forEach(e=>{e.mesh&&!e.fromChaosProp&&scene.remove(e.mesh)}),lavaPatches=[]}function buildLavaPatches(e){if(!(lavaGLTF||e&&MAP_DEFS[currentMapId]&&MAP_DEFS[currentMapId].chaosArena))return;if(e||clearLavaPatches(),!lavaGLTF)return;const t=MAP_DEFS[currentMapId]||{},a="ctf"===t.mode,o=null!=t.lavaCount?t.lavaCount:a?16:2,n=[];if(t.chaosArena){const e=JUMP_HUMPS[0]||{cx:-120,cz:-180},t=JUMP_HUMPS[2]||{cx:-10,cz:220};n.push({x:e.cx,z:e.cz,yOffset:6},{x:t.cx,z:t.cz,yOffset:6})}else if(a){const e=6900*.55;for(letM
 t=0;t<o;t++)n.push({angle:t/o*Math.PI*2,useEllipse:!1,radius:e,yOffset:2})}else if(o>=12||t.trackAspect>1)for(let e=0;e<o;e++)n.push({angle:e/o*Math.PI*2,useEllipse:!0,yOffset:2});else n.push({angle:.25*Math.PI,useEllipse:!0,yOffset:2},{angle:1.25*Math.PI,useEllipse:!0,yOffset:2});const r=a?22.5:7.5,s=a?55:42;n.forEach(e=>{let t,a;if(null!=e.x&&null!=e.z)t=e.x,a=e.z;else if(e.useEllipse){const o=getWallPoint(e.angle,!1),n=getWallPoint(e.angle,!0);t=.5*(o.x+n.x),a=.5*(o.z+n.z)}else t=e.radius*Math.sin(e.angle),a=e.M
radius*Math.cos(e.angle);const o=getTerrainHeight(t,a)+e.yOffset,n=lavaGLTF.scene.clone();n.scale.set(7.5,r,7.5),n.position.set(t,o,a),n.rotation.y=e.angle+Math.PI/2,scene.add(n);const l=new THREE.AnimationMixer(n);lavaGLTF.animations&&lavaGLTF.animations.length>0&&lavaGLTF.animations.forEach(e=>{const t=l.clipAction(e);t.setLoop(THREE.LoopRepeat),t.play()}),lavaPatches.push({mesh:n,mixer:l,pos:new THREE.Vector3(t,o,a),radius:s})})}function createDustParticle(){}function updateDustParticles(){}function clearCheckpoM
intsAndFlag(){checkpointStars.forEach(e=>{e.mesh&&scene.remove(e.mesh)}),checkpointStars=[],flagPoleMesh&&(scene.remove(flagPoleMesh),flagPoleMesh=null),flagMesh&&(scene.remove(flagMesh),flagMesh=null),heldFlagMesh&&(heldFlagMesh.parent&&heldFlagMesh.parent.remove(heldFlagMesh),heldFlagMesh=null),flagHomePos=null}function buildCheckpoints(){if(clearCheckpointsAndFlag(),!starGLTF)return;const e=MAP_DEFS[currentMapId]||{};let t=[];if(e.chaosArena){const a=.9*(e.outerRadiusOverride||chaosWallRadius||1400);t=[{x:a,z:a}M
,{x:a,z:-a},{x:-a,z:-a},{x:-a,z:a}]}else for(let e=0;e<4;e++){const a=CHECKPOINT_ANGLES[e],o=getWallPoint(a,!1),n=getWallPoint(a,!0);t.push({x:.5*(o.x+n.x),z:.5*(o.z+n.z)})}for(let e=0;e<4;e++){const a=t[e].x,o=t[e].z,n=getTerrainHeight(a,o)+12,r=starGLTF.scene.clone();r.position.set(a,n,o),scene.add(r);const s=new THREE.AnimationMixer(r);if(starGLTF.animations&&starGLTF.animations.length>0){s.clipAction(starGLTF.animations[0]).play()}checkpointStars.push({mesh:r,mixer:s})}const a=t[0].x,o=t[0].z,n=getTerrainHeightM
(a,o)+60;flagPoleMesh=new THREE.Mesh(new THREE.CylinderGeometry(2,2,240,8),new THREE.MeshPhongMaterial({color:11184810,emissive:11184810,emissiveIntensity:2})),flagPoleMesh.position.set(a,n,o),scene.add(flagPoleMesh),flagMesh=new THREE.Mesh(new THREE.PlaneGeometry(24,18),new THREE.MeshPhongMaterial({color:43775,side:THREE.DoubleSide,emissive:65535,emissiveIntensity:3,transparent:!0,opacity:.95})),flagMesh.position.set(a,n+120,o),flagMesh.rotation.y=Math.atan2(a,o)+Math.PI/2,flagHomePos=flagMesh.position.clone(),sceM
ne.add(flagMesh),heldFlagMesh=new THREE.Mesh(new THREE.PlaneGeometry(12,9),new THREE.MeshPhongMaterial({color:43775,side:THREE.DoubleSide,emissive:65535,emissiveIntensity:4})),heldFlagMesh.visible=!1}const customCursor=document.getElementById("customCursor"),statusEl=document.getElementById("status"),startBtn=document.getElementById("startBtn"),pauseHint=document.getElementById("pauseHint"),chatModeHint=document.getElementById("chatModeHint"),lavaPowerHint=document.getElementById("lavaPowerHint"),modelCache=new MapM
,chatContainer=document.getElementById("chat-container"),chatMessages=document.getElementById("chat-messages"),chatInput=document.getElementById("chat-input"),chargeBar=document.getElementById("chargeBar"),scoreboard=document.getElementById("scoreboard"),scoreList=document.getElementById("scoreList"),cpIndicator=document.getElementById("cpIndicator"),pauseRulesBtn=document.getElementById("pauseRulesBtn"),throttleIndicator=document.getElementById("throttleIndicator"),throttleFill=document.getElementById("throttleFilM
l"),cameraCycleBtn=document.getElementById("cameraCycleBtn"),pauseBtn=document.getElementById("pauseBtn");let pcList=[],dcList=[],voiceOn=!1,localMicStream=null;const voicePcs=new Map,sharePcs=new Map,voiceAudioEls=new Map;function rtcConf(){return{iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun.cloudflare.com:3478"}]}}function sendToPeer(e,t){if(!e)return;const a=JSON.stringify(Object.assign({id:myPlayerID,to:e},t));leM
t o=0;dcList.forEach(t=>{if(t&&"open"===t.readyState&&t._peerId===e)try{t.send(a),o++}catch(e){}}),o||dcList.forEach(e=>{if(e&&"open"===e.readyState)try{e.send(a)}catch(e){}})}function kickVoicePlayback(){voiceAudioEls.forEach(e=>{try{e.play()}catch(e){}})}let voiceMixLevel=1.4,jumboMixLevel=.28;function applyClubMix(){void 0!==voiceGainNodes&&voiceGainNodes.forEach(e=>{e&&e.gain&&(e.gain.gain.value=clubVoiceGain())}),void 0!==voiceAudioEls&&voiceAudioEls.forEach(e=>{if(!e)return;const t=voiceMixLevel<=.001;e.mutedM
=t||!(!voiceGainNodes||!voiceGainNodes.size),e.volume=t?0:1});const e=jumboVol()<=.001,t=document.getElementById("stageShareVideo");t&&(t.muted=e,t.volume=jumboVol(),e||t.play().catch(()=>{}));const a=document.getElementById("stageShareAudio");if(a&&(a.muted=e,a.volume=jumboVol(),!e&&a.srcObject&&a.play().catch(()=>{})),"function"==typeof ytCommand){try{ytCommand("setVolume",[Math.round(100*jumboMixLevel)])}catch(e){}if(jumboMixLevel<=.001)try{ytCommand("mute")}catch(e){}else try{ytCommand("unMute")}catch(e){}}}funM
ction bindClubMixer(){const e=document.getElementById("mixVoice"),t=document.getElementById("mixJumbo");if(e&&e.addEventListener("input",()=>{voiceMixLevel=Math.max(0,Math.min(2,Number(e.value)/100)),applyClubMix()}),t){const e=()=>{jumboMixLevel=Math.max(0,Math.min(1,Number(t.value)/100)),applyClubMix()};t.addEventListener("input",e),t.addEventListener("change",e)}}function resumeClubVoiceElements(){window._clubAudioCtx&&"suspended"===window._clubAudioCtx.state&&window._clubAudioCtx.resume();const e=document.getElM
ementById("stageShareVideo"),t=document.getElementById("stageShareAudio");e&&(e.muted=jumboVol()<=.001,e.volume=jumboVol(),e.play().catch(()=>{})),t&&(t.muted=jumboVol()<=.001,t.volume=jumboVol(),t.play().catch(()=>{})),void 0!==voiceAudioEls&&(voiceAudioEls.forEach(e=>{e&&(e.muted=!(!voiceGainNodes||!voiceGainNodes.size),e.volume=Math.max(0,Math.min(1,voiceMixLevel<=.001?0:1)),e.play().catch(()=>{}))}),applyClubMix())}bindClubMixer(),document.addEventListener("pointerdown",resumeClubVoiceElements,!0);const voiceGaM
inNodes=new Map;function clubVoiceGain(){const e="number"==typeof voiceMixLevel?voiceMixLevel:1.4;return e<=.001?0:3.6*e}function attachRemoteVoice(e,t){if(!e||e===myPlayerID)return;if(localMicStream&&(t===localMicStream||t.getAudioTracks&&t.getAudioTracks().some(e=>-1!==localMicStream.getTracks().indexOf(e))))return;let a=voiceAudioEls.get(e);a||(a=document.createElement("audio"),a.autoplay=!0,a.playsInline=!0,a.setAttribute("playsinline",""),a.style.display="none",document.body.appendChild(a),voiceAudioEls.set(e,M
a)),a.srcObject=t,a.muted=voiceMixLevel<=.001,a.volume=voiceMixLevel<=.001?0:1;const o=()=>{a.muted=voiceMixLevel<=.001,a.play().catch(()=>{})};o(),t&&t.getAudioTracks&&t.getAudioTracks().forEach(e=>{e.enabled=!0,e.onunmute=o});try{window._clubAudioCtx||(window._clubAudioCtx=new(window.AudioContext||window.webkitAudioContext));const o=window._clubAudioCtx;o.resume();let n=voiceGainNodes.get(e);if(n&&n.stream!==t){try{n.src.disconnect(),n.gain.disconnect()}catch(e){}n=null}if(n)n.gain.gain.value=Math.max(2.5,clubVoiM
ceGain());else{const n=o.createMediaStreamSource(t),r=o.createGain();r.gain.value=Math.max(2.5,clubVoiceGain()),n.connect(r),r.connect(o.destination),voiceGainNodes.set(e,{src:n,gain:r,stream:t}),a.muted=!0}}catch(e){a.muted=voiceMixLevel<=.001}}function closeVoicePeer(e){const t=voicePcs.get(e);if(t){try{t.close()}catch(e){}voicePcs.delete(e)}const a=voiceAudioEls.get(e);a&&(a.srcObject=null,voiceAudioEls.delete(e))}let silentVoiceTrack=null;function getSilentAudioTrack(){if(silentVoiceTrack&&"live"===silentVoiceTM
rack.readyState)return silentVoiceTrack;try{const e=new(window.AudioContext||window.webkitAudioContext),t=e.createMediaStreamDestination(),a=e.createGain();a.gain.value=0;const o=e.createOscillator();o.connect(a),a.connect(t),o.start(),silentVoiceTrack=t.stream.getAudioTracks()[0]}catch(e){silentVoiceTrack=null}return silentVoiceTrack}function senderForKind(e,t){if(!e)return null;const a=e.getTransceivers?e.getTransceivers():[];for(let e=0;e<a.length;e++){const o=a[e];if((o.sender&&o.sender.track&&o.sender.track.kiM
nd||o.receiver&&o.receiver.track&&o.receiver.track.kind)===t)return o.sender}return e.getSenders().find(e=>e.track&&e.track.kind===t)||null}function getVoicePc(e){let t=voicePcs.get(e);if(t)return t;t=new RTCPeerConnection(rtcConf());const a=t.addTransceiver("audio",{direction:"sendrecv"});a&&a.sender&&(a.sender._clubVoice=!0),t._clubSlots={voice:a};const o=localMicStream&&localMicStream.getAudioTracks().find(e=>"live"===e.readyState)||getSilentAudioTrack();if(o&&a&&a.sender)try{a.sender.replaceTrack(o)}catch(e){}rM
eturn t.ontrack=t=>{e!==myPlayerID&&t.track&&"audio"===t.track.kind&&(localMicStream&&-1!==localMicStream.getTracks().indexOf(t.track)||attachRemoteVoice(e,new MediaStream([t.track])))},t.onicecandidate=t=>{t.candidate&&sendToPeer(e,{type:"voiceIce",candidate:t.candidate})},voicePcs.set(e,t),t.onconnectionstatechange=()=>{"failed"===t.connectionState&&recoverVoicePeer(e)},t}function getSharePc(e){let t=sharePcs.get(e);if(t)return t;if(t=new RTCPeerConnection(rtcConf()),isHost&&localShareStream)localShareStream.getTM
racks().forEach(e=>{try{t.addTrack(e,localShareStream)}catch(e){}});else{try{t.addTransceiver("video",{direction:"recvonly"})}catch(e){}try{t.addTransceiver("audio",{direction:"recvonly"})}catch(e){}}return t.ontrack=e=>{if(isHost)return;applyShareStreamToStage(e.streams&&e.streams[0]?e.streams[0]:new MediaStream([e.track])),"audio"===e.track.kind&&applyShareAudio(e.track),"video"===e.track.kind&&applyShareVideo(e.track)},t.onicecandidate=t=>{t.candidate&&sendToPeer(e,{type:"shareIce",candidate:t.candidate})},shareM
Pcs.set(e,t),t}async function offerShare(e){if(!e||e===myPlayerID)return;const t=getSharePc(e);try{const a=await t.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});await t.setLocalDescription(a),sendToPeer(e,{type:"shareOffer",sdp:a.sdp})}catch(e){}}async function handleShareMsg(e){const t=e.id;if(t&&t!==myPlayerID){if("shareOffer"===e.type&&e.sdp){const a=getSharePc(t);try{await a.setRemoteDescription({type:"offer",sdp:e.sdp});const o=await a.createAnswer();await a.setLocalDescription(o),sendToPeer(t,{M
type:"shareAnswer",sdp:o.sdp})}catch(e){}return}if("shareAnswer"===e.type&&e.sdp){const a=sharePcs.get(t);if(!a)return;try{"have-local-offer"===a.signalingState&&await a.setRemoteDescription({type:"answer",sdp:e.sdp})}catch(e){}return}if("shareIce"===e.type&&e.candidate){const a=getSharePc(t);try{await a.addIceCandidate(e.candidate)}catch(e){}}}}const voiceRetryAt=new Map;async function recoverVoicePeer(e){if(!e||e===myPlayerID||!multiplayerMode)return;const t=Date.now();if(t-(voiceRetryAt.get(e)||0)<4e3)return;voiM
ceRetryAt.set(e,t);let a=voicePcs.get(e);if(!a||"failed"!==a.connectionState&&"closed"!==a.connectionState&&"failed"!==a.iceConnectionState)a||(a=getVoicePc(e));else{try{a.close()}catch(e){}voicePcs.delete(e),a=getVoicePc(e)}try{if(isHost||"function"==typeof clubCanSpeak&&clubCanSpeak()){const t=await a.createOffer({iceRestart:!0,offerToReceiveAudio:!0,offerToReceiveVideo:!0});await a.setLocalDescription(t),sendToPeer(e,{type:"voiceOffer",sdp:t.sdp})}else sendToPeer(e,{type:"voiceHello"});"function"==typeof attachMM
icToPeers&&attachMicToPeers(!1)}catch(e){}}async function offerVoice(e){if(!e||e===myPlayerID)return;const t=getVoicePc(e);try{const a=await t.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});await t.setLocalDescription(a),sendToPeer(e,{type:"voiceOffer",sdp:a.sdp})}catch(e){}}function voiceHelloAll(){dcList.forEach(e=>{e&&"open"===e.readyState&&e._peerId&&sendToPeer(e._peerId,{type:"voiceHello"})})}async function handleVoiceMsg(e,t){const a=t.id||e._peerId;if(a&&a!==myPlayerID){if("voiceHello"===t.typeM
){const e=getVoicePc(a),t=!e.connectionState||"new"===e.connectionState||"connecting"===e.connectionState||"failed"===e.connectionState||"disconnected"===e.connectionState;return void(isHost&&t?await ensureHostBroadcast(a):!isHost&&(voiceOn||"function"==typeof clubCanSpeak&&clubCanSpeak())&&t&&await offerVoice(a))}if("voiceOffer"===t.type&&t.sdp){const e=getVoicePc(a);try{if("stable"!==e.signalingState&&"have-remote-offer"!==e.signalingState)try{await e.setLocalDescription({type:"rollback"})}catch(e){}await e.setReM
moteDescription({type:"offer",sdp:t.sdp});const o=await e.createAnswer();await e.setLocalDescription(o),sendToPeer(a,{type:"voiceAnswer",sdp:o.sdp})}catch(e){}return}if("voiceAnswer"===t.type&&t.sdp){const e=voicePcs.get(a);if(!e)return;try{"have-local-offer"===e.signalingState&&await e.setRemoteDescription({type:"answer",sdp:t.sdp})}catch(e){}return}if("voiceIce"===t.type&&t.candidate){const e=getVoicePc(a);try{await e.addIceCandidate(t.candidate)}catch(e){}}}}window._clubNetWatch||(window._clubNetWatch=setIntervaM
l(()=>{if(!multiplayerMode)return;voicePcs.forEach((e,t)=>{const a=e.connectionState,o=e.iceConnectionState;"failed"!==a&&"failed"!==o||recoverVoicePeer(t)}),void 0!==remotePlayers&&remotePlayers.forEach((e,t)=>{t&&t!==myPlayerID&&(voicePcs.has(t)||(getVoicePc(t),isHost&&recoverVoicePeer(t)))}),dcList.forEach(e=>{e&&"open"===e.readyState&&e._peerId&&!voicePcs.has(e._peerId)&&(getVoicePc(e._peerId),isHost&&recoverVoicePeer(e._peerId))}),voiceAudioEls.forEach(e=>{e&&e.paused&&e.play().catch(()=>{})});const e=documentM
.getElementById("stageShareAudio");if(e&&e.srcObject&&jumboVol()>.001&&((e.paused||e.ended)&&e.play().catch(()=>{}),e.muted=!1,e.volume=jumboVol()),isHost&&localShareStream)voicePcs.forEach(e=>{e.getSenders().forEach(e=>{if(!e._clubShare||!e._clubShareKind)return;const t="video"===e._clubShareKind?localShareStream.getVideoTracks()[0]:localShareStream.getAudioTracks()[0];if(t&&e.track!==t)try{e.replaceTrack(t)}catch(e){}})});else if(!isHost&&window._remoteShareOn){const e=document.getElementById("stageShareAudio");eM
&&e.srcObject&&!e.paused||dcList.forEach(e=>{if(e&&"open"===e.readyState)try{e.send(JSON.stringify({type:"shareRepair",id:myPlayerID}))}catch(e){}})}},5e3));let selfMuted=!1,roomMuteHold=!1;function syncMicButtons(){const e=document.getElementById("micBtn"),t=document.getElementById("clubMicBtn"),a=document.getElementById("clubMuteBtn"),o=document.getElementById("clubRoomMuteBtn"),n=!(!localMicStream||!voiceOn);e&&(e.classList.toggle("on",n&&!selfMuted),e.textContent=n?selfMuted?"MUTED":"ON":"MIC"),t&&(t.textContenM
t=n?selfMuted||roomMuteHold?"Unmute my mic":"Microphone live":"Enable microphone"),a&&(a.style.display=n?"block":"none",a.textContent=selfMuted?"Unmute my mic":"Mute my mic"),o&&(o.style.display=isHost?"block":"none")}function isShareAudioTrack(e){return!(void 0===localShareStream||!localShareStream||!e||-1===localShareStream.getTracks().indexOf(e))}function applyMicSendState(){const e=!(!voiceOn||!localMicStream||selfMuted||roomMuteHold||"function"==typeof clubCanSpeak&&!clubCanSpeak()),t=localMicStream&&localMicSM
tream.getAudioTracks().find(e=>"live"===e.readyState);localMicStream&&localMicStream.getAudioTracks().forEach(t=>{t.enabled=e}),void 0!==voicePcs&&t&&voicePcs.forEach(e=>{e.getSenders().forEach(e=>{if(!isShareAudioTrack(e.track)&&(e._clubVoice||!e.track||"audio"===e.track.kind)&&(e._clubVoice||e.track&&"audio"===e.track.kind&&!isShareAudioTrack(e.track))&&e.track!==t)try{e.replaceTrack(t),e._clubVoice=!0}catch(e){}})})}async function ensureHostBroadcast(e,t){if(!isHost&&multiplayerMode)return;const a=!t||!1!==t.offM
er;try{if(!!(!localMicStream||!localMicStream.getAudioTracks().some(e=>"live"===e.readyState))){const e=!!selfMuted;await setMicEnabled(!0),e&&(selfMuted=!0,applyMicSendState())}await attachMicToPeers(!!a),applyMicSendState(),a&&(e?await offerVoice(e):voicePcs.forEach((e,t)=>offerVoice(t))),syncMicButtons()}catch(e){}}async function attachMicToPeers(e){if(!localMicStream)return;const t=localMicStream.getAudioTracks().find(e=>"live"===e.readyState);t&&voicePcs.forEach((a,o)=>{let n=a._clubSlots&&a._clubSlots.voice&&M
a._clubSlots.voice.sender||a.getSenders().find(e=>e._clubVoice);try{if(n)n.replaceTrack(t),n._clubVoice=!0;else{const e=a.addTrack(t,localMicStream);e&&(e._clubVoice=!0)}}catch(e){}e&&o&&offerVoice(o)})}async function setMicEnabled(e){const t=document.getElementById("micBtn");if(e&&"function"==typeof clubCanSpeak&&!clubCanSpeak()){const e=document.getElementById("status");return e&&(e.textContent="Mic is open
 allow it when the browser asks"),refreshClubDock(),void syncMicButtons()}if(!e)return voiceOn=!0,selfMuM
ted=!0,applyMicSendState(),syncMicButtons(),void(t&&(t.classList.remove("on"),t.textContent="MUTED"));if(!(!localMicStream||!localMicStream.getAudioTracks().some(e=>"live"===e.readyState)))return voiceOn=!0,selfMuted=!1,roomMuteHold=!1,applyMicSendState(),syncMicButtons(),void(t&&(t.classList.add("on"),t.textContent="ON"));try{localMicStream=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0},video:!1}),voiceOn=!0,selfMuted=!1,roomMuteHold=!1,await attachMicM
ToPeers(!0),applyMicSendState(),syncMicButtons(),t&&(t.classList.add("on"),t.textContent="ON"),voiceHelloAll(),voicePcs.forEach((e,t)=>offerVoice(t)),dcList.forEach(e=>{e&&"open"===e.readyState&&e._peerId&&offerVoice(e._peerId)})}catch(e){voiceOn=!1,syncMicButtons(),t&&(t.classList.remove("on"),t.textContent="MIC")}}let connected=!1,remotePlayers=new Map,isHost=!1,hostOfferCodes=[],myPlayerID="Racer",myCharId=FALLBACK_ID,collectedCandidatesList=[],lastCharSync=0;const CHAR_SYNC_INTERVAL=2500;let audioContext,audioMM
aster=null,sharedNoiseBuffer=null,lastSoundAt=0,raycaster=new THREE.Raycaster,pointer=new THREE.Vector2,syncCounter=0,seenChats=new Set,lastFullStateSent=0;function init(){scene=new THREE.Scene,window.scene=scene,scene.fog=new THREE.FogExp2(8956671,18e-5),camera=new THREE.PerspectiveCamera(90,window.innerWidth/window.innerHeight,.1,6e3),camera.position.set(0,12,28),renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),window.renderer=renderer,renderer.setClearColor(0,0),renderer.setClearAlpha(0),renderer.setSizM
e(window.innerWidth,window.innerHeight),renderer.setPixelRatio(window.devicePixelRatio),renderer.shadowMap.enabled=!0,document.body.appendChild(renderer.domElement),Object.assign(renderer.domElement.style,{position:"fixed",inset:"0",width:"100%",height:"100%",zIndex:"2",background:"transparent",pointerEvents:"auto"});const e=renderer.domElement;scene.add(new THREE.AmbientLight(11184810,1.1));const t=new THREE.DirectionalLight(16772812,1.5);t.position.set(80,140,60),t.castShadow=!1,scene.add(t);const a=isPhoneUI(),oM
=document.getElementById("jumpBtn");if(a)cameraCycleBtn.style.display="flex",pauseBtn.style.display="flex",o&&(o.style.display="flex");else{cameraCycleBtn&&(cameraCycleBtn.style.display="none"),pauseBtn&&(pauseBtn.style.display="none"),o&&(o.style.display="none");const e=document.getElementById("movePad");e&&(e.style.display="none")}const n=(e,t)=>{let a=!1;e.addEventListener("touchstart",e=>{e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),a=!0,throttleTouchId=null,steerTouchId=null,touchSteer=0M
,touchThrottle=0,potentialFireTouch=null,throttleIndicator.style.display="none",t()},{passive:!1}),e.addEventListener("touchend",e=>{e.preventDefault(),e.stopPropagation(),a=!1},{passive:!1}),e.addEventListener("click",e=>{a?e.preventDefault():t()})};n(cameraCycleBtn,cycleCamera),n(pauseBtn,togglePause),o&&(o.addEventListener("touchstart",e=>{e.preventDefault(),e.stopPropagation(),c(),jumpHeld||(jumpRequested=!0),jumpHeld=!0},{passive:!1}),o.addEventListener("touchend",e=>{e.preventDefault(),e.stopPropagation(),jumM
pHeld=!1},{passive:!1}),o.addEventListener("touchcancel",()=>{jumpHeld=!1},{passive:!0}),o.addEventListener("mousedown",e=>{e.preventDefault(),jumpHeld||(jumpRequested=!0),jumpHeld=!0}),o.addEventListener("mouseup",()=>{jumpHeld=!1}));const r=document.getElementById("teamToggleBtn");r&&n(r,()=>{c(),toggleTeam()});const s=document.getElementById("micBtn");function l(){gameStarted&&(setClubUiMode(!1),controlsEnabled=!0,blurGameInputs())}s&&s.addEventListener("touchstart",e=>{e.preventDefault(),e.stopPropagation(),c()M
},{passive:!1}),window.addEventListener("keydown",e=>{isTypingNow()||"Space"!==e.code&&" "!==e.key&&"Spacebar"!==e.key||!gameStarted||inLobby&&!gameStarted||(e.preventDefault(),jumpHeld||(jumpRequested=!0),jumpHeld=!0,keys[" "]=!0,keys.space=!0)},!0),window.addEventListener("keydown",e=>{if(!e.key)return;if("Enter"===e.key&&document.activeElement===chatInput){e.preventDefault();const t=chatInput.value.trim();if(t){appendChatMessage(myPlayerID,t);const e=JSON.stringify({type:"chat",message:t,from:myPlayerID});dcListM
.forEach(t=>{t&&"open"===t.readyState&&t.send(e)}),chatInput.value=""}return}const t=isTypingNow(),a=["w","a","s","d","arrowup","arrowdown","arrowleft","arrowright","shift"].indexOf((e.key||"").toLowerCase())>=0;gameStarted&&!clubUiMode&&!paused&&a&&t&&blurGameInputs(),"Space"!==e.code&&" "!==e.key&&"Spacebar"!==e.key||!gameStarted||paused||clubUiMode||t&&fieldIsVisible(document.activeElement)||(e.preventDefault(),jumpRequested=!0,keys[" "]=!0,keys.space=!0),previewMode||!gameStarted&&(inLobby||t)||t&&clubUiMode||tM
&&!a&&"Shift"!==e.key||(keys[e.key.toLowerCase()]=!0,"ShiftLeft"!==e.code&&"ShiftRight"!==e.code||(keys.shift=!0),"p"===e.key.toLowerCase()&&togglePause(),paused||previewMode||inLobby||!controlsEnabled||"c"!==e.key&&"C"!==e.key||cycleCamera(),paused&&"l"===e.key.toLowerCase()&&openLobbyFromPause(),"Escape"===e.key&&gameStarted&&(e.preventDefault(),setClubUiMode(!clubUiMode,"MENU
 ESC or Walk to return to your avatar")))}),window.addEventListener("keyup",e=>{e.key&&(keys[e.key.toLowerCase()]=!1),"ShiftLeft"!==e.cM
ode&&"ShiftRight"!==e.code||(keys.shift=!1),"Space"!==e.code&&" "!==e.key&&"Spacebar"!==e.key||(jumpHeld=!1,keys[" "]=!1,keys.space=!1)}),e.addEventListener("pointerdown",e=>{if(!gameStarted)return;const t=document.getElementById("clubDock");if(t&&t.contains(e.target))return;const a=document.getElementById("stageScreenFrame");a&&a.classList.contains("interact")&&a.contains(e.target)||l()}),e.addEventListener("click",()=>{l()}),e.addEventListener("mousedown",e=>{0===e.button&&Date.now()-lastFireTime>getFireCooldown(M
)&&gameStarted&&!paused&&controlsEnabled&&!clubUiMode&&(fireFreezeBall(),lastFireTime=Date.now())}),window.addEventListener("mousemove",e=>{if(paused&&isDragging){const t=e.clientX-lastMouseX,a=e.clientY-lastMouseY;return orbitAzimuth-=.01*t,orbitPolar-=.01*a,orbitPolar=Math.max(.01,Math.min(Math.PI-.01,orbitPolar)),lastMouseX=e.clientX,void(lastMouseY=e.clientY)}if(!controlsEnabled||!gameStarted&&inLobby||typingChat||paused||clubUiMode)return;if(coarsePointer||Date.now()<ignoreMouseSteerUntil)return;let t=e.clientM
X/window.innerWidth*2-1,a=e.clientY/window.innerHeight*2-1;const o=.06;t=Math.abs(t)<o?0:Math.sign(t)*(Math.abs(t)-o)/.94,a=Math.abs(a)<o?0:Math.sign(a)*(Math.abs(a)-o)/.94,mouseXNormalized=THREE.MathUtils.lerp(mouseXNormalized,t,.2),mouseYNormalized=THREE.MathUtils.lerp(mouseYNormalized,a,.2),pointer.x=t,pointer.y=-a,gameStarted&&(customCursor.style.left=e.clientX+"px",customCursor.style.top=e.clientY+"px")});e.addEventListener("mousedown",e=>{paused&&(isDragging=!0,lastMouseX=e.clientX,lastMouseY=e.clientY,documeM
nt.body.style.cursor="grabbing")}),document.addEventListener("mouseup",()=>{isDragging&&(isDragging=!1,document.body.style.cursor="grab")}),e.addEventListener("wheel",e=>{if(paused){e.preventDefault();const t=e.deltaY>0?1.1:.9;orbitRadius*=t,orbitRadius=Math.max(5,Math.min(100,orbitRadius))}},{passive:!1});const i=renderer.domElement;function c(){ignoreMouseSteerUntil=Date.now()+1200,mouseXNormalized=0,mouseYNormalized=0,coarsePointer=!0,customCursor.style.display="none"}function d(e,t){if(e>window.innerWidth-80&&tM
<140)return!0;const a=["jumpBtn","micBtn","teamToggleBtn","movePad","cameraCycleBtn","pauseBtn"];for(let o=0;o<a.length;o++){const n=document.getElementById(a[o]);if(!n||"none"===n.style.display)continue;const r=n.getBoundingClientRect();if(e>=r.left-8&&e<=r.right+8&&t>=r.top-8&&t<=r.bottom+8)return!0}return!1}function u(e,t){const a=document.getElementById("movePad");if(!a)return;const o=a.getBoundingClientRect(),n=o.left+o.width/2,r=o.top+o.height/2;let s=(e-n)/(.42*o.width),l=(t-r)/(.42*o.height);const i=Math.hyM
pot(s,l);i>1&&(s/=i,l/=i);padKeys.w=padKeys.a=padKeys.s=padKeys.d=0,i>.28&&(Math.abs(l)>=Math.abs(s)?l<0?padKeys.w=1:padKeys.s=1:s<0?padKeys.a=1:padKeys.d=1);const c=document.getElementById("movePadKnob");c&&(c.style.left=50+38*s+"%",c.style.top=50+38*l+"%")}function m(){padKeys.w=padKeys.a=padKeys.s=padKeys.d=0,padTouchId=null;const e=document.getElementById("movePadKnob");e&&(e.style.left="50%",e.style.top="50%")}function p(e){const t=Date.now();for(let a=0;a<e.changedTouches.length;a++){const o=e.changedTouches[M
a];if(o.identifier===padTouchId&&m(),o.identifier===steerTouchId){if(potentialFireTouch&&potentialFireTouch.id===o.identifier){const e=t-potentialFireTouch.startTime,a=Math.abs(o.clientX-potentialFireTouch.startX),n=Math.abs(o.clientY-potentialFireTouch.startY);if(e<220&&a<35&&n<35){const e=i.getBoundingClientRect();pointer.x=(o.clientX-e.left)/e.width*2-1,pointer.y=-(o.clientY-e.top)/e.height*2+1,Date.now()-lastFireTime>getFireCooldown()&&gameStarted&&!paused&&controlsEnabled&&!clubUiMode&&(fireFreezeBall(),lastFiM
reTime=Date.now())}potentialFireTouch=null}steerTouchId=null,touchSteer=0}}}!function(){const e=document.getElementById("movePad");if(!e||e._bound)return;e._bound=!0;const t=e=>{e.preventDefault(),e.stopPropagation();const t=e.changedTouches&&e.changedTouches[0]||e;padTouchId=null!=t.identifier?t.identifier:0,u(t.clientX,t.clientY)},a=e=>{e.preventDefault(),e.stopPropagation(),padTouchId=null,m()};e.addEventListener("touchstart",t,{passive:!1}),e.addEventListener("touchmove",e=>{e.preventDefault(),e.stopPropagationM
();const t=e.changedTouches&&e.changedTouches[0]||e;u(t.clientX,t.clientY)},{passive:!1}),e.addEventListener("touchend",a,{passive:!1}),e.addEventListener("touchcancel",a,{passive:!1}),e.addEventListener("pointerdown",t),window.addEventListener("pointerup",a)}(),i.addEventListener("touchstart",function(e){e.preventDefault();const t=Date.now();for(let a=0;a<e.changedTouches.length;a++){const o=e.changedTouches[a];if(d(o.clientX,o.clientY)){c();const e=document.getElementById("movePad");if(e&&"none"!==e.style.displayM
){const t=e.getBoundingClientRect();o.clientX>=t.left&&o.clientX<=t.right&&o.clientY>=t.top&&o.clientY<=t.bottom&&(padTouchId=o.identifier,u(o.clientX,o.clientY))}continue}coarsePointer=!0,null===steerTouchId&&(steerTouchId=o.identifier,steerTouchStartX=o.clientX,steerTouchStartY=o.clientY,touchSteer=0,potentialFireTouch={id:o.identifier,startTime:t,startX:o.clientX,startY:o.clientY})}},{passive:!1}),i.addEventListener("touchmove",function(e){e.preventDefault();for(let t=0;t<e.changedTouches.length;t++){const a=e.cM
hangedTouches[t];if(a.identifier===padTouchId)u(a.clientX,a.clientY);else if(a.identifier===steerTouchId){const e=a.clientX-steerTouchStartX,t=a.clientY-steerTouchStartY;touchSteer=THREE.MathUtils.clamp(e/(.38*window.innerWidth),-1,1),mouseYNormalized=THREE.MathUtils.clamp(t/(.32*window.innerHeight),-1,1),potentialFireTouch&&(Math.abs(e)>30||Math.abs(t)>30)&&(potentialFireTouch=null)}}},{passive:!1}),i.addEventListener("touchend",p),i.addEventListener("touchcancel",p),window.addEventListener("resize",()=>{camera.asM
pect=window.innerWidth/window.innerHeight,camera.updateProjectionMatrix(),renderer.setSize(window.innerWidth,window.innerHeight)}),chatInput.addEventListener("focus",()=>{gameStarted&&!clubUiMode||(typingChat=!0,clearMoveKeys())}),chatInput.addEventListener("blur",()=>typingChat=!1),document.addEventListener("focusin",e=>{if(gameStarted&&!clubUiMode)return;const t=e.target,a=t&&t.tagName||"";("INPUT"===a||"TEXTAREA"===a||"SELECT"===a||t&&t.isContentEditable)&&(typingChat=!0,clearMoveKeys())}),document.addEventListeM
ner("focusout",e=>{setTimeout(()=>{isTypingNow()||(typingChat=!1)},0)}),updateCursorForLobby()}let audioUnlockP=null,liveVoices=0;function tapDisconnect(){try{this.disconnect()}catch(e){}liveVoices=Math.max(0,liveVoices-1)}function ensureAudio(){try{if(audioContext||(audioContext=new(window.AudioContext||window.webkitAudioContext)),!audioMaster&&audioContext&&(audioMaster=audioContext.createGain(),audioMaster.gain.value=.7,audioMaster.connect(audioContext.destination)),audioContext&&!sharedNoiseBuffer){const e=MathM
.floor(.18*audioContext.sampleRate);sharedNoiseBuffer=audioContext.createBuffer(1,e,audioContext.sampleRate);const t=sharedNoiseBuffer.getChannelData(0);for(let a=0;a<e;a++)t[a]=2*Math.random()-1}}catch(e){}return audioContext}function unlockAudio(){const e=ensureAudio();return e?"running"===e.state?Promise.resolve(e):(audioUnlockP||(audioUnlockP=e.resume().then(()=>(audioUnlockP=null,e)).catch(()=>(audioUnlockP=null,e))),audioUnlockP):Promise.resolve(null)}function playFireSound(e=!1){const t=performance.now();t-lM
astSoundAt<55||(lastSoundAt=t,unlockAudio().then(t=>{if(!t||"running"!==t.state||!audioMaster)return;if(liveVoices>6)return;const a=t.currentTime,o=audioMaster;if(e){const e=t.createOscillator(),n=t.createGain();e.type="sawtooth",e.frequency.setValueAtTime(280,a),e.frequency.exponentialRampToValueAtTime(900,a+.22),n.gain.setValueAtTime(.55,a),n.gain.exponentialRampToValueAtTime(1e-4,a+.28),e.connect(n).connect(o),e.onended=tapDisconnect,liveVoices++,e.start(a),e.stop(a+.3)}else{const e=t.createOscillator(),n=t.creaM
teGain();e.type="triangle",e.frequency.setValueAtTime(520,a),e.frequency.exponentialRampToValueAtTime(90,a+.16),n.gain.setValueAtTime(.5,a),n.gain.exponentialRampToValueAtTime(1e-4,a+.2),e.connect(n).connect(o),e.onended=tapDisconnect,liveVoices++,e.start(a),e.stop(a+.22)}}))}function playHitSound(){unlockAudio().then(e=>{if(!e||"running"!==e.state||!audioMaster)return;if(liveVoices>6)return;const t=e.currentTime,a=e.createOscillator(),o=e.createGain();a.type="sine",a.frequency.setValueAtTime(110,t),o.gain.setValueM
AtTime(.6,t),o.gain.exponentialRampToValueAtTime(1e-4,t+.22),a.connect(o).connect(audioMaster),a.onended=tapDisconnect,liveVoices++,a.start(t),a.stop(t+.24)})}function cycleCamera(){throttleTouchId=null,steerTouchId=null,touchSteer=0,touchThrottle=0,throttleIndicator.style.display="none","chase"===cameraMode?(cameraMode="chase-far",hudVisible=!0):"chase-far"===cameraMode?(cameraMode="fpv",hudVisible=!0):(cameraMode="chase",hudVisible=!0);const e=document.getElementById("camMode");if(e){const t="chase-far"===cameraMM
ode?"CHASE FAR":"fpv"===cameraMode?"FIRST PERSON":"CHASE";e.textContent=t}document.getElementById("hud").style.display=hudVisible?"block":"none",chatContainer&&(chatContainer.style.display="none"),scoreboard&&(scoreboard.style.display="none"),cpIndicator&&(cpIndicator.style.display="none");"cockpit"===cameraMode||"cockpit-fpv"===cameraMode?(camera.fov=90,playerModel&&(playerModel.visible=!1)):(camera.fov=90,playerModel&&(playerModel.visible=!0)),camera.updateProjectionMatrix()}function updateHostPlayerList(){const M
e=document.getElementById("hostPlayerList");if(!e)return;let t=`<div style="color:#0ff;"><strong>Host:</strong> ${myPlayerID||"
"}</div>`;0===remotePlayers.size?t+='<div style="color:#888;margin-top:4px;">No remote players yet</div>':remotePlayers.forEach((e,a)=>{const o="red"===e.team?' <span style="color:#f44">[RED]</span>':"blue"===e.team?' <span style="color:#48f">[BLUE]</span>':"";t+=`<div style="margin-top:2px;">${a}${o}</div>`}),e.innerHTML=t}function openLobbyFromPause(){const e=document.getElementById("pM
2p-lobby");if(!e)return;e.style.display="flex";const t=document.getElementById("liveGamesContainer");if(t&&(t.style.display="block"),searchLiveGames(),isHost){const e=document.getElementById("lobbyHostControls");e&&(e.style.display="block"),updateHostPlayerList()}const a=document.getElementById("lobbyReturnToGameBtn");a&&(a.style.display=gameStarted?"block":"none");const o=document.getElementById("lobbyStartBtn");o&&(o.style.display=gameStarted?"none":"block"),updateCursorForLobby()}function togglePause(){if(throttM
leTouchId=null,steerTouchId=null,touchSteer=0,touchThrottle=0,throttleIndicator.style.display="none",paused=!paused,paused){orbitTarget.copy(car.pos),orbitTarget.y+=3.5;const e=(new THREE.Vector3).subVectors(camera.position,orbitTarget),t=(new THREE.Spherical).setFromVector3(e);orbitRadius=t.radius,orbitPolar=t.theta,orbitAzimuth=t.phi,customCursor.style.display="none",document.body.style.cursor="grabbing";const a=document.getElementById("camMode");a&&(a.textContent="ORBIT"),pauseHint.style.display="block",pauseRulM
esBtn.style.display="block"}else{customCursor.style.display="block",document.body.style.cursor="none";const e=document.getElementById("camMode");e&&(e.textContent=cameraMode.toUpperCase()),pauseHint.style.display="none",pauseRulesBtn.style.display="none",document.getElementById("hud").style.display=hudVisible?"block":"none",chatContainer&&(chatContainer.style.display="none"),scoreboard&&(scoreboard.style.display="none"),cpIndicator&&(cpIndicator.style.display="none")}updateCursorForLobby()}function createProjectileM
(e,t,a,o=!1){const n=new THREE.SphereGeometry(3.8,14,14),r=o?16729088:7851263,s=o?11149824:2250154,l=new THREE.MeshPhongMaterial({color:r,emissive:s,emissiveIntensity:1.8,shininess:92,specular:o?16755200:11206655}),i=new THREE.Mesh(n,l);i.position.copy(e);const c=new THREE.Mesh(new THREE.SphereGeometry(5.2,12,12),new THREE.MeshBasicMaterial({color:o?16746496:8969727,transparent:!0,opacity:.35}));return i.add(c),scene.add(i),{mesh:i,vel:t.clone(),owner:a,startPos:e.clone(),createdAt:Date.now(),isLava:o}}function firM
eFreezeBall(){if(!cart||!gameStarted||paused)return;raycaster.setFromCamera(pointer,camera);const e=raycaster.ray.direction.clone().normalize(),t=new THREE.Vector3(0,0,-1).applyQuaternion((new THREE.Quaternion).setFromAxisAngle(new THREE.Vector3(0,1,0),car.rotation)).clone().multiplyScalar(7).add(new THREE.Vector3(0,4,0)),a=car.pos.clone().add(t),o=e.multiplyScalar(405).clone().add(car.vel),n=hasLavaPower,r=createProjectile(a,o,myPlayerID,n);projectiles.push(r),playFireSound(n),playThrowAnim(),n&&(hasLavaPower=!1,uM
pdateChargeMeterUI()),dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"fireFreeze",pos:{x:a.x,y:a.y,z:a.z},vel:{x:o.x,y:o.y,z:o.z},owner:myPlayerID,isLava:n}))})}function updateProjectiles(e){Date.now();for(let t=projectiles.length-1;t>=0;t--){const a=projectiles[t];a.vel.y+=-84*e,a.mesh.position.addScaledVector(a.vel,e);const o=getTerrainHeight(a.mesh.position.x,a.mesh.position.z);if(a.mesh.position.y<o+1.8){scene.remove(a.mesh),projectiles.splice(t,1);continue}if(a.mesh.position.distanceTM
o(a.startPos)>2550){scene.remove(a.mesh),projectiles.splice(t,1);continue}const n=a.owner===myPlayerID;let r=!1;if(n)remotePlayers.forEach((e,t)=>{if(!r&&e.mesh&&a.mesh.position.distanceTo(e.mesh.position)<13){const e={type:"freezeHit",target:t,duration:5e3};a.isLava&&(e.isLava=!0),dcList.forEach(t=>{t&&"open"===t.readyState&&t.send(JSON.stringify(e))});const o=(scores.get(myPlayerID)||0)+1;scores.set(myPlayerID,o),dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"scoreUpdate",id:myPlayerID,M
hits:o}))}),updateScoreboard(),r=!0}});else if(a.mesh.position.distanceTo(car.pos)<13){(!a.createdAt||Date.now()-a.createdAt>180)&&(a.isLava?applyLavaHit():applyFreezeHit(5e3),r=!0)}r&&(scene.remove(a.mesh),projectiles.splice(t,1))}}function ensureCart(){return cart||(cart=new THREE.Group,cart.visible=!1,scene&&scene.add(cart),cart)}function updatePhysics(e){if(!gameStarted||paused||clubUiMode)return;if(controlsEnabled=!0,inLobby=!1,typingChat=!1,ensureCart(),"club"===gameMode){const e=Math.hypot(car.pos.x,car.pos.M
z);if(e>CLUB_FLOOR_R-8){const t=(CLUB_FLOOR_R-8)/e;car.pos.x*=t,car.pos.z*=t;const a=car.pos.x/(CLUB_FLOOR_R-8),o=car.pos.z/(CLUB_FLOOR_R-8),n=car.vel.x*a+car.vel.z*o;n>0&&(car.vel.x-=a*n,car.vel.z-=o*n)}const inner=(window.BOVINE_INNER||1120)-6,outer=(window.BOVINE_OUTER||1680)+6;if(e>inner&&e<outer){const mid=(inner+outer)/2,target=e<mid?inner:outer,k=target/Math.max(e,1e-3);car.pos.x*=k,car.pos.z*=k;const a=car.pos.x/target,o=car.pos.z/target,n=car.vel.x*a+car.vel.z*o;car.vel.x-=a*n,car.vel.z-=o*n}}isOnTrackXZ(cM
ar.pos.x,car.pos.z);const t=Date.now()<slowEndTime;!t&&consecutiveFreezeHits>0&&Date.now()>slowEndTime+400&&(consecutiveFreezeHits=0);const a=t?0.3:1,o=!!(keys.w||keys.arrowup||padKeys.w),n=!!(keys.s||keys.arrowdown||padKeys.s),r=!!(keys.a||keys.arrowleft||padKeys.a),s=!!(keys.d||keys.arrowright||padKeys.d);padRamp=o?Math.min(1,padRamp+e/1.15):Math.max(0,padRamp-2.2*e);const l=n&&!o?1:0;let i=o?1:0,c=keys.shift||keys.shiftleft||keys.shiftright?1:0;padKeys.w&&(c=padRamp);const d=20*a,u=1*d,m=d+(58*a-d)*(c?1===c?1:c:M
0);jumpRequested&&car.onGround&&(car.vel.y="club"===gameMode?67:110,car.onGround=!1,jumpStartY=car.pos.y,jumpStartAt=Date.now()),jumpRequested=!1;let p=0;null!==steerTouchId?p=touchSteer:!coarsePointer&&Date.now()>ignoreMouseSteerUntil&&(p=mouseXNormalized),Math.abs(p)<.05&&(p=0);const y=-1*p,h=new THREE.Vector3(0,0,-1).applyAxisAngle(new THREE.Vector3(0,1,0),car.rotation),f=new THREE.Vector3(1,0,0).applyAxisAngle(new THREE.Vector3(0,1,0),car.rotation);let g=car.vel.dot(h),b=car.vel.dot(f);const E=3.6*Math.abs(g);lM
et M=1;if(E>180){const e=THREE.MathUtils.clamp((E-180)/80,0,1);M=THREE.MathUtils.lerp(.18/.42,1,e*e)}const S="club"===gameMode?1.25:1;if(g*=i?0.993:.78,b*=.42*M,Math.abs(b)>.5555555555555556&&Math.abs(y)<.4){const t=-Math.sign(b);car.rotation+=.18*t*Math.min(.4*Math.abs(b),1.8)*e}{const t=THREE.MathUtils.clamp(1.52*mouseYNormalized+.22,-.88,1.55);car.pitch=THREE.MathUtils.lerp(car.pitch,t,Math.min(1,1.85*e))}g+=i*(36*a)*(1+(c?0.55*("number"==typeof c?c:1):0))*1*e;const w=(s?1:0)-(r?1:0);w&&(b+=72*w*e),b=THREE.MathUM
tils.clamp(b,-u,u),l&&(g>.5555555555555556?g-=25*e*1:(g-=12.5*e*1,g=Math.max(g,-u))),g=THREE.MathUtils.clamp(g,n?-u:REVERSE_MAX,m);const T=1.7*(1-.12*Math.min(1,Math.abs(g)/Math.max(1,m)));car.rotation+=y*T*1.35*S*e;const v=car.vel.y;car.vel=h.multiplyScalar(g).add(f.multiplyScalar(b));let C="club"===gameMode?-39:-250;!car.onGround&&jumpHeld&&v>0&&car.pos.y-jumpStartY<("club"===gameMode?120:280)&&Date.now()-jumpStartAt<("club"===gameMode?1500:1400)?(C="club"===gameMode?-10:-30,car.vel.y=Math.min("club"===gameMode?7M
2:380,v+("club"===gameMode?18:160)*e+C*e)):car.vel.y=v+C*e,car.pos.y-jumpStartY>280&&car.vel.y>0&&(car.vel.y*=.25);const I=car.vel.clone().multiplyScalar(e);let P=car.pos.clone().add(I);const R=getDriveSurfaceHeight(P.x,P.z,car.pos.y)+.04;P.y<=R+.2?(P.y=R,car.vel.y=0,car.onGround=!0):car.onGround=!1;const H="club"===gameMode?4.2:12,L="club"===gameMode?0.06:.18;for(let e=0;e<2;e++)for(let e=0;e<solidBoxes.length;e++){const t=solidBoxes[e],a=void 0!==t.halfXZ?t.halfXZ:t.half,o=void 0!==t.halfX?t.halfX:a,n=void 0!==t.M
halfZ?t.halfZ:a,r=void 0!==t.halfY?t.halfY:t.half,s=t.y+r,l=t.y-r,i=Math.abs(P.x-t.x),c=Math.abs(P.z-t.z),d=t.soft?7:t.isBridge?10:H,u=void 0!==t.rubber?t.rubber:t.soft?0.35:t.isBridge?0.22:L;if(!t.noLand&&i<=o&&c<=n&&P.y>=s-10&&car.vel.y<=40){P.y<=s+2.5&&(P.y=s+.05,car.onGround=!0,car.vel.y<0&&(car.vel.y=0));continue}if(P.y+8<=l||P.y-2>=s)continue;const m=Math.max(t.x-o,Math.min(t.x+o,P.x)),p=Math.max(t.z-n,Math.min(t.z+n,P.z));let y=P.x-m,h=P.z-p,f=Math.hypot(y,h);if(f<1e-6&&(o-i<n-c?(y=P.x>=t.x?1:-1,h=0,f=1,P.x=M
t.x+y*(o+d)):(y=0,h=P.z>=t.z?1:-1,f=1,P.z=t.z+h*(n+d))),f>0&&f<d){const e=y/f,t=h/f,a=d-f;P.x+=e*a,P.z+=t*a;const o=car.vel.x*e+car.vel.z*t;o<0&&(car.vel.x-=(1+u)*o*e,car.vel.z-=(1+u)*o*t)}}"club"===gameMode&&"function"==typeof resolveClubMeshWalls&&(P=resolveClubMeshWalls(car.pos,P)),remotePlayers.forEach((e,t)=>{if(!e.mesh)return;if(P.distanceTo(e.mesh.position)<14){const t=P.clone().sub(e.mesh.position).normalize();car.vel.addScaledVector(t,24),e.lastState&&e.lastState.pos.addScaledVector(t,-24)}});let x=P.cloneM
();for(let e=0;e<4;e++){const e=(new THREE.Box3).setFromCenterAndSize(x,new THREE.Vector3(15,14,15));let t=!1;for(let a of colliders){a.updateMatrixWorld();const o=(new THREE.Box3).setFromObject(a);if(e.intersectsBox(o)){t=!0;let n=new THREE.Vector3;if(a.userData&&a.userData.wallNormal)n.copy(a.userData.wallNormal);else{const t=new THREE.Vector3;e.getCenter(t);const a=new THREE.Vector3;o.getCenter(a),n.subVectors(t,a).normalize()}const r=car.onGround?0.8:.8*2.2;x.addScaledVector(n,r);const s=car.vel.dot(n);if(s<0){M
const e=n.clone().multiplyScalar(.35*-s),t=car.vel.clone().sub(n.clone().multiplyScalar(s)).multiplyScalar(.98);car.vel.copy(t).add(e)}break}}if(!t)break}car.pos.copy(x),cart.position.copy(car.pos),cart.rotation.order="YXZ",cart.rotation.y=car.rotation+POD_YAW_OFFSET,cart.rotation.x=car.pitch||0;const k=Math.max(0,Math.min(1,(E-50)/450));cart.rotation.z=car.onGround?-.34*y*k:THREE.MathUtils.lerp(cart.rotation.z,0,Math.min(1,6*e));const D=Math.round(E),B=document.getElementById("speed");if(B&&(B.textContent=D),lastFM
wdVel=g,lavaPatches.forEach(e=>{const t=car.pos.x-e.pos.x,a=car.pos.z-e.pos.z,o=Math.hypot(t,a),n=e.radius||28,r=Math.abs(car.pos.y-e.pos.y)<35;o<n&&r&&(hasLavaPower||(hasLavaPower=!0,updateChargeMeterUI()))}),Math.random()<.62){const e=new THREE.Vector3(0,0,-1).applyAxisAngle(new THREE.Vector3(0,1,0),car.rotation).clone().multiplyScalar(-9),t=new THREE.Vector3(0,1.6,0),a=car.pos.clone().add(e).add(t);if(E>600&&car.onGround){createDustParticle(a,car.vel.clone().multiplyScalar(.25).add(new THREE.Vector3(28*(Math.ranM
dom()-.5),12+22*Math.random(),28*(Math.random()-.5))),4874026)}if(!car.onGround&&"club"!==gameMode){createDustParticle(a,new THREE.Vector3(32*(Math.random()-.5),-18-25*Math.random(),32*(Math.random()-.5)),Math.random()>.6?11206655:7851263)}}const A=Date.now();if("ctf"===gameMode)return void updateCtfGameplay();if(!flagPoleMesh)return;const F=new THREE.Vector3(flagPoleMesh.position.x,getTerrainHeight(flagPoleMesh.position.x,flagPoleMesh.position.z)+8,flagPoleMesh.position.z);if(flagHolder===myPlayerID&&0===myLapStarM
tTime&&(myLapStartTime=A,myLapPausedTime=0,myLapIsPaused=!1),flagHolder!==myPlayerID&&myLapStartTime>0&&!myLapIsPaused&&(myLapPausedTime=A-myLapStartTime,myLapIsPaused=!0),flagHolder===myPlayerID&&myLapIsPaused&&(myLapStartTime=A-myLapPausedTime,myLapIsPaused=!1),flagHolder===myPlayerID)for(let e=0;e<checkpointStars.length;e++){const t=checkpointStars[e].mesh.position;car.pos.distanceTo(t)<45&&!myCompletedCheckpoints.has(e)&&myCompletedCheckpoints.add(e)}if(4===myCompletedCheckpoints.size){if(car.pos.distanceTo(F)<M
45&&flagHolder===myPlayerID){const e=((A-myLapStartTime)/1e3).toFixed(2);playerLapTimes.set(myPlayerID,e),myLaps++,playerLaps.set(myPlayerID,myLaps),myCompletedCheckpoints.clear(),flagHolder=null,droppedFlagPos=null,flagCooldown=A+3e3,stealCooldown=A+1500,consecutiveFreezeHits=0,dcList.forEach(t=>{t&&"open"===t.readyState&&(t.send(JSON.stringify({type:"flagUpdate",holder:null,dropPos:null,cooldown:flagCooldown,stealCooldown:stealCooldown})),t.send(JSON.stringify({type:"lapUpdate",id:myPlayerID,laps:myLaps,lapTime:eM
})))}),updateFlagVisual(),updateScoreboard(),myLapStartTime=0}}if(null===flagHolder&&A>flagCooldown&&A>stealCooldown){const e=droppedFlagPos||F;car.pos.distanceTo(e)<45&&(flagHolder=myPlayerID,droppedFlagPos=null,myLapStartTime=A,myLapIsPaused=!1,consecutiveFreezeHits=0,dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"flagUpdate",holder:myPlayerID,dropPos:null,cooldown:flagCooldown,stealCooldown:stealCooldown}))}),updateFlagVisual(),updateScoreboard())}else if(flagHolder!==myPlayerID&&A>steM
alCooldown){let e=!1;const t=remotePlayers.get(flagHolder);if(t&&(e=Date.now()<(t.lastState.slowEndTime||0)),e){const e=t?t.mesh:null;if(e){car.pos.distanceTo(e.position)<28&&(flagHolder=myPlayerID,myLapStartTime=A,stealCooldown=A+1500,dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"flagUpdate",holder:myPlayerID,cooldown:flagCooldown,stealCooldown:stealCooldown}))}),updateFlagVisual(),updateScoreboard())}}}}function updateCamera(){if(!cart&&!minionRoot&&!playerModel)return;document.getElemM
entById("stageScreenFrame");if(skyDome&&skyDome.position.set((paused?orbitTarget:car.pos).x,0,(paused?orbitTarget:car.pos).z),paused){const e=new THREE.Vector3;return e.setFromSphericalCoords(orbitRadius,orbitPolar,orbitAzimuth),e.add(orbitTarget),camera.position.copy(e),void camera.lookAt(orbitTarget)}const e=(new THREE.Quaternion).setFromEuler(new THREE.Euler(0,car.rotation,0,"YXZ"));minionRoot&&(minionRoot.visible="fpv"!==cameraMode),playerModel&&(playerModel.visible="fpv"!==cameraMode);const t="number"==typeof M
mouseXNormalized?mouseXNormalized:0,a="number"==typeof mouseYNormalized?mouseYNormalized:0;if("fpv"===cameraMode){const o=new THREE.Vector3(0,10.8,-2.8).applyQuaternion(e);camera.position.copy(car.pos.clone().add(o));const n=new THREE.Vector3(48*t,12.5+85*-a+8,-50).applyQuaternion(e);camera.lookAt(car.pos.clone().add(n))}else{const o="chase-far"===cameraMode,n=new THREE.Vector3(0,o?20:12.2,o?28:16.5).applyQuaternion(e);let r=car.pos.x+n.x,s=car.pos.z+n.z,l=car.pos.y+n.y;camera.position.x+=.22*(r-camera.position.x),M
camera.position.z+=.22*(s-camera.position.z),camera.position.y+=.28*(l-camera.position.y);const i=car.pos.clone().add(new THREE.Vector3(t*(o?52:38),(o?14:12.5)+-a*(o?78:68)+7,o?-36:-26).applyQuaternion(e));camera.lookAt(i)}}function decodeSDP(e){const t=e.trim().replace(/[\r\n]+/g,"").match(/^([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),(.*)$/);if(!t)throw new Error("Invalid token");const a=t[1],o=t[2],n=t[3],r=t[4];let s=t[5];const l=t[6]||"";64===s.length&&/^[0-9A-Fa-f]{64}$/.test(s)&&(s=s.match(/.{2}/g).join(":").toUM
pperCase());const i=l?l.split("|").map(e=>e.trim()).filter(e=>e.length>0):[],c="A"===a?"active":"actpass";let d=`v=0\r\no=- ${Date.now()} 2 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\na=setup:${c}\r\na=ice-ufrag:${n}\r\na=ice-pwd:${r}\r\na=fingerprint:sha-256 ${s}\r\n`;return i.forEach(e=>d+=`a=candidate:${e}\r\n`),d+="a=end-of-candidates\r\n",{sdp:d,username:o}}function M
encodeSDP(e,t,a){const o=e.split("\r\n");let n="",r="",s="";const l=[];for(const e of o)e.startsWith("a=ice-ufrag:")&&(n=e.slice(12)),e.startsWith("a=ice-pwd:")&&(r=e.slice(10)),e.startsWith("a=fingerprint:sha-256 ")&&(s=e.slice(22).replace(/:/g,"")),e.startsWith("a=candidate:")&&l.push(e.slice(12));return`${"offer"===t?"O":"A"},${a},${n},${r},${s},${l.join("|")}`}async function waitForIceGathering(e){return new Promise(t=>{if("complete"===e.iceGatheringState)return t();const a=()=>{e.removeEventListener("icegatherM
ingstatechange",a),t()};e.addEventListener("icegatheringstatechange",a),setTimeout(a,12e3)})}function broadcastToAll(e,t=null){dcList.forEach(a=>{a!==t&&"open"===a.readyState&&a.send(e)})}function sendFullState(){const e={type:"fullState",mapId:currentMapId,gameMode:gameMode,players:{}};e.players[myPlayerID]={charId:myCharId,team:myTeam,isHost:!!isHost,pos:{x:car.pos.x,y:car.pos.y,z:car.pos.z},rot:car.rotation,laps:playerLaps.get(myPlayerID)||0,lapTime:playerLapTimes.get(myPlayerID)||0,hits:scores.get(myPlayerID)||M
0},remotePlayers.forEach((t,a)=>{e.players[a]={charId:t.charId,team:t.team,pos:{x:t.lastState.pos.x,y:t.lastState.pos.y,z:t.lastState.pos.z},rot:t.lastState.podRot||0,laps:playerLaps.get(a)||0,lapTime:playerLapTimes.get(a)||0,hits:scores.get(a)||0}});const t=JSON.stringify(e);dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(t)}),lastFullStateSent=Date.now()}function setupDataChannel(e){-1===dcList.indexOf(e)&&dcList.push(e),e.onclose=()=>{e._peerId&&removeRemotePlayer(e._peerId)},e.onerror=()=>{},e.onopen=async(M
)=>{connected=!0;const t=document.getElementById("lobby-status");if(t&&(t.innerHTML=isHost?`<span style="color:#0f0;">Player connected
 ${1+remotePlayers.size} total</span>`:"Connected
 waiting for host map
"),isHost&&updateHostPlayerList(),currentMapId="club-hall",gameMode="club",readMyCharIdFromInput(),e.send(JSON.stringify({type:"init",charId:myCharId,id:myPlayerID,team:myTeam,gameMode:gameMode,mapId:currentMapId,isHost:!!isHost,pos:{x:car.pos.x||0,y:2.2,z:car.pos.z||-1300},rot:car.rotation||0})),isHoM
st&&(e.send(JSON.stringify({type:"mapSync",mapId:"club-hall",gameMode:"club"})),syncClubStateTo(e)),"ctf"===gameMode&&(broadcastTeam(),broadcastCtfFlags()),multiplayerMode=!0,startNetKeepalive(),voiceOn&&e._peerId&&offerVoice(e._peerId),!isHost){const t=readMyCharIdFromInput(),a=await loadSkinnedMinion(t);a&&(playerModel=a,attachCharacterToPod(playerModel)),document.getElementById("p2p-lobby").style.display="none",e.send(JSON.stringify({type:"mapRequest"})),pendingGuestStart=!0,setTimeout(()=>{pendingGuestStart&&(pM
endingGuestStart=!1,startGame())},4e3)}},e.onmessage=t=>{try{const a=JSON.parse(t.data);if(a.id&&a.id!==myPlayerID){const t=!e._peerId;e._peerId=a.id,t&&(getVoicePc(a.id),getSharePc(a.id),isHost?(ensureHostBroadcast(a.id),localShareStream&&offerShare(a.id)):sendToPeer(a.id,{type:"voiceHello"}))}if(a.type&&0===String(a.type).indexOf("share")&&"shareRepair"!==a.type)return isHost&&a.to&&a.to!==myPlayerID?void dcList.forEach(e=>{if(e&&"open"===e.readyState&&e._peerId===a.to)try{e.send(JSON.stringify(a))}catch(e){}}):vM
oid handleShareMsg(a);if(a.type&&0===String(a.type).indexOf("voice"))return isHost&&a.to&&a.to!==myPlayerID?void dcList.forEach(e=>{if(e&&"open"===e.readyState&&e._peerId===a.to)try{e.send(JSON.stringify(a))}catch(e){}}):void handleVoiceMsg(e,a);if("function"==typeof handleClubNet&&handleClubNet(a))return void(isHost&&"speakerSync"!==a.type&&"fullState"!==a.type&&broadcastToAll(t.data,e));if("ping"===a.type){a.id&&(e._peerId=a.id);try{e.send(JSON.stringify({type:"pong",id:myPlayerID,t:a.t,isHost:!!isHost}))}catch(eM
){}return}if("pong"===a.type){if(a.id){let e=remotePlayers.get(a.id);e&&(e.lastUpdateTime=Date.now(),a.t&&(e.rtt=Date.now()-a.t),a.isHost&&(e.isHost=!0))}return}if("chat"===a.type){if(a.from===myPlayerID||seenChats.has(a.message+a.from))return;return seenChats.add(a.message+a.from),appendChatMessage(a.from,a.message),void(isHost&&broadcastToAll(t.data,e))}if("fullState"===a.type)return!isHost&&a.mapId&&applyHostMap(a.mapId,a.gameMode),Object.keys(a.players).forEach(e=>{if(e===myPlayerID)return;const t=a.players[e];M
let o=remotePlayers.get(e);o||(addRemotePlayer(e,t.charId,t.rot),o=remotePlayers.get(e)),o&&(o.lastState.pos.set(t.pos.x,t.pos.y,t.pos.z),o.lastState.podRot=t.rot,t.team&&(o.team=t.team,o.mesh&&attachNameTag(o.mesh,o.playerId||e,!1,o.team)),t.isHost&&(o.isHost=!0),t.charId&&t.charId!==o.charId&&updateRemoteCharacter(o,t.charId),o.lastUpdateTime=Date.now()),void 0!==t.laps&&playerLaps.set(e,t.laps),void 0!==t.lapTime&&playerLapTimes.set(e,t.lapTime),void 0!==t.hits&&scores.set(e,t.hits)}),void updateScoreboard();if(M
"mapRequest"===a.type)isHost&&e.send(JSON.stringify({type:"mapSync",mapId:currentMapId,gameMode:gameMode}));else if("mapSync"===a.type)!isHost&&a.mapId&&(async()=>{await applyHostMap(a.mapId,a.gameMode),pendingGuestStart&&(pendingGuestStart=!1,startGame())})();else if("init"===a.type){if(a.id===myPlayerID)return;(async()=>{!isHost&&a.mapId&&await applyHostMap(a.mapId,a.gameMode),await addRemotePlayer(a.id,a.charId,a.rot);const e=remotePlayers.get(a.id);e&&(a.team&&(e.team=a.team,e.mesh&&attachNameTag(e.mesh,e.playeM
rId||a.id,!1,e.team)),a.isHost&&(e.isHost=!0)),!isHost&&pendingGuestStart&&(pendingGuestStart=!1,startGame())})()}else if("pos"===a.type){if(a.id===myPlayerID)return;let e=remotePlayers.get(a.id);!e&&a.id&&(addRemotePlayer(a.id,a.charId,a.rot),e=remotePlayers.get(a.id)),e&&(a.pos&&e.lastState.pos.copy(a.pos),a.anim&&(e.lastState.anim=a.anim),void 0!==a.rot&&(e.lastState.podRot=a.rot),a.charId&&a.charId!==e.charId&&updateRemoteCharacter(e,a.charId),void 0!==a.slowEndTime&&(e.lastState.slowEndTime=a.slowEndTime),a.isM
Host&&(e.isHost=!0),a.team&&(e.team=a.team,e.mesh&&attachNameTag(e.mesh,e.playerId||a.id,!1,e.team)),e.lastUpdateTime=Date.now())}else if("fireFreeze"===a.type){const e=new THREE.Vector3(a.pos.x,a.pos.y,a.pos.z),t=createProjectile(e,new THREE.Vector3(a.vel.x,a.vel.y,a.vel.z),a.owner,!!a.isLava);projectiles.push(t)}else if("freezeHit"===a.type)a.target===myPlayerID&&(a.isLava?applyLavaHit():applyFreezeHit(a.duration||5e3));else if("scoreUpdate"===a.type)scores.set(a.id,a.hits),updateScoreboard();else if("lapUpdate"=M
==a.type)playerLaps.set(a.id,a.laps),void 0!==a.lapTime&&null!==a.lapTime&&playerLapTimes.set(a.id,a.lapTime),updateScoreboard();else if("flagUpdate"===a.type)flagHolder=a.holder,a.cooldown&&(flagCooldown=a.cooldown),a.stealCooldown&&(stealCooldown=a.stealCooldown),a.dropPos?droppedFlagPos=new THREE.Vector3(a.dropPos.x,a.dropPos.y,a.dropPos.z):(a.holder||null===a.dropPos)&&(droppedFlagPos=null),updateFlagVisual(),updateScoreboard();else if("teamUpdate"===a.type){if(a.id===myPlayerID)return;let e=remotePlayers.get(aM
.id);e?(e.team=a.team,e.mesh&&attachNameTag(e.mesh,e.playerId||a.id,!1,e.team),updateScoreboard()):addRemotePlayer(a.id,null,0).then(()=>{const e=remotePlayers.get(a.id);e&&(e.team=a.team,e.mesh&&attachNameTag(e.mesh,e.playerId||a.id,!1,e.team)),updateScoreboard()})}else"ctfFlagUpdate"===a.type&&(CTF.redHolder=a.redHolder||null,CTF.blueHolder=a.blueHolder||null,CTF.redDrop=a.redDrop?new THREE.Vector3(a.redDrop.x,a.redDrop.y,a.redDrop.z):null,CTF.blueDrop=a.blueDrop?new THREE.Vector3(a.blueDrop.x,a.blueDrop.y,a.blueM
Drop.z):null,a.teamScores&&(teamScores=a.teamScores),updateCtfFlagVisual(),updateCtfHud(),updateScoreboard());isHost&&"fullState"!==a.type&&broadcastToAll(t.data,e)}catch(e){}}}function poseCharacterOnPod(e){e&&(e.userData.isPlayerChar=!0,e.userData.isLordinal?(e.scale.setScalar(2.04),e.position.set(0,1.55,-.4),e.rotation.y=0):e.userData.isImageSphere?(e.scale.setScalar(1.65),e.position.set(0,2.25,-.4),e.rotation.y=-Math.PI/2):(e.scale.setScalar(.8),e.position.set(0,.35,-.4),e.rotation.y=0))}async function addRemotM
ePlayer(e,t,a){if(remotePlayers.has(e))return;const o={mesh:null,model:null,charId:t||FALLBACK_ID,playerId:e,team:null,loadGen:0,lastState:{pos:new THREE.Vector3(0,0,0),podRot:a||0,anim:"Idle",slowEndTime:0},lastUpdateTime:Date.now()};remotePlayers.set(e,o),scores.set(e,0),playerLaps.set(e,0),updatePlayerCount();const n=new THREE.Group;n.visible=!0,scene.add(n),o.mesh=n,o.loadGen+=1;const r=o.loadGen,s=await loadSkinnedMinion(o.charId,{local:!1});if(remotePlayers.has(e)&&remotePlayers.get(e)===o&&o.loadGen===r){forM
(;n.children.length;)n.remove(n.children[0]);s&&s!==minionRoot&&s!==playerModel&&(s.parent&&s.parent.remove(s),s.position.set(0,0,0),s.rotation.set(0,0,0),s.scale.setScalar(5.69),n.scale.set(1,1,1),n.add(s),o.model=s,attachNameTag(n,e,!1,o.team)),updateScoreboard()}else s&&s.parent&&s.parent.remove(s)}async function updateRemoteCharacter(e,t){if(!e||!t||e.charId===t)return;e.charId=t,e.loadGen=(e.loadGen||0)+1;const a=e.loadGen;if(e.mesh)for(;e.mesh.children.length;)e.mesh.remove(e.mesh.children[0]);e.model=null;coM
nst o=await loadSkinnedMinion(t,{local:!1});o&&e.loadGen===a&&e.charId===t&&e.mesh?(o.position.set(0,0,0),o.rotation.set(0,0,0),o.scale.setScalar(5.69),e.mesh.scale.set(1,1,1),e.mesh.add(o),e.model=o,attachNameTag(e.mesh,e.playerId||"Racer",!1,e.team)):o&&o.parent&&o.parent.remove(o)}function updatePlayerCount(){document.getElementById("playerCount").textContent=1+remotePlayers.size}function updateScoreboard(){if("club"===gameMode)return void(scoreboard&&(scoreboard.style.display="none"));let e="";if("ctf"===gameMoM
de){e+=`<div style="color:#f44">RED ${teamScores.red}</div>`,e+=`<div style="color:#48f">BLUE ${teamScores.blue}</div>`,e+='<hr style="border-color:#0f03">';const t=(t,a)=>{const o=scores.get(t)||0,n="red"===a?"#f44":"blue"===a?"#48f":"#aaa";let r="";CTF.redHolder===t&&(r=' <span style="color:#f66">
 RED FLAG</span>'),CTF.blueHolder===t&&(r=' <span style="color:#6af">
 BLUE FLAG</span>'),e+=`<div><span style="color:${n}">[${(a||"?").toUpperCase()}]</span> <strong>${t}</strong>: ${o} hits${r}</div>`};t(myPlayerIM
D,myTeam),remotePlayers.forEach((e,a)=>t(a,e.team))}else{const t=new Set([myPlayerID,...remotePlayers.keys()]);scores.forEach((e,a)=>t.add(a)),t.forEach(t=>{const a=scores.get(t)||0,o=playerLaps.get(t)||0,n=playerLapTimes.get(t)||0;e+=`<div><strong>${t}</strong>: ${a} hits | ${o} laps${flagHolder===t?' <span style="color:#0ff">
 FLAG</span>':""} <span style="color:#0ff;">${n}s</span></div>`})}scoreList.innerHTML=e||'<div style="color:#666;">No hits or laps yet</div>',scoreboard.style.display=hudVisible?"block":"nM
one"}function updateRemotePlayers(){const e=MAP_DEFS[currentMapId]||{},t=e.fog&&null!=e.fogPlayerDist?e.fogPlayerDist:null;remotePlayers.forEach(e=>{if(!e.mesh||!e.lastState||!e.lastState.pos)return;const a=e.mesh.position.distanceTo(e.lastState.pos);if(a>120)e.mesh.position.copy(e.lastState.pos);else{const t=a>40?0.5:a>12?0.38:.28;e.mesh.position.lerp(e.lastState.pos,t)}const o=(e.lastState.podRot||0)+Math.PI;if(e.mesh.rotation.y=THREE.MathUtils.lerp(e.mesh.rotation.y||0,o,.35),e.model&&(playAnimOn(e.model,e.lastSM
tate.anim||"Idle"),e.model.userData.mixer&&e.model.userData.mixer.update(.016)),null!=t&&car&&car.pos){const a=e.mesh.position.distanceTo(car.pos);e.mesh.visible=a<=t}else e.mesh.visible=!0})}function appendChatMessage(e,t){const a=document.createElement("div");a.className="chat-msg",a.innerHTML=`<strong>${e}:</strong> ${t}`,chatMessages.appendChild(a),chatMessages.scrollTop=chatMessages.scrollHeight}function dropFlagAtWorld(e){if(flagHolder!==myPlayerID)return;const t=e&&e.clone?e.clone():new THREE.Vector3(e&&e.x|M
|car.pos.x,e&&e.y||car.pos.y,e&&e.z||car.pos.z);t.y=getTerrainHeight(t.x,t.z)+14,droppedFlagPos=t,flagHolder=null;const a=Date.now();flagCooldown=a+900,stealCooldown=a+1500,dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"flagUpdate",holder:null,dropPos:{x:t.x,y:t.y,z:t.z},cooldown:flagCooldown,stealCooldown:stealCooldown}))}),updateFlagVisual(),updateScoreboard()}function applyLavaHit(){"ctf"===gameMode?(CTF.redHolder===myPlayerID&&dropCtfFlag("red",car.pos),CTF.blueHolder===myPlayerID&&drM
opCtfFlag("blue",car.pos)):flagHolder===myPlayerID&&dropFlagAtWorld(car.pos),consecutiveFreezeHits=0;const e=getSpawnPos();car.pos.copy(e),car.vel.set(0,0,0),car.rotation=0,car.pitch=0,playHitSound()}function applyFreezeHit(e){slowEndTime=Date.now()+(e||5e3),playHitSound(),consecutiveFreezeHits++,consecutiveFreezeHits>=3&&(consecutiveFreezeHits=0,applyLavaHit())}function updateFlagVisual(){heldFlagMesh&&heldFlagMesh.parent&&heldFlagMesh.parent.remove(heldFlagMesh),null===flagHolder?(flagMesh&&(flagMesh.visible=!0,dM
roppedFlagPos?flagMesh.position.copy(droppedFlagPos):flagHomePos&&flagMesh.position.copy(flagHomePos)),heldFlagMesh&&(heldFlagMesh.visible=!1)):(flagMesh&&(flagMesh.visible=!1),flagHolder===myPlayerID&&cart&&heldFlagMesh?(cart.add(heldFlagMesh),heldFlagMesh.position.set(0,18,0),heldFlagMesh.rotation.y=Math.PI/2,heldFlagMesh.visible=!0):heldFlagMesh&&remotePlayers.forEach((e,t)=>{t===flagHolder&&e.mesh&&(e.mesh.add(heldFlagMesh),heldFlagMesh.position.set(0,18,0),heldFlagMesh.rotation.y=Math.PI/2,heldFlagMesh.visibleM
=!0)})),updateScoreboard()}function isHoldingAnyFlag(){return"ctf"===gameMode?CTF.redHolder===myPlayerID||CTF.blueHolder===myPlayerID:flagHolder===myPlayerID}function countTeams(){let e=0,t=0;return"red"===myTeam?e++:"blue"===myTeam&&t++,remotePlayers.forEach(a=>{"red"===a.team?e++:"blue"===a.team&&t++}),{red:e,blue:t}}function assignBalancedTeam(){const{red:e,blue:t}=countTeams();return e<=t?"red":"blue"}function broadcastTeam(){const e=JSON.stringify({type:"teamUpdate",id:myPlayerID,team:myTeam});dcList.forEach(tM
=>{t&&"open"===t.readyState&&t.send(e)})}function broadcastCtfFlags(){if("ctf"!==gameMode)return;const e=JSON.stringify({type:"ctfFlagUpdate",redHolder:CTF.redHolder,blueHolder:CTF.blueHolder,redDrop:CTF.redDrop?{x:CTF.redDrop.x,y:CTF.redDrop.y,z:CTF.redDrop.z}:null,blueDrop:CTF.blueDrop?{x:CTF.blueDrop.x,y:CTF.blueDrop.y,z:CTF.blueDrop.z}:null,teamScores:teamScores});dcList.forEach(t=>{t&&"open"===t.readyState&&t.send(e)})}function updateCtfHud(){const e=document.getElementById("ctfHud"),t=document.getElementById(M
"teamToggleBtn");if("ctf"!==gameMode||!gameStarted)return e&&(e.style.display="none"),void(t&&(t.style.display="none"));e&&(e.style.display="block"),t&&(t.style.display="block");const a=document.getElementById("ctfScoreLine"),o=document.getElementById("ctfTeamLine");if(a&&(a.innerHTML=`<span style="color:#f44">RED ${teamScores.red}</span>
 <span style="color:#48f">BLUE ${teamScores.blue}</span>`),o){const e="red"===myTeam?"#f44":"#48f";o.innerHTML=`Team: <span style="color:${e};font-weight:bold">${(myTeam||"
).toUpperCase()}</span>`}}function toggleTeam(){if("ctf"===gameMode&&gameStarted){if(isHoldingAnyFlag()){const e=document.getElementById("ctfTeamLine");return void(e&&(e.textContent="Can't switch team while holding a flag!"))}myTeam="red"===myTeam?"blue":"red",minionRoot&&attachNameTag(minionRoot,myPlayerID,!0,myTeam),broadcastTeam(),updateCtfHud(),updateScoreboard()}}function makeCtfFlagMesh(e,t){return new THREE.Mesh(new THREE.PlaneGeometry(22,16),new THREE.MeshPhongMaterial({color:e,side:THREE.DoubleSide,emissivM
e:t,emissiveIntensity:3,transparent:!0,opacity:.95}))}function makeCtfPole(e){return new THREE.Mesh(new THREE.CylinderGeometry(2.2,2.2,240,8),new THREE.MeshPhongMaterial({color:e,emissive:e,emissiveIntensity:1.5}))}function clearCtfObjects(){["redPole","bluePole","redFlagMesh","blueFlagMesh","heldRedMesh","heldBlueMesh"].forEach(e=>{const t=CTF[e];t&&(t.parent&&t.parent.remove(t),scene.remove(t)),CTF[e]=null}),CTF.redHolder=CTF.blueHolder=null,CTF.redDrop=CTF.blueDrop=null,CTF.redHome=CTF.blueHome=null}function setM
upCtfBases(){clearCtfObjects();const e=MAP_DEFS[currentMapId]||{},t=240;let a,o,n,r;if(e.chaosArena||e.squareWall){const t=.9*(e.outerRadiusOverride||chaosWallRadius||1400);a=t,o=t,n=-t,r=-t}else{const e=6072;a=0,o=-e,n=0,r=e}const s=getTerrainHeight(a,o),l=getTerrainHeight(n,r),i=s+120,c=l+120;CTF.redHome=new THREE.Vector3(a,s+t+8,o),CTF.blueHome=new THREE.Vector3(n,l+t+8,r),CTF.redPole=makeCtfPole(16720418),CTF.redPole.position.set(a,i,o),scene.add(CTF.redPole),CTF.bluePole=makeCtfPole(2254591),CTF.bluePole.positM
ion.set(n,c,r),scene.add(CTF.bluePole),CTF.redFlagMesh=makeCtfFlagMesh(16724787,16711680),CTF.redFlagMesh.position.copy(CTF.redHome),scene.add(CTF.redFlagMesh),CTF.blueFlagMesh=makeCtfFlagMesh(3377407,17663),CTF.blueFlagMesh.position.copy(CTF.blueHome),scene.add(CTF.blueFlagMesh),CTF.heldRedMesh=makeCtfFlagMesh(16724787,16711680),CTF.heldRedMesh.visible=!1,CTF.heldBlueMesh=makeCtfFlagMesh(3377407,17663),CTF.heldBlueMesh.visible=!1,CTF.redHolder=null,CTF.blueHolder=null,CTF.redDrop=null,CTF.blueDrop=null,teamScores=M
{red:0,blue:0}}async function buildChaosScatterProps(){const e=MAP_DEFS[currentMapId]||{};if(!e.chaosArena||!e.scatterModels||!e.scatterModels.length)return;const t=e.scatterModels,a=e.scatterCount||20,o=e.scatterNearFlag||4,n={};for(const e of t)try{const t=await loadGltfById(e);t&&(n[e]=t)}catch(e){}const r=t.filter(e=>n[e]);if(!r.length)return;const s=.9*(e.outerRadiusOverride||chaosWallRadius||1400),l=(e,t,o,l,i,c)=>{const d=r[e%r.length],u=n[d];if(!u)return;const m=u.clone(!0),p=(Math.max(1,a-1),l+e%20/19*(i-lM
)),y=(e%2==0?1:-1)*c*(.25+7*e%10/10)*s,h=o*(1-p),f=t*(1-p)+y*(0!==o&&Math.sign(o)||1)*.55,g=h-y*(0!==t&&Math.sign(t)||1)*.55,b=getTerrainHeight(f,g),E=18+e%3*6;m.position.set(f,b,g),m.scale.set(E,E,E),m.rotation.y=.97*e%(2*Math.PI),m.traverse(e=>{e.isMesh&&e.geometry&&(e.castShadow=!0,e.receiveShadow=!0,e.raycast=THREE.Mesh.prototype.raycast,chaosRayMeshes.push(e))}),scene.add(m),mapObstacleList.push(m)};for(let e=0;e<a;e++)l(e,-s,-s,.1,.55,.42);for(let e=0;e<o;e++)l(a+e,s,s,.08,.28,.3)}function updateCtfFlagVisualM
(){if("ctf"!==gameMode)return;CTF.redFlagMesh&&(CTF.redHolder?CTF.redFlagMesh.visible=!1:(CTF.redFlagMesh.visible=!0,CTF.redFlagMesh.position.copy(CTF.redDrop||CTF.redHome||new THREE.Vector3))),CTF.blueFlagMesh&&(CTF.blueHolder?CTF.blueFlagMesh.visible=!1:(CTF.blueFlagMesh.visible=!0,CTF.blueFlagMesh.position.copy(CTF.blueDrop||CTF.blueHome||new THREE.Vector3)));const e=(e,t)=>{if(t&&(t.parent&&t.parent.remove(t),t.visible=!1,e))if(e===myPlayerID&&cart)cart.add(t),t.position.set(0,20,0),t.visible=!0;else{const a=reM
motePlayers.get(e);a&&a.mesh&&(a.mesh.add(t),t.position.set(0,20,0),t.visible=!0)}};e(CTF.redHolder,CTF.heldRedMesh),e(CTF.blueHolder,CTF.heldBlueMesh),updateScoreboard()}function dropCtfFlag(e,t){const a=t.clone?t.clone():new THREE.Vector3(t.x,t.y,t.z);if(a.y=getTerrainHeight(a.x,a.z)+14,"red"===e){if(CTF.redHolder!==myPlayerID)return;CTF.redHolder=null,CTF.redDrop=a}else{if(CTF.blueHolder!==myPlayerID)return;CTF.blueHolder=null,CTF.blueDrop=a}consecutiveFreezeHits=0,broadcastCtfFlags(),updateCtfFlagVisual()}functM
ion ctfReturnFlagHome(e){"red"===e?(CTF.redHolder=null,CTF.redDrop=null):(CTF.blueHolder=null,CTF.blueDrop=null),broadcastCtfFlags(),updateCtfFlagVisual()}function ctfScore(e){teamScores[e]=(teamScores[e]||0)+1,CTF.redHolder=null,CTF.blueHolder=null,CTF.redDrop=null,CTF.blueDrop=null,consecutiveFreezeHits=0,broadcastCtfFlags(),updateCtfFlagVisual(),updateCtfHud(),updateScoreboard()}function horizDist(e,t){return e&&t?Math.hypot(e.x-t.x,e.z-t.z):1/0}function updateCtfGameplay(){if("ctf"!==gameMode||!controlsEnabled|M
|paused)return;myTeam||(myTeam=assignBalancedTeam(),minionRoot&&attachNameTag(minionRoot,myPlayerID,!0,myTeam));const e="red"===myTeam?"blue":"red",t="red"===myTeam?CTF.redHome:CTF.blueHome;if(!t)return;const a=e=>{const t=e+"Holder",a=e+"Drop",o=e+"Home";if(CTF[t])return;if(e===myTeam&&!CTF[a])return;let n=CTF[a]||CTF[o];if(!n){const t="red"===e?CTF.redPole:CTF.bluePole;t&&(n=t.position)}n&&horizDist(car.pos,n)<90&&(CTF[t]=myPlayerID,CTF[a]=null,consecutiveFreezeHits=0,broadcastCtfFlags(),updateCtfFlagVisual())};iM
f(a(e),a(myTeam),horizDist(car.pos,t)<90){if("red"===e&&CTF.redHolder===myPlayerID||"blue"===e&&CTF.blueHolder===myPlayerID)return void ctfScore(myTeam);("red"===myTeam&&CTF.redHolder===myPlayerID||"blue"===myTeam&&CTF.blueHolder===myPlayerID)&&ctfReturnFlagHome(myTeam)}}function clearMapObstacles(){mapObstacleList.forEach(e=>{e&&e.parent&&e.parent.remove(e),e&&scene.remove(e)}),mapObstacleList=[],colliders=colliders.filter(e=>!e.userData||!e.userData.isMapObstacle),mapExtraColliders.forEach(e=>{scene.remove(e)}),mM
apExtraColliders=[],solidBoxes=[],chaosRayMeshes=[]}["pointerdown","keydown","touchstart"].forEach(e=>{window.addEventListener(e,()=>{unlockAudio(),kickVoicePlayback()},{passive:!0})});let chaosWallRadius=1400,chaosRayMeshes=[];const chaosRaycaster=new THREE.Raycaster,chaosRayOrigin=new THREE.Vector3,chaosRayDir=new THREE.Vector3(0,-1,0);function getClubGroundHeight(e,t,a){const o=getTerrainHeight(e,t);if(!chaosRayMeshes.length)return o;const n=(null!=a&&isFinite(a)?a:o)+12;chaosRayOrigin.set(e,n,t),chaosRaycaster.M
set(chaosRayOrigin,chaosRayDir),chaosRaycaster.far=n-o+80;const r=chaosRaycaster.intersectObjects(chaosRayMeshes,!1);let s=o;for(let e=0;e<r.length;e++){const t=r[e].point.y;t<=n-.2&&t>s&&(s=t)}return s}function getDriveSurfaceHeight(e,t,a){const o=getTerrainHeight(e,t);if("club"===gameMode)return getClubGroundHeight(e,t,a);if(!chaosRayMeshes.length)return o;const n=null!=a&&isFinite(a)?a+40:o+200;chaosRayOrigin.set(e,n,t),chaosRaycaster.set(chaosRayOrigin,chaosRayDir),chaosRaycaster.far=500;let r=chaosRaycaster.inM
tersectObjects(chaosRayMeshes,!1);if(r.length){for(let e=0;e<r.length;e++){const t=r[e].point.y;if(t<=n+2)return Math.max(t,o)}return Math.max(r[0].point.y,o)}return chaosRayOrigin.set(e,8e3,t),chaosRaycaster.far=2e4,r=chaosRaycaster.intersectObjects(chaosRayMeshes,!1),r.length?Math.max(r[0].point.y,o):o}async function buildChaosArena(){clearMapObstacles(),clearLavaPatches(),chaosRayMeshes=[];const e={},t=await loadTextureById("7070c3300760fcbd1764b1daed9ed20717363e02d861ebd5f34658848e6df642i0"),a=t?new THREE.MeshSM
tandardMaterial({map:t,roughness:.72,metalness:.08,side:THREE.DoubleSide,transparent:!1,depthWrite:!0,depthTest:!0,polygonOffset:!0,polygonOffsetFactor:1,polygonOffsetUnits:1}):null,o={g3:1,g5:1,g6:1,g12:1,g13:1};for(const[t,a]of Object.entries(n))if("g4"!==t)try{const o=await loadGltfById(a);o&&(e[t]=o)}catch(e){}const n={},r=0,s=0;let l=0;[].forEach(t=>{if("g4"===t.a)return;if(t.s[0]>=8&&Math.abs(t.s[0]-t.s[1])<.05&&Math.abs(t.s[1]-t.s[2])<.05)return;const n=e[t.a];if(!n)return;const i=n.clone(!0),c=1*(t.p[0]-r),M
d=1*(t.p[2]-s),u=1*t.p[1];i.position.set(c,u,d),i.scale.set(1*t.s[0],1*t.s[1],1*t.s[2]),i.rotation.order="YXZ",i.rotation.set(t.r[0]*Math.PI/180,t.r[1]*Math.PI/180,t.r[2]*Math.PI/180),i.traverse(e=>{e.isMesh&&e.geometry&&(e.castShadow=!0,e.receiveShadow=!0,a&&o[t.a]&&(e.material=a),e.raycast=THREE.Mesh.prototype.raycast,chaosRayMeshes.push(e))}),scene.add(i),mapObstacleList.push(i),i.updateMatrixWorld(!0);const m=(new THREE.Box3).setFromObject(i);if(!m.isEmpty()){[[m.min.x,m.min.z],[m.min.x,m.max.z],[m.max.x,m.min.M
z],[m.max.x,m.max.z]].forEach(([e,t])=>{const a=Math.hypot(e,t);a>l&&(l=a)})}"g7"===t.a&&lavaPatches.push({mesh:i,mixer:null,pos:new THREE.Vector3(c,u,d),radius:42,fromChaosProp:!0})});const i=Math.max(2200,1.05*l+80);chaosWallRadius=.5*i*1.1,MAP_DEFS["map-3"]&&(MAP_DEFS["map-3"].outerRadiusOverride=chaosWallRadius,MAP_DEFS["map-3"].squareWall=!0);const c=.98*chaosWallRadius;for(let e=mapObstacleList.length-1;e>=0;e--){const t=mapObstacleList[e];t&&t.position&&(Math.max(Math.abs(t.position.x),Math.abs(t.position.z)M
)<=c||(scene.remove(t),mapObstacleList.splice(e,1),chaosRayMeshes=chaosRayMeshes.filter(e=>{let a=e;for(;a&&a!==t;)a=a.parent;return a!==t}),lavaPatches=lavaPatches.filter(e=>e.mesh!==t)))}}function buildSquareOuterWall(e,t){if(!t)return;t.flipY=!1;const a=[[-e,e],[e,e],[e,-e],[-e,-e],[-e,e]],o=[];for(let e=0;e<4;e++){const t=a[e][0],n=a[e][1],r=a[e+1][0],s=a[e+1][1];for(let e=0;e<100;e++){const a=e/100,l=t+(r-t)*a,i=n+(s-n)*a;o.push(new THREE.Vector3(l,getTerrainHeight(l,i),i))}}o.push(o[0].clone());let n=[0],r=0;M
for(let e=2;e<o.length;e++){const t=o[r],a=o[e];if(a.distanceTo(t)>35){n.push(e-1),r=e-1;continue}let s=0;const l=a.clone().sub(t).clone().normalize();for(let a=r+1;a<e;a++){const e=o[a],n=e.clone().sub(t).dot(l),r=t.clone().addScaledVector(l,n),i=e.distanceTo(r);i>s&&(s=i)}s>.4&&(n.push(e-1),r=e-1)}0!==n[n.length-1]&&n.push(0);for(let e=0;e<n.length-1;e++){const a=n[e],r=n[e+1],s=o[a],l=o[r],i=s.clone().add(l).multiplyScalar(.5),c=l.clone().sub(s),d=c.length();if(d<.5)continue;const u=c.clone().normalize(),m=Math.M
atan2(u.x,u.z)+Math.PI/2,p=new THREE.MeshStandardMaterial({map:t,roughness:.92,metalness:.08});{const e=MAP_DEFS[currentMapId]||{},t=null!=e.wallRepeatY?e.wallRepeatY:4;p.map.repeat.set(1,t)}p.map.wrapS=p.map.wrapT=THREE.RepeatWrapping,p.needsUpdate=!0;const y=new THREE.Mesh(new THREE.BoxGeometry(1,23,2),p);y.castShadow=!0,y.receiveShadow=!0,y.scale.set(d/1,1,1),y.position.copy(i),y.position.y+=9.2,y.rotation.y=m,y.userData.isMapWall=!0,scene.add(y),wallMeshList.push(y);const h=Math.max(1,Math.ceil(d/3));for(let e=M
0;e<h;e++){let t=e/h,a=(e+1)/h;const o=0===e||e===h-1?0.5:.1;if(t+=o/d,a-=o/d,t>=a)continue;const n=s.clone().lerp(l,t),r=s.clone().lerp(l,a),i=n.clone().add(r).multiplyScalar(.5),c=n.distanceTo(r),p=new THREE.Mesh(new THREE.BoxGeometry(c,23,2),new THREE.MeshBasicMaterial({visible:!1}));p.position.copy(i),p.position.y+=9.2,p.rotation.y=m;const y=new THREE.Vector3(u.z,0,-u.x).normalize();p.userData={wallDir:u.clone(),wallNormal:y,isMapWall:!0},scene.add(p),colliders.push(p)}}}function getSpawnPos(){const e=MAP_DEFS[M
currentMapId]||{};if("club"===e.mode||"club-hall"===currentMapId){const e=getClubSpawn();return car.rotation=e.rot,new THREE.Vector3(e.x,e.y,e.z)}let t=0,a=0;if(e.chaosArena){let e=JUMP_HUMPS[0];for(let t=1;t<JUMP_HUMPS.length;t++)JUMP_HUMPS[t].height>e.height&&(e=JUMP_HUMPS[t]);t=e.cx,a=e.cz}let o=getDriveSurfaceHeight(t,a,400);if(void 0!==solidBoxes&&solidBoxes)for(let e=0;e<solidBoxes.length;e++){const n=solidBoxes[e],r=void 0!==n.halfXZ?n.halfXZ:n.half,s=void 0!==n.halfY?n.halfY:n.half;Math.abs(t-n.x)<=r&&Math.M
abs(a-n.z)<=r&&(o=Math.max(o,n.y+s))}return new THREE.Vector3(t,o+.06,a)}function clearInnerWalls(){for(let e=wallMeshList.length-1;e>=0;e--){const t=wallMeshList[e];t.userData&&t.userData.isInnerWall&&(scene.remove(t),wallMeshList.splice(e,1))}colliders=colliders.filter(e=>!(e.userData&&e.userData.isInnerWall))}async function loadTextureById(e){return texUrlBlocked(e)?null:new Promise(t=>{setTimeout(()=>t(null),8e3);(new THREE.TextureLoader).load(`/content/${e}`,e=>{e.wrapS=e.wrapT=THREE.RepeatWrapping,THREE.SRGBCM
olorSpace?e.colorSpace=THREE.SRGBColorSpace:THREE.sRGBEncoding&&(e.encoding=THREE.sRGBEncoding),e.needsUpdate=!0,t(e)},void 0,()=>{t(null)})})}async function loadGltfById(e){return new Promise(t=>{setTimeout(()=>t(null),1e4);(new GLTFLoader).load(`/content/${e}`,a=>{const o=a.scene;if(o){const t=[];o.traverse(a=>{if(!a.isMesh)return;const o=[].concat(a.material||[]).some(e=>[e&&e.map,e&&e.envMap,e&&e.emissiveMap].some(e=>texUrlBlocked(e&&e.userData&&e.userData.url||e&&e.image&&e.image.currentSrc||e&&e.image&&e.imagM
e.src||"")));a.geometry&&a.geometry.boundingBox;a.geometry&&!a.geometry.boundingBox&&a.geometry.computeBoundingBox&&a.geometry.computeBoundingBox();const n=a.geometry&&a.geometry.type;(o||n&&/sphere/i.test(n)&&texUrlBlocked(e))&&t.push(a)}),t.forEach(e=>{e.parent&&e.parent.remove(e)})}t(o)},void 0,()=>t(null))})}async function buildMap2Cubes(e){clearMapObstacles();const t=await loadGltfById(e.cubeModelId),a=await loadTextureById(e.cubeTexId);if(!t)return;a&&(a.flipY=!1,a.wrapS=a.wrapT=THREE.RepeatWrapping,THREE.SRGM
BColorSpace&&(a.colorSpace=THREE.SRGBColorSpace),a.needsUpdate=!0);const o=new THREE.MeshStandardMaterial({map:a||null,color:a?16777215:13404228,roughness:.82,metalness:.08});t.traverse(e=>{e.isMesh&&(e.material=o,e.castShadow=!0,e.receiveShadow=!0)});const n=null!=e.cubeScaleXZ?e.cubeScaleXZ:86.4,r=null!=e.cubeScaleY?e.cubeScaleY:69.12,s=null!=e.cubeCount?e.cubeCount:100,l=[];for(let e=0;e<16;e++)for(let t=0;t<16;t++){if((e+t)%2!=0)continue;const a=759*(e+.5)-6072,o=759*(t+.5)-6072;if(Math.hypot(a,o)>6780)continueM
;let n=!1;for(const e of JUMP_HUMPS)if(Math.hypot(a-e.cx,o-e.cz)<1.5*e.radius){n=!0;break}n||l.push({x:a,z:o})}const i=Math.max(1,Math.floor(l.length/s));let c=0;const d=t.clone(!0);d.scale.set(n,r,n),d.position.set(0,0,0),d.updateMatrixWorld(!0);const u=(new THREE.Box3).setFromObject(d),m=(u.getSize(new THREE.Vector3),[]),p=[],y=[];for(let e=0;e<l.length&&c<s;e+=i){const{x:a,z:o}=l[e],s=getTerrainHeight(a,o)-u.min.y,i=t.clone(!0);i.scale.set(n,r,n),i.position.set(a,s,o),i.updateMatrixWorld(!0),i.traverse(e=>{e.isMM
esh&&(e.castShadow=!0,e.receiveShadow=!0)}),scene.add(i),mapObstacleList.push(i),p.push(i);const d=(new THREE.Box3).setFromObject(i),h=d.getCenter(new THREE.Vector3),f=d.getSize(new THREE.Vector3);y.push(solidBoxes.length),solidBoxes.push({x:h.x,y:h.y,z:h.z,halfXZ:.5*Math.max(f.x,f.z)*.98,halfY:.5*f.y*.98,half:.5*Math.max(f.x,f.z)*.98}),m.push({x:h.x,y:d.max.y,z:h.z,halfXZ:.5*Math.max(f.x,f.z)}),c++}if(m.length){let e=1/0;for(let t=0;t<m.length;t++)m[t].y<e&&(e=m[t].y);for(let t=0;t<m.length;t++){const a=m[t].y-e;iM
f(a<=.001)continue;p[t].position.y-=a,p[t].updateMatrixWorld(!0);const o=y[t];solidBoxes[o]&&(solidBoxes[o].y-=a),m[t].y=e}}e.bridgeModelId&&m.length>=2&&await buildCubeBridges(e,m,a)}async function buildCubeBridges(e,t,a){let o=null;try{o=await loadGltfById(e.bridgeModelId)}catch(e){}let n=10,r="z";if(o){const e=(new THREE.Box3).setFromObject(o).getSize(new THREE.Vector3);e.x>=e.z&&e.x>=e.y?(n=Math.max(.01,e.x),r="x"):e.z>=e.x&&e.z>=e.y?(n=Math.max(.01,e.z),r="z"):(n=Math.max(.01,e.x,e.z),r=e.x>=e.z?"x":"z")}let sM
=null;if(a){const e=a.clone();e.wrapS=e.wrapT=THREE.RepeatWrapping,e.repeat.set(2,1),e.needsUpdate=!0,s=new THREE.MeshStandardMaterial({map:e,color:16777215,roughness:.82,metalness:.08})}const l=t.length,i=[];for(let e=0;e<l;e++){let a=1/0;for(let o=0;o<l;o++){if(e===o)continue;const n=Math.hypot(t[e].x-t[o].x,t[e].z-t[o].z);n<a&&(a=n)}a<1/0&&i.push(a)}i.sort((e,t)=>e-t);const c=1.55*(i.length>0?i[Math.floor(i.length/2)]:200),d=[];for(let e=0;e<l;e++)for(let a=e+1;a<l;a++){const o=Math.hypot(t[e].x-t[a].x,t[e].z-t[M
a].z);o>=1&&o<=c&&d.push({i:e,j:a,d:o})}d.sort((e,t)=>e.d-t.d);const u=new Array(l).fill(0),m=[];for(const e of d)u[e.i]>=2||u[e.j]>=2||(m.push(e),u[e.i]++,u[e.j]++);for(const e of m){const a=t[e.i],l=t[e.j],i=l.x-a.x,c=l.z-a.z,d=Math.hypot(i,c);if(d<1)continue;const u=Math.min(.08*d,.35*(a.halfXZ||20)),m=i/d,p=c/d,y=a.x+m*u,h=a.z+p*u,f=l.x-m*u,g=l.z-p*u,b=Math.hypot(f-y,g-h),E=.5*(y+f),M=.5*(h+g),S=.5*(a.y+l.y),w=Math.atan2(f-y,g-h),T=Math.atan2(l.y-a.y,b);let v,C=12;if(o){v=o.clone(!0);const e=b/n,t=Math.min(40,MM
ath.max(18,.45*e)),a=Math.min(52,Math.max(24,.4*e));"x"===r?(v.scale.set(e,t,a),v.rotation.order="YXZ",v.rotation.y=w+Math.PI/2):(v.scale.set(a,t,e),v.rotation.order="YXZ",v.rotation.y=w),v.rotation.x=-T,v.position.set(E,S,M),v.updateMatrixWorld(!0);const s=(new THREE.Box3).setFromObject(v);v.position.y+=S-s.min.y-5.5}else v=new THREE.Mesh(new THREE.BoxGeometry(b,12,28),s||new THREE.MeshStandardMaterial({color:9136404,roughness:.9})),v.rotation.y=w+Math.PI/2,v.rotation.z=T,v.position.set(E,S+3,M),C=12;v.traverse(e=M
>{e.isMesh&&(s&&(e.material=s),e.castShadow=!0,e.receiveShadow=!0,e.raycast=THREE.Mesh.prototype.raycast,chaosRayMeshes.push(e))}),scene.add(v),mapObstacleList.push(v)}u.filter(e=>1===e).length,u.filter(e=>2===e).length}async function rebuildWorldForMap(e){const t=MAP_DEFS[e]||MAP_DEFS["club-hall"];currentMapId=e,gameMode=t.mode||"race",flagMesh&&(flagMesh.visible="race"===gameMode&&null===flagHolder),flagPoleMesh&&(flagPoleMesh.visible="race"===gameMode),heldFlagMesh&&(heldFlagMesh.visible=!1),checkpointStars.forEM
ach(e=>{e.mesh&&(e.mesh.visible="race"===gameMode)});let a=coreGrassTex,o=coreWallTex;if(t.groundTexId){const e=await loadTextureById(t.groundTexId);if(e){const o=null!=t.groundRepeat?t.groundRepeat:160;e.repeat.set(o,o),a=e}}if(t.wallTexId){const e=await loadTextureById(t.wallTexId);e&&(o=e)}if(activeGrassTex=a||coreGrassTex,activeWallTex=o||coreWallTex,skyDome&&skyDome.material){let e=coreSkyTex;if(t.skyTexId){const a=await loadTextureById(t.skyTexId);a&&(a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,THREE.SRGBColorSM
pace&&(a.colorSpace=THREE.SRGBColorSpace),a.needsUpdate=!0,e=a)}e&&(skyDome.material.map=e,skyDome.material.needsUpdate=!0)}if(t.fog){const e=null!=t.fogColor?t.fogColor:658450,a=null!=t.fogNear?t.fogNear:60,o=null!=t.fogFar?t.fogFar:220;scene.fog=new THREE.Fog(e,a,o),scene.background=new THREE.Color(e),skyDome&&(skyDome.visible=!1)}else scene.fog=null,scene.background=null,skyDome&&(skyDome.visible=!0);if(clearTrackSurface(),activeTrackTex=null,clearMapObstacles(),clearCtfObjects(),clearLavaPatches(),"club"===t.moM
de||"club-hall"===e?await buildClubHall():t.chaosArena?(await buildChaosArena(),await buildChaosScatterProps(),buildLavaPatches(!0)):buildLavaPatches(),terrainMesh){scene.remove(terrainMesh);try{terrainMesh.geometry.dispose(),terrainMesh.material.dispose()}catch(e){}terrainMesh=null}if(activeGrassTex&&buildTerrain(activeGrassTex),wallMeshList.forEach(e=>scene.remove(e)),wallMeshList=[],colliders=colliders.filter(e=>!(e.userData&&(e.userData.isMapWall||e.userData.isMapObstacle))),activeWallTex&&"club"!==t.mode&&"cluM
b-hall"!==e){const e=getTrackParams();t.chaosArena||t.squareWall?buildSquareOuterWall(e.floorHalf||e.outerRx,activeWallTex):(buildWall(e.outerRx,activeWallTex,!1),!1!==t.innerWall&&buildWall(e.innerRx,activeWallTex,!0))}"race"===gameMode?(buildCheckpoints(),flagMesh&&(flagMesh.visible=null===flagHolder),flagPoleMesh&&(flagPoleMesh.visible=!0)):clearCheckpointsAndFlag(),t.cubeModelId&&"club"!==t.mode&&await buildMap2Cubes(t),"ctf"===gameMode&&setupCtfBases(),lastBuiltMapId=e}async function loadMapScript(e){const t=MM
AP_DEFS[e];return!t||!t.content||(!!loadedMapScripts.has(e)||(mapScriptPromises[e]||(mapScriptPromises[e]=new Promise(a=>{const o=document.createElement("script");o.src=t.content,o.onload=()=>{if(loadedMapScripts.add(e),window.MAP_OVERRIDES&&"object"==typeof window.MAP_OVERRIDES){const t=window.MAP_OVERRIDES,a=MAP_DEFS[e].content;Object.assign(MAP_DEFS[e],t),MAP_DEFS[e].content=a,texUrlBlocked(MAP_DEFS[e].skyTexId)&&(MAP_DEFS[e].skyTexId=SMALL_SKY_ID),t.name&&(MAP_DEFS[e].name=t.name),t.mode&&(MAP_DEFS[e].mode=t.moM
de);try{delete window.MAP_OVERRIDES}catch(e){}}a(!0)},o.onerror=()=>{delete mapScriptPromises[e],a(!1)},document.head.appendChild(o),setTimeout(()=>{loadedMapScripts.has(e)||(delete mapScriptPromises[e],a(!1))},5e3)})),mapScriptPromises[e]))}async function startGame(){currentMapId="club-hall",gameMode="club";const e=MAP_DEFS["club-hall"]||MAP_DEFS[currentMapId]||{name:"Paddock",mode:"club",innerWall:!1,duneScale:.28,outerRadiusOverride:900};if(MAP_DEFS["club-hall"]||(MAP_DEFS["club-hall"]=e),gameMode=e.mode||"club"M
,menuShowcaseActive=!1,window._menuKeyLight&&(window._menuKeyLight.visible=!1),showcaseModel&&showcaseModel.parent&&showcaseModel!==playerModel&&showcaseModel!==minionRoot)try{showcaseModel.parent.remove(showcaseModel)}catch(e){}showcaseModel=null,document.getElementById("overlay").style.display="none",document.getElementById("p2p-lobby").style.display="none",document.getElementById("previewOverlay").style.display="none";const t=document.getElementById("status");t&&(t.textContent="Opening the salon
=typeof ensureCart&&ensureCart(),inLobby=!1,previewMode=!1,paused=!1,controlsEnabled=!0,gameStarted=!0;try{document.activeElement&&document.activeElement.blur&&document.activeElement.blur()}catch(e){}window.focus&&window.focus();try{"club-hall"!==lastBuiltMapId&&await rebuildWorldForMap("club-hall")}catch(e){console.error("club rebuild",e);try{await buildClubHall()}catch(e){console.error(e)}}{const e=document.getElementById("micBtn");e&&(e.style.display="none");const t=document.getElementById("movePad"),a=isPhoneUIM
();t&&(t.style.display=a?"block":"none",a&&"function"==typeof bindMovePad&&bindMovePad());const o=document.getElementById("jumpBtn");o&&(o.style.display=a?"flex":"none"),a||(cameraCycleBtn.style.display="none",pauseBtn.style.display="none")}if(customCursor.style.display="block",chatContainer&&(chatContainer.style.display="none"),inLobby=!1,controlsEnabled=!0,gameStarted=!0,void 0!==gameMode&&"club"===gameMode){!isHost&&multiplayerMode||(isHost=isHost||!multiplayerMode,clubHostId=myPlayerID,clubSpeakers.add(myPlayerM
ID),multiplayerMode&&syncClubStateTo());const e=document.getElementById("clubDock");e&&(e.style.display="block"),refreshClubDock()}cart&&(cart.visible=!1);{const e=getSpawnPos();car.pos.copy(e)}if(car.vel.set(0,0,0),"club"!==gameMode&&(car.rotation=0),car.pitch=0,car.onGround=!0,scores.set(myPlayerID,0),playerLaps.set(myPlayerID,0),myCompletedCheckpoints.clear(),flagHolder=null,droppedFlagPos=null,consecutiveFreezeHits=0,hasLavaPower=!1,updateChargeMeterUI(),"ctf"===gameMode?(myTeam||(myTeam=assignBalancedTeam()),mM
inionRoot&&attachNameTag(minionRoot,myPlayerID,!0,myTeam),teamScores={red:0,blue:0},CTF.redHolder=CTF.blueHolder=null,CTF.redDrop=CTF.blueDrop=null,broadcastTeam(),broadcastCtfFlags(),updateCtfFlagVisual(),updateCtfHud(),flagMesh&&(flagMesh.visible=!1),flagPoleMesh&&(flagPoleMesh.visible=!1)):(myTeam=null,updateCtfHud(),updateFlagVisual(),flagPoleMesh&&(flagPoleMesh.visible=!0)),updateScoreboard(),camera.fov=90,camera.updateProjectionMatrix(),isHost&&isHostWithKenobi&&nostrRoomId){publishKenobiHeartbeat(hostOfferCoM
des&&hostOfferCodes[0]||document.getElementById("lobbyOfferCode")&&document.getElementById("lobbyOfferCode").textContent||"",1+remotePlayers.size)}updateCursorForLobby(),requestAnimationFrame(animate)}function animate(){requestAnimationFrame(animate);const e=.016;window.bovineTick&&window.bovineTick(e);if(menuShowcaseActive&&showcaseModel&&!gameStarted&&!previewMode&&(showcaseModel.rotation.y+=.012,camera.position.set(0,5.2,14),camera.lookAt(0,4.6,0)),!paused&&gameStarted){if(updatePhysics(e),updateProjectiles(e),mM
inionRoot){minionRoot.scale.setScalar(5.69),minionRoot.position.copy(car.pos),minionRoot.rotation.y=car.rotation+Math.PI;const e=Math.hypot(car.vel.x,car.vel.z),t=padKeys.a||padKeys.d||keys.a||keys.d||keys.arrowleft||keys.arrowright,a=padKeys.s||keys.s||keys.arrowdown;Date.now()<attackUntil||(car.onGround?playMinionAnim(t||a?"Walk":e>28?minionActions.Run?"Run":"Walk":e>4?"Walk":"Idle"):playMinionAnim("Jump"));const o=minionRoot.userData&&minionRoot.userData.actions&&minionRoot.userData.actions[minionRoot.userData.cM
urrentAnim];o&&(o.timeScale=a&&!t?-.7:t?0.75:.7+Math.min(1.3,e/140))}minionMixer&&minionMixer.update(e),minionRoot&&applyArmSwing(minionRoot,Math.hypot(car.vel.x,car.vel.z))}else minionMixer&&menuShowcaseActive&&(playMinionAnim("Idle"),minionMixer.update(e));if(gameStarted&&updateCamera(),gameStarted&&"function"==typeof projectStageScreen&&projectStageScreen(),gameStarted&&"function"==typeof refreshClubDock&&0===syncCounter&&refreshClubDock(),flagMesh&&null===flagHolder&&(flagMesh.position.y=flagPoleMesh.position.yM
+120+4*Math.sin(Date.now()/200)),checkpointStars.forEach(t=>{t.mixer&&t.mixer.update(e)}),lavaPatches.forEach(t=>{t.mixer&&t.mixer.update(e)}),flagHolder===myPlayerID){const e=[];for(let t=0;t<4;t++)myCompletedCheckpoints.has(t)||e.push(t+1);cpIndicator&&(cpIndicator.textContent=e.length?`CHECKPOINTS NEEDED: ${e.join("
 ")}`:"ALL CHECKPOINTS COMPLETE
 RETURN TO START!",cpIndicator.style.display=hudVisible?"block":"none")}else cpIndicator&&(cpIndicator.style.display="none");const t=Date.now()-lastFireTime,a=MaM
th.min(100,t/getFireCooldown()*100);if(chargeBar&&(chargeBar.style.width=`${a}%`),updateFlagCarryHint(),hasLavaPower&&updateChargeMeterUI(),isHost&&Date.now()-lastFullStateSent>2500&&sendFullState(),multiplayerMode&&dcList.length>0){if(updateRemotePlayers(),syncCounter=(syncCounter+1)%2,0===syncCounter){const e=Date.now(),t={type:"pos",pos:{x:car.pos.x,y:car.pos.y,z:car.pos.z},rot:car.rotation,anim:currentAnim||"Idle",id:myPlayerID,isHost:!!isHost,team:myTeam,mapId:currentMapId,gameMode:gameMode,slowEndTime:slowEndM
Time};t.charId=myCharId,lastCharSync=e,dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify(t))})}cleanupStalePlayers()}renderer.render(scene,camera)}function removeRemotePlayer(e){if(!e||e===myPlayerID)return;clubSpeakers.delete(e),clubRequests.delete(e),"function"==typeof refreshClubDock&&refreshClubDock();const t=remotePlayers.get(e);if(t&&t.mesh&&scene.remove(t.mesh),closeVoicePeer(e),remotePlayers.delete(e),scores.delete(e),playerLaps.delete(e),playerLapTimes.delete(e),void 0!==CTF&&(CTF.redHoldeM
r===e&&(CTF.redHolder=null,t&&t.mesh?CTF.redDrop=t.mesh.position.clone():CTF.redDrop=car.pos.clone()),CTF.blueHolder===e&&(CTF.blueHolder=null,t&&t.mesh?CTF.blueDrop=t.mesh.position.clone():CTF.blueDrop=car.pos.clone()),"function"==typeof updateCtfFlagVisual&&updateCtfFlagVisual()),flagHolder===e&&(flagHolder=null,"function"==typeof updateFlagVisual&&updateFlagVisual()),updateScoreboard(),updatePlayerCount(),isHost&&updateHostPlayerList(),isHost&&isHostWithKenobi&&nostrRoomId){publishKenobiHeartbeat(hostOfferCodes&M
&hostOfferCodes[0]||document.getElementById("lobbyOfferCode")&&document.getElementById("lobbyOfferCode").textContent||"",1+remotePlayers.size)}}function cleanupStalePlayers(){const e=Date.now();remotePlayers.forEach((t,a)=>{if(a===myPlayerID)return;const o=t.lastUpdateTime||0,n=t.isHost?4e4:22e3;o&&e-o>n&&removeRemotePlayer(a)});for(let e=dcList.length-1;e>=0;e--){const t=dcList[e];t&&"closed"!==t.readyState&&"closing"!==t.readyState||(t&&t._peerId&&removeRemotePlayer(t._peerId),dcList.splice(e,1))}}function startNM
etKeepalive(){netKeepaliveTimer||(netKeepaliveTimer=setInterval(()=>{if(!multiplayerMode||!dcList.length)return;const e={type:"pos",pos:{x:car.pos.x,y:car.pos.y,z:car.pos.z},rot:car.rotation,anim:currentAnim||"Idle",charId:myCharId,id:myPlayerID,isHost:!!isHost,team:myTeam,keepalive:!0,slowEndTime:slowEndTime,mapId:currentMapId,gameMode:gameMode},t=JSON.stringify(e);dcList.forEach(e=>{if(e&&"open"===e.readyState)try{e.send(t)}catch(e){}});const a=JSON.stringify({type:"ping",id:myPlayerID,t:Date.now(),isHost:!!isHosM
t});if(dcList.forEach(e=>{if(e&&"open"===e.readyState)try{e.send(a)}catch(e){}}),isHost)try{sendFullState()}catch(e){}},2500))}async function applyHostMap(e,t){return!(!e||!MAP_DEFS[e])&&(currentMapId===e&&lastBuiltMapId===e&&loadedMapScripts.has(e)?(t&&(gameMode=t),!0):applyingHostMap||(applyingHostMap=(async()=>{try{const a=document.getElementById("mapSelect");a&&(a.value=e),currentMapId=e;return MAP_DEFS[e].content&&await loadMapScript(e),gameMode=MAP_DEFS[e]&&MAP_DEFS[e].mode||t||gameMode,lastBuiltMapId!==e?awaM
it rebuildWorldForMap(e):"ctf"!==gameMode||CTF.redPole||setupCtfBases(),!0}finally{applyingHostMap=null}})(),applyingHostMap))}async function initialize(){init();const e=await preloadCoreAssets();if(e){const{grassTex:t,skyTex:a,wallTex:o}=e;buildTerrain(t),lastBuiltMapId=null,gameMode="club",currentMapId="club-hall",skyDome=new THREE.Mesh(new THREE.SphereGeometry(3800,64,64),new THREE.MeshBasicMaterial({map:a,side:THREE.BackSide})),scene.add(skyDome)}cart&&(scene.add(cart),cart.position.copy(car.pos),cart.rotation.M
y=car.rotation+POD_YAW_OFFSET,cart.visible=!1),startBtn.disabled=!1,document.getElementById("status").textContent="Preparing your arrival
",gameStarted||requestAnimationFrame(animate),(async()=>{try{"function"==typeof placeMenuPlaceholder&&placeMenuPlaceholder(),myCharId=SAMPLE_SKULL_ID;let e=await loadSkinnedMinion(SAMPLE_SKULL_ID);e||(e=await loadSkinnedMinion(FALLBACK_ID)),e?(await showCharacterOnMenu(e),document.getElementById("status").textContent="The salon is ready"):document.getElementById("status").textCM
ontent="Preview unavailable
 you may still enter"}catch(e){document.getElementById("status").textContent="Preview failed
 you may still enter"}})()}async function showCharacterOnMenu(e){e&&(showcaseModel&&showcaseModel.parent&&showcaseModel.parent.remove(showcaseModel),playerModel&&playerModel.parent&&playerModel!==e&&cart&&playerModel.parent===cart&&cart.remove(playerModel),playerModel=e,showcaseModel=e,cart&&(cart.visible=!1),scene.add(e),e.userData&&e.userData.isLordinal?(e.rotation.y=0,e.scale.setScalar(1M
.87),e.position.set(0,2,0),camera.position.set(0,4,12),camera.lookAt(0,2.5,0)):e.userData&&e.userData.isImageSphere?(e.rotation.y=-Math.PI/2,e.scale.setScalar(1.76),e.position.set(0,2.5,0),camera.position.set(0,4,11),camera.lookAt(0,2.6,0)):(e.rotation.y=Math.PI,e.scale.setScalar(4.5),e.position.set(0,-.4,0),camera.position.set(0,5.2,14),camera.lookAt(0,4.6,0)),menuShowcaseActive=!0,camera.fov=50,camera.updateProjectionMatrix(),!window._menuKeyLight&&scene&&(window._menuKeyLight=new THREE.PointLight(16773584,2.2,40M
),window._menuKeyLight.position.set(3,7,8),scene.add(window._menuKeyLight)),window._menuKeyLight&&(window._menuKeyLight.visible=!gameStarted),document.getElementById("overlay").style.display="flex",document.getElementById("previewOverlay").style.display="none",previewMode=!1,updateCursorForLobby())}function displayName(e){return String(e||"Racer").replace(/-\d+$/,"").slice(0,18)}function teamHex(e){return"red"===e?"#ff4444":"blue"===e?"#4488ff":"#ecdcb0"}function makeNameTag(e,t){const a=displayName(e),o=document.cM
reateElement("canvas");o.width=512,o.height=96;const n=o.getContext("2d");n.clearRect(0,0,o.width,o.height),n.font="600 36px Palatino, Georgia, serif",n.textAlign="center",n.textBaseline="middle",n.lineWidth=6,n.strokeStyle="rgba(20,12,6,0.55)",n.strokeText(a,256,52),n.fillStyle=teamHex(t),n.fillText(a,256,52);const r=new THREE.CanvasTexture(o);r.needsUpdate=!0;const s=new THREE.SpriteMaterial({map:r,transparent:!0,opacity:.4,depthTest:!1,depthWrite:!1}),l=new THREE.Sprite(s);return l.userData.isNameTag=!0,l}functiM
on attachNameTag(e,t,a,o){if(!e)return;e.userData.nameTag&&e.userData.nameTag.parent&&e.userData.nameTag.parent.remove(e.userData.nameTag);const n=makeNameTag(t,o);a?(n.scale.set(1.85,.36,1),n.position.set(0,-.12,0)):(n.scale.set(9.2,1.8,1),n.position.set(0,-.55,0)),e.add(n),e.userData.nameTag=n}function attachCharacterToPod(e){e&&(e.parent&&e.parent.remove(e),scene.add(e),minionRoot=e,playerModel=e,e.scale.setScalar(5.69),attachNameTag(e,myPlayerID,!0,myTeam),cart&&(cart.visible=!1))}document.getElementById("multiM
Btn").addEventListener("click",()=>{currentMapId="club-hall",gameMode="club",document.getElementById("overlay").style.display="none",document.getElementById("p2p-lobby").style.display="flex",inLobby=!0,updateCursorForLobby(),searchLiveGames()}),document.getElementById("lobbyHostBtn").addEventListener("click",async()=>{document.getElementById("lobby-status").innerHTML='<span style="font-size:1.4rem;color:#0f0;">HOSTING...</span><br><span style="font-size:1.1rem;color:#0ff;">You can enter the club now
 take a few seconds</span>';const e=document.getElementById("lobbyHostControls");e&&(e.style.display="block");const t=document.getElementById("liveGamesContainer");t&&(t.style.display="block"),collectedCandidatesList=[],hostOfferCodes=[],pcList=[],dcList=[];let a=document.getElementById("lobbyNameInput").value.trim()||"Racer";myPlayerID=a+"-"+Math.floor(9999*Math.random()),isHost=!0;const o=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stM
un2.l.google.com:19302"},{urls:"stun:stun3.l.google.com:19302"},{urls:"stun:stun4.l.google.com:19302"}]});pcList.push(o),collectedCandidatesList.push([]),o.onicecandidate=e=>{e.candidate&&e.candidate.candidate&&collectedCandidatesList[0].push(e.candidate.candidate.replace(/^candidate:\s*/i,"").trim())};const n=o.createDataChannel("race");dcList.push(n),setupDataChannel(n);const r=await o.createOffer();await o.setLocalDescription(r),await waitForIceGathering(o);let s=Date.now();for(;collectedCandidatesList[0].lengthM
<4&&Date.now()-s<12e3;)await new Promise(e=>setTimeout(e,250));await new Promise(e=>setTimeout(e,600));const l=encodeSDP(o.localDescription.sdp,"offer",myPlayerID);hostOfferCodes.push(l),document.getElementById("lobbyOfferCode").textContent=l,document.getElementById("lobbyHostControls").style.display="block",updateHostPlayerList(),document.getElementById("lobby-status").innerHTML='<span style="font-size:1.15rem;color:#0f0;">Hosting
 listed as live on Kenobi</span><br><span style="font-size:0.9rem;color:#0af;">WaiM
ting for players to join
</span>',startKenobiLobbyPing(l),searchLiveGames(),updateCursorForLobby()}),document.getElementById("lobbyCopyOffer").addEventListener("click",()=>{navigator.clipboard.writeText(hostOfferCodes[0]),document.getElementById("lobby-status").textContent="First invite copied!"}),document.getElementById("newInviteBtn").addEventListener("click",async()=>{document.getElementById("lobby-status").innerHTML='<span style="font-size:1.4rem;color:#0f0;">GENERATING...</span><br><span style="font-size:1.1M
rem;color:#0ff;">May take up to 20 seconds...</span>';const e=pcList.length,t=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun3.l.google.com:19302"},{urls:"stun:stun4.l.google.com:19302"}]});pcList.push(t),collectedCandidatesList.push([]),t.onicecandidate=t=>{t.candidate&&t.candidate.candidate&&collectedCandidatesList[e].push(t.candidate.candidate.replace(/^candidate:\s*/i,"").trim())};const a=t.crM
eateDataChannel("race");dcList.push(a),setupDataChannel(a);const o=await t.createOffer();await t.setLocalDescription(o),await waitForIceGathering(t);let n=Date.now();for(;collectedCandidatesList[e].length<4&&Date.now()-n<12e3;)await new Promise(e=>setTimeout(e,250));await new Promise(e=>setTimeout(e,600));const r=encodeSDP(t.localDescription.sdp,"offer",myPlayerID);hostOfferCodes.push(r);const s=document.createElement("div");s.className="code-out",s.textContent=r,s.onclick=()=>{navigator.clipboard.writeText(r),docuM
ment.getElementById("lobby-status").textContent="New invite copied!"},document.getElementById("extraOffers").appendChild(s),document.getElementById("lobby-status").innerHTML='<span style="font-size:1.3rem;color:#0f0;">New invite generated for next player</span>'}),document.getElementById("manualPublishBtn").addEventListener("click",()=>{if(nostrRoomId&&isHostWithKenobi){publishKenobiHeartbeat(document.getElementById("lobbyOfferCode").textContent||"",1+remotePlayers.size),document.getElementById("lobby-status").textM
Content="Heartbeat published manually"}}),document.getElementById("lobbyJoinBtn").addEventListener("click",async()=>{document.getElementById("lobby-status").innerHTML='<span style="font-size:1.4rem;color:#0f0;">JOINING...</span><br><span style="font-size:1.1rem;color:#0ff;">May take up to 20 seconds...</span>';let e=document.getElementById("lobbyPeerCode").value.trim();if(!e)return;let t=document.getElementById("lobbyNameInput").value.trim()||"Racer";myPlayerID=t+"-"+Math.floor(9999*Math.random());const a=new RTCPeM
erConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun3.l.google.com:19302"},{urls:"stun:stun4.l.google.com:19302"}]});pcList.push(a),collectedCandidatesList.push([]),a.onicecandidate=e=>{e.candidate&&e.candidate.candidate&&collectedCandidatesList[0].push(e.candidate.candidate.replace(/^candidate:\s*/i,"").trim())},a.ondatachannel=e=>setupDataChannel(e.channel);try{const t=decodeSDP(e);await a.setRemoteDescriptioM
n({type:"offer",sdp:t.sdp});const o=await a.createAnswer();await a.setLocalDescription(o),await waitForIceGathering(a);let n=Date.now();for(;collectedCandidatesList[0].length<4&&Date.now()-n<12e3;)await new Promise(e=>setTimeout(e,250));await new Promise(e=>setTimeout(e,600));const r=encodeSDP(a.localDescription.sdp,"answer",myPlayerID);document.getElementById("lobbyAnswerCode").textContent=r,publishAnswerToNostr(e,r),document.getElementById("lobby-status").innerHTML='
 <strong style="font-size:1.15rem;">Joining M
</strong><br><span style="color:#0af;">Host should accept you shortly</span>'}catch(e){document.getElementById("lobby-status").textContent="Invalid offer token"}}),document.getElementById("lobbyCopyAnswer").addEventListener("click",()=>{navigator.clipboard.writeText(document.getElementById("lobbyAnswerCode").textContent),document.getElementById("lobby-status").textContent="Answer copied!"}),document.getElementById("lobbyAcceptBtn").addEventListener("click",async()=>{let e=document.getElementById("lobbyM
AnswerInput").value.trim();if(e)try{const t=decodeSDP(e),a=pcList.findIndex(e=>e&&"have-local-offer"===e.signalingState);if(-1===a)return;await pcList[a].setRemoteDescription({type:"answer",sdp:t.sdp}),document.getElementById("lobby-status").innerHTML=`<span style="font-size:1.3rem;color:#0f0;">Player ${remotePlayers.size+1} connected
</span>`,document.getElementById("lobbyAnswerInput").value="",setTimeout(sendFullState,300),document.getElementById("lobby-status").innerHTML+='<br><span style="color:#0af">Auto-geM
nerating next invite...</span>',setTimeout(async()=>{try{const e=pcList.length,t=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun1.l.google.com:19302"},{urls:"stun:stun2.l.google.com:19302"},{urls:"stun:stun3.l.google.com:19302"},{urls:"stun:stun4.l.google.com:19302"}]});pcList.push(t),collectedCandidatesList.push([]),t.onicecandidate=t=>{t.candidate&&t.candidate.candidate&&collectedCandidatesList[e].push(t.candidate.candidate.replace(/^candidate:\s*/i,"").trim())};const a=tM
.createDataChannel("race");dcList.push(a),setupDataChannel(a);const o=await t.createOffer();await t.setLocalDescription(o),await waitForIceGathering(t);let n=Date.now();for(;collectedCandidatesList[e].length<4&&Date.now()-n<12e3;)await new Promise(e=>setTimeout(e,250));await new Promise(e=>setTimeout(e,600));const r=encodeSDP(t.localDescription.sdp,"offer",myPlayerID);hostOfferCodes[0]=r,document.getElementById("lobbyOfferCode").textContent=r,isHostWithKenobi&&nostrRoomId&&publishKenobiHeartbeat(r,1+remotePlayers.sM
ize),document.getElementById("lobby-status").innerHTML='<span style="font-size:1.3rem;color:#0f0;">
 Player accepted!<br>New invite ready for next player</span>'}catch(e){}},1200)}catch(e){document.getElementById("lobby-status").textContent="Invalid answer token"}}),document.getElementById("lobbyStartBtn").addEventListener("click",async()=>{multiplayerMode=!0,isHost=!0,currentMapId="club-hall",gameMode="club",clubHostId=myPlayerID,clubSpeakers.add(myPlayerID);try{const e=readMyCharIdFromInput();if(!minionRoot||myM
CharId!==e){const t=await loadSkinnedMinion(e);t&&(playerModel=t)}playerModel&&attachCharacterToPod(playerModel),await startGame()}catch(e){console.error(e),await startGame().catch(()=>{})}dcList.forEach(e=>{e&&"open"===e.readyState&&e.send(JSON.stringify({type:"pos",pos:{x:car.pos.x,y:car.pos.y,z:car.pos.z},rot:car.rotation,anim:currentAnim||"Idle",id:myPlayerID,charId:myCharId}))}),lastCharSync=Date.now()}),document.getElementById("searchLiveGamesBtn").addEventListener("click",()=>searchLiveGames()),document.getEM
lementById("refreshLiveBtn").addEventListener("click",()=>searchLiveGames()),document.getElementById("lobbyReturnToGameBtn").addEventListener("click",()=>{document.getElementById("p2p-lobby").style.display="none",updateCursorForLobby()}),document.getElementById("enterCustomBtn").addEventListener("click",async()=>{const e=(document.getElementById("charIdInput").value.trim()||"").replace(/i0$/,"")+"i0"||FALLBACK_ID;myCharId=e,document.getElementById("status").textContent="Loading minion + skull textures
wait loadSkinnedMinion(e);t?(await showCharacterOnMenu(t),document.getElementById("status").textContent="Skull received
 enter the salon or members lounge"):(document.getElementById("status").textContent="Failed to load that ID
 try another or use default",document.getElementById("charStatus").textContent="Load failed
 default will be used",document.getElementById("charStatus").style.color="#f66")}),document.getElementById("startSingleFromPreview").addEventListener("click",()=>{previewMode=!1,document.getEM
lementById("previewOverlay").style.display="none",playerModel&&attachCharacterToPod(playerModel),multiplayerMode=!1,startGame()}),document.getElementById("goToMultiFromPreview").addEventListener("click",()=>{previewMode=!1,document.getElementById("previewOverlay").style.display="none",document.getElementById("overlay").style.display="none",document.getElementById("p2p-lobby").style.display="flex",updateCursorForLobby()}),document.getElementById("startBtn").addEventListener("click",async()=>{multiplayerMode=!1,isHosM
t=!0,currentMapId="club-hall",gameMode="club";const e=document.getElementById("status");e&&(e.textContent="Entering club
");try{const e=readMyCharIdFromInput();if(!minionRoot||myCharId!==e){const t=await loadSkinnedMinion(e);t&&(playerModel=t)}playerModel&&attachCharacterToPod(playerModel),await startGame()}catch(t){console.error(t),e&&(e.textContent="Enter failed
 retry"),document.getElementById("overlay").style.display="none",await startGame().catch(()=>{})}});const rulesOverlay=document.getElementById("ruleM
sOverlay"),rulesBtn=document.getElementById("rulesBtn"),closeRules=document.getElementById("closeRules"),micBtnEl=document.getElementById("micBtn");micBtnEl&&micBtnEl.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),localMicStream&&voiceOn?(selfMuted=!selfMuted,applyMicSendState(),syncMicButtons()):setMicEnabled(!0)});const clubSpeakBtn=document.getElementById("clubSpeakBtn");async function onClubMicClick(e){if(e&&(e.preventDefault(),e.stopPropagation()),!clubCanSpeak()){const e=document.getElemeM
ntById("status");return void(e&&(e.textContent="Open my mic first
 host must accept you"))}return voiceOn&&localMicStream?selfMuted||roomMuteHold?(roomMuteHold=!1,selfMuted=!1,applyMicSendState(),void syncMicButtons()):void 0:(roomMuteHold=!1,selfMuted=!1,void await setMicEnabled(!0))}function onClubMuteClick(e){e&&(e.preventDefault(),e.stopPropagation()),localMicStream&&(selfMuted=!selfMuted,selfMuted||(roomMuteHold=!1),applyMicSendState(),syncMicButtons())}function onClubRoomMute(e){if(e&&(e.preventDefault(),eM
.stopPropagation()),!isHost)return;broadcastClub({type:"roomMute"});const t=document.getElementById("status");t&&(t.textContent="Room muted
 speakers must unmute themselves")}clubSpeakBtn&&clubSpeakBtn.addEventListener("click",e=>{e.preventDefault(),requestSpeak()});const clubMicBtn=document.getElementById("clubMicBtn");clubMicBtn&&clubMicBtn.addEventListener("click",onClubMicClick);const clubMuteBtn=document.getElementById("clubMuteBtn");clubMuteBtn&&clubMuteBtn.addEventListener("click",onClubMuteClick);const cM
lubRoomMuteBtn=document.getElementById("clubRoomMuteBtn");clubRoomMuteBtn&&clubRoomMuteBtn.addEventListener("click",onClubRoomMute);const clubScreenBtn=document.getElementById("clubScreenBtn");clubScreenBtn&&clubScreenBtn.addEventListener("click",e=>{e.preventDefault(),publishStageScreen()});const screenUrlInput=document.getElementById("screenUrlInput");screenUrlInput&&screenUrlInput.addEventListener("keydown",e=>{"Enter"===e.key&&(e.preventDefault(),publishStageScreen())}),rulesBtn.addEventListener("click",()=>{ruM
lesOverlay.style.display="flex",updateCursorForLobby()}),closeRules.addEventListener("click",()=>{rulesOverlay.style.display="none",updateCursorForLobby()}),pauseRulesBtn.addEventListener("click",()=>{rulesOverlay.style.display="flex",updateCursorForLobby()});const observer=new MutationObserver(()=>{updateCursorForLobby()});observer.observe(document.getElementById("overlay"),{attributes:!0,attributeFilter:["style"]}),observer.observe(document.getElementById("p2p-lobby"),{attributes:!0,attributeFilter:["style"]}),obM
server.observe(document.getElementById("previewOverlay"),{attributes:!0,attributeFilter:["style"]}),observer.observe(document.getElementById("rulesOverlay"),{attributes:!0,attributeFilter:["style"]}),window.addEventListener("beforeunload",()=>{kenobiHeartbeatTimer&&clearInterval(kenobiHeartbeatTimer)});const CLUB_FLOOR_R=2640;let clubSpeakers=new Set,clubRequests=new Set,clubHostId=null,stageScreenUrl="",stageScreenMesh=null,stageGroup=null,clubBuilt=!1;const _ssCorners=[new THREE.Vector3,new THREE.Vector3,new THREM
E.Vector3,new THREE.Vector3];let clubUiMode=!1;function blurGameInputs(){try{const e=document.activeElement;e&&e.blur&&e!==document.body&&e.blur()}catch(e){}["chat-input","screenUrlInput","charIdInput","lobbyNameInput"].forEach(e=>{const t=document.getElementById(e);t&&t.blur&&t.blur()})}function setClubUiMode(e,t){if(clubUiMode=!!e,clubUiMode){controlsEnabled=!1,"function"==typeof clearMoveKeys&&clearMoveKeys(),document.body.style.cursor="auto";const e=document.getElementById("customCursor");e&&(e.style.display="nM
one");const a=document.getElementById("stageScreenFrame");a&&t&&/screen/i.test(t)&&a.classList.add("interact"),minionRoot&&t&&/screen/i.test(t)&&(minionRoot.visible=!1)}else{controlsEnabled=!0,blurGameInputs(),document.body.style.cursor="none";const e=document.getElementById("customCursor");e&&(e.style.display=gameStarted?"block":"none");const t=document.getElementById("chatModeHint");t&&(t.style.display="none");const a=document.getElementById("stageScreenFrame");a&&a.classList.remove("interact"),minionRoot&&(minioM
nRoot.visible=!0),"function"==typeof updateCursorForLobby&&updateCursorForLobby()}const a=document.getElementById("clubWalkBtn");a&&(a.textContent=clubUiMode?"Walk (back to avatar)":"Walk (you are in control)")}function clubCanSpeak(){return!0}function clubRoleOf(e){return e===clubHostId||isHost&&e===myPlayerID?"host":clubSpeakers.has(e)?"speaker":clubRequests.has(e)?"waiting":"listener"}function broadcastClub(e){const t=JSON.stringify(Object.assign({id:myPlayerID},e));dcList.forEach(e=>{e&&"open"===e.readyState&&eM
.send(t)})}function toEmbedUrl(e){const t=String(e||"").trim();if(!t)return"";let a=t.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/|youtube\.com\/shorts\/|youtube\.com\/live\/)([A-Za-z0-9_-]{6,})/);if(a){const e=encodeURIComponent(location.origin||"https://www.youtube.com"),t=Math.max(0,Math.floor(window._stageStartSec||0));return"https://www.youtube.com/embed/"+a[1]+"?autoplay=1&mute=0&playsinline=1&rel=0&modestbranding=1&enablejsapi=1&controls=1&fs=1&start="+t+"&origin="+e}return t}function M
getStagePunchMaterial(){return window._stagePunchMat||(window._stagePunchMat=new THREE.ShaderMaterial({vertexShader:"void main(){ gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0); }",fragmentShader:"void main(){ gl_FragColor = vec4(0.0,0.0,0.0,0.0); }",transparent:!0,depthTest:!0,depthWrite:!0,fog:!1,side:THREE.DoubleSide,blending:THREE.CustomBlending,blendEquation:THREE.AddEquation,blendSrc:THREE.ZeroFactor,blendDst:THREE.ZeroFactor,blendSrcAlpha:THREE.ZeroFactor,blendDstAlpha:THREE.ZeroFactorM
})),window._stagePunchMat}function getStageIdleMaterial(){return window._stageIdleMat||(window._stageIdleMat=new THREE.MeshBasicMaterial({color:1118232,transparent:!0,opacity:.28,side:THREE.DoubleSide,fog:!1,depthWrite:!0})),window._stageIdleMat}function setStagePortal(e){stageScreenMesh&&(stageScreenMesh.material=e?getStagePunchMaterial():getStageIdleMaterial(),stageScreenMesh.renderOrder=e?1e3:0)}function ytCommand(e,t){const a=document.getElementById("stageIframe");if(a&&a.contentWindow)try{a.contentWindow.postMM
essage(JSON.stringify({event:"command",func:e,args:t||[]}),"*")}catch(e){}}function unmuteStageVideo(){ytCommand("unMute"),ytCommand("setVolume",[100]),ytCommand("playVideo");const e=document.getElementById("stageIframe");e&&e.src&&e.src.indexOf("mute=1")>=0&&(e.src=e.src.replace("mute=1","mute=0"))}let localShareStream=null;function jumboVol(){return Math.max(0,Math.min(1,"number"==typeof jumboMixLevel?jumboMixLevel:.28))}function applyShareVideo(e){if(!e||"video"!==e.kind)return;window._pendingShareVideo=e;const M
t=document.getElementById("stageShareVideo");if(!t)return;let a=t.srcObject instanceof MediaStream?t.srcObject:new MediaStream;if(a.getVideoTracks().some(t=>t.id===e.id)||(a.getVideoTracks().forEach(e=>a.removeTrack(e)),a.addTrack(e)),t.srcObject=a,t.playsInline=!0,t.muted=jumboVol()<=.001,t.volume=jumboVol(),t.play().catch(()=>{}),!stageScreenMesh)return;const o=new THREE.VideoTexture(t);THREE.SRGBColorSpace&&(o.colorSpace=THREE.SRGBColorSpace),o.minFilter=THREE.LinearFilter,o.magFilter=THREE.LinearFilter,o.generaM
teMipmaps=!1,"function"==typeof setStagePortal&&setStagePortal(!1),stageScreenMesh.material=new THREE.MeshBasicMaterial({map:o,side:THREE.DoubleSide,fog:!1,toneMapped:!1});const n=document.getElementById("stageScreenFrame");n&&(n.style.display="none")}function applyShareAudio(e){if(!e||"audio"!==e.kind)return;window._pendingShareAudio=e;const t=document.getElementById("stageShareVideo");if(t){let a=t.srcObject instanceof MediaStream?t.srcObject:new MediaStream;a.getAudioTracks().some(t=>t.id===e.id)||a.addTrack(e),M
t.srcObject=a,t.playsInline=!0,t.muted=jumboVol()<=.001,t.volume=jumboVol(),t.play().catch(()=>{})}let a=document.getElementById("stageShareAudio");a||(a=document.createElement("audio"),a.id="stageShareAudio",a.autoplay=!0,a.playsInline=!0,document.body.appendChild(a)),a.srcObject=new MediaStream([e]),a.muted=jumboVol()<=.001,a.volume=jumboVol();const o=()=>{a.muted=jumboVol()<=.001,a.volume=jumboVol(),a.play().catch(()=>{}),t&&(t.muted=jumboVol()<=.001,t.volume=jumboVol(),t.play().catch(()=>{}))};o(),e.enabled=!0,M
e.onunmute=o}function applyShareStreamToStage(e){e&&(window._pendingShareStream=e,e.getVideoTracks&&e.getVideoTracks().forEach(applyShareVideo),e.getAudioTracks&&e.getAudioTracks().forEach(applyShareAudio),"video"===e.kind&&applyShareVideo(e),"audio"===e.kind&&applyShareAudio(e))}async function startHostShare(){if(multiplayerMode&&!isHost){const e=document.getElementById("status");return void(e&&(e.textContent="Only the host can share a window"))}try{localShareStream=await navigator.mediaDevices.getDisplayMedia({viM
deo:{frameRate:15,width:{max:1280},height:{max:720}},audio:{echoCancellation:!1,noiseSuppression:!1,autoGainControl:!1,suppressLocalAudioPlayback:!1},systemAudio:"include",preferCurrentTab:!1})}catch(e){const t=document.getElementById("status");return void(t&&(t.textContent="Share cancelled or blocked"))}const e=localShareStream.getAudioTracks();e.forEach(e=>{try{e.contentHint="music",e.enabled=!0}catch(e){}});const t=document.getElementById("status");!e.length&&t&&(t.textContent="No tab audio captured. Share a ChrM
ome TAB (not a window) and check Share tab audio."),applyShareStreamToStage(localShareStream);const a=localShareStream.getVideoTracks()[0];a&&a.addEventListener("ended",()=>stopHostShare());const o=new Set;void 0!==remotePlayers&&remotePlayers.forEach((e,t)=>o.add(t)),dcList.forEach(e=>{e&&e._peerId&&o.add(e._peerId)}),sharePcs.forEach((e,t)=>o.add(t)),o.forEach(e=>{if(!e||e===myPlayerID)return;const t=sharePcs.get(e);if(t){try{t.close()}catch(e){}sharePcs.delete(e)}offerShare(e)}),"function"==typeof broadcastClub&M
&broadcastClub({type:"screenShare",on:!0});const n=document.getElementById("clubShareStopBtn"),r=document.getElementById("clubShareBtn");n&&(n.style.display="block"),r&&(r.textContent="Sharing
")}function stopHostShare(){localShareStream&&(localShareStream.getTracks().forEach(e=>{try{e.stop()}catch(e){}}),localShareStream=null),sharePcs.forEach((e,t)=>{try{e.getSenders().forEach(e=>{try{e.replaceTrack(null)}catch(e){}})}catch(e){}});const e=document.getElementById("stageShareVideo");e&&(e.srcObject=null);const t=M
document.getElementById("stageShareAudio");t&&(t.srcObject=null),window._pendingShareStream=null,window._pendingShareVideo=null,window._pendingShareAudio=null,stageScreenMesh&&"function"==typeof getStageIdleMaterial&&(stageScreenMesh.material=getStageIdleMaterial()),"function"==typeof broadcastClub&&broadcastClub({type:"screenShare",on:!1});const a=document.getElementById("clubShareStopBtn"),o=document.getElementById("clubShareBtn");a&&(a.style.display="none"),o&&(o.textContent="Share window")}function applyStageScM
reen(e,t){stageScreenUrl=e||"",null!=t&&(window._stageStartSec=t);const a=document.getElementById("stageScreenFrame"),o=document.getElementById("stageIframe");if(!a||!o)return;const n=toEmbedUrl(stageScreenUrl);if(!n)return o.src="about:blank",a.style.display="none",void setStagePortal(!1);a.style.display="none",o.src!==n&&(o.src=n),applyStagePreviewTexture(stageScreenUrl),setStagePortal(!0),setTimeout(()=>{try{ytCommand("unMute"),ytCommand("setVolume",[Math.round(100*("number"==typeof jumboMixLevel?jumboMixLevel:.M
55))]),ytCommand("playVideo")}catch(e){}if(t)try{ytCommand("seekTo",[t,!0])}catch(e){}},800)}function publishStageScreen(){if(!isHost)return;const e=document.getElementById("screenUrlInput"),t=e?e.value.trim():"";window._stageT0=Date.now(),window._stageStartSec=0,applyStageScreen(t,0),broadcastClub({type:"screenUrl",url:t,t0:window._stageT0,start:0})}function stageElapsed(){return window._stageT0?(Date.now()-window._stageT0)/1e3+(window._stageStartSec||0):0}function startStageClock(){window._stageClock||(window._stM
ageClock=setInterval(()=>{isHost&&stageScreenUrl&&broadcastClub({type:"screenClock",url:stageScreenUrl,t:stageElapsed()})},2500))}function requestSpeak(){clubSpeakers.add(myPlayerID),broadcastClub({type:"speakGrant",target:myPlayerID,speakers:Array.from(clubSpeakers)}),refreshClubDock()}function hostSetSpeaker(e,t){e&&(isHost||clubHostId===myPlayerID)&&(isHost=!0,t?(clubRequests.delete(e),clubSpeakers.add(e),broadcastClub({type:"speakGrant",target:e,speakers:Array.from(clubSpeakers)})):(clubSpeakers.delete(e),clubRM
equests.delete(e),broadcastClub({type:"speakRevoke",target:e,speakers:Array.from(clubSpeakers)})),refreshClubDock())}function handleClubNet(e){if(!e||!e.type)return!1;if(-1===["speakRequest","speakLeave","speakGrant","speakRevoke","speakerSync","screenUrl","screenClock","roomMute","screenShare","shareRepair"].indexOf(e.type))return!1;if("speakRequest"===e.type){e.id&&clubRequests.add(e.id);const t=document.getElementById("status");return t&&isHost&&(t.textContent=(e.id||"Guest")+" requests the floor"),refreshClubDoM
ck(),!0}if("speakLeave"===e.type)return e.id&&(clubSpeakers.delete(e.id),clubRequests.delete(e.id)),refreshClubDock(),!0;if("speakGrant"===e.type)return Array.isArray(e.speakers)&&(clubSpeakers=new Set(e.speakers)),e.target&&(clubSpeakers.add(e.target),clubRequests.delete(e.target),"function"==typeof getVoicePc&&getVoicePc(e.target),e.target===myPlayerID&&(remotePlayers.forEach((e,t)=>getVoicePc(t)),clubHostId&&clubHostId!==myPlayerID&&getVoicePc(clubHostId),attachMicToPeers(!0))),refreshClubDock(),!0;if("speakRevoM
ke"===e.type)return Array.isArray(e.speakers)&&(clubSpeakers=new Set(e.speakers)),e.target&&(clubSpeakers.delete(e.target),clubRequests.delete(e.target),e.target===myPlayerID&&voiceOn&&setMicEnabled(!1)),refreshClubDock(),!0;if("speakerSync"===e.type){if(e.hostId&&(clubHostId=e.hostId),Array.isArray(e.speakers)&&(clubSpeakers=new Set(e.speakers)),Array.isArray(e.requests)&&(clubRequests=new Set(e.requests)),e.sharing&&(window._remoteShareOn=!isHost),null!=e.screenUrl){const t=e.t0?(Date.now()-e.t0)/1e3+(e.start||0)M
:e.start||0;applyStageScreen(e.screenUrl,t)}return refreshClubDock(),!0}if("screenUrl"===e.type){const t=e.t0?(Date.now()-e.t0)/1e3+(e.start||0):e.start||0;applyStageScreen(e.url||"",t);const a=document.getElementById("screenUrlInput");return a&&null!=e.url&&(a.value=e.url),!0}if("screenClock"===e.type&&!isHost){if(e.url&&e.url!==stageScreenUrl)applyStageScreen(e.url,e.t||0);else if(null!=e.t)try{ytCommand("seekTo",[e.t,!0]),ytCommand("playVideo")}catch(e){}return!0}if("shareRepair"===e.type&&isHost&&localShareStreM
am)return voicePcs.forEach((e,t)=>{e.getSenders().forEach(e=>{if(!e._clubShare||!e._clubShareKind)return;const t="video"===e._clubShareKind?localShareStream.getVideoTracks()[0]:localShareStream.getAudioTracks()[0];if(t)try{e.replaceTrack(t)}catch(e){}}),"function"==typeof offerVoice&&offerVoice(t)}),!0;if("screenShare"===e.type){if(window._remoteShareOn=!!e.on&&!isHost,!1===e.on&&!isHost){const e=document.getElementById("stageShareVideo");e&&(e.srcObject=null),stageScreenMesh&&"function"==typeof getStageIdleMateriaM
l&&(stageScreenMesh.material=getStageIdleMaterial())}return!0}if("roomMute"===e.type){if(!isHost){roomMuteHold=!0,selfMuted=!0,applyMicSendState(),syncMicButtons();const e=document.getElementById("status");e&&(e.textContent="Host muted the room
 click Unmute my mic"),refreshClubDock()}return!0}return!1}function syncClubStateTo(e){if(!isHost)return;const t={type:"speakerSync",id:myPlayerID,hostId:myPlayerID,speakers:Array.from(clubSpeakers),requests:Array.from(clubRequests),screenUrl:stageScreenUrl,sharing:!(voidM
 0===localShareStream||!localShareStream),t0:window._stageT0||Date.now(),start:stageElapsed()},a=JSON.stringify(t);e&&"open"===e.readyState?e.send(a):broadcastClub(t)}function refreshClubDock(){const e=document.getElementById("clubDock"),t=document.getElementById("clubPlayerList"),a=document.getElementById("clubRoleLine"),o=document.getElementById("clubSpeakBtn"),n=document.getElementById("clubScreenPanel");if(!e||!t)return;e.style.display=gameStarted?"block":"none";const r=document.getElementById("clubDockToggle")M
;r&&(r.style.display=gameStarted?"block":"none");const s=document.getElementById("clubMixer");s&&(s.style.display=gameStarted?"block":"none"),gameStarted&&isHost&&!window._hostVoiceArmed&&(window._hostVoiceArmed=!0,ensureHostBroadcast()),clubDockCollapsed&&e.classList.add("collapsed"),n&&(n.style.display=isHost?"block":"none");const l=document.getElementById("clubRoomMuteBtn");l&&(l.style.display=isHost?"block":"none"),"function"==typeof syncMicButtons&&syncMicButtons();const i=clubRoleOf(myPlayerID);a&&(a.textContM
ent="You: "+i.toUpperCase()+(isHost?"
 hosting":"")),o&&(isHost?(o.textContent="Open floor
 no permission",o.disabled=!0):clubCanSpeak()?(o.textContent="Mic is open",o.disabled=!1):clubRequests.has(myPlayerID)?(o.textContent="Mic ready",o.disabled=!0):(o.textContent="Open my mic",o.disabled=!1));const c=[],d=new Set,u=(e,t)=>{if(!e||d.has(e))return;d.add(e);const a=clubRoleOf(e),o="function"==typeof displayName?displayName(e):String(e||"Guest");let n="";isHost&&e!==myPlayerID&&(n="waiting"===a?'<span class="cluM
b-actions"><button data-act="grant" data-id="'+e+'">ALLOW</button><button data-act="deny" data-id="'+e+'">NO</button></span>':"speaker"===a?'<span class="club-actions"><button data-act="revoke" data-id="'+e+'">REMOVE</button></span>':'<span class="club-actions"><button data-act="grant" data-id="'+e+'">INVITE</button></span>');const r="host"===a?"host":"speaker"===a?"speak":"waiting"===a?"wait":"";c.push('<div class="club-row"><div class="club-name">'+o+(t||"")+'</div><span class="club-tag '+r+'">'+a+"</span>"+n+"</M
div>")};u(myPlayerID,"
 you"),remotePlayers.forEach((e,t)=>u(t)),clubRequests.forEach(e=>u(e)),clubSpeakers.forEach(e=>u(e)),t.innerHTML=c.join("")||"
",t.querySelectorAll("button[data-act]").forEach(e=>{const t=t=>{t&&(t.preventDefault(),t.stopPropagation());const a=e.getAttribute("data-id");hostSetSpeaker(a,"grant"===e.getAttribute("data-act"))};e.onclick=t,e.onmousedown=t})}function youtubeIdFromUrl(e){const t=String(e||"").match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/|youtube\.com\/livM
e\/)([A-Za-z0-9_-]{6,})/);return t?t[1]:""}function applyStagePreviewTexture(e){if(!stageScreenMesh)return;const t=youtubeIdFromUrl(e),a=t?"https://img.youtube.com/vi/"+t+"/hqdefault.jpg":"";a?(new THREE.TextureLoader).load(a,e=>{stageScreenMesh&&stageScreenMesh.material&&(e.colorSpace=THREE.SRGBColorSpace||e.colorSpace,stageScreenMesh.material.map=e,stageScreenMesh.material.color.set(16777215),stageScreenMesh.material.transparent=!1,stageScreenMesh.material.opacity=1,stageScreenMesh.material.needsUpdate=!0)},void M
0,()=>{}):stageScreenMesh.material&&(stageScreenMesh.material.map=null,stageScreenMesh.material.opacity=.28,stageScreenMesh.material.needsUpdate=!0)}function projectStageScreen(){const e=document.getElementById("stageScreenFrame");if(!(e&&stageScreenMesh&&camera&&renderer))return;if(!stageScreenUrl)return void(e.style.display="none");e.style.display="block",stageScreenMesh.updateWorldMatrix(!0,!1);const t=stageScreenMesh.geometry;t.boundingBox||t.computeBoundingBox();const a=t.boundingBox;_ssCorners[0].set(a.min.x,M
a.max.y,0),_ssCorners[1].set(a.max.x,a.max.y,0),_ssCorners[2].set(a.max.x,a.min.y,0),_ssCorners[3].set(a.min.x,a.min.y,0);const o=window.innerWidth,n=window.innerHeight,r=_ssCorners.map(e=>{const t=e.clone().applyMatrix4(stageScreenMesh.matrixWorld).project(camera);return{x:(.5*t.x+.5)*o,y:(.5*-t.y+.5)*n,z:t.z}});if(r.some(e=>e.z>1||e.z<-1))return void(e.style.opacity="0");e.style.opacity="1";const s=function(e,t){const a=[],o=[];for(let n=0;n<4;n++){const r=e[n],s=t[n];a.push([r[0],r[1],1,0,0,0,-r[0]*s[0],-r[1]*s[M
0]]),o.push(s[0]),a.push([0,0,0,r[0],r[1],1,-r[0]*s[1],-r[1]*s[1]]),o.push(s[1])}const n=a.map((e,t)=>e.concat([o[t]]));for(let e=0;e<8;e++){let t=e;for(let a=e+1;a<8;a++)Math.abs(n[a][e])>Math.abs(n[t][e])&&(t=a);const a=n[e];n[e]=n[t],n[t]=a;const o=n[e][e]||1e-12;for(let t=e;t<=8;t++)n[e][t]/=o;for(let t=0;t<8;t++)if(t!==e){const a=n[t][e];for(let o=e;o<=8;o++)n[t][o]-=a*n[e][o]}}return n.map(e=>e[8])}([[0,0],[1280,0],[1280,720],[0,720]],[[r[0].x,r[0].y],[r[1].x,r[1].y],[r[2].x,r[2].y],[r[3].x,r[3].y]]),l=[s[0],M
s[3],0,s[6],s[1],s[4],0,s[7],0,0,1,0,s[2],s[5],0,1];e.style.transform="matrix3d("+l.join(",")+")"}startStageClock();let clubCollideMeshes=[];function resolveClubMeshWalls(e,t){if(!clubCollideMeshes.length)return t;const a=[1.2,4.2,8.5],o=new THREE.Vector3(t.x-e.x,0,t.z-e.z),n=Math.hypot(o.x,o.z);if(n<1e-5)return t;o.multiplyScalar(1/n);const r=new THREE.Raycaster;r.far=n+3.4;let s=null;for(let t=0;t<a.length;t++){const l=new THREE.Vector3(e.x,e.y+a[t],e.z);r.set(l,o);const i=r.intersectObjects(clubCollideMeshes,!1)M
;if(!i.length)continue;const c=i[0];c.distance<n+3.4&&(!s||c.distance<s.distance)&&(s=c)}if(!s)return t;const l=s.face&&s.object?s.face.normal.clone().transformDirection(s.object.matrixWorld):o.clone().negate();l.y=0,l.lengthSq()<1e-6&&l.copy(o).negate(),l.normalize(),l.dot(o)>0&&l.negate();const i=n+3.4-s.distance+.15;t.x=e.x+o.x*Math.max(0,n-i),t.z=e.z+o.z*Math.max(0,n-i),t.x+=.2*l.x,t.z+=.2*l.z;const c=car.vel.x*-l.x+car.vel.z*-l.z;return c>0&&(car.vel.x+=l.x*c,car.vel.z+=l.z*c),t}function plantClubMushroom(e,t,M
a,o,n,r,s,l){if(!e)return;const i="function"==typeof getClubGroundHeight?getClubGroundHeight(t,a,r+80):r,c=e.clone(!0);c.scale.setScalar(o),c.position.set(t,i,a),c.rotation.y=null!=l?l:0,n.add(c),c.updateMatrixWorld(!0);let d=(new THREE.Box3).setFromObject(c),u=Math.max(.01,d.max.y-d.min.y);const m=Math.max(s||10,u);u<m&&(c.scale.multiplyScalar(m/u),c.updateMatrixWorld(!0),d=(new THREE.Box3).setFromObject(c)),c.position.y+=i-d.min.y,c.updateMatrixWorld(!0),c.traverse(e=>{e.isMesh&&e.geometry&&(e.castShadow=!0,e.recM
eiveShadow=!0,chaosRayMeshes.push(e))})}const CLUB_MUSH_IDS=["8eb31ec7e6aaa30e07c7b2927a1bf83994946a0bb4c01890cec9b3940da4636di0","1617193a1df08ab6db7305ad7694b8cc39f0e58ae01f6847023d829b3741ad16i0","ed0634d1710899531da882d5474f9b365d06038cd8fa2d05e7a08b9fc8b51f23i0"];async function loadClubMushroomTemplates(){const e="function"==typeof makeGltfLoader?await makeGltfLoader():new GLTFLoader,t=[];return await Promise.all(CLUB_MUSH_IDS.map(a=>new Promise(o=>{const n=setTimeout(()=>o(),2e4);e.load("/content/"+a,e=>{cleaM
rTimeout(n),e&&e.scene&&t.push(e.scene),o()},void 0,()=>{clearTimeout(n),o()})}))),t}async function scatterClubMushrooms(e,t,a,o){const n=await loadClubMushroomTemplates();if(!n.length)return;const r=o?o.x:0,s=o?o.z:0,l=Math.atan2(s,r),i=[{dist:.12,count:5,sc:1.7,minH:4},{dist:.215,count:7,sc:4.9,minH:10.5},{dist:.31,count:8,sc:8.05,minH:17},{dist:.405,count:9,sc:11.2,minH:23.5},{dist:.5,count:8,sc:14.4,minH:30}],c=1.02*Math.PI;let d=0;for(let o=0;o<i.length;o++){const u=i[o],m=a*u.dist;for(let i=0;i<u.count;i++){cM
onst p=1===u.count?0.5:i/(u.count-1),y=o%2*(c/(2*u.count)),h=l+Math.PI-c/2+p*c+y,f=Math.cos(h)*m,g=Math.sin(h)*m;if(Math.hypot(f-r,g-s)<.17*a)continue;const b=Math.atan2(r-f,s-g);plantClubMushroom(n[d%n.length],f,g,u.sc,e,t,u.minH,b),d++}}}async function buildClubHall(){clearMapObstacles(),"function"==typeof clearCtfObjects&&clearCtfObjects(),"function"==typeof clearLavaPatches&&clearLavaPatches(),"function"==typeof clearCheckpointsAndFlag&&clearCheckpointsAndFlag(),stageGroup&&stageGroup.parent&&scene.remove(stageM
Group),stageGroup=new THREE.Group,clubCollideMeshes=[];const e=(MAP_DEFS["club-hall"]||{}).domeModelId||"e4f5f9ff44b15f7ee9f4af3949ed844bbd8d8754b94359241c9646d2dbe94b7di0",t=getTerrainHeight(0,0);let a=null;try{const t="function"==typeof makeGltfLoader?await makeGltfLoader():new GLTFLoader;a=await new Promise(a=>{const o=setTimeout(()=>a(null),25e3);t.load("/content/"+e,e=>{clearTimeout(o),a(e&&e.scene?e.scene:null)},void 0,()=>{clearTimeout(o),a(null)})})}catch(e){console.error(e)}if(a){stageGroup.add(a),a.updateM
MatrixWorld(!0);let e=(new THREE.Box3).setFromObject(a),o=e.getSize(new THREE.Vector3);const n=1672,r=Math.max(o.x,o.z,1);a.scale.multiplyScalar(n/r),a.updateMatrixWorld(!0),e=(new THREE.Box3).setFromObject(a),a.position.y+=t-e.min.y,a.updateMatrixWorld(!0),e=(new THREE.Box3).setFromObject(a),window._clubDomeBB=e,a.traverse(e=>{if(e.isMesh&&e.geometry){if(e.castShadow=!0,e.receiveShadow=!0,e.geometry.computeBoundsTree)try{e.geometry.computeBoundsTree()}catch(e){}chaosRayMeshes.push(e),clubCollideMeshes.push(e)}})}cM
onst o=new THREE.PlaneGeometry(262,185),n="function"==typeof getStageIdleMaterial?getStageIdleMaterial():new THREE.MeshBasicMaterial({color:1118232,side:THREE.DoubleSide,fog:!1});stageScreenMesh=new THREE.Mesh(o,n),window.stageScreenMesh=stageScreenMesh;const r=window._clubDomeBB||new THREE.Box3(new THREE.Vector3(-200,t,-200),new THREE.Vector3(200,t+80,200)),s=r.getSize(new THREE.Vector3);let l=r.min.x+.78*s.x,i=r.min.z+.55*s.z;l*=.4,i*=.5;const c="function"==typeof getClubGroundHeight?getClubGroundHeight(l,i,t+30)M
:t,d=c+92.5+4;stageScreenMesh.position.set(l,d,i),stageScreenMesh.lookAt(0,c+10,0),stageScreenMesh.rotateX(THREE.MathUtils.degToRad(-5)),window._pendingShareStream&&applyShareStreamToStage(window._pendingShareStream),window._pendingShareVideo&&applyShareVideo(window._pendingShareVideo),window._clubScreenPos={x:l,y:d,z:i},window._clubDomeR=.5*Math.max(s.x,s.z);const u=new THREE.MeshStandardMaterial({color:13214247,emissive:3811856,metalness:.4,roughness:.45}),m=new THREE.Mesh(new THREE.BoxGeometry(270,193,3),u);m.poM
sition.copy(stageScreenMesh.position),m.quaternion.copy(stageScreenMesh.quaternion),m.translateZ(-2),stageGroup.add(m),stageGroup.add(stageScreenMesh);const p=new THREE.PointLight(16764023,1.4,520);p.position.set(0,t+Math.min(120,.35*s.y),0),stageGroup.add(p);const y=new THREE.PointLight(8956671,.55,600);y.position.set(.4*l,d,.4*i),stageGroup.add(y);const h=new THREE.Mesh(new THREE.CircleGeometry(CLUB_FLOOR_R,80),new THREE.MeshStandardMaterial({color:12891274,roughness:.92,metalness:.04,transparent:!0,opacity:.18})M
);h.rotation.x=-Math.PI/2,h.position.y=t+.35,h.receiveShadow=!0,stageGroup.add(h);const f=new THREE.Mesh(new THREE.TorusGeometry(CLUB_FLOOR_R-2,3.2,8,80),new THREE.MeshStandardMaterial({color:13214247,emissive:3811848,roughness:.5}));f.rotation.x=Math.PI/2,f.position.y=t+1.2,stageGroup.add(f),window._clubSpawnLift=r?Math.max(48,.38*(r.max.y-t)):90;try{await scatterClubMushrooms(stageGroup,t,window._clubDomeR||700,window._clubScreenPos)}catch(e){console.error(e)}scene.add(stageGroup),mapObstacleList.push(stageGroup)M
,clubBuilt=!0,window.buildBovineTrack&&window.buildBovineTrack(scene)}function getClubSpawn(){const e=getTerrainHeight(0,0),t=window._clubSpawnLift||90,a=.15*(window._clubDomeR||700);return{x:(2*Math.random()-1)*a,y:e+t,z:(2*Math.random()-1)*a,rot:Math.random()*Math.PI*2}}function placeMenuPlaceholder(){if(showcaseModel||gameStarted)return;const e=new THREE.Group,t=new THREE.Mesh(new THREE.SphereGeometry(1.15,24,18),new THREE.MeshStandardMaterial({color:15259043,roughness:.45,metalness:.15})),a=new THREE.Mesh(new TM
HREE.SphereGeometry(.18,10,8),new THREE.MeshBasicMaterial({color:1118481})),o=a.clone();a.position.set(-.35,.2,.9),o.position.set(.35,.2,.9),e.add(t,a,o),e.position.set(0,2.2,0),e.userData.isPlaceholder=!0,scene.add(e),showcaseModel=e,menuShowcaseActive=!0,camera.fov=50,camera.updateProjectionMatrix(),camera.position.set(0,5.2,14),camera.lookAt(0,4.6,0)}let clubDockCollapsed=!1;function setClubDockCollapsed(e){clubDockCollapsed=!!e;const t=document.getElementById("clubDock"),a=document.getElementById("clubDockTogglM
e");t&&t.classList.toggle("collapsed",clubDockCollapsed),a&&(a.textContent=clubDockCollapsed?"
",a.title=clubDockCollapsed?"Show menu":"Hide menu",a.style.display=gameStarted?"block":"none")}const clubDockToggle=document.getElementById("clubDockToggle");clubDockToggle&&clubDockToggle.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),setClubDockCollapsed(!clubDockCollapsed)});const clubShareBtn=document.getElementById("clubShareBtn");clubShareBtn&&clubShareBtn.addEventListener("click",e=>{eM
.preventDefault(),startHostShare()});const clubShareStopBtn=document.getElementById("clubShareStopBtn");clubShareStopBtn&&clubShareStopBtn.addEventListener("click",e=>{e.preventDefault(),stopHostShare()});const clubUnmuteBtn=document.getElementById("clubUnmuteBtn");clubUnmuteBtn&&clubUnmuteBtn.addEventListener("click",e=>{e.preventDefault(),unmuteStageVideo()});const clubWalkBtn=document.getElementById("clubWalkBtn");clubWalkBtn&&clubWalkBtn.addEventListener("click",e=>{e.preventDefault(),setClubUiMode(!1)});const M
screenUrlInput2=document.getElementById("screenUrlInput");function bindClubWalkKeys(){if(window._clubWalkBound)return;window._clubWalkBound=!0;window.addEventListener("keydown",e=>{if(!gameStarted||paused||clubUiMode)return;const t=(e.key||"").toLowerCase(),a=e.code||"";let o=!1;"w"!==t&&"KeyW"!==a&&"arrowup"!==t&&"ArrowUp"!==a||(keys.w=keys.arrowup=!0,o=!0),"s"!==t&&"KeyS"!==a&&"arrowdown"!==t&&"ArrowDown"!==a||(keys.s=keys.arrowdown=!0,o=!0),"a"!==t&&"KeyA"!==a&&"arrowleft"!==t&&"ArrowLeft"!==a||(keys.a=keys.arroM
wleft=!0,o=!0),"d"!==t&&"KeyD"!==a&&"arrowright"!==t&&"ArrowRight"!==a||(keys.d=keys.arrowright=!0,o=!0),"shift"!==t&&"ShiftLeft"!==a&&"ShiftRight"!==a||(keys.shift=!0,o=!0)," "!==t&&"Space"!==a||(keys[" "]=keys.space=!0,jumpHeld=!0,jumpRequested=!0,o=!0),o&&(typingChat=!1,e.preventDefault())},!0),window.addEventListener("keyup",e=>{const t=(e.key||"").toLowerCase(),a=e.code||"";"w"!==t&&"KeyW"!==a&&"arrowup"!==t&&"ArrowUp"!==a||(keys.w=keys.arrowup=!1),"s"!==t&&"KeyS"!==a&&"arrowdown"!==t&&"ArrowDown"!==a||(keys.sM
=keys.arrowdown=!1),"a"!==t&&"KeyA"!==a&&"arrowleft"!==t&&"ArrowLeft"!==a||(keys.a=keys.arrowleft=!1),"d"!==t&&"KeyD"!==a&&"arrowright"!==t&&"ArrowRight"!==a||(keys.d=keys.arrowright=!1),"shift"!==t&&"ShiftLeft"!==a&&"ShiftRight"!==a||(keys.shift=!1)," "!==t&&"Space"!==a||(keys[" "]=keys.space=!1,jumpHeld=!1)},!0)}screenUrlInput2&&screenUrlInput2.addEventListener("focus",()=>{gameStarted&&setClubUiMode(!0,"MENU
 ESC or Walk to return to your avatar")}),bindClubWalkKeys(),
window.BOVINE_INNER=1120;window.BOVINE_OM
UTER=1680;window.SAT={roster:"2005686177366289",lounge:"2005686177378564",book:"2005686177373859",race:"2005686177373529"};
window.BOVINE_ROSTER=null;
window.loadBovineRace=async function(){
  const sat=window.SAT&&window.SAT.race;
  if(!sat||window.__BOVINE_RACE__)return;
    const tip=await(await fetch("/r/sat/"+sat+"/at/-1")).json();
    const s=document.createElement("script");
    s.src="/content/"+tip.id;
    document.head.appendChild(s);
  }catch(e){console.warn("race",e)}
window.loadBovineBook=asyM
  const sat=window.SAT&&window.SAT.book;
  if(!sat||window.__BOVINE_BOOK__)return;
    const tip=await(await fetch("/r/sat/"+sat+"/at/-1")).json();
    const s=document.createElement("script");
    s.src="/content/"+tip.id;
    document.head.appendChild(s);
  }catch(e){console.warn("book",e)}
window.BOVINE_LOCK={locked:!1,height:null,hash:null};
window.paintBovineCard=function(){
  const heat=(window.BOVINE_RACE&&window.BOVINE_RACE.heat)||[];
  const all=(window.BOVINE_ROSTER&&window.BOVINEM
_ROSTER.racers)||[];
  const list=heat.length?heat:all.slice(0,8);
  if(!list.length)return;
  const c=window._bovineCard||(window._bovineCard=document.createElement("canvas"));
  c.width=1024;c.height=576;
  const ctx=c.getContext("2d");
  ctx.fillStyle="#11110c";ctx.fillRect(0,0,1024,576);
  ctx.fillStyle="#f4e7c3";ctx.fillRect(0,0,1024,72);
  ctx.fillStyle="#11110c";ctx.font="700 32px Palatino,Georgia,serif";
  const race=window.BOVINE_RACE||{};
  const board=race.board||{};
  const photo=race.phase==="photo"||rM
  let title="TODAY'S FIELD
  "+list.length+" GOING";
  if(photo) title="CONGRATULATIONS TO THE WINNERS";
  else if(window.BOVINE_LOCK&&window.BOVINE_LOCK.locked) title="POST LOCKED
  "+list.length+" ON THE CARD";
  ctx.fillText(title,28,48);
    const win=board.win||race.winner||{};
    const place=board.place||{};
    const show=board.show||{};
    ctx.fillStyle="#f4e7c3";ctx.font="700 28px Palatino,Georgia,serif";
    ctx.fillText("WIN    #"+(win.id||"
")+"  "+(win.name||""),28,14M
    ctx.fillText("PLACE  #"+(place.id||"
")+"  "+(place.name||""),28,200);
    ctx.fillText("SHOW   #"+(show.id||"
")+"  "+(show.name||""),28,260);
    ctx.fillStyle="#e6d39a";ctx.font="20px Palatino,Georgia,serif";
    ctx.fillText("BLOCK HASH  "+String(race.hash||board.hash||"").slice(0,24)+"
    ctx.fillText("Sign the payout
 host holds this board until NEW FIELD",28,390);
    list.forEach((r,i)=>{
      const col=i%cols,row=Math.floor(i/cols);
ol*500,y=100+row*90;
      ctx.fillStyle="#f4e7c3";ctx.font="700 26px Palatino,Georgia,serif";
      ctx.fillText("#"+String(r.id).padStart(3,"0")+"  "+r.name,x,y);
      ctx.fillStyle="#e6d39a";ctx.font="20px Palatino,Georgia,serif";
      ctx.fillText("SPD "+r.speed+"   GRIT "+r.grit+"   BURST "+r.burst+"   GATE "+r.gate,x,y+28);
  ctx.fillStyle="#f4e7c3";ctx.font="18px Palatino,Georgia,serif";
  ctx.fillText(photo?"winner takes the net pot
 4% house rake":"host sets entry
  const mesh=window.stageScreenMesh;
  if(mesh&&window.THREE){
    if(!window._bovineCardTex){
      window._bovineCardTex=new THREE.CanvasTexture(c);
      if(THREE.SRGBColorSpace)window._bovineCardTex.colorSpace=THREE.SRGBColorSpace;
    }else window._bovineCardTex.needsUpdate=!0;
    mesh.material=new THREE.MeshBasicMaterial({map:window._bovineCardTex,color:0xffffff,toneMapped:!1});
window.loadBovineRoster=async function(){
  const sat=window.SAT&&window.SAT.roster;
  if(!sat)return nullM
    const tip=await(await fetch("/r/sat/"+sat+"/at/-1")).json();
    const data=await(await fetch("/content/"+tip.id)).json();
    window.BOVINE_ROSTER=data;
    const n=(data.racers||[]).length;
    const status=document.getElementById("status");
    status&&(status.textContent="Bovine Racing Club
    window.paintBovineCard();
  }catch(e){console.warn("roster",e);return null}
window.lockBovinePost=async function(){
  if(!(window.isHost||window.isHostM
  if(window.BOVINE_LOCK.locked)return;
  window.BOVINE_LOCK.locked=!0;
    const h=await(await fetch("/r/blockheight")).json();
    window.BOVINE_LOCK.height=h;
  window.paintBovineCard(0);
  const status=document.getElementById("status");
  status&&(status.textContent="POST locked
 waiting on the next block for the photo");
  if(typeof broadcastClub==="function")try{broadcastClub({type:"bovinePost",height:window.BOVINE_LOCK.height})}catch(e){}
window.buildBovineTrack=fM
  if(!scene||window._bovineTrackBuilt)return;
  window._bovineTrackBuilt=1;
  const INNER=window.BOVINE_INNER,OUTER=window.BOVINE_OUTER;
  const gold=new THREE.MeshStandardMaterial({color:0xd4b46a,metalness:.72,roughness:.32,emissive:0xd4b46a,emissiveIntensity:.16});
  function ring(r,tube){const m=new THREE.Mesh(new THREE.TorusGeometry(r,tube,8,160),gold.clone());m.rotation.x=Math.PI/2;m.position.y=2.4;scene.add(m);return m}
  ring(INNER,8);ring(OUTER,8);
  const dirt=new THREE.Mesh(new THREE.RingGM
eometry(INNER,OUTER,128),new THREE.MeshStandardMaterial({color:0x5a4630,roughness:.92}));
  dirt.rotation.x=-Math.PI/2;dirt.position.y=.55;scene.add(dirt);
  const poster=new THREE.TextureLoader().load("/content/ffc4dfb9f7babbbd148793446a3d2ff0f7c0c2daa4d3d60ef876646235fe7a53i0");
  if(THREE.SRGBColorSpace)poster.colorSpace=THREE.SRGBColorSpace;
  const bill=new THREE.Mesh(new THREE.PlaneGeometry(720,420),new THREE.MeshBasicMaterial({map:poster}));
  bill.position.set(0,140,-(OUTER+280));
w.loadBovineRoster();window.loadBovineBook&&window.loadBovineBook();window.loadBovineRace&&window.loadBovineRace();
function bovineTeleport(r,ang){
  if(typeof car==="undefined"||!car||!car.pos)return;
  const a=null==ang?Math.atan2(car.pos.z,car.pos.x):ang;
  car.pos.x=Math.cos(a)*r;car.pos.z=Math.sin(a)*r;
  if(car.vel){car.vel.x=0;car.vel.z=0}
window.addEventListener("load",()=>{
  const i=document.getElementById("bovineInsideBtn");
  const o=document.getElementById("bovineRailBtn");
  const p=document.getEM
lementById("bovinePostBtn");
  i&&i.addEventListener("click",e=>{e.preventDefault();bovineTeleport(180,0)});
  o&&o.addEventListener("click",e=>{e.preventDefault();bovineTeleport((window.BOVINE_OUTER||1680)+70,0)});
  p&&p.addEventListener("click",e=>{e.preventDefault();window.lockBovinePost&&window.lockBovinePost()});
window.keepBovineJumbo=function(){
  const THREE=window.THREE,race=window.BOVINE_RACE,mesh=window.stageScreenMesh;
  if(!THREE||!mesh||!race)return;
    if(race.phase!=="running")returnM
    if(!race.chase||!race.chase.rt||!race.chase.cam){
      const cam=new THREE.PerspectiveCamera(42,16/9,.5,8e3);
      const rt=new THREE.WebGLRenderTarget(1024,576);
      if(rt.texture&&THREE.SRGBColorSpace)rt.texture.colorSpace=THREE.SRGBColorSpace;
      race.chase={cam:cam,rt:rt};
    const map=race.chase.rt.texture;
    if(!mesh.material||mesh.material.map!==map){
      mesh.material=new THREE.MeshBasicMaterial({map:map,color:0xffffff,toneMapped:!1});
=window.paintBovineCard;
  window.paintBovineCard=function(){
    if(window.BOVINE_RACE&&window.BOVINE_RACE.phase==="running")return;
    if(prev)try{prev()}catch(e){}
window.skinBovineRunners=function(){
  const THREE=window.THREE,race=window.BOVINE_RACE;
  if(!THREE||!race||!race.runners)return;
  race.runners.forEach(function(run){
    if(run._skinned||!run.root||!run.racer)return;
    const id=String(run.racer.texture||"").split("/content/").pop();
    if(!/^[0-9a-f]{64}i[0-9]+$/i.test(id))return;
    const tex=new THREE.TextureLoader().load("/content/"+id,function(t){
      if(THREE.SRGBColorSpace)t.colorSpace=THREE.SRGBColorSpace;
      t.flipY=!0;t.needsUpdate=!0;
      run.root.traverse(function(o){
        if(!o.isMesh||!o.material)return;
        const mats=Array.isArray(o.material)?o.material:[o.material];
        mats.forEach(function(m){
          const copy=m.clone?m.clone():m;
          copy.map=t;
          if(copy.color)copy.color.setHex(0xffffff);
          copy.metalness=.08;M
copy.roughness=.72;copy.needsUpdate=!0;
          if("format" in copy)try{delete copy.format}catch(e){}
        o.material=mats.length===1?(mats[0].clone?mats[0].clone():mats[0]):mats;
        const apply=Array.isArray(o.material)?o.material:[o.material];
        apply.forEach(function(m){m.map=t;if(m.color)m.color.setHex(0xffffff);m.needsUpdate=!0});
if(!window._bovineSkinWatch){window._bovineSkinWatch=setInterval(function(){try{window.skinBovineRunners();window.keepBovineJum<bo()}catch(e){}},400)}
initialize()</script> </body></html>h!
MTLD_BATCH_393595_393584_393586
8j6from:1000USDT(TRON):TLsMWwCCm1prWjGXAcj8d3uquFUzDRfoHk
6j4from:45USDT(TRON):TQoy3UtrafGYU5jhTN58WvocABpDXkCsUS
Aj?from:1010USDT(ERC20):0xf8429F5a834a86511B27828d043A675bb15DF9De
6j4mhr:to:USDT(TRON):TVeUYEKkspNmKBwmHFwBcHWVVyocyPgf4b
6j4Xsh:to:USDT(TRON):TTWVt6uzevByJEAqe4sSV5T1L6tzk8bCyg$
6j4Hw8:to:USDT(TRON):TNjKQfFx9sCbJdQdWxyLPwSgTwMdBBapm8
=j;q7V:to:USDT(BSC):0x58Fc571cc67A7379c05D05242a528E1c8bC65193
=j;Oi1:to:USDT(BSC):0x0267cEe358fdD10CA79c461030b6442EfF0D8B96
=j;ATu:to:USDT(BSC):0x0E64768841Dbf8614992DeD491d71cFa05e7Ea37
6j440Q:to:USDT(TRON):TAMcYUj31URi6G8KJ9kxJA5c6WQZaejvPb
6j4WDZ:to:USDT(TRON):TCcNNdpjRZhgDp9ShyQhGLav2qLHCURZ7r
6j41oF:to:USDT(TRON):TJbGvsS78i2SbahtLiuP4mRJQpHZmH7mDS!
=j;brZ:to:USDT(BSC):0xdBbF61a307e62490dFc9231bED8d9C8BDA099B1D
=j;F0i:to:USDT(BSC):0x6C124ffDBb2D65E656d4690aEbCC3E9b0b71bb33
6j485N:to:USDT(TRON):TXsD9SEuLN81wz3itiPYv7KuwoqU2iyunc
8j6OZV:to:USDC:0x176fbc534A02da3B72f67d585f0A851c79df5444
8j62bO:to:LTC:ltc1qkfsfc4p99udaeqjl8lae8hd4s3d9gtzkdzu3l4a
8j6JfO:to:BTCB:0x5Cfc1C73a6Af8cB5c4d67cD569307CCc5747be6a
=j;76Z:to:USDT(BSC):0x5A60F4998f8aaBe0BA812F39f1A07900077597AD
6j4d8z:to:USDT(TRON):TSsDMqvnB42ESrcg9sWv34WCpRJ1NCDu3f
2j0to:USDT(TRON):TAexd9MEpSNNrZLJBUsMTXyW8nKQ9BXQg7Hq
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"100"}h!
OjLL0x8ef89e44fe3be09ce68d90023ce88093565ec4152b94bd8c85c3a1f88daa01ff=|lifi
2j0to:USDT(TRON):TUKXT3XDR5QXWGJiebM9ou64GHqXE5CZj3\
2j0to:USDT(TRON):TFZNWm6cs1oYQuezpip9TYm1T6RrKkUM6C<G
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"fifa","amt":"19"}h!
<j:=:e:0x123a3b850bfc7b3F11fbb1b48726fF5caA40d1C6:0/1/1:ej:758N
{jLx0x005d9fc12ff624d090bf0ee156d42e6cc2bd60777536c323d975494009959177|depositor=bc1qwfes4nt3a9xr6glslyk4tlqf773rv2lznmkmf5|
DjB0x0f831512343ec24da4d723592f59b0107fa3aec8532467d6f60cc4e5833d47e1
DjB0x900d20b3eafb4bf750263680a53e7651c3b645d487f3b66f867cf24ed5128e65
OjLL0x7928cdb96d2eacef8aaacc1cce6b760a9a1f9da643146a83aca7c3e005b44a00=|lifi
OjLL0xcc3b6a5304e22bd2234642b2918098aefa5a7678ebac61d011669f770bba7a64=|lifi
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"167167"}
DjB0x43600b0dde3bcf1cb438f3018829ecef988ce043270845e3d64666b90535bf6b
DjB0xf64898ae81ed3d7f6c054a969aaa1e0895636d7124bd71004758d3986d063174
DjB0x5598bf8dbe20a547d08d920d78225ec7d633a974374f42cc9f2c72b457d93bf0
>stamp:{"p":"src-20","op":"tranJ
 sfer","tick":"MSKE","amt":96400}
{"p":"brc20-prog","op":"c","c":"0x81f0ef688b8dcad3f3ddaba69ad529a99f03a1b7","b":"AakFnLv/DKa/6VIDuEEeQEQZnOVKNVLiz0uT/xY6O8elq44l4AAA"}h!
OjLL0x1887fa538a65443a44d014eb5bd8534582f65d3040b33320685da8ccda0b1a23=|lifi
DjB0xbeb9d418b33e86a17542fd24f48a92d7bf800dcceb4129aa401507070eb72d29
DjB0x8efaca4065a9954c01bf2d39c1d44c7551f5cd03f7dfa634093c938524736415
DjB0x7c3d19aead4f8af1f09170cbdf59eb854051757c3f6de7cfb7840ea96ae8cfcf
B4b7cf62c55be4aa9a9d65767b566a0f84c5f25ff07a44f851efb2cd60b990dda:0a
Bbc48e1b68f10b4b1379fa5b825b8508370f0a3f7cc14ee5a9d640045befc5f5d:0a
DjB0x97e9bf999ea6bab5a49223fcf8c0aac104d85c46825d038d2f81de671ceb33df
DjB0x521d3be50274348da4694d97f6acaf2f90342bf47352a75d91a7243af618ffe4
DjB0x27277b0eb0cdb5418b9f12eead6dd25cd158b90e0246897fe31b8aa508f9144d3
OjLL0x9ad7a6ee9e7b9f54665c69a2f534e62c72d869528b03839f86c656121cf5d7e6=|lifi
{jLx0xf8f71a02a14c4fb3eb6e3982f14c395a0b086c1b81e38d49403e8a9d111dfe49|depositor=bc1qxtyrajqwzmhwcdgs6xkrqm2ffm0h6e33s4dmsk|
OjLL0xc41943bdc8decfff0a7fd14a5b88b1065b6a72a49d93ad0197f61e6e3d63a5df=|lifi
DjB0x025001bdbee40e3b5b9974bcc136d2fd635e1d175f0340ba71df544c7f0bbe1c
DjB0x9717c7de4fc329b81b99febcc3254c005bab46b46f345717da3eaef0a233b443P
DjB0x7be8717d7036691f58a7d3141ec3474a8ff0635890de4a400bb6cd82f0110c92e
DjB0x911dcc31ceb4ceb64593e4a202af3819d46843e4e4047a159dff00fd6a0f6af6
DjB0x6331e0c558a0cde912809525e3d2298a617eec26547af46955c59464730a1d8c
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"111795"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
=j;{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"500000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
>j<{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"1000000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"250"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"105"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"36P9","amt":"900"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTC.z","amt":"206"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTC.z","amt":"206"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTC.z","amt":"206"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTC.z","amt":"206"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTC.z","amt":"206"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTC.z","amt":"206"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTC.z","amt":"206"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BTC.z","amt":"206"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"7000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"$-:)","amt":"6500"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"BMW99","amt":"100"}h!
text/plain;charset=utf-8
={"p":"brc-20","op":"transfer","tick":"BTC ","amt":"2988.888"}h!
text/plain;charset=utf-8
A{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"360228000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"ordi","amt":"1.25"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"5"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"4"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"3"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"4147124242"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"BCLD","amt":"4105215521"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"66"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"50"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4900000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4100000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"7500000000"}h!
SODA #8301 - Drawn May 23, 2026
dnamejSODA #8301edrawnlMay 23, 2026dseedjstretch 41hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro
WjLT{"p":"brc-20","op":"transfer","tick":"rpa2c3","amt":"0","n":"a2c39b5d2a4d3022"}
6j4C8Z:to:USDT(TRON):TMwJv4iWYrzg73f8u3acmhxY7bMwtRaUSs
9j7=:e:0x31A2FAD03E08ca746219261EC0350f581849D2A0:62935192
6j4FxL:to:USDT(TRON):TBYTdhxDbnz9DS9RQWYSSGmXCqiLQPahpq
?j=WNU:to:USDC(SOL):3Zu2dLEh5uF8UWYApUPcMbWTEtaCZAasL3ZTfBtpWGWdU-
=j;03G:to:USDT(BSC):0xFd987343Cc07b93D7b188cc0A91fcaC200fCC2A2
<j:byw:to:BNB(BSC):0x1376515E010140Aa2F10005Ee7f2b8292CB8e4B6
6j47ZP:to:USDT(TRON):TUFec1KJmGtXW8VcsgahrLipRab9T76Vwx
=j;LpR:to:USDT(BSC):0x6853b32DcaD74d4C4F05b3D28865103a77945085
<j:T27:to:BNB(BSC):0xB15e24c01e897eE6d66FC4F42A196467523AaC61
2j0to:USDT(TRON):TSPLFAgaqeKhCJJNrfQX722qw5SNV49Nx6
;j9to:USDC(SOL):HRJ6RaX2NfgLS9KgRmzA7KGvYxgyinAXcfbAgWgVgXff0*
;j9to:USDT(ERC20):0x1c2FFd16a629564B3e944e1e439F5e9C49ec97FD
DjB0x7d16355ac5993b58ee4c6d6dd08b8267477035027d7a53c145135a1693a444a2
DjB0x1ff73431a7f8263026afd72d7be52f08ef9908d2d8f00917147dbbbe7336aa4f
DjB0x8d102750fa5eada96e43a753e9d157b091ec9e2c5d27d28e43a654dbd11ac572
DjB0x65e0c5337f4d8813073b0bf5ee90c6398f67d385d2e9332f0ff62b6ea6309b3c
DjB0x7722be6520c0735e0abd76d20e86307e3da31813188e04790539d9c6ffbcd050
DjB0x6b110a312bcc27e501521cc5e556f1b3ae41d275016c18899991d59c38df3946
DjB0x89dde8e71762c9720361752d9264b8307625fe22cb76cb90567e3d51bfedd1e0
DjB0xa15c02e7dda2b0b7fa68432bad4418e2e4d9be635d9aa56bfeb62c9add81bcd63
text/plain;charset=utf-8
<{"p":"brc-20","op":"transfer","tick":"piin","amt":"4010000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"300"}h!
>j<{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"1000000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
>j<{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"1000000"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
EjC{"p":"ico-20","op":"transfer","tick":"LEAF","amt":"33595.23099371"}"
*j({"p":"crc-20","op":"mint","tick":"LEAF"}J
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"FF1E","amt":"100"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"fifa","amt":"150"}h!
text/plain;charset=utf-8
8{"p":"brc-20","op":"transfer","tick":"Thund","amt":"26"}h!
text/plain;charset=utf-8
@{"p":"brc-20","op":"transfer","tick":"
","amt":"10000000000"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"200"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"200"}h!
text/plain;charset=utf-8
9{"p":"brc-20","op":"transfer","tick":"Zeusv","amt":"200"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"30"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"BTMV","amt":"29"}h!
text/plain;charset=utf-8
7{"p":"brc-20","op":"transfer","tick":"ATMC","amt":"10"}h!
text/plain;charset=utf-8
;{"p":"brc-20","op":"transfer","tick":"FFST$","amt":"213.7"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"4190000000"}h!
text/plain;charset=utf-8
?{"p":"brc-20","op":"transfer","tick":"VRQQ","amt":"2657388889"}h!
SODA #8302 - Drawn May 23, 2026
dnamejSODA #8302edrawnlMay 23, 2026dseedjstretch 42hsoftwarex/Pixaki 4.6 - iPad Pro 13" M5 - Apple Pencil Pro

blk00000.txt blk00001.txt blk00002.txt blk00003.txt blk00004.txt blk00005.txt blk00006.txt blk00007.txt blk00008.txt blk00009.txt blk00010.txt blk00011.txt blk00012.txt blk00013.txt blk00014.txt blk00015.txt blk00016.txt blk00017.txt blk00018.txt blk00019.txt blk00020.txt blk00021.txt blk00022.txt blk00023.txt blk00024.txt blk00025.txt blk00026.txt blk00027.txt blk00028.txt blk00029.txt blk00030.txt blk00031.txt blk00032.txt blk00033.txt blk00034.txt blk00035.txt blk00036.txt blk00037.txt blk00038.txt blk00039.txt blk00040.txt blk00041.txt blk00042.txt blk00043.txt blk00044.txt blk00045.txt blk00046.txt blk00047.txt blk00048.txt blk00049.txt blk00050.txt blk00051.txt blk00052.txt blk00053.txt blk00054.txt blk00055.txt blk00056.txt blk00057.txt blk00058.txt blk00059.txt blk00060.txt blk00061.txt blk00062.txt blk00063.txt blk00064.txt blk00065.txt blk00066.txt blk00067.txt blk00068.txt blk00069.txt blk00070.txt blk00071.txt blk00072.txt blk00073.txt blk00074.txt blk00075.txt blk00076.txt blk00077.txt blk00078.txt blk00079.txt blk00080.txt blk00081.txt blk00082.txt blk00083.txt blk00084.txt blk00085.txt blk00086.txt blk00087.txt blk00088.txt blk00089.txt blk00090.txt blk00091.txt blk00092.txt blk00093.txt blk00094.txt blk00095.txt blk00096.txt blk00097.txt blk00098.txt blk00099.txt blk00100.txt blk00101.txt blk00102.txt blk00103.txt blk00104.txt blk00105.txt blk00106.txt blk00107.txt blk00108.txt blk00109.txt blk00110.txt blk00111.txt blk00112.txt blk00113.txt blk00114.txt blk00115.txt blk00116.txt blk00117.txt blk00118.txt blk00119.txt blk00120.txt blk00121.txt blk00122.txt blk00123.txt blk00124.txt blk00125.txt blk00126.txt blk00127.txt blk00128.txt blk00129.txt blk00130.txt blk00131.txt blk00132.txt blk00133.txt blk00134.txt blk00135.txt blk00136.txt blk00137.txt blk00138.txt blk00139.txt blk00140.txt blk00141.txt blk00142.txt blk00143.txt blk00144.txt blk00145.txt blk00146.txt blk00147.txt blk00148.txt blk00149.txt blk00150.txt blk00151.txt blk00152.txt blk00153.txt blk00154.txt blk00155.txt blk00156.txt blk00157.txt blk00158.txt blk00159.txt blk00160.txt blk00161.txt blk00162.txt blk00163.txt blk00164.txt blk00165.txt blk00166.txt blk00167.txt blk00168.txt blk00169.txt blk00170.txt blk00171.txt blk00172.txt blk00173.txt blk00174.txt blk00175.txt blk00176.txt blk00177.txt blk00178.txt blk00179.txt blk00180.txt blk00181.txt blk00182.txt blk00183.txt blk00184.txt blk00185.txt blk00186.txt blk00187.txt blk00188.txt blk00189.txt blk00190.txt blk00191.txt blk00192.txt blk00193.txt blk00194.txt blk00195.txt blk00196.txt blk00197.txt blk00198.txt blk00199.txt blk00200.txt blk00201.txt blk00202.txt blk00203.txt blk00204.txt blk00205.txt blk00206.txt blk00207.txt blk00208.txt blk00209.txt blk00210.txt blk00211.txt blk00212.txt blk00213.txt blk00214.txt blk00215.txt blk00216.txt blk00217.txt blk00218.txt blk00219.txt blk00220.txt blk00221.txt blk00222.txt blk00223.txt blk00224.txt blk00225.txt blk00226.txt blk00227.txt blk00228.txt blk00229.txt blk00230.txt blk00231.txt blk00232.txt blk00233.txt blk00234.txt blk00235.txt blk00236.txt blk00237.txt blk00238.txt blk00239.txt blk00240.txt blk00241.txt blk00242.txt blk00243.txt blk00244.txt blk00245.txt blk00246.txt blk00247.txt blk00248.txt blk00249.txt blk00250.txt blk00251.txt blk00252.txt blk00253.txt blk00254.txt blk00255.txt blk00256.txt blk00257.txt blk00258.txt blk00259.txt blk00260.txt blk00261.txt blk00262.txt blk00263.txt blk00264.txt blk00265.txt blk00266.txt blk00267.txt blk00268.txt blk00269.txt blk00270.txt blk00271.txt blk00272.txt blk00273.txt blk00274.txt blk00275.txt blk00276.txt blk00277.txt blk00278.txt blk00279.txt blk00280.txt blk00281.txt blk00282.txt blk00283.txt blk00284.txt blk00285.txt blk00286.txt blk00287.txt blk00288.txt blk00289.txt blk00290.txt blk00291.txt blk00292.txt blk00293.txt blk00294.txt blk00295.txt blk00296.txt blk00297.txt blk00298.txt blk00299.txt blk00300.txt blk00301.txt blk00302.txt blk00303.txt blk00304.txt blk00305.txt blk00306.txt blk00307.txt blk00308.txt blk00309.txt blk00310.txt blk00311.txt blk00312.txt blk00313.txt blk00314.txt blk00315.txt blk00316.txt blk00317.txt blk00318.txt blk00319.txt blk00320.txt blk00321.txt blk00322.txt blk00323.txt blk00324.txt blk00325.txt blk00326.txt blk00327.txt blk00328.txt blk00329.txt blk00330.txt blk00331.txt blk00332.txt blk00333.txt blk00334.txt blk00335.txt blk00336.txt blk00337.txt blk00338.txt blk00339.txt blk00340.txt blk00341.txt blk00342.txt blk00343.txt blk00344.txt blk00345.txt blk00346.txt blk00347.txt blk00348.txt blk00349.txt blk00350.txt blk00351.txt blk00352.txt blk00353.txt blk00354.txt blk00355.txt blk00356.txt blk00357.txt blk00358.txt blk00359.txt blk00360.txt blk00361.txt blk00362.txt blk00363.txt blk00364.txt blk00365.txt blk00366.txt blk00367.txt blk00368.txt blk00369.txt blk00370.txt blk00371.txt blk00372.txt blk00373.txt blk00374.txt blk00375.txt blk00376.txt blk00377.txt blk00378.txt blk00379.txt blk00380.txt blk00381.txt blk00382.txt blk00383.txt blk00384.txt blk00385.txt blk00386.txt blk00387.txt blk00388.txt blk00389.txt blk00390.txt blk00391.txt blk00392.txt blk00393.txt blk00394.txt blk00395.txt blk00396.txt blk00397.txt blk00398.txt blk00399.txt blk00400.txt blk00401.txt blk00402.txt blk00403.txt blk00404.txt blk00405.txt blk00406.txt blk00407.txt blk00408.txt blk00409.txt blk00410.txt blk00411.txt blk00412.txt blk00413.txt blk00414.txt blk00415.txt blk00416.txt blk00417.txt blk00418.txt blk00419.txt blk00420.txt blk00421.txt blk00422.txt blk00423.txt blk00424.txt blk00425.txt blk00426.txt blk00427.txt blk00428.txt blk00429.txt blk00430.txt blk00431.txt blk00432.txt blk00433.txt blk00434.txt blk00435.txt blk00436.txt blk00437.txt blk00438.txt blk00439.txt blk00440.txt blk00441.txt blk00442.txt blk00443.txt blk00444.txt blk00445.txt blk00446.txt blk00447.txt blk00448.txt blk00449.txt blk00450.txt blk00451.txt blk00452.txt blk00453.txt blk00454.txt blk00455.txt blk00456.txt blk00457.txt blk00458.txt blk00459.txt blk00460.txt blk00461.txt blk00462.txt blk00463.txt blk00464.txt blk00465.txt blk00466.txt blk00467.txt blk00468.txt blk00469.txt blk00470.txt blk00471.txt blk00472.txt blk00473.txt blk00474.txt blk00475.txt blk00476.txt blk00477.txt blk00478.txt blk00479.txt blk00480.txt blk00481.txt blk00482.txt blk00483.txt blk00484.txt blk00485.txt blk00486.txt blk00487.txt blk00488.txt blk00489.txt blk00490.txt blk00491.txt blk00492.txt blk00493.txt blk00494.txt blk00495.txt blk00496.txt blk00497.txt blk00498.txt blk00499.txt blk00500.txt blk00501.txt blk00502.txt blk00503.txt blk00504.txt blk00505.txt blk00506.txt blk00507.txt blk00508.txt blk00509.txt blk00510.txt blk00511.txt blk00512.txt blk00513.txt blk00514.txt blk00515.txt blk00516.txt blk00517.txt blk00518.txt blk00519.txt blk00520.txt blk00521.txt blk00522.txt blk00523.txt blk00524.txt blk00525.txt blk00526.txt blk00527.txt blk00528.txt blk00529.txt blk00530.txt blk00531.txt blk00532.txt blk00533.txt blk00534.txt blk00535.txt blk00536.txt blk00537.txt blk00538.txt blk00539.txt blk00540.txt blk00541.txt blk00542.txt blk00543.txt blk00544.txt blk00545.txt blk00546.txt blk00547.txt blk00548.txt blk00549.txt blk00550.txt blk00551.txt blk00552.txt blk00553.txt blk00554.txt blk00555.txt blk00556.txt blk00557.txt blk00558.txt blk00559.txt blk00560.txt blk00561.txt blk00562.txt blk00563.txt blk00564.txt blk00565.txt blk00566.txt blk00567.txt blk00568.txt blk00569.txt blk00570.txt blk00571.txt blk00572.txt blk00573.txt blk00574.txt blk00575.txt blk00576.txt blk00577.txt blk00578.txt blk00579.txt blk00580.txt blk00581.txt blk00582.txt blk00583.txt blk00584.txt blk00585.txt blk00586.txt blk00587.txt blk00588.txt blk00589.txt blk00590.txt blk00591.txt blk00592.txt blk00593.txt blk00594.txt blk00595.txt blk00596.txt blk00597.txt blk00598.txt blk00599.txt blk00600.txt blk00601.txt blk00602.txt blk00603.txt blk00604.txt blk00605.txt blk00606.txt blk00607.txt blk00608.txt blk00609.txt blk00610.txt blk00611.txt blk00612.txt blk00613.txt blk00614.txt blk00615.txt blk00616.txt blk00617.txt blk00618.txt blk00619.txt blk00620.txt blk00621.txt blk00622.txt blk00623.txt blk00624.txt blk00625.txt blk00626.txt blk00627.txt blk00628.txt blk00629.txt blk00630.txt blk00631.txt blk00632.txt blk00633.txt blk00634.txt blk00635.txt blk00636.txt blk00637.txt blk00638.txt blk00639.txt blk00640.txt blk00641.txt blk00642.txt blk00643.txt blk00644.txt blk00645.txt blk00646.txt blk00647.txt blk00648.txt blk00649.txt blk00650.txt blk00651.txt blk00652.txt blk00653.txt blk00654.txt blk00655.txt blk00656.txt blk00657.txt blk00658.txt blk00659.txt blk00660.txt blk00661.txt blk00662.txt blk00663.txt blk00664.txt blk00665.txt blk00666.txt blk00667.txt blk00668.txt blk00669.txt blk00670.txt blk00671.txt blk00672.txt blk00673.txt blk00674.txt blk00675.txt blk00676.txt blk00677.txt blk00678.txt blk00679.txt blk00680.txt blk00681.txt blk00682.txt blk00683.txt blk00684.txt blk00685.txt blk00686.txt blk00687.txt blk00688.txt blk00689.txt blk00690.txt blk00691.txt blk00692.txt blk00693.txt blk00694.txt blk00695.txt blk00696.txt blk00697.txt blk00698.txt blk00699.txt blk00700.txt blk00701.txt blk00702.txt blk00703.txt blk00704.txt blk00705.txt blk00706.txt blk00707.txt blk00708.txt blk00709.txt blk00710.txt blk00711.txt blk00712.txt blk00713.txt blk00714.txt blk00715.txt blk00716.txt blk00717.txt blk00718.txt blk00719.txt blk00720.txt blk00721.txt blk00722.txt blk00723.txt blk00724.txt blk00725.txt blk00726.txt blk00727.txt blk00728.txt blk00729.txt blk00730.txt blk00731.txt blk00732.txt blk00733.txt blk00734.txt blk00735.txt blk00736.txt blk00737.txt blk00738.txt blk00739.txt blk00740.txt blk00741.txt blk00742.txt blk00743.txt blk00744.txt blk00745.txt blk00746.txt blk00747.txt blk00748.txt blk00749.txt blk00750.txt blk00751.txt blk00752.txt blk00753.txt blk00754.txt blk00755.txt blk00756.txt blk00757.txt blk00758.txt blk00759.txt blk00760.txt blk00761.txt blk00762.txt blk00763.txt blk00764.txt blk00765.txt blk00766.txt blk00767.txt blk00768.txt blk00769.txt blk00770.txt blk00771.txt blk00772.txt blk00773.txt blk00774.txt blk00775.txt blk00776.txt blk00777.txt blk00778.txt blk00779.txt blk00780.txt blk00781.txt blk00782.txt blk00783.txt blk00784.txt blk00785.txt blk00786.txt blk00787.txt blk00788.txt blk00789.txt blk00790.txt blk00791.txt blk00792.txt blk00793.txt blk00794.txt blk00795.txt blk00796.txt blk00797.txt blk00798.txt blk00799.txt blk00800.txt blk00801.txt blk00802.txt blk00803.txt blk00804.txt blk00805.txt blk00806.txt blk00807.txt blk00808.txt blk00809.txt blk00810.txt blk00811.txt blk00812.txt blk00813.txt blk00814.txt blk00815.txt blk00816.txt blk00817.txt blk00818.txt blk00819.txt blk00820.txt blk00821.txt blk00822.txt blk00823.txt blk00824.txt blk00825.txt blk00826.txt blk00827.txt blk00828.txt blk00829.txt blk00830.txt blk00831.txt blk00832.txt blk00833.txt blk00834.txt blk00835.txt blk00836.txt blk00837.txt blk00838.txt blk00839.txt blk00840.txt blk00841.txt blk00842.txt blk00843.txt blk00844.txt blk00845.txt blk00846.txt blk00847.txt blk00848.txt blk00849.txt blk00850.txt blk00851.txt blk00852.txt blk00853.txt blk00854.txt blk00855.txt blk00856.txt blk00857.txt blk00858.txt blk00859.txt blk00860.txt blk00861.txt blk00862.txt blk00863.txt blk00864.txt blk00865.txt blk00866.txt blk00867.txt blk00868.txt blk00869.txt blk00870.txt blk00871.txt blk00872.txt blk00873.txt blk00874.txt blk00875.txt blk00876.txt blk00877.txt blk00878.txt blk00879.txt blk00880.txt blk00881.txt blk00882.txt blk00883.txt blk00884.txt blk00885.txt blk00886.txt blk00887.txt blk00888.txt blk00889.txt blk00890.txt blk00891.txt blk00892.txt blk00893.txt blk00894.txt blk00895.txt blk00896.txt blk00897.txt blk00898.txt blk00899.txt blk00900.txt blk00901.txt blk00902.txt blk00903.txt blk00904.txt blk00905.txt blk00906.txt blk00907.txt blk00908.txt blk00909.txt blk00910.txt blk00911.txt blk00912.txt blk00913.txt blk00914.txt blk00915.txt blk00916.txt blk00917.txt blk00918.txt blk00919.txt blk00920.txt blk00921.txt blk00922.txt blk00923.txt blk00924.txt blk00925.txt blk00926.txt blk00927.txt blk00928.txt blk00929.txt blk00930.txt blk00931.txt blk00932.txt blk00933.txt blk00934.txt blk00935.txt blk00936.txt blk00937.txt blk00938.txt blk00939.txt blk00940.txt blk00941.txt blk00942.txt blk00943.txt blk00944.txt blk00945.txt blk00946.txt blk00947.txt blk00948.txt blk00949.txt blk00950.txt blk00951.txt blk00952.txt blk00953.txt blk00954.txt blk00955.txt blk00956.txt blk00957.txt blk00958.txt blk00959.txt blk00960.txt blk00961.txt blk00962.txt blk00963.txt blk00964.txt blk00965.txt blk00966.txt blk00967.txt blk00968.txt blk00969.txt blk00970.txt blk00971.txt blk00972.txt blk00973.txt blk00974.txt blk00975.txt blk00976.txt blk00977.txt blk00978.txt blk00979.txt blk00980.txt blk00981.txt blk00982.txt blk00983.txt blk00984.txt blk00985.txt blk00986.txt blk00987.txt blk00988.txt blk00989.txt blk00990.txt blk00991.txt blk00992.txt blk00993.txt blk00994.txt blk00995.txt blk00996.txt blk00997.txt blk00998.txt blk00999.txt blk01000.txt blk01001.txt blk01002.txt blk01003.txt blk01004.txt blk01005.txt blk01006.txt blk01007.txt blk01008.txt blk01009.txt blk01010.txt blk01011.txt blk01012.txt blk01013.txt blk01014.txt blk01015.txt blk01016.txt blk01017.txt blk01018.txt blk01019.txt blk01020.txt blk01021.txt blk01022.txt blk01023.txt blk01024.txt blk01025.txt blk01026.txt blk01027.txt blk01028.txt blk01029.txt blk01030.txt blk01031.txt blk01032.txt blk01033.txt blk01034.txt blk01035.txt blk01036.txt blk01037.txt blk01038.txt blk01039.txt blk01040.txt blk01041.txt blk01042.txt blk01043.txt blk01044.txt blk01045.txt blk01046.txt blk01047.txt blk01048.txt blk01049.txt blk01050.txt blk01051.txt blk01052.txt blk01053.txt blk01054.txt blk01055.txt blk01056.txt blk01057.txt blk01058.txt blk01059.txt blk01060.txt blk01061.txt blk01062.txt blk01063.txt blk01064.txt blk01065.txt blk01066.txt blk01067.txt blk01068.txt blk01069.txt blk01070.txt blk01071.txt blk01072.txt blk01073.txt blk01074.txt blk01075.txt blk01076.txt blk01077.txt blk01078.txt blk01079.txt blk01080.txt blk01081.txt blk01082.txt blk01083.txt blk01084.txt blk01085.txt blk01086.txt blk01087.txt blk01088.txt blk01089.txt blk01090.txt blk01091.txt blk01092.txt blk01093.txt blk01094.txt blk01095.txt blk01096.txt blk01097.txt blk01098.txt blk01099.txt blk01100.txt blk01101.txt blk01102.txt blk01103.txt blk01104.txt blk01105.txt blk01106.txt blk01107.txt blk01108.txt blk01109.txt blk01110.txt blk01111.txt blk01112.txt blk01113.txt blk01114.txt blk01115.txt blk01116.txt blk01117.txt blk01118.txt blk01119.txt blk01120.txt blk01121.txt blk01122.txt blk01123.txt blk01124.txt blk01125.txt blk01126.txt blk01127.txt blk01128.txt blk01129.txt blk01130.txt blk01131.txt blk01132.txt blk01133.txt blk01134.txt blk01135.txt blk01136.txt blk01137.txt blk01138.txt blk01139.txt blk01140.txt blk01141.txt blk01142.txt blk01143.txt blk01144.txt blk01145.txt blk01146.txt blk01147.txt blk01148.txt blk01149.txt blk01150.txt blk01151.txt blk01152.txt blk01153.txt blk01154.txt blk01155.txt blk01156.txt blk01157.txt blk01158.txt blk01159.txt blk01160.txt blk01161.txt blk01162.txt blk01163.txt blk01164.txt blk01165.txt blk01166.txt blk01167.txt blk01168.txt blk01169.txt blk01170.txt blk01171.txt blk01172.txt blk01173.txt blk01174.txt blk01175.txt blk01176.txt blk01177.txt blk01178.txt blk01179.txt blk01180.txt blk01181.txt blk01182.txt blk01183.txt blk01184.txt blk01185.txt blk01186.txt blk01187.txt blk01188.txt blk01189.txt blk01190.txt blk01191.txt blk01192.txt blk01193.txt blk01194.txt blk01195.txt blk01196.txt blk01197.txt blk01198.txt blk01199.txt blk01200.txt blk01201.txt blk01202.txt blk01203.txt blk01204.txt blk01205.txt blk01206.txt blk01207.txt blk01208.txt blk01209.txt blk01210.txt blk01211.txt blk01212.txt blk01213.txt blk01214.txt blk01215.txt blk01216.txt blk01217.txt blk01218.txt blk01219.txt blk01220.txt blk01221.txt blk01222.txt blk01223.txt blk01224.txt blk01225.txt blk01226.txt blk01227.txt blk01228.txt blk01229.txt blk01230.txt blk01231.txt blk01232.txt blk01233.txt blk01234.txt blk01235.txt blk01236.txt blk01237.txt blk01238.txt blk01239.txt blk01240.txt blk01241.txt blk01242.txt blk01243.txt blk01244.txt blk01245.txt blk01246.txt blk01247.txt blk01248.txt blk01249.txt blk01250.txt blk01251.txt blk01252.txt blk01253.txt blk01254.txt blk01255.txt blk01256.txt blk01257.txt blk01258.txt blk01259.txt blk01260.txt blk01261.txt blk01262.txt blk01263.txt blk01264.txt blk01265.txt blk01266.txt blk01267.txt blk01268.txt blk01269.txt blk01270.txt blk01271.txt blk01272.txt blk01273.txt blk01274.txt blk01275.txt blk01276.txt blk01277.txt blk01278.txt blk01279.txt blk01280.txt blk01281.txt blk01282.txt blk01283.txt blk01284.txt blk01285.txt blk01286.txt blk01287.txt blk01288.txt blk01289.txt blk01290.txt blk01291.txt blk01292.txt blk01293.txt blk01294.txt blk01295.txt blk01296.txt blk01297.txt blk01298.txt blk01299.txt blk01300.txt blk01301.txt blk01302.txt blk01303.txt blk01304.txt blk01305.txt blk01306.txt blk01307.txt blk01308.txt blk01309.txt blk01310.txt blk01311.txt blk01312.txt blk01313.txt blk01314.txt blk01315.txt blk01316.txt blk01317.txt blk01318.txt blk01319.txt blk01320.txt blk01321.txt blk01322.txt blk01323.txt blk01324.txt blk01325.txt blk01326.txt blk01327.txt blk01328.txt blk01329.txt blk01330.txt blk01331.txt blk01332.txt blk01333.txt blk01334.txt blk01335.txt blk01336.txt blk01337.txt blk01338.txt blk01339.txt blk01340.txt blk01341.txt blk01342.txt blk01343.txt blk01344.txt blk01345.txt blk01346.txt blk01347.txt blk01348.txt blk01349.txt blk01350.txt blk01351.txt blk01352.txt blk01353.txt blk01354.txt blk01355.txt blk01356.txt blk01357.txt blk01358.txt blk01359.txt blk01360.txt blk01361.txt blk01362.txt blk01363.txt blk01364.txt blk01365.txt blk01366.txt blk01367.txt blk01368.txt blk01369.txt blk01370.txt blk01371.txt blk01372.txt blk01373.txt blk01374.txt blk01375.txt blk01376.txt blk01377.txt blk01378.txt blk01379.txt blk01380.txt blk01381.txt blk01382.txt blk01383.txt blk01384.txt blk01385.txt blk01386.txt blk01387.txt blk01388.txt blk01389.txt blk01390.txt blk01391.txt blk01392.txt blk01393.txt blk01394.txt blk01395.txt blk01396.txt blk01397.txt blk01398.txt blk01399.txt blk01400.txt blk01401.txt blk01402.txt blk01403.txt blk01404.txt blk01405.txt blk01406.txt blk01407.txt blk01408.txt blk01409.txt blk01410.txt blk01411.txt blk01412.txt blk01413.txt blk01414.txt blk01415.txt blk01416.txt blk01417.txt blk01418.txt blk01419.txt blk01420.txt blk01421.txt blk01422.txt blk01423.txt blk01424.txt blk01425.txt blk01426.txt blk01427.txt blk01428.txt blk01429.txt blk01430.txt blk01431.txt blk01432.txt blk01433.txt blk01434.txt blk01435.txt blk01436.txt blk01437.txt blk01438.txt blk01439.txt blk01440.txt blk01441.txt blk01442.txt blk01443.txt blk01444.txt blk01445.txt blk01446.txt blk01447.txt blk01448.txt blk01449.txt blk01450.txt blk01451.txt blk01452.txt blk01453.txt blk01454.txt blk01455.txt blk01456.txt blk01457.txt blk01458.txt blk01459.txt blk01460.txt blk01461.txt blk01462.txt blk01463.txt blk01464.txt blk01465.txt blk01466.txt blk01467.txt blk01468.txt blk01469.txt blk01470.txt blk01471.txt blk01472.txt blk01473.txt blk01474.txt blk01475.txt blk01476.txt blk01477.txt blk01478.txt blk01479.txt blk01480.txt blk01481.txt blk01482.txt blk01483.txt blk01484.txt blk01485.txt blk01486.txt blk01487.txt blk01488.txt blk01489.txt blk01490.txt blk01491.txt blk01492.txt blk01493.txt blk01494.txt blk01495.txt blk01496.txt blk01497.txt blk01498.txt blk01499.txt blk01500.txt blk01501.txt blk01502.txt blk01503.txt blk01504.txt blk01505.txt blk01506.txt blk01507.txt blk01508.txt blk01509.txt blk01510.txt blk01511.txt blk01512.txt blk01513.txt blk01514.txt blk01515.txt blk01516.txt blk01517.txt blk01518.txt blk01519.txt blk01520.txt blk01521.txt blk01522.txt blk01523.txt blk01524.txt blk01525.txt blk01526.txt blk01527.txt blk01528.txt blk01529.txt blk01530.txt blk01531.txt blk01532.txt blk01533.txt blk01534.txt blk01535.txt blk01536.txt blk01537.txt blk01538.txt blk01539.txt blk01540.txt blk01541.txt blk01542.txt blk01543.txt blk01544.txt blk01545.txt blk01546.txt blk01547.txt blk01548.txt blk01549.txt blk01550.txt blk01551.txt blk01552.txt blk01553.txt blk01554.txt blk01555.txt blk01556.txt blk01557.txt blk01558.txt blk01559.txt blk01560.txt blk01561.txt blk01562.txt blk01563.txt blk01564.txt blk01565.txt blk01566.txt blk01567.txt blk01568.txt blk01569.txt blk01570.txt blk01571.txt blk01572.txt blk01573.txt blk01574.txt blk01575.txt blk01576.txt blk01577.txt blk01578.txt blk01579.txt blk01580.txt blk01581.txt blk01582.txt blk01583.txt blk01584.txt blk01585.txt blk01586.txt blk01587.txt blk01588.txt blk01589.txt blk01590.txt blk01591.txt blk01592.txt blk01593.txt blk01594.txt blk01595.txt blk01596.txt blk01597.txt blk01598.txt blk01599.txt blk01600.txt blk01601.txt blk01602.txt blk01603.txt blk01604.txt blk01605.txt blk01606.txt blk01607.txt blk01608.txt blk01609.txt blk01610.txt blk01611.txt blk01612.txt blk01613.txt blk01614.txt blk01615.txt blk01616.txt blk01617.txt blk01618.txt blk01619.txt blk01620.txt blk01621.txt blk01622.txt blk01623.txt blk01624.txt blk01625.txt blk01626.txt blk01627.txt blk01628.txt blk01629.txt blk01630.txt blk01631.txt blk01632.txt blk01633.txt blk01634.txt blk01635.txt blk01636.txt blk01637.txt blk01638.txt blk01639.txt blk01640.txt blk01641.txt blk01642.txt blk01643.txt blk01644.txt blk01645.txt blk01646.txt blk01647.txt blk01648.txt blk01649.txt blk01650.txt blk01651.txt blk01652.txt blk01653.txt blk01654.txt blk01655.txt blk01656.txt blk01657.txt blk01658.txt blk01659.txt blk01660.txt blk01661.txt blk01662.txt blk01663.txt blk01664.txt blk01665.txt blk01666.txt blk01667.txt blk01668.txt blk01669.txt blk01670.txt blk01671.txt blk01672.txt blk01673.txt blk01674.txt blk01675.txt blk01676.txt blk01677.txt blk01678.txt blk01679.txt blk01680.txt blk01681.txt blk01682.txt blk01683.txt blk01684.txt blk01685.txt blk01686.txt blk01687.txt blk01688.txt blk01689.txt blk01690.txt blk01691.txt blk01692.txt blk01693.txt blk01694.txt blk01695.txt blk01696.txt blk01697.txt blk01698.txt blk01699.txt blk01700.txt blk01701.txt blk01702.txt blk01703.txt blk01704.txt blk01705.txt blk01706.txt blk01707.txt blk01708.txt blk01709.txt blk01710.txt blk01711.txt blk01712.txt blk01713.txt blk01714.txt blk01715.txt blk01716.txt blk01717.txt blk01718.txt blk01719.txt blk01720.txt blk01721.txt blk01722.txt blk01723.txt blk01724.txt blk01725.txt blk01726.txt blk01727.txt blk01728.txt blk01729.txt blk01730.txt blk01731.txt blk01732.txt blk01733.txt blk01734.txt blk01735.txt blk01736.txt blk01737.txt blk01738.txt blk01739.txt blk01740.txt blk01741.txt blk01742.txt blk01743.txt blk01744.txt blk01745.txt blk01746.txt blk01747.txt blk01748.txt blk01749.txt blk01750.txt blk01751.txt blk01752.txt blk01753.txt blk01754.txt blk01755.txt blk01756.txt blk01757.txt blk01758.txt blk01759.txt blk01760.txt blk01761.txt blk01762.txt blk01763.txt blk01764.txt blk01765.txt blk01766.txt blk01767.txt blk01768.txt blk01769.txt blk01770.txt blk01771.txt blk01772.txt blk01773.txt blk01774.txt blk01775.txt blk01776.txt blk01777.txt blk01778.txt blk01779.txt blk01780.txt blk01781.txt blk01782.txt blk01783.txt blk01784.txt blk01785.txt blk01786.txt blk01787.txt blk01788.txt blk01789.txt blk01790.txt blk01791.txt blk01792.txt blk01793.txt blk01794.txt blk01795.txt blk01796.txt blk01797.txt blk01798.txt blk01799.txt blk01800.txt blk01801.txt blk01802.txt blk01803.txt blk01804.txt blk01805.txt blk01806.txt blk01807.txt blk01808.txt blk01809.txt blk01810.txt blk01811.txt blk01812.txt blk01813.txt blk01814.txt blk01815.txt blk01816.txt blk01817.txt blk01818.txt blk01819.txt blk01820.txt blk01821.txt blk01822.txt blk01823.txt blk01824.txt blk01825.txt blk01826.txt blk01827.txt blk01828.txt blk01829.txt blk01830.txt blk01831.txt blk01832.txt blk01833.txt blk01834.txt blk01835.txt blk01836.txt blk01837.txt blk01838.txt blk01839.txt blk01840.txt blk01841.txt blk01842.txt blk01843.txt blk01844.txt blk01845.txt blk01846.txt blk01847.txt blk01848.txt blk01849.txt blk01850.txt blk01851.txt blk01852.txt blk01853.txt blk01854.txt blk01855.txt blk01856.txt blk01857.txt blk01858.txt blk01859.txt blk01860.txt blk01861.txt blk01862.txt blk01863.txt blk01864.txt blk01865.txt blk01866.txt blk01867.txt blk01868.txt blk01869.txt blk01870.txt blk01871.txt blk01872.txt blk01873.txt blk01874.txt blk01875.txt blk01876.txt blk01877.txt blk01878.txt blk01879.txt blk01880.txt blk01881.txt blk01882.txt blk01883.txt blk01884.txt blk01885.txt blk01886.txt blk01887.txt blk01888.txt blk01889.txt blk01890.txt blk01891.txt blk01892.txt blk01893.txt blk01894.txt blk01895.txt blk01896.txt blk01897.txt blk01898.txt blk01899.txt blk01900.txt blk01901.txt blk01902.txt blk01903.txt blk01904.txt blk01905.txt blk01906.txt blk01907.txt blk01908.txt blk01909.txt blk01910.txt blk01911.txt blk01912.txt blk01913.txt blk01914.txt blk01915.txt blk01916.txt blk01917.txt blk01918.txt blk01919.txt blk01920.txt blk01921.txt blk01922.txt blk01923.txt blk01924.txt blk01925.txt blk01926.txt blk01927.txt blk01928.txt blk01929.txt blk01930.txt blk01931.txt blk01932.txt blk01933.txt blk01934.txt blk01935.txt blk01936.txt blk01937.txt blk01938.txt blk01939.txt blk01940.txt blk01941.txt blk01942.txt blk01943.txt blk01944.txt blk01945.txt blk01946.txt blk01947.txt blk01948.txt blk01949.txt blk01950.txt blk01951.txt blk01952.txt blk01953.txt blk01954.txt blk01955.txt blk01956.txt blk01957.txt blk01958.txt blk01959.txt blk01960.txt blk01961.txt blk01962.txt blk01963.txt blk01964.txt blk01965.txt blk01966.txt blk01967.txt blk01968.txt blk01969.txt blk01970.txt blk01971.txt blk01972.txt blk01973.txt blk01974.txt blk01975.txt blk01976.txt blk01977.txt blk01978.txt blk01979.txt blk01980.txt blk01981.txt blk01982.txt blk01983.txt blk01984.txt blk01985.txt blk01986.txt blk01987.txt blk01988.txt blk01989.txt blk01990.txt blk01991.txt blk01992.txt blk01993.txt blk01994.txt blk01995.txt blk01996.txt blk01997.txt blk01998.txt blk01999.txt blk02000.txt blk02001.txt blk02002.txt blk02003.txt blk02004.txt blk02005.txt blk02006.txt blk02007.txt blk02008.txt blk02009.txt blk02010.txt blk02011.txt blk02012.txt blk02013.txt blk02014.txt blk02015.txt blk02016.txt blk02017.txt blk02018.txt blk02019.txt blk02020.txt blk02021.txt blk02022.txt blk02023.txt blk02024.txt blk02025.txt blk02026.txt blk02027.txt blk02028.txt blk02029.txt blk02030.txt blk02031.txt blk02032.txt blk02033.txt blk02034.txt blk02035.txt blk02036.txt blk02037.txt blk02038.txt blk02039.txt blk02040.txt blk02041.txt blk02042.txt blk02043.txt blk02044.txt blk02045.txt blk02046.txt blk02047.txt blk02048.txt blk02049.txt blk02050.txt blk02051.txt blk02052.txt blk02053.txt blk02054.txt blk02055.txt blk02056.txt blk02057.txt blk02058.txt blk02059.txt blk02060.txt blk02061.txt blk02062.txt blk02063.txt blk02064.txt blk02065.txt blk02066.txt blk02067.txt blk02068.txt blk02069.txt blk02070.txt blk02071.txt blk02072.txt blk02073.txt blk02074.txt blk02075.txt blk02076.txt blk02077.txt blk02078.txt blk02079.txt blk02080.txt blk02081.txt blk02082.txt blk02083.txt blk02084.txt blk02085.txt blk02086.txt blk02087.txt blk02088.txt blk02089.txt blk02090.txt blk02091.txt blk02092.txt blk02093.txt blk02094.txt blk02095.txt blk02096.txt blk02097.txt blk02098.txt blk02099.txt blk02100.txt blk02101.txt blk02102.txt blk02103.txt blk02104.txt blk02105.txt blk02106.txt blk02107.txt blk02108.txt blk02109.txt blk02110.txt blk02111.txt blk02112.txt blk02113.txt blk02114.txt blk02115.txt blk02116.txt blk02117.txt blk02118.txt blk02119.txt blk02120.txt blk02121.txt blk02122.txt blk02123.txt blk02124.txt blk02125.txt blk02126.txt blk02127.txt blk02128.txt blk02129.txt blk02130.txt blk02131.txt blk02132.txt blk02133.txt blk02134.txt blk02135.txt blk02136.txt blk02137.txt blk02138.txt blk02139.txt blk02140.txt blk02141.txt blk02142.txt blk02143.txt blk02144.txt blk02145.txt blk02146.txt blk02147.txt blk02148.txt blk02149.txt blk02150.txt blk02151.txt blk02152.txt blk02153.txt blk02154.txt blk02155.txt blk02156.txt blk02157.txt blk02158.txt blk02159.txt blk02160.txt blk02161.txt blk02162.txt blk02163.txt blk02164.txt blk02165.txt blk02166.txt blk02167.txt blk02168.txt blk02169.txt blk02170.txt blk02171.txt blk02172.txt blk02173.txt blk02174.txt blk02175.txt blk02176.txt blk02177.txt blk02178.txt blk02179.txt blk02180.txt blk02181.txt blk02182.txt blk02183.txt blk02184.txt blk02185.txt blk02186.txt blk02187.txt blk02188.txt blk02189.txt blk02190.txt blk02191.txt blk02192.txt blk02193.txt blk02194.txt blk02195.txt blk02196.txt blk02197.txt blk02198.txt blk02199.txt blk02200.txt blk02201.txt blk02202.txt blk02203.txt blk02204.txt blk02205.txt blk02206.txt blk02207.txt blk02208.txt blk02209.txt blk02210.txt blk02211.txt blk02212.txt blk02213.txt blk02214.txt blk02215.txt blk02216.txt blk02217.txt blk02218.txt blk02219.txt blk02220.txt blk02221.txt blk02222.txt blk02223.txt blk02224.txt blk02225.txt blk02226.txt blk02227.txt blk02228.txt blk02229.txt blk02230.txt blk02231.txt blk02232.txt blk02233.txt blk02234.txt blk02235.txt blk02236.txt blk02237.txt blk02238.txt blk02239.txt blk02240.txt blk02241.txt blk02242.txt blk02243.txt blk02244.txt blk02245.txt blk02246.txt blk02247.txt blk02248.txt blk02249.txt blk02250.txt blk02251.txt blk02252.txt blk02253.txt blk02254.txt blk02255.txt blk02256.txt blk02257.txt blk02258.txt blk02259.txt blk02260.txt blk02261.txt blk02262.txt blk02263.txt blk02264.txt blk02265.txt blk02266.txt blk02267.txt blk02268.txt blk02269.txt blk02270.txt blk02271.txt blk02272.txt blk02273.txt blk02274.txt blk02275.txt blk02276.txt blk02277.txt blk02278.txt blk02279.txt blk02280.txt blk02281.txt blk02282.txt blk02283.txt blk02284.txt blk02285.txt blk02286.txt blk02287.txt blk02288.txt blk02289.txt blk02290.txt blk02291.txt blk02292.txt blk02293.txt blk02294.txt blk02295.txt blk02296.txt blk02297.txt blk02298.txt blk02299.txt blk02300.txt blk02301.txt blk02302.txt blk02303.txt blk02304.txt blk02305.txt blk02306.txt blk02307.txt blk02308.txt blk02309.txt blk02310.txt blk02311.txt blk02312.txt blk02313.txt blk02314.txt blk02315.txt blk02316.txt blk02317.txt blk02318.txt blk02319.txt blk02320.txt blk02321.txt blk02322.txt blk02323.txt blk02324.txt blk02325.txt blk02326.txt blk02327.txt blk02328.txt blk02329.txt blk02330.txt blk02331.txt blk02332.txt blk02333.txt blk02334.txt blk02335.txt blk02336.txt blk02337.txt blk02338.txt blk02339.txt blk02340.txt blk02341.txt blk02342.txt blk02343.txt blk02344.txt blk02345.txt blk02346.txt blk02347.txt blk02348.txt blk02349.txt blk02350.txt blk02351.txt blk02352.txt blk02353.txt blk02354.txt blk02355.txt blk02356.txt blk02357.txt blk02358.txt blk02359.txt blk02360.txt blk02361.txt blk02362.txt blk02363.txt blk02364.txt blk02365.txt blk02366.txt blk02367.txt blk02368.txt blk02369.txt blk02370.txt blk02371.txt blk02372.txt blk02373.txt blk02374.txt blk02375.txt blk02376.txt blk02377.txt blk02378.txt blk02379.txt blk02380.txt blk02381.txt blk02382.txt blk02383.txt blk02384.txt blk02385.txt blk02386.txt blk02387.txt blk02388.txt blk02389.txt blk02390.txt blk02391.txt blk02392.txt blk02393.txt blk02394.txt blk02395.txt blk02396.txt blk02397.txt blk02398.txt blk02399.txt blk02400.txt blk02401.txt blk02402.txt blk02403.txt blk02404.txt blk02405.txt blk02406.txt blk02407.txt blk02408.txt blk02409.txt blk02410.txt blk02411.txt blk02412.txt blk02413.txt blk02414.txt blk02415.txt blk02416.txt blk02417.txt blk02418.txt blk02419.txt blk02420.txt blk02421.txt blk02422.txt blk02423.txt blk02424.txt blk02425.txt blk02426.txt blk02427.txt blk02428.txt blk02429.txt blk02430.txt blk02431.txt blk02432.txt blk02433.txt blk02434.txt blk02435.txt blk02436.txt blk02437.txt blk02438.txt blk02439.txt blk02440.txt blk02441.txt blk02442.txt blk02443.txt blk02444.txt blk02445.txt blk02446.txt blk02447.txt blk02448.txt blk02449.txt blk02450.txt blk02451.txt blk02452.txt blk02453.txt blk02454.txt blk02455.txt blk02456.txt blk02457.txt blk02458.txt blk02459.txt blk02460.txt blk02461.txt blk02462.txt blk02463.txt blk02464.txt blk02465.txt blk02466.txt blk02467.txt blk02468.txt blk02469.txt blk02470.txt blk02471.txt blk02472.txt blk02473.txt blk02474.txt blk02475.txt blk02476.txt blk02477.txt blk02478.txt blk02479.txt blk02480.txt blk02481.txt blk02482.txt blk02483.txt blk02484.txt blk02485.txt blk02486.txt blk02487.txt blk02488.txt blk02489.txt blk02490.txt blk02491.txt blk02492.txt blk02493.txt blk02494.txt blk02495.txt blk02496.txt blk02497.txt blk02498.txt blk02499.txt blk02500.txt blk02501.txt blk02502.txt blk02503.txt blk02504.txt blk02505.txt blk02506.txt blk02507.txt blk02508.txt blk02509.txt blk02510.txt blk02511.txt blk02512.txt blk02513.txt blk02514.txt blk02515.txt blk02516.txt blk02517.txt blk02518.txt blk02519.txt blk02520.txt blk02521.txt blk02522.txt blk02523.txt blk02524.txt blk02525.txt blk02526.txt blk02527.txt blk02528.txt blk02529.txt blk02530.txt blk02531.txt blk02532.txt blk02533.txt blk02534.txt blk02535.txt blk02536.txt blk02537.txt blk02538.txt blk02539.txt blk02540.txt blk02541.txt blk02542.txt blk02543.txt blk02544.txt blk02545.txt blk02546.txt blk02547.txt blk02548.txt blk02549.txt blk02550.txt blk02551.txt blk02552.txt blk02553.txt blk02554.txt blk02555.txt blk02556.txt blk02557.txt blk02558.txt blk02559.txt blk02560.txt blk02561.txt blk02562.txt blk02563.txt blk02564.txt blk02565.txt blk02566.txt blk02567.txt blk02568.txt blk02569.txt blk02570.txt blk02571.txt blk02572.txt blk02573.txt blk02574.txt blk02575.txt blk02576.txt blk02577.txt blk02578.txt blk02579.txt blk02580.txt blk02581.txt blk02582.txt blk02583.txt blk02584.txt blk02585.txt blk02586.txt blk02587.txt blk02588.txt blk02589.txt blk02590.txt blk02591.txt blk02592.txt blk02593.txt blk02594.txt blk02595.txt blk02596.txt blk02597.txt blk02598.txt blk02599.txt blk02600.txt blk02601.txt blk02602.txt blk02603.txt blk02604.txt blk02605.txt blk02606.txt blk02607.txt blk02608.txt blk02609.txt blk02610.txt blk02611.txt blk02612.txt blk02613.txt blk02614.txt blk02615.txt blk02616.txt blk02617.txt blk02618.txt blk02619.txt blk02620.txt blk02621.txt blk02622.txt blk02623.txt blk02624.txt blk02625.txt blk02626.txt blk02627.txt blk02628.txt blk02629.txt blk02630.txt blk02631.txt blk02632.txt blk02633.txt blk02634.txt blk02635.txt blk02636.txt blk02637.txt blk02638.txt blk02639.txt blk02640.txt blk02641.txt blk02642.txt blk02643.txt blk02644.txt blk02645.txt blk02646.txt blk02647.txt blk02648.txt blk02649.txt blk02650.txt blk02651.txt blk02652.txt blk02653.txt blk02654.txt blk02655.txt blk02656.txt blk02657.txt blk02658.txt blk02659.txt blk02660.txt blk02661.txt blk02662.txt blk02663.txt blk02664.txt blk02665.txt blk02666.txt blk02667.txt blk02668.txt blk02669.txt blk02670.txt blk02671.txt blk02672.txt blk02673.txt blk02674.txt blk02675.txt blk02676.txt blk02677.txt blk02678.txt blk02679.txt blk02680.txt blk02681.txt blk02682.txt blk02683.txt blk02684.txt blk02685.txt blk02686.txt blk02687.txt blk02688.txt blk02689.txt blk02690.txt blk02691.txt blk02692.txt blk02693.txt blk02694.txt blk02695.txt blk02696.txt blk02697.txt blk02698.txt blk02699.txt blk02700.txt blk02701.txt blk02702.txt blk02703.txt blk02704.txt blk02705.txt blk02706.txt blk02707.txt blk02708.txt blk02709.txt blk02710.txt blk02711.txt blk02712.txt blk02713.txt blk02714.txt blk02715.txt blk02716.txt blk02717.txt blk02718.txt blk02719.txt blk02720.txt blk02721.txt blk02722.txt blk02723.txt blk02724.txt blk02725.txt blk02726.txt blk02727.txt blk02728.txt blk02729.txt blk02730.txt blk02731.txt blk02732.txt blk02733.txt blk02734.txt blk02735.txt blk02736.txt blk02737.txt blk02738.txt blk02739.txt blk02740.txt blk02741.txt blk02742.txt blk02743.txt blk02744.txt blk02745.txt blk02746.txt blk02747.txt blk02748.txt blk02749.txt blk02750.txt blk02751.txt blk02752.txt blk02753.txt blk02754.txt blk02755.txt blk02756.txt blk02757.txt blk02758.txt blk02759.txt blk02760.txt blk02761.txt blk02762.txt blk02763.txt blk02764.txt blk02765.txt blk02766.txt blk02767.txt blk02768.txt blk02769.txt blk02770.txt blk02771.txt blk02772.txt blk02773.txt blk02774.txt blk02775.txt blk02776.txt blk02777.txt blk02778.txt blk02779.txt blk02780.txt blk02781.txt blk02782.txt blk02783.txt blk02784.txt blk02785.txt blk02786.txt blk02787.txt blk02788.txt blk02789.txt blk02790.txt blk02791.txt blk02792.txt blk02793.txt blk02794.txt blk02795.txt blk02796.txt blk02797.txt blk02798.txt blk02799.txt blk02800.txt blk02801.txt blk02802.txt blk02803.txt blk02804.txt blk02805.txt blk02806.txt blk02807.txt blk02808.txt blk02809.txt blk02810.txt blk02811.txt blk02812.txt blk02813.txt blk02814.txt blk02815.txt blk02816.txt blk02817.txt blk02818.txt blk02819.txt blk02820.txt blk02821.txt blk02822.txt blk02823.txt blk02824.txt blk02825.txt blk02826.txt blk02827.txt blk02828.txt blk02829.txt blk02830.txt blk02831.txt blk02832.txt blk02833.txt blk02834.txt blk02835.txt blk02836.txt blk02837.txt blk02838.txt blk02839.txt blk02840.txt blk02841.txt blk02842.txt blk02843.txt blk02844.txt blk02845.txt blk02846.txt blk02847.txt blk02848.txt blk02849.txt blk02850.txt blk02851.txt blk02852.txt blk02853.txt blk02854.txt blk02855.txt blk02856.txt blk02857.txt blk02858.txt blk02859.txt blk02860.txt blk02861.txt blk02862.txt blk02863.txt blk02864.txt blk02865.txt blk02866.txt blk02867.txt blk02868.txt blk02869.txt blk02870.txt blk02871.txt blk02872.txt blk02873.txt blk02874.txt blk02875.txt blk02876.txt blk02877.txt blk02878.txt blk02879.txt blk02880.txt blk02881.txt blk02882.txt blk02883.txt blk02884.txt blk02885.txt blk02886.txt blk02887.txt blk02888.txt blk02889.txt blk02890.txt blk02891.txt blk02892.txt blk02893.txt blk02894.txt blk02895.txt blk02896.txt blk02897.txt blk02898.txt blk02899.txt blk02900.txt blk02901.txt blk02902.txt blk02903.txt blk02904.txt blk02905.txt blk02906.txt blk02907.txt blk02908.txt blk02909.txt blk02910.txt blk02911.txt blk02912.txt blk02913.txt blk02914.txt blk02915.txt blk02916.txt blk02917.txt blk02918.txt blk02919.txt blk02920.txt blk02921.txt blk02922.txt blk02923.txt blk02924.txt blk02925.txt blk02926.txt blk02927.txt blk02928.txt blk02929.txt blk02930.txt blk02931.txt blk02932.txt blk02933.txt blk02934.txt blk02935.txt blk02936.txt blk02937.txt blk02938.txt blk02939.txt blk02940.txt blk02941.txt blk02942.txt blk02943.txt blk02944.txt blk02945.txt blk02946.txt blk02947.txt blk02948.txt blk02949.txt blk02950.txt blk02951.txt blk02952.txt blk02953.txt blk02954.txt blk02955.txt blk02956.txt blk02957.txt blk02958.txt blk02959.txt blk02960.txt blk02961.txt blk02962.txt blk02963.txt blk02964.txt blk02965.txt blk02966.txt blk02967.txt blk02968.txt blk02969.txt blk02970.txt blk02971.txt blk02972.txt blk02973.txt blk02974.txt blk02975.txt blk02976.txt blk02977.txt blk02978.txt blk02979.txt blk02980.txt blk02981.txt blk02982.txt blk02983.txt blk02984.txt blk02985.txt blk02986.txt blk02987.txt blk02988.txt blk02989.txt blk02990.txt blk02991.txt blk02992.txt blk02993.txt blk02994.txt blk02995.txt blk02996.txt blk02997.txt blk02998.txt blk02999.txt blk03000.txt blk03001.txt blk03002.txt blk03003.txt blk03004.txt blk03005.txt blk03006.txt blk03007.txt blk03008.txt blk03009.txt blk03010.txt blk03011.txt blk03012.txt blk03013.txt blk03014.txt blk03015.txt blk03016.txt blk03017.txt blk03018.txt blk03019.txt blk03020.txt blk03021.txt blk03022.txt blk03023.txt blk03024.txt blk03025.txt blk03026.txt blk03027.txt blk03028.txt blk03029.txt blk03030.txt blk03031.txt blk03032.txt blk03033.txt blk03034.txt blk03035.txt blk03036.txt blk03037.txt blk03038.txt blk03039.txt blk03040.txt blk03041.txt blk03042.txt blk03043.txt blk03044.txt blk03045.txt blk03046.txt blk03047.txt blk03048.txt blk03049.txt blk03050.txt blk03051.txt blk03052.txt blk03053.txt blk03054.txt blk03055.txt blk03056.txt blk03057.txt blk03058.txt blk03059.txt blk03060.txt blk03061.txt blk03062.txt blk03063.txt blk03064.txt blk03065.txt blk03066.txt blk03067.txt blk03068.txt blk03069.txt blk03070.txt blk03071.txt blk03072.txt blk03073.txt blk03074.txt blk03075.txt blk03076.txt blk03077.txt blk03078.txt blk03079.txt blk03080.txt blk03081.txt blk03082.txt blk03083.txt blk03084.txt blk03085.txt blk03086.txt blk03087.txt blk03088.txt blk03089.txt blk03090.txt blk03091.txt blk03092.txt blk03093.txt blk03094.txt blk03095.txt blk03096.txt blk03097.txt blk03098.txt blk03099.txt blk03100.txt blk03101.txt blk03102.txt blk03103.txt blk03104.txt blk03105.txt blk03106.txt blk03107.txt blk03108.txt blk03109.txt blk03110.txt blk03111.txt blk03112.txt blk03113.txt blk03114.txt blk03115.txt blk03116.txt blk03117.txt blk03118.txt blk03119.txt blk03120.txt blk03121.txt blk03122.txt blk03123.txt blk03124.txt blk03125.txt blk03126.txt blk03127.txt blk03128.txt blk03129.txt blk03130.txt blk03131.txt blk03132.txt blk03133.txt blk03134.txt blk03135.txt blk03136.txt blk03137.txt blk03138.txt blk03139.txt blk03140.txt blk03141.txt blk03142.txt blk03143.txt blk03144.txt blk03145.txt blk03146.txt blk03147.txt blk03148.txt blk03149.txt blk03150.txt blk03151.txt blk03152.txt blk03153.txt blk03154.txt blk03155.txt blk03156.txt blk03157.txt blk03158.txt blk03159.txt blk03160.txt blk03161.txt blk03162.txt blk03163.txt blk03164.txt blk03165.txt blk03166.txt blk03167.txt blk03168.txt blk03169.txt blk03170.txt blk03171.txt blk03172.txt blk03173.txt blk03174.txt blk03175.txt blk03176.txt blk03177.txt blk03178.txt blk03179.txt blk03180.txt blk03181.txt blk03182.txt blk03183.txt blk03184.txt blk03185.txt blk03186.txt blk03187.txt blk03188.txt blk03189.txt blk03190.txt blk03191.txt blk03192.txt blk03193.txt blk03194.txt blk03195.txt blk03196.txt blk03197.txt blk03198.txt blk03199.txt blk03200.txt blk03201.txt blk03202.txt blk03203.txt blk03204.txt blk03205.txt blk03206.txt blk03207.txt blk03208.txt blk03209.txt blk03210.txt blk03211.txt blk03212.txt blk03213.txt blk03214.txt blk03215.txt blk03216.txt blk03217.txt blk03218.txt blk03219.txt blk03220.txt blk03221.txt blk03222.txt blk03223.txt blk03224.txt blk03225.txt blk03226.txt blk03227.txt blk03228.txt blk03229.txt blk03230.txt blk03231.txt blk03232.txt blk03233.txt blk03234.txt blk03235.txt blk03236.txt blk03237.txt blk03238.txt blk03239.txt blk03240.txt blk03241.txt blk03242.txt blk03243.txt blk03244.txt blk03245.txt blk03246.txt blk03247.txt blk03248.txt blk03249.txt blk03250.txt blk03251.txt blk03252.txt blk03253.txt blk03254.txt blk03255.txt blk03256.txt blk03257.txt blk03258.txt blk03259.txt blk03260.txt blk03261.txt blk03262.txt blk03263.txt blk03264.txt blk03265.txt blk03266.txt blk03267.txt blk03268.txt blk03269.txt blk03270.txt blk03271.txt blk03272.txt blk03273.txt blk03274.txt blk03275.txt blk03276.txt blk03277.txt blk03278.txt blk03279.txt blk03280.txt blk03281.txt blk03282.txt blk03283.txt blk03284.txt blk03285.txt blk03286.txt blk03287.txt blk03288.txt blk03289.txt blk03290.txt blk03291.txt blk03292.txt blk03293.txt blk03294.txt blk03295.txt blk03296.txt blk03297.txt blk03298.txt blk03299.txt blk03300.txt blk03301.txt blk03302.txt blk03303.txt blk03304.txt blk03305.txt blk03306.txt blk03307.txt blk03308.txt blk03309.txt blk03310.txt blk03311.txt blk03312.txt blk03313.txt blk03314.txt blk03315.txt blk03316.txt blk03317.txt blk03318.txt blk03319.txt blk03320.txt blk03321.txt blk03322.txt blk03323.txt blk03324.txt blk03325.txt blk03326.txt blk03327.txt blk03328.txt blk03329.txt blk03330.txt blk03331.txt blk03332.txt blk03333.txt blk03334.txt blk03335.txt blk03336.txt blk03337.txt blk03338.txt blk03339.txt blk03340.txt blk03341.txt blk03342.txt blk03343.txt blk03344.txt blk03345.txt blk03346.txt blk03347.txt blk03348.txt blk03349.txt blk03350.txt blk03351.txt blk03352.txt blk03353.txt blk03354.txt blk03355.txt blk03356.txt blk03357.txt blk03358.txt blk03359.txt blk03360.txt blk03361.txt blk03362.txt blk03363.txt blk03364.txt blk03365.txt blk03366.txt blk03367.txt blk03368.txt blk03369.txt blk03370.txt blk03371.txt blk03372.txt blk03373.txt blk03374.txt blk03375.txt blk03376.txt blk03377.txt blk03378.txt blk03379.txt blk03380.txt blk03381.txt blk03382.txt blk03383.txt blk03384.txt blk03385.txt blk03386.txt blk03387.txt blk03388.txt blk03389.txt blk03390.txt blk03391.txt blk03392.txt blk03393.txt blk03394.txt blk03395.txt blk03396.txt blk03397.txt blk03398.txt blk03399.txt blk03400.txt blk03401.txt blk03402.txt blk03403.txt blk03404.txt blk03405.txt blk03406.txt blk03407.txt blk03408.txt blk03409.txt blk03410.txt blk03411.txt blk03412.txt blk03413.txt blk03414.txt blk03415.txt blk03416.txt blk03417.txt blk03418.txt blk03419.txt blk03420.txt blk03421.txt blk03422.txt blk03423.txt blk03424.txt blk03425.txt blk03426.txt blk03427.txt blk03428.txt blk03429.txt blk03430.txt blk03431.txt blk03432.txt blk03433.txt blk03434.txt blk03435.txt blk03436.txt blk03437.txt blk03438.txt blk03439.txt blk03440.txt blk03441.txt blk03442.txt blk03443.txt blk03444.txt blk03445.txt blk03446.txt blk03447.txt blk03448.txt blk03449.txt blk03450.txt blk03451.txt blk03452.txt blk03453.txt blk03454.txt blk03455.txt blk03456.txt blk03457.txt blk03458.txt blk03459.txt blk03460.txt blk03461.txt blk03462.txt blk03463.txt blk03464.txt blk03465.txt blk03466.txt blk03467.txt blk03468.txt blk03469.txt blk03470.txt blk03471.txt blk03472.txt blk03473.txt blk03474.txt blk03475.txt blk03476.txt blk03477.txt blk03478.txt blk03479.txt blk03480.txt blk03481.txt blk03482.txt blk03483.txt blk03484.txt blk03485.txt blk03486.txt blk03487.txt blk03488.txt blk03489.txt blk03490.txt blk03491.txt blk03492.txt blk03493.txt blk03494.txt blk03495.txt blk03496.txt blk03497.txt blk03498.txt blk03499.txt blk03500.txt blk03501.txt blk03502.txt blk03503.txt blk03504.txt blk03505.txt blk03506.txt blk03507.txt blk03508.txt blk03509.txt blk03510.txt blk03511.txt blk03512.txt blk03513.txt blk03514.txt blk03515.txt blk03516.txt blk03517.txt blk03518.txt blk03519.txt blk03520.txt blk03521.txt blk03522.txt blk03523.txt blk03524.txt blk03525.txt blk03526.txt blk03527.txt blk03528.txt blk03529.txt blk03530.txt blk03531.txt blk03532.txt blk03533.txt blk03534.txt blk03535.txt blk03536.txt blk03537.txt blk03538.txt blk03539.txt blk03540.txt blk03541.txt blk03542.txt blk03543.txt blk03544.txt blk03545.txt blk03546.txt blk03547.txt blk03548.txt blk03549.txt blk03550.txt blk03551.txt blk03552.txt blk03553.txt blk03554.txt blk03555.txt blk03556.txt blk03557.txt blk03558.txt blk03559.txt blk03560.txt blk03561.txt blk03562.txt blk03563.txt blk03564.txt blk03565.txt blk03566.txt blk03567.txt blk03568.txt blk03569.txt blk03570.txt blk03571.txt blk03572.txt blk03573.txt blk03574.txt blk03575.txt blk03576.txt blk03577.txt blk03578.txt blk03579.txt blk03580.txt blk03581.txt blk03582.txt blk03583.txt blk03584.txt blk03585.txt blk03586.txt blk03587.txt blk03588.txt blk03589.txt blk03590.txt blk03591.txt blk03592.txt blk03593.txt blk03594.txt blk03595.txt blk03596.txt blk03597.txt blk03598.txt blk03599.txt blk03600.txt blk03601.txt blk03602.txt blk03603.txt blk03604.txt blk03605.txt blk03606.txt blk03607.txt blk03608.txt blk03609.txt blk03610.txt blk03611.txt blk03612.txt blk03613.txt blk03614.txt blk03615.txt blk03616.txt blk03617.txt blk03618.txt blk03619.txt blk03620.txt blk03621.txt blk03622.txt blk03623.txt blk03624.txt blk03625.txt blk03626.txt blk03627.txt blk03628.txt blk03629.txt blk03630.txt blk03631.txt blk03632.txt blk03633.txt blk03634.txt blk03635.txt blk03636.txt blk03637.txt blk03638.txt blk03639.txt blk03640.txt blk03641.txt blk03642.txt blk03643.txt blk03644.txt blk03645.txt blk03646.txt blk03647.txt blk03648.txt blk03649.txt blk03650.txt blk03651.txt blk03652.txt blk03653.txt blk03654.txt blk03655.txt blk03656.txt blk03657.txt blk03658.txt blk03659.txt blk03660.txt blk03661.txt blk03662.txt blk03663.txt blk03664.txt blk03665.txt blk03666.txt blk03667.txt blk03668.txt blk03669.txt blk03670.txt blk03671.txt blk03672.txt blk03673.txt blk03674.txt blk03675.txt blk03676.txt blk03677.txt blk03678.txt blk03679.txt blk03680.txt blk03681.txt blk03682.txt blk03683.txt blk03684.txt blk03685.txt blk03686.txt blk03687.txt blk03688.txt blk03689.txt blk03690.txt blk03691.txt blk03692.txt blk03693.txt blk03694.txt blk03695.txt blk03696.txt blk03697.txt blk03698.txt blk03699.txt blk03700.txt blk03701.txt blk03702.txt blk03703.txt blk03704.txt blk03705.txt blk03706.txt blk03707.txt blk03708.txt blk03709.txt blk03710.txt blk03711.txt blk03712.txt blk03713.txt blk03714.txt blk03715.txt blk03716.txt blk03717.txt blk03718.txt blk03719.txt blk03720.txt blk03721.txt blk03722.txt blk03723.txt blk03724.txt blk03725.txt blk03726.txt blk03727.txt blk03728.txt blk03729.txt blk03730.txt blk03731.txt blk03732.txt blk03733.txt blk03734.txt blk03735.txt blk03736.txt blk03737.txt blk03738.txt blk03739.txt blk03740.txt blk03741.txt blk03742.txt blk03743.txt blk03744.txt blk03745.txt blk03746.txt blk03747.txt blk03748.txt blk03749.txt blk03750.txt blk03751.txt blk03752.txt blk03753.txt blk03754.txt blk03755.txt blk03756.txt blk03757.txt blk03758.txt blk03759.txt blk03760.txt blk03761.txt blk03762.txt blk03763.txt blk03764.txt blk03765.txt blk03766.txt blk03767.txt blk03768.txt blk03769.txt blk03770.txt blk03771.txt blk03772.txt blk03773.txt blk03774.txt blk03775.txt blk03776.txt blk03777.txt blk03778.txt blk03779.txt blk03780.txt blk03781.txt blk03782.txt blk03783.txt blk03784.txt blk03785.txt blk03786.txt blk03787.txt blk03788.txt blk03789.txt blk03790.txt blk03791.txt blk03792.txt blk03793.txt blk03794.txt blk03795.txt blk03796.txt blk03797.txt blk03798.txt blk03799.txt blk03800.txt blk03801.txt blk03802.txt blk03803.txt blk03804.txt blk03805.txt blk03806.txt blk03807.txt blk03808.txt blk03809.txt blk03810.txt blk03811.txt blk03812.txt blk03813.txt blk03814.txt blk03815.txt blk03816.txt blk03817.txt blk03818.txt blk03819.txt blk03820.txt blk03821.txt blk03822.txt blk03823.txt blk03824.txt blk03825.txt blk03826.txt blk03827.txt blk03828.txt blk03829.txt blk03830.txt blk03831.txt blk03832.txt blk03833.txt blk03834.txt blk03835.txt blk03836.txt blk03837.txt blk03838.txt blk03839.txt blk03840.txt blk03841.txt blk03842.txt blk03843.txt blk03844.txt blk03845.txt blk03846.txt blk03847.txt blk03848.txt blk03849.txt blk03850.txt blk03851.txt blk03852.txt blk03853.txt blk03854.txt blk03855.txt blk03856.txt blk03857.txt blk03858.txt blk03859.txt blk03860.txt blk03861.txt blk03862.txt blk03863.txt blk03864.txt blk03865.txt blk03866.txt blk03867.txt blk03868.txt blk03869.txt blk03870.txt blk03871.txt blk03872.txt blk03873.txt blk03874.txt blk03875.txt blk03876.txt blk03877.txt blk03878.txt blk03879.txt blk03880.txt blk03881.txt blk03882.txt blk03883.txt blk03884.txt blk03885.txt blk03886.txt blk03887.txt blk03888.txt blk03889.txt blk03890.txt blk03891.txt blk03892.txt blk03893.txt blk03894.txt blk03895.txt blk03896.txt blk03897.txt blk03898.txt blk03899.txt blk03900.txt blk03901.txt blk03902.txt blk03903.txt blk03904.txt blk03905.txt blk03906.txt blk03907.txt blk03908.txt blk03909.txt blk03910.txt blk03911.txt blk03912.txt blk03913.txt blk03914.txt blk03915.txt blk03916.txt blk03917.txt blk03918.txt blk03919.txt blk03920.txt blk03921.txt blk03922.txt blk03923.txt blk03924.txt blk03925.txt blk03926.txt blk03927.txt blk03928.txt blk03929.txt blk03930.txt blk03931.txt blk03932.txt blk03933.txt blk03934.txt blk03935.txt blk03936.txt blk03937.txt blk03938.txt blk03939.txt blk03940.txt blk03941.txt blk03942.txt blk03943.txt blk03944.txt blk03945.txt blk03946.txt blk03947.txt blk03948.txt blk03949.txt blk03950.txt blk03951.txt blk03952.txt blk03953.txt blk03954.txt blk03955.txt blk03956.txt blk03957.txt blk03958.txt blk03959.txt blk03960.txt blk03961.txt blk03962.txt blk03963.txt blk03964.txt blk03965.txt blk03966.txt blk03967.txt blk03968.txt blk03969.txt blk03970.txt blk03971.txt blk03972.txt blk03973.txt blk03974.txt blk03975.txt blk03976.txt blk03977.txt blk03978.txt blk03979.txt blk03980.txt blk03981.txt blk03982.txt blk03983.txt blk03984.txt blk03985.txt blk03986.txt blk03987.txt blk03988.txt blk03989.txt blk03990.txt blk03991.txt blk03992.txt blk03993.txt blk03994.txt blk03995.txt blk03996.txt blk03997.txt blk03998.txt blk03999.txt blk04000.txt blk04001.txt blk04002.txt blk04003.txt blk04004.txt blk04005.txt blk04006.txt blk04007.txt blk04008.txt blk04009.txt blk04010.txt blk04011.txt blk04012.txt blk04013.txt blk04014.txt blk04015.txt blk04016.txt blk04017.txt blk04018.txt blk04019.txt blk04020.txt blk04021.txt blk04022.txt blk04023.txt blk04024.txt blk04025.txt blk04026.txt blk04027.txt blk04028.txt blk04029.txt blk04030.txt blk04031.txt blk04032.txt blk04033.txt blk04034.txt blk04035.txt blk04036.txt blk04037.txt blk04038.txt blk04039.txt blk04040.txt blk04041.txt blk04042.txt blk04043.txt blk04044.txt blk04045.txt blk04046.txt blk04047.txt blk04048.txt blk04049.txt blk04050.txt blk04051.txt blk04052.txt blk04053.txt blk04054.txt blk04055.txt blk04056.txt blk04057.txt blk04058.txt blk04059.txt blk04060.txt blk04061.txt blk04062.txt blk04063.txt blk04064.txt blk04065.txt blk04066.txt blk04067.txt blk04068.txt blk04069.txt blk04070.txt blk04071.txt blk04072.txt blk04073.txt blk04074.txt blk04075.txt blk04076.txt blk04077.txt blk04078.txt blk04079.txt blk04080.txt blk04081.txt blk04082.txt blk04083.txt blk04084.txt blk04085.txt blk04086.txt blk04087.txt blk04088.txt blk04089.txt blk04090.txt blk04091.txt blk04092.txt blk04093.txt blk04094.txt blk04095.txt blk04096.txt blk04097.txt blk04098.txt blk04099.txt blk04100.txt blk04101.txt blk04102.txt blk04103.txt blk04104.txt blk04105.txt blk04106.txt blk04107.txt blk04108.txt blk04109.txt blk04110.txt blk04111.txt blk04112.txt blk04113.txt blk04114.txt blk04115.txt blk04116.txt blk04117.txt blk04118.txt blk04119.txt blk04120.txt blk04121.txt blk04122.txt blk04123.txt blk04124.txt blk04125.txt blk04126.txt blk04127.txt blk04128.txt blk04129.txt blk04130.txt blk04131.txt blk04132.txt blk04133.txt blk04134.txt blk04135.txt blk04136.txt blk04137.txt blk04138.txt blk04139.txt blk04140.txt blk04141.txt blk04142.txt blk04143.txt blk04144.txt blk04145.txt blk04146.txt blk04147.txt blk04148.txt blk04149.txt blk04150.txt blk04151.txt blk04152.txt blk04153.txt blk04154.txt blk04155.txt blk04156.txt blk04157.txt blk04158.txt blk04159.txt blk04160.txt blk04161.txt blk04162.txt blk04163.txt blk04164.txt blk04165.txt blk04166.txt blk04167.txt blk04168.txt blk04169.txt blk04170.txt blk04171.txt blk04172.txt blk04173.txt blk04174.txt blk04175.txt blk04176.txt blk04177.txt blk04178.txt blk04179.txt blk04180.txt blk04181.txt blk04182.txt blk04183.txt blk04184.txt blk04185.txt blk04186.txt blk04187.txt blk04188.txt blk04189.txt blk04190.txt blk04191.txt blk04192.txt blk04193.txt blk04194.txt blk04195.txt blk04196.txt blk04197.txt blk04198.txt blk04199.txt blk04200.txt blk04201.txt blk04202.txt blk04203.txt blk04204.txt blk04205.txt blk04206.txt blk04207.txt blk04208.txt blk04209.txt blk04210.txt blk04211.txt blk04212.txt blk04213.txt blk04214.txt blk04215.txt blk04216.txt blk04217.txt blk04218.txt blk04219.txt blk04220.txt blk04221.txt blk04222.txt blk04223.txt blk04224.txt blk04225.txt blk04226.txt blk04227.txt blk04228.txt blk04229.txt blk04230.txt blk04231.txt blk04232.txt blk04233.txt blk04234.txt blk04235.txt blk04236.txt blk04237.txt blk04238.txt blk04239.txt blk04240.txt blk04241.txt blk04242.txt blk04243.txt blk04244.txt blk04245.txt blk04246.txt blk04247.txt blk04248.txt blk04249.txt blk04250.txt blk04251.txt blk04252.txt blk04253.txt blk04254.txt blk04255.txt blk04256.txt blk04257.txt blk04258.txt blk04259.txt blk04260.txt blk04261.txt blk04262.txt blk04263.txt blk04264.txt blk04265.txt blk04266.txt blk04267.txt blk04268.txt blk04269.txt blk04270.txt blk04271.txt blk04272.txt blk04273.txt blk04274.txt blk04275.txt blk04276.txt blk04277.txt blk04278.txt blk04279.txt blk04280.txt blk04281.txt blk04282.txt blk04283.txt blk04284.txt blk04285.txt blk04286.txt blk04287.txt blk04288.txt blk04289.txt blk04290.txt blk04291.txt blk04292.txt blk04293.txt blk04294.txt blk04295.txt blk04296.txt blk04297.txt blk04298.txt blk04299.txt blk04300.txt blk04301.txt blk04302.txt blk04303.txt blk04304.txt blk04305.txt blk04306.txt blk04307.txt blk04308.txt blk04309.txt blk04310.txt blk04311.txt blk04312.txt blk04313.txt blk04314.txt blk04315.txt blk04316.txt blk04317.txt blk04318.txt blk04319.txt blk04320.txt blk04321.txt blk04322.txt blk04323.txt blk04324.txt blk04325.txt blk04326.txt blk04327.txt blk04328.txt blk04329.txt blk04330.txt blk04331.txt blk04332.txt blk04333.txt blk04334.txt blk04335.txt blk04336.txt blk04337.txt blk04338.txt blk04339.txt blk04340.txt blk04341.txt blk04342.txt blk04343.txt blk04344.txt blk04345.txt blk04346.txt blk04347.txt blk04348.txt blk04349.txt blk04350.txt blk04351.txt blk04352.txt blk04353.txt blk04354.txt blk04355.txt blk04356.txt blk04357.txt blk04358.txt blk04359.txt blk04360.txt blk04361.txt blk04362.txt blk04363.txt blk04364.txt blk04365.txt blk04366.txt blk04367.txt blk04368.txt blk04369.txt blk04370.txt blk04371.txt blk04372.txt blk04373.txt blk04374.txt blk04375.txt blk04376.txt blk04377.txt blk04378.txt blk04379.txt blk04380.txt blk04381.txt blk04382.txt blk04383.txt blk04384.txt blk04385.txt blk04386.txt blk04387.txt blk04388.txt blk04389.txt blk04390.txt blk04391.txt blk04392.txt blk04393.txt blk04394.txt blk04395.txt blk04396.txt blk04397.txt blk04398.txt blk04399.txt blk04400.txt blk04401.txt blk04402.txt blk04403.txt blk04404.txt blk04405.txt blk04406.txt blk04407.txt blk04408.txt blk04409.txt blk04410.txt blk04411.txt blk04412.txt blk04413.txt blk04414.txt blk04415.txt blk04416.txt blk04417.txt blk04418.txt blk04419.txt blk04420.txt blk04421.txt blk04422.txt blk04423.txt blk04424.txt blk04425.txt blk04426.txt blk04427.txt blk04428.txt blk04429.txt blk04430.txt blk04431.txt blk04432.txt blk04433.txt blk04434.txt blk04435.txt blk04436.txt blk04437.txt blk04438.txt blk04439.txt blk04440.txt blk04441.txt blk04442.txt blk04443.txt blk04444.txt blk04445.txt blk04446.txt blk04447.txt blk04448.txt blk04449.txt blk04450.txt blk04451.txt blk04452.txt blk04453.txt blk04454.txt blk04455.txt blk04456.txt blk04457.txt blk04458.txt blk04459.txt blk04460.txt blk04461.txt blk04462.txt blk04463.txt blk04464.txt blk04465.txt blk04466.txt blk04467.txt blk04468.txt blk04469.txt blk04470.txt blk04471.txt blk04472.txt blk04473.txt blk04474.txt blk04475.txt blk04476.txt blk04477.txt blk04478.txt blk04479.txt blk04480.txt blk04481.txt blk04482.txt blk04483.txt blk04484.txt blk04485.txt blk04486.txt blk04487.txt blk04488.txt blk04489.txt blk04490.txt blk04491.txt blk04492.txt blk04493.txt blk04494.txt blk04495.txt blk04496.txt blk04497.txt blk04498.txt blk04499.txt blk04500.txt blk04501.txt blk04502.txt blk04503.txt blk04504.txt blk04505.txt blk04506.txt blk04507.txt blk04508.txt blk04509.txt blk04510.txt blk04511.txt blk04512.txt blk04513.txt blk04514.txt blk04515.txt blk04516.txt blk04517.txt blk04518.txt blk04519.txt blk04520.txt blk04521.txt blk04522.txt blk04523.txt blk04524.txt blk04525.txt blk04526.txt blk04527.txt blk04528.txt blk04529.txt blk04530.txt blk04531.txt blk04532.txt blk04533.txt blk04534.txt blk04535.txt blk04536.txt blk04537.txt blk04538.txt blk04539.txt blk04540.txt blk04541.txt blk04542.txt blk04543.txt blk04544.txt blk04545.txt blk04546.txt blk04547.txt blk04548.txt blk04549.txt blk04550.txt blk04551.txt blk04552.txt blk04553.txt blk04554.txt blk04555.txt blk04556.txt blk04557.txt blk04558.txt blk04559.txt blk04560.txt blk04561.txt blk04562.txt blk04563.txt blk04564.txt blk04565.txt blk04566.txt blk04567.txt blk04568.txt blk04569.txt blk04570.txt blk04571.txt blk04572.txt blk04573.txt blk04574.txt blk04575.txt blk04576.txt blk04577.txt blk04578.txt blk04579.txt blk04580.txt blk04581.txt blk04582.txt blk04583.txt blk04584.txt blk04585.txt blk04586.txt blk04587.txt blk04588.txt blk04589.txt blk04590.txt blk04591.txt blk04592.txt blk04593.txt blk04594.txt blk04595.txt blk04596.txt blk04597.txt blk04598.txt blk04599.txt blk04600.txt blk04601.txt blk04602.txt blk04603.txt blk04604.txt blk04605.txt blk04606.txt blk04607.txt blk04608.txt blk04609.txt blk04610.txt blk04611.txt blk04612.txt blk04613.txt blk04614.txt blk04615.txt blk04616.txt blk04617.txt blk04618.txt blk04619.txt blk04620.txt blk04621.txt blk04622.txt blk04623.txt blk04624.txt blk04625.txt blk04626.txt blk04627.txt blk04628.txt blk04629.txt blk04630.txt blk04631.txt blk04632.txt blk04633.txt blk04634.txt blk04635.txt blk04636.txt blk04637.txt blk04638.txt blk04639.txt blk04640.txt blk04641.txt blk04642.txt blk04643.txt blk04644.txt blk04645.txt blk04646.txt blk04647.txt blk04648.txt blk04649.txt blk04650.txt blk04651.txt blk04652.txt blk04653.txt blk04654.txt blk04655.txt blk04656.txt blk04657.txt blk04658.txt blk04659.txt blk04660.txt blk04661.txt blk04662.txt blk04663.txt blk04664.txt blk04665.txt blk04666.txt blk04667.txt blk04668.txt blk04669.txt blk04670.txt blk04671.txt blk04672.txt blk04673.txt blk04674.txt blk04675.txt blk04676.txt blk04677.txt blk04678.txt blk04679.txt blk04680.txt blk04681.txt blk04682.txt blk04683.txt blk04684.txt blk04685.txt blk04686.txt blk04687.txt blk04688.txt blk04689.txt blk04690.txt blk04691.txt blk04692.txt blk04693.txt blk04694.txt blk04695.txt blk04696.txt blk04697.txt blk04698.txt blk04699.txt blk04700.txt blk04701.txt blk04702.txt blk04703.txt blk04704.txt blk04705.txt blk04706.txt blk04707.txt blk04708.txt blk04709.txt blk04710.txt blk04711.txt blk04712.txt blk04713.txt blk04714.txt blk04715.txt blk04716.txt blk04717.txt blk04718.txt blk04719.txt blk04720.txt blk04721.txt blk04722.txt blk04723.txt blk04724.txt blk04725.txt blk04726.txt blk04727.txt blk04728.txt blk04729.txt blk04730.txt blk04731.txt blk04732.txt blk04733.txt blk04734.txt blk04735.txt blk04736.txt blk04737.txt blk04738.txt blk04739.txt blk04740.txt blk04741.txt blk04742.txt blk04743.txt blk04744.txt blk04745.txt blk04746.txt blk04747.txt blk04748.txt blk04749.txt blk04750.txt blk04751.txt blk04752.txt blk04753.txt blk04754.txt blk04755.txt blk04756.txt blk04757.txt blk04758.txt blk04759.txt blk04760.txt blk04761.txt blk04762.txt blk04763.txt blk04764.txt blk04765.txt blk04766.txt blk04767.txt blk04768.txt blk04769.txt blk04770.txt blk04771.txt blk04772.txt blk04773.txt blk04774.txt blk04775.txt blk04776.txt blk04777.txt blk04778.txt blk04779.txt blk04780.txt blk04781.txt blk04782.txt blk04783.txt blk04784.txt blk04785.txt blk04786.txt blk04787.txt blk04788.txt blk04789.txt blk04790.txt blk04791.txt blk04792.txt blk04793.txt blk04794.txt blk04795.txt blk04796.txt blk04797.txt blk04798.txt blk04799.txt blk04800.txt blk04801.txt blk04802.txt blk04803.txt blk04804.txt blk04805.txt blk04806.txt blk04807.txt blk04808.txt blk04809.txt blk04810.txt blk04811.txt blk04812.txt blk04813.txt blk04814.txt blk04815.txt blk04816.txt blk04817.txt blk04818.txt blk04819.txt blk04820.txt blk04821.txt blk04822.txt blk04823.txt blk04824.txt blk04825.txt blk04826.txt blk04827.txt blk04828.txt blk04829.txt blk04830.txt blk04831.txt blk04832.txt blk04833.txt blk04834.txt blk04835.txt blk04836.txt blk04837.txt blk04838.txt blk04839.txt blk04840.txt blk04841.txt blk04842.txt blk04843.txt blk04844.txt blk04845.txt blk04846.txt blk04847.txt blk04848.txt blk04849.txt blk04850.txt blk04851.txt blk04852.txt blk04853.txt blk04854.txt blk04855.txt blk04856.txt blk04857.txt blk04858.txt blk04859.txt blk04860.txt blk04861.txt blk04862.txt blk04863.txt blk04864.txt blk04865.txt blk04866.txt blk04867.txt blk04868.txt blk04869.txt blk04870.txt blk04871.txt blk04872.txt blk04873.txt blk04874.txt blk04875.txt blk04876.txt blk04877.txt blk04878.txt blk04879.txt blk04880.txt blk04881.txt blk04882.txt blk04883.txt blk04884.txt blk04885.txt blk04886.txt blk04887.txt blk04888.txt blk04889.txt blk04890.txt blk04891.txt blk04892.txt blk04893.txt blk04894.txt blk04895.txt blk04896.txt blk04897.txt blk04898.txt blk04899.txt blk04900.txt blk04901.txt blk04902.txt blk04903.txt blk04904.txt blk04905.txt blk04906.txt blk04907.txt blk04908.txt blk04909.txt blk04910.txt blk04911.txt blk04912.txt blk04913.txt blk04914.txt blk04915.txt blk04916.txt blk04917.txt blk04918.txt blk04919.txt blk04920.txt blk04921.txt blk04922.txt blk04923.txt blk04924.txt blk04925.txt blk04926.txt blk04927.txt blk04928.txt blk04929.txt blk04930.txt blk04931.txt blk04932.txt blk04933.txt blk04934.txt blk04935.txt blk04936.txt blk04937.txt blk04938.txt blk04939.txt blk04940.txt blk04941.txt blk04942.txt blk04943.txt blk04944.txt blk04945.txt blk04946.txt blk04947.txt blk04948.txt blk04949.txt blk04950.txt blk04951.txt blk04952.txt blk04953.txt blk04954.txt blk04955.txt blk04956.txt blk04957.txt blk04958.txt blk04959.txt blk04960.txt blk04961.txt blk04962.txt blk04963.txt blk04964.txt blk04965.txt blk04966.txt blk04967.txt blk04968.txt blk04969.txt blk04970.txt blk04971.txt blk04972.txt blk04973.txt blk04974.txt blk04975.txt blk04976.txt blk04977.txt blk04978.txt blk04979.txt blk04980.txt blk04981.txt blk04982.txt blk04983.txt blk04984.txt blk04985.txt blk04986.txt blk04987.txt blk04988.txt blk04989.txt blk04990.txt blk04991.txt blk04992.txt blk04993.txt blk04994.txt blk04995.txt blk04996.txt blk04997.txt blk04998.txt blk04999.txt blk05000.txt blk05001.txt blk05002.txt blk05003.txt blk05004.txt blk05005.txt blk05006.txt blk05007.txt blk05008.txt blk05009.txt blk05010.txt blk05011.txt blk05012.txt blk05013.txt blk05014.txt blk05015.txt blk05016.txt blk05017.txt blk05018.txt blk05019.txt blk05020.txt blk05021.txt blk05022.txt blk05023.txt blk05024.txt blk05025.txt blk05026.txt blk05027.txt blk05028.txt blk05029.txt blk05030.txt blk05031.txt blk05032.txt blk05033.txt blk05034.txt blk05035.txt blk05036.txt blk05037.txt blk05038.txt blk05039.txt blk05040.txt blk05041.txt blk05042.txt blk05043.txt blk05044.txt blk05045.txt blk05046.txt blk05047.txt blk05048.txt blk05049.txt blk05050.txt blk05051.txt blk05052.txt blk05053.txt blk05054.txt blk05055.txt blk05056.txt blk05057.txt blk05058.txt blk05059.txt blk05060.txt blk05061.txt blk05062.txt blk05063.txt blk05064.txt blk05065.txt blk05066.txt blk05067.txt blk05068.txt blk05069.txt blk05070.txt blk05071.txt blk05072.txt blk05073.txt blk05074.txt blk05075.txt blk05076.txt blk05077.txt blk05078.txt blk05079.txt blk05080.txt blk05081.txt blk05082.txt blk05083.txt blk05084.txt blk05085.txt blk05086.txt blk05087.txt blk05088.txt blk05089.txt blk05090.txt blk05091.txt blk05092.txt blk05093.txt blk05094.txt blk05095.txt blk05096.txt blk05097.txt blk05098.txt blk05099.txt blk05100.txt blk05101.txt blk05102.txt blk05103.txt blk05104.txt blk05105.txt blk05106.txt blk05107.txt blk05108.txt blk05109.txt blk05110.txt blk05111.txt blk05112.txt blk05113.txt blk05114.txt blk05115.txt blk05116.txt blk05117.txt blk05118.txt blk05119.txt blk05120.txt blk05121.txt blk05122.txt blk05123.txt blk05124.txt blk05125.txt blk05126.txt blk05127.txt blk05128.txt blk05129.txt blk05130.txt blk05131.txt blk05132.txt blk05133.txt blk05134.txt blk05135.txt blk05136.txt blk05137.txt blk05138.txt blk05139.txt blk05140.txt blk05141.txt blk05142.txt blk05143.txt blk05144.txt blk05145.txt blk05146.txt blk05147.txt blk05148.txt blk05149.txt blk05150.txt blk05151.txt blk05152.txt blk05153.txt blk05154.txt blk05155.txt blk05156.txt blk05157.txt blk05158.txt blk05159.txt blk05160.txt blk05161.txt blk05162.txt blk05163.txt blk05164.txt blk05165.txt blk05166.txt blk05167.txt blk05168.txt blk05169.txt blk05170.txt blk05171.txt blk05172.txt blk05173.txt blk05174.txt blk05175.txt blk05176.txt blk05177.txt blk05178.txt blk05179.txt blk05180.txt blk05181.txt blk05182.txt blk05183.txt blk05184.txt blk05185.txt blk05186.txt blk05187.txt blk05188.txt blk05189.txt blk05190.txt blk05191.txt blk05192.txt blk05193.txt blk05194.txt blk05195.txt blk05196.txt blk05197.txt blk05198.txt blk05199.txt blk05200.txt blk05201.txt blk05202.txt blk05203.txt blk05204.txt blk05205.txt blk05206.txt blk05207.txt blk05208.txt blk05209.txt blk05210.txt blk05211.txt blk05212.txt blk05213.txt blk05214.txt blk05215.txt blk05216.txt blk05217.txt blk05218.txt blk05219.txt blk05220.txt blk05221.txt blk05222.txt blk05223.txt blk05224.txt blk05225.txt blk05226.txt blk05227.txt blk05228.txt blk05229.txt blk05230.txt blk05231.txt blk05232.txt blk05233.txt blk05234.txt blk05235.txt blk05236.txt blk05237.txt blk05238.txt blk05239.txt blk05240.txt blk05241.txt blk05242.txt blk05243.txt blk05244.txt blk05245.txt blk05246.txt blk05247.txt blk05248.txt blk05249.txt blk05250.txt blk05251.txt blk05252.txt blk05253.txt blk05254.txt blk05255.txt blk05256.txt blk05257.txt blk05258.txt blk05259.txt blk05260.txt blk05261.txt blk05262.txt blk05263.txt blk05264.txt blk05265.txt blk05266.txt blk05267.txt blk05268.txt blk05269.txt blk05270.txt blk05271.txt blk05272.txt blk05273.txt blk05274.txt blk05275.txt blk05276.txt blk05277.txt blk05278.txt blk05279.txt blk05280.txt blk05281.txt blk05282.txt blk05283.txt blk05284.txt blk05285.txt blk05286.txt blk05287.txt blk05288.txt blk05289.txt blk05290.txt blk05291.txt blk05292.txt blk05293.txt blk05294.txt blk05295.txt blk05296.txt blk05297.txt blk05298.txt blk05299.txt blk05300.txt blk05301.txt blk05302.txt blk05303.txt blk05304.txt blk05305.txt blk05306.txt blk05307.txt blk05308.txt blk05309.txt blk05310.txt blk05311.txt blk05312.txt blk05313.txt blk05314.txt blk05315.txt blk05316.txt blk05317.txt blk05318.txt blk05319.txt blk05320.txt blk05321.txt blk05322.txt blk05323.txt blk05324.txt blk05325.txt blk05326.txt blk05327.txt blk05328.txt blk05329.txt blk05330.txt blk05331.txt blk05332.txt blk05333.txt blk05334.txt blk05335.txt blk05336.txt blk05337.txt blk05338.txt blk05339.txt blk05340.txt blk05341.txt blk05342.txt blk05343.txt blk05344.txt blk05345.txt blk05346.txt blk05347.txt blk05348.txt blk05349.txt blk05350.txt blk05351.txt blk05352.txt blk05353.txt blk05354.txt blk05355.txt blk05356.txt blk05357.txt blk05358.txt blk05359.txt blk05360.txt blk05361.txt blk05362.txt blk05363.txt blk05364.txt blk05365.txt blk05366.txt blk05367.txt blk05368.txt blk05369.txt blk05370.txt blk05371.txt blk05372.txt blk05373.txt blk05374.txt blk05375.txt blk05376.txt blk05377.txt blk05378.txt blk05379.txt blk05380.txt blk05381.txt blk05382.txt blk05383.txt blk05384.txt blk05385.txt blk05386.txt blk05387.txt blk05388.txt blk05389.txt blk05390.txt blk05391.txt blk05392.txt blk05393.txt blk05394.txt blk05395.txt blk05396.txt blk05397.txt blk05398.txt blk05399.txt blk05400.txt blk05401.txt blk05402.txt blk05403.txt blk05404.txt blk05405.txt blk05406.txt blk05407.txt blk05408.txt blk05409.txt blk05410.txt blk05411.txt blk05412.txt blk05413.txt blk05414.txt blk05415.txt blk05416.txt blk05417.txt blk05418.txt blk05419.txt blk05420.txt blk05421.txt blk05422.txt blk05423.txt blk05424.txt blk05425.txt blk05426.txt blk05427.txt blk05428.txt blk05429.txt blk05430.txt blk05431.txt blk05432.txt blk05433.txt blk05434.txt blk05435.txt blk05436.txt blk05437.txt blk05438.txt blk05439.txt blk05440.txt blk05441.txt blk05442.txt blk05443.txt blk05444.txt blk05445.txt blk05446.txt blk05447.txt blk05448.txt blk05449.txt blk05450.txt blk05451.txt blk05452.txt blk05453.txt blk05454.txt blk05455.txt blk05456.txt blk05457.txt blk05458.txt blk05459.txt blk05460.txt blk05461.txt blk05462.txt blk05463.txt blk05464.txt blk05465.txt blk05466.txt blk05467.txt blk05468.txt blk05469.txt blk05470.txt blk05471.txt blk05472.txt blk05473.txt blk05474.txt blk05475.txt blk05476.txt blk05477.txt blk05478.txt blk05479.txt blk05480.txt blk05481.txt blk05482.txt blk05483.txt blk05484.txt blk05485.txt blk05486.txt blk05487.txt blk05488.txt blk05489.txt blk05490.txt blk05491.txt blk05492.txt blk05493.txt blk05494.txt blk05495.txt blk05496.txt blk05497.txt blk05498.txt blk05499.txt blk05500.txt blk05501.txt blk05502.txt blk05503.txt blk05504.txt blk05505.txt blk05506.txt blk05507.txt blk05508.txt blk05509.txt blk05510.txt blk05511.txt blk05512.txt blk05513.txt blk05514.txt blk05515.txt blk05516.txt blk05517.txt blk05518.txt blk05519.txt blk05520.txt blk05521.txt blk05522.txt blk05523.txt blk05524.txt blk05525.txt blk05526.txt blk05527.txt blk05528.txt blk05529.txt blk05530.txt blk05531.txt blk05532.txt blk05533.txt blk05534.txt blk05535.txt blk05536.txt blk05537.txt blk05538.txt blk05539.txt blk05540.txt blk05541.txt blk05542.txt blk05543.txt blk05544.txt blk05545.txt blk05546.txt blk05547.txt blk05548.txt blk05549.txt blk05550.txt blk05551.txt blk05552.txt blk05553.txt blk05554.txt blk05555.txt blk05556.txt blk05557.txt blk05558.txt blk05559.txt blk05560.txt blk05561.txt blk05562.txt blk05563.txt blk05564.txt blk05565.txt blk05566.txt blk05567.txt blk05568.txt blk05569.txt blk05570.txt blk05571.txt blk05572.txt blk05573.txt blk05574.txt blk05575.txt blk05576.txt blk05577.txt blk05578.txt blk05579.txt blk05580.txt blk05581.txt blk05582.txt blk05583.txt blk05584.txt blk05585.txt blk05586.txt blk05587.txt blk05588.txt blk05589.txt blk05590.txt blk05591.txt blk05592.txt blk05593.txt blk05594.txt blk05595.txt blk05596.txt blk05597.txt blk05598.txt blk05599.txt blk05600.txt blk05601.txt blk05602.txt blk05603.txt blk05604.txt blk05605.txt blk05606.txt blk05607.txt blk05608.txt blk05609.txt blk05610.txt blk05611.txt blk05612.txt blk05613.txt blk05614.txt blk05615.txt blk05616.txt blk05617.txt blk05618.txt blk05619.txt blk05620.txt blk05621.txt blk05622.txt blk05623.txt blk05624.txt blk05625.txt blk05626.txt blk05627.txt blk05628.txt blk05629.txt blk05630.txt blk05631.txt blk05632.txt blk05633.txt blk05634.txt blk05635.txt blk05636.txt blk05637.txt blk05638.txt blk05639.txt blk05640.txt blk05641.txt blk05642.txt blk05643.txt blk05644.txt blk05645.txt blk05646.txt blk05647.txt blk05648.txt blk05649.txt blk05650.txt blk05651.txt blk05652.txt blk05653.txt blk05654.txt blk05655.txt blk05656.txt blk05657.txt blk05658.txt blk05659.txt blk05660.txt blk05661.txt blk05662.txt blk05663.txt blk05664.txt blk05665.txt blk05666.txt blk05667.txt blk05668.txt blk05669.txt blk05670.txt blk05671.txt blk05672.txt blk05673.txt blk05674.txt blk05675.txt blk05676.txt blk05677.txt blk05678.txt blk05679.txt blk05680.txt blk05681.txt blk05682.txt blk05683.txt blk05684.txt blk05685.txt blk05686.txt blk05687.txt blk05688.txt blk05689.txt blk05690.txt blk05691.txt blk05692.txt blk05693.txt blk05694.txt blk05695.txt blk05696.txt blk05697.txt blk05698.txt blk05699.txt blk05700.txt blk05701.txt blk05702.txt blk05703.txt blk05704.txt blk05705.txt blk05706.txt blk05707.txt blk05708.txt blk05709.txt blk05710.txt blk05711.txt blk05712.txt blk05713.txt blk05714.txt blk05715.txt blk05716.txt blk05717.txt blk05718.txt blk05719.txt blk05720.txt blk05721.txt blk05722.txt blk05723.txt blk05724.txt blk05725.txt blk05726.txt blk05727.txt blk05728.txt blk05729.txt blk05730.txt blk05731.txt blk05732.txt blk05733.txt blk05734.txt blk05735.txt blk05736.txt blk05737.txt blk05738.txt blk05739.txt blk05740.txt blk05741.txt blk05742.txt blk05743.txt blk05744.txt blk05745.txt blk05746.txt blk05747.txt blk05748.txt blk05749.txt blk05750.txt blk05751.txt blk05752.txt blk05753.txt blk05754.txt blk05755.txt blk05756.txt blk05757.txt blk05758.txt blk05759.txt blk05760.txt blk05761.txt blk05762.txt blk05763.txt blk05764.txt blk05765.txt blk05766.txt Show all files
Advertisement: