Ui SrSSKrSSKJr SSKJr SrSr/SQrS\S \ 4S jr S \S \4S jr S \ S \ 4Sjr S\ S \4Sjrg)z; Fetches and formats live box scores for individual games. N)tabulate)BoxScorezz) PlayerPosMinPtsRebAstStlBlkTOFG3PFTz+/-game_idreturnc\[US9n[R"UR55$)N)r)rjsonloadsget_json)rendpoints 5/Users/cmc/git/zerolabsco/nba-scores/nba/box_score.pyfetch_box_scorers$(H ::h'') **rawcU(dgURSS5RSS5nURS5up[U5S[[U55S3$![a Us$f=f)u"Convert 'PT35M24.00S' → '35:24'.z0:00PTSM:02d)replacesplitintfloat Exception)rminssecss r_parse_minutesr*sn kk$#++C4YYs^ d)Ac%+.s344  sAA"" A10A1playersc/nUGHcnURS5S:XaMURS05nURURSS5URSS5[URSS55URSS 5URS S 5URS S 5URS S 5URS S 5URSS 5URSS 5SURSS 53URSS 5SURSS 53URSS 5SURSS 53URSS 5/ 5 GMf U$)NstatusINACTIVE statisticsnamerpositionminutespointsr reboundsTotalassistsstealsblocks turnoversfieldGoalsMade/fieldGoalsAttemptedthreePointersMadethreePointersAttemptedfreeThrowsMadefreeThrowsAttemptedplusMinusPoints)getappendr*)r+rowspss r _player_rowsrF!sV D  55?j (  EE, # EE&"  EE*b ! 155B/ 0 EE(A  EE/1 % EE)Q  EE(A  EE(A  EE+q !uu%q)*!AEE2G,K+L Muu(!,-Qquu5Mq/Q.R Suu%q)*!AEE2G,K+L M EE#Q '  & KrdatacUSnUSnUSn[USSUSSUSS USSUSSUS[S URS S 5S 3n[URS/55n[URS/55n[USSUSSUSS[S3 [ U[ SS9-n[USSUSSUSS[S3 [ U[ SS9-nXx4$)z(Return (home_table_str, away_table_str).gamehomeTeamawayTeamteamCity teamNamez scoreu — z [gameStatusTextr]r+z () grid)headerstablefmt)BOLDENDrArFr_HEADERS) rGrIhomeaway home_title home_rows away_rows home_table away_tables rget_box_score_tablesra9sZ risp 8 e+S+T+   $40"t""r