dubs-server 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/.claude/settings.local.json +280 -0
  2. package/CLAUDE.md +46 -0
  3. package/CONNECT4_PRODUCTION_DEPLOY.md +155 -0
  4. package/CURRENT_SESSION.md +171 -0
  5. package/CURRENT_SESSION_DRAW.md +516 -0
  6. package/MARCH_MADNESS_SURVIVOR.md +254 -0
  7. package/PANDA.md +166 -0
  8. package/Procfile +4 -0
  9. package/README.md +476 -0
  10. package/controllers/livescoresController.js +376 -0
  11. package/controllers/pickemController.js +554 -0
  12. package/controllers/survivorAdminController.js +887 -0
  13. package/controllers/survivorController.js +623 -0
  14. package/cron/oracleMonitor.js +77 -0
  15. package/cron/pickemOracleMonitor.js +73 -0
  16. package/data/jackpot-history.json +952 -0
  17. package/data/ncaaTeams.js +406 -0
  18. package/documentation/API_SECURITY_GUIDE.md +327 -0
  19. package/documentation/ARCADE_API.md +593 -0
  20. package/documentation/ARCADE_IMPLEMENTATION_SUMMARY.md +399 -0
  21. package/documentation/ARCADE_QUICKSTART.md +242 -0
  22. package/documentation/AUTOMATIC_MODE_ORACLE.md +321 -0
  23. package/documentation/BUG_FIX_COHORT_DATE_DISPLAY.md +171 -0
  24. package/documentation/CLAIM_MIGRATION_INSTRUCTIONS.md +52 -0
  25. package/documentation/CLAIM_STATUS_FIX.md +67 -0
  26. package/documentation/CLI_TOOL_GUIDE.md +372 -0
  27. package/documentation/COHORT_RETENTION_ANALYSIS.md +295 -0
  28. package/documentation/COHORT_RETENTION_IMPLEMENTATION_COMPLETE.md +461 -0
  29. package/documentation/COHORT_RETENTION_SUMMARY.md +204 -0
  30. package/documentation/COMPLETE_PROJECT_SUMMARY.md +490 -0
  31. package/documentation/DATABASE_QUERIES.md +269 -0
  32. package/documentation/DATABASE_RETENTION_POLICY.md +390 -0
  33. package/documentation/DATABASE_SETUP_GUIDE.md +361 -0
  34. package/documentation/DATABASE_SETUP_SUMMARY.md +247 -0
  35. package/documentation/DEMO_API_CURL_COMMANDS.md +656 -0
  36. package/documentation/DEPLOYMENT_SUMMARY.txt +100 -0
  37. package/documentation/DUPLICATE_NOTIFICATIONS_FIXED.md +201 -0
  38. package/documentation/EXCHANGE_RATES_INTEGRATION.md +371 -0
  39. package/documentation/FINAL_API_PROTECTION_TABLE.md +175 -0
  40. package/documentation/GAME_START_NOTIFICATIONS_DEPLOYMENT.md +256 -0
  41. package/documentation/GAME_START_NOTIFICATIONS_INTEGRATION.md +275 -0
  42. package/documentation/HEROKU_DEPLOYMENT.md +134 -0
  43. package/documentation/HEROKU_SCHEDULER_SETUP.md +271 -0
  44. package/documentation/JACKPOT_API.md +521 -0
  45. package/documentation/JACKPOT_DEPLOYMENT_GUIDE.md +362 -0
  46. package/documentation/JWT_IMPLEMENTATION_SUMMARY.md +373 -0
  47. package/documentation/JWT_QUICK_SETUP.md +268 -0
  48. package/documentation/JWT_TESTING_GUIDE.md +404 -0
  49. package/documentation/KEEPER_RECOVERY_GUIDE.md +381 -0
  50. package/documentation/KEEPER_SETUP.md +206 -0
  51. package/documentation/KEEPER_STATE_MACHINE.md +423 -0
  52. package/documentation/LATEST_PRODUCTION_SETUP.md +387 -0
  53. package/documentation/LOCAL_VOTING_TEST.md +279 -0
  54. package/documentation/ORACLE_FIXES_SUMMARY.md +188 -0
  55. package/documentation/ORACLE_POSTGRESQL_UPDATE.md +202 -0
  56. package/documentation/PAYMENT_DEPLOYMENT.md +209 -0
  57. package/documentation/PNL_TRACKING_SETUP.md +189 -0
  58. package/documentation/PREVENTING_LOCKUP_ERRORS.md +472 -0
  59. package/documentation/PRODUCTION_READY_SUMMARY.md +227 -0
  60. package/documentation/PUBLIC_VS_PRIVATE_ENDPOINTS.md +278 -0
  61. package/documentation/QUICK_AUTH_SETUP.md +99 -0
  62. package/documentation/QUICK_DEPLOY.md +224 -0
  63. package/documentation/QUICK_FIX.md +114 -0
  64. package/documentation/QUICK_START.md +152 -0
  65. package/documentation/REFEREE_MODE_GUIDE.md +392 -0
  66. package/documentation/RETENTION_CORE_ACTION_UPDATE.md +313 -0
  67. package/documentation/RETENTION_UPDATE_SUMMARY.md +108 -0
  68. package/documentation/RUN_MIGRATION_NOW.md +39 -0
  69. package/documentation/SCRIPTS_UPDATE_SUMMARY.md +251 -0
  70. package/documentation/SETUP_GUIDE.md +184 -0
  71. package/documentation/STATE_MACHINE_IMPLEMENTATION.md +250 -0
  72. package/documentation/TELEGRAM_NOTIFICATIONS_DIAGNOSIS.md +361 -0
  73. package/documentation/UNIFIED_ARCHITECTURE.md +231 -0
  74. package/documentation/VOTING_DEPLOYMENT_SUMMARY.md +392 -0
  75. package/documentation/WEBSOCKET_ARCHITECTURE.md +881 -0
  76. package/documentation/WHAT_WE_BUILT_TODAY.md +369 -0
  77. package/documentation/latest/LATEST_PRODUCTION_SETUP.md +865 -0
  78. package/ecosystem.config.js +65 -0
  79. package/env.template +125 -0
  80. package/middleware/apiKeyAuth.js +136 -0
  81. package/middleware/authenticate.js +214 -0
  82. package/middleware/developerUserAuth.js +76 -0
  83. package/middleware/socketAuth.js +69 -0
  84. package/package.json +49 -0
  85. package/postman/Dubs-API-v1-With-Voting.postman_collection.json +555 -0
  86. package/postman/Dubs-API-v1.postman_collection.json +205 -0
  87. package/postman/Dubs_Developer_API.postman_collection.json +662 -0
  88. package/postman/QUICKSTART.md +118 -0
  89. package/postman/QUICK_REFERENCE.md +246 -0
  90. package/postman/README.md +71 -0
  91. package/postman/VOTING_API_GUIDE.md +426 -0
  92. package/refactor/Animations.md +148 -0
  93. package/refactor/Chat.md +252 -0
  94. package/routes/actionsRoutes.js +699 -0
  95. package/routes/adminRoutes.js +370 -0
  96. package/routes/analyticsRoutes.js +1262 -0
  97. package/routes/arcadeRoutes.js +557 -0
  98. package/routes/authRoutes.js +2310 -0
  99. package/routes/avatarRoutes.js +85 -0
  100. package/routes/botRoutes.js +211 -0
  101. package/routes/chatRoutes.js +377 -0
  102. package/routes/cryptoPriceRoutes.js +105 -0
  103. package/routes/developerRoutes.js +4201 -0
  104. package/routes/deviceRoutes.js +214 -0
  105. package/routes/dmRoutes.js +167 -0
  106. package/routes/esportsRoutes.js +806 -0
  107. package/routes/exchangeRateRoutes.js +233 -0
  108. package/routes/gamesRoutes.js +3028 -0
  109. package/routes/jackpotRoutes.js +754 -0
  110. package/routes/keeperMonitoringRoutes.js +156 -0
  111. package/routes/keeperWebhookRoutes.js +466 -0
  112. package/routes/livescoresRoutes.js +31 -0
  113. package/routes/pickemAdminRoutes.js +199 -0
  114. package/routes/pickemRoutes.js +231 -0
  115. package/routes/playerStatsRoutes.js +147 -0
  116. package/routes/portfolioRoutes.js +217 -0
  117. package/routes/promoRoutes.js +418 -0
  118. package/routes/referralEarningsRoutes.js +392 -0
  119. package/routes/socialRoutes.js +459 -0
  120. package/routes/sportsRoutes.js +1271 -0
  121. package/routes/survivorAdminRoutes.js +345 -0
  122. package/routes/survivorRoutes.js +756 -0
  123. package/routes/uploadRoutes.js +256 -0
  124. package/routes/userProfileRoutes.js +244 -0
  125. package/routes/whatsNewRoutes.js +331 -0
  126. package/scripts/.claude/settings.local.json +15 -0
  127. package/scripts/README.md +170 -0
  128. package/scripts/RESTART_EVERYTHING.sh +104 -0
  129. package/scripts/add-claim-columns.sql +48 -0
  130. package/scripts/add-crypto-prices-cache.sql +27 -0
  131. package/scripts/add-exchange-rates-cache.sql +40 -0
  132. package/scripts/add-game-invite-column.sql +23 -0
  133. package/scripts/add-game-invite-notification.sql +33 -0
  134. package/scripts/add-game-invite-telegram-pref.sql +16 -0
  135. package/scripts/add-game-joined-notification.sql +16 -0
  136. package/scripts/add-game-joined-pref.js +40 -0
  137. package/scripts/add-game-joined-preference.sql +6 -0
  138. package/scripts/add-game-start-notifications.sql +41 -0
  139. package/scripts/add-notification-flags-to-games.sql +55 -0
  140. package/scripts/add-pending-game-dismissals.sql +19 -0
  141. package/scripts/add-preferred-currency.sql +34 -0
  142. package/scripts/add-winner-columns.js +61 -0
  143. package/scripts/add_mention_system.sql +53 -0
  144. package/scripts/add_payment_system.sql +96 -0
  145. package/scripts/add_sports_event_id_column.sql +22 -0
  146. package/scripts/analyze-cohort-data-heroku.js +276 -0
  147. package/scripts/analyze-cohort-data.js +295 -0
  148. package/scripts/analyze-prod-cohorts.sh +10 -0
  149. package/scripts/backfill-matchup-images.js +245 -0
  150. package/scripts/backfill-missing-signatures.js +175 -0
  151. package/scripts/backfill-referral-earnings.js +202 -0
  152. package/scripts/check-chat-schema.js +130 -0
  153. package/scripts/check-db.sh +14 -0
  154. package/scripts/check_oracle_in_game.js +54 -0
  155. package/scripts/cleanup-database.js +193 -0
  156. package/scripts/clear-notification-cache.js +85 -0
  157. package/scripts/convert-mnemonic.js +50 -0
  158. package/scripts/create-users-table.sql +44 -0
  159. package/scripts/debug-cohort-counts.js +248 -0
  160. package/scripts/debug-winner-calc.js +84 -0
  161. package/scripts/deploy-payment-system.sh +118 -0
  162. package/scripts/deploy-to-heroku.sh +63 -0
  163. package/scripts/diagnose-locked-round.js +143 -0
  164. package/scripts/dubs-cli.js +720 -0
  165. package/scripts/dump-account.js +65 -0
  166. package/scripts/find-vrf-offset.js +48 -0
  167. package/scripts/fix-chat-notifications-constraint.sql +122 -0
  168. package/scripts/fix-claim-columns.js +124 -0
  169. package/scripts/fix-constraint-now.js +44 -0
  170. package/scripts/fix-lock-timestamps.js +96 -0
  171. package/scripts/fix-locked-round.sh +126 -0
  172. package/scripts/fix-missing-badges.sql +91 -0
  173. package/scripts/fix-payment-notifications.sql +41 -0
  174. package/scripts/force-new-round.js +55 -0
  175. package/scripts/force-resolve-and-claim.js +278 -0
  176. package/scripts/important/README.md +115 -0
  177. package/scripts/important/authority-force-lock.js +197 -0
  178. package/scripts/important/authority-resolve-game.js +267 -0
  179. package/scripts/important/check-game-status.js +373 -0
  180. package/scripts/important/list-pending-games-by-version.js +270 -0
  181. package/scripts/important/reconcile-v1-v2-payouts.js +270 -0
  182. package/scripts/initialize-jackpot.js +111 -0
  183. package/scripts/jackpot/.claude/settings.local.json +10 -0
  184. package/scripts/jackpot/force-reset.js +84 -0
  185. package/scripts/jackpot/initialize-mainnet.js +100 -0
  186. package/scripts/jackpot/keeper.js +742 -0
  187. package/scripts/jackpot/status.js +107 -0
  188. package/scripts/jackpot/update-round-duration.js +143 -0
  189. package/scripts/keeper-bot.js +112 -0
  190. package/scripts/list-pending-games.js +131 -0
  191. package/scripts/migrate-chat-v2.js +127 -0
  192. package/scripts/migrate-chat-winners.js +84 -0
  193. package/scripts/migrate-chat.sh +17 -0
  194. package/scripts/migrate-game-invite.js +83 -0
  195. package/scripts/migrate-heroku-game-notifications.sh +159 -0
  196. package/scripts/migrations/001_analytics_tables.sql +422 -0
  197. package/scripts/migrations/002_add_matchup_image_url.sql +14 -0
  198. package/scripts/migrations/003_referral_earnings.sql +208 -0
  199. package/scripts/migrations/004_add_whats_new_notification_type.sql +62 -0
  200. package/scripts/migrations/005_add_connect4_your_turn_notification.sql +61 -0
  201. package/scripts/migrations/005_push_notifications.sql +55 -0
  202. package/scripts/migrations/006_add_draw_team_players.sql +28 -0
  203. package/scripts/migrations/006_add_game_cancelled_notification.sql +62 -0
  204. package/scripts/migrations/007_add_gif_url.sql +8 -0
  205. package/scripts/migrations/008_add_connect4_columns.sql +139 -0
  206. package/scripts/migrations/008_add_pool_tracking.sql +22 -0
  207. package/scripts/migrations/009_create_survivor_pool_tables.sql +174 -0
  208. package/scripts/migrations/010_add_survivor_pool_outcome.sql +28 -0
  209. package/scripts/migrations/011_create_developer_tables.sql +67 -0
  210. package/scripts/migrations/011_fix_keeper_tables.sql +85 -0
  211. package/scripts/migrations/012_create_developer_webhooks.sql +31 -0
  212. package/scripts/migrations/013_add_network_mode.sql +18 -0
  213. package/scripts/migrations/014_create_developer_app_users.sql +19 -0
  214. package/scripts/migrations/015_add_ui_config.sql +4 -0
  215. package/scripts/migrations/016_add_resolution_secret.sql +4 -0
  216. package/scripts/migrations/017_add_external_game_id.sql +3 -0
  217. package/scripts/migrations/018_create_pickem_tables.sql +115 -0
  218. package/scripts/migrations/019_expo_push_tokens.sql +19 -0
  219. package/scripts/migrations/create_whats_new_tables.sql +88 -0
  220. package/scripts/migrations/drop_live_games_tables.sql +34 -0
  221. package/scripts/open-jackpot-round.js +85 -0
  222. package/scripts/purge-all-data.sh +329 -0
  223. package/scripts/purge-all-data.sql +142 -0
  224. package/scripts/purge-heroku-data.sh +149 -0
  225. package/scripts/purge-heroku-data.sql +62 -0
  226. package/scripts/rebuild-heroku-database.sh +113 -0
  227. package/scripts/recover-funds.js +357 -0
  228. package/scripts/regenerate-epl-images.js +278 -0
  229. package/scripts/resize-s3-matchup-images.js +374 -0
  230. package/scripts/resolve-direct.js +88 -0
  231. package/scripts/resolve-mock-game.js +124 -0
  232. package/scripts/resolve-pickem-game.js +55 -0
  233. package/scripts/resolve-round-manual.js +83 -0
  234. package/scripts/resolve-stuck-game.js +382 -0
  235. package/scripts/resolve-stuck-round.js +42 -0
  236. package/scripts/run-connect4-migration.sh +16 -0
  237. package/scripts/run-mention-migration.sh +32 -0
  238. package/scripts/run-payment-migration.sh +51 -0
  239. package/scripts/run-preferred-currency-migration.sh +31 -0
  240. package/scripts/run-referral-earnings-migration.sh +32 -0
  241. package/scripts/run-survivor-outcome-migration.sh +16 -0
  242. package/scripts/seed-test-users.js +346 -0
  243. package/scripts/setup-auth-tables.js +78 -0
  244. package/scripts/setup-complete-database.sql +992 -0
  245. package/scripts/setup-database-fresh.sh +359 -0
  246. package/scripts/setup-heroku-keeper.sh +48 -0
  247. package/scripts/setup-keeper-database.js +83 -0
  248. package/scripts/setup-keeper-state-db.sql +110 -0
  249. package/scripts/setup-oracle.sh +39 -0
  250. package/scripts/setup-pnl-tracking.js +111 -0
  251. package/scripts/start-devnet.sh +14 -0
  252. package/scripts/test-arcade-devnet.sh +160 -0
  253. package/scripts/test-arcade-match.sh +109 -0
  254. package/scripts/test-automatic-mode.sh +239 -0
  255. package/scripts/test-connect4-cancel-claim.js +370 -0
  256. package/scripts/test-connect4-e2e.js +369 -0
  257. package/scripts/test-connect4-resolve.js +369 -0
  258. package/scripts/test-game-state-endpoint.js +136 -0
  259. package/scripts/test-invite-notification.js +86 -0
  260. package/scripts/test-jackpot-api.sh +71 -0
  261. package/scripts/test-poll-confirmation.js +267 -0
  262. package/scripts/test-resolve-game.js +271 -0
  263. package/scripts/test-resolve-signature.js +223 -0
  264. package/scripts/test-signature-preservation.js +124 -0
  265. package/scripts/test-state-machine.js +291 -0
  266. package/scripts/test-webhook-receiver.js +60 -0
  267. package/scripts/update-notification-constraint.js +52 -0
  268. package/scripts/verify-account-layout.js +145 -0
  269. package/scripts/verify-winner-algorithm.js +278 -0
  270. package/server.js +5259 -0
  271. package/services/arcadeMatchService.js +763 -0
  272. package/services/automaticGameOracle.js +1596 -0
  273. package/services/chatService.js +1612 -0
  274. package/services/connect4GameService.js +1049 -0
  275. package/services/connect4NotificationService.js +374 -0
  276. package/services/cryptoPriceService.js +223 -0
  277. package/services/customGameResolver.js +260 -0
  278. package/services/db.js +79 -0
  279. package/services/directMessageService.js +389 -0
  280. package/services/discordNotifications.js +160 -0
  281. package/services/exchangeRateService.js +289 -0
  282. package/services/expoPushService.js +314 -0
  283. package/services/gamesCacheService.js +539 -0
  284. package/services/jackpotHistory.js +331 -0
  285. package/services/jackpotService.js +856 -0
  286. package/services/keeperStateService.js +355 -0
  287. package/services/matchupImageService.js +591 -0
  288. package/services/notificationCacheService.js +407 -0
  289. package/services/pickemOracle.js +440 -0
  290. package/services/playerStatsService.js +389 -0
  291. package/services/portfolioService.js +555 -0
  292. package/services/promoService.js +757 -0
  293. package/services/promoTreasuryService.js +239 -0
  294. package/services/pushNotifications.js +353 -0
  295. package/services/redisService.js +422 -0
  296. package/services/referralEarningsService.js +728 -0
  297. package/services/s3Service.js +396 -0
  298. package/services/socialService.js +1202 -0
  299. package/services/survivorOracle.js +469 -0
  300. package/services/survivorSimulator.js +475 -0
  301. package/services/telegramNotifications.js +461 -0
  302. package/services/userProfileStatsService.js +1185 -0
  303. package/services/whatsNewService.js +388 -0
  304. package/utils/urlHelper.js +95 -0
@@ -0,0 +1,406 @@
1
+ /**
2
+ * NCAA Division I Men's Basketball Teams
3
+ * 364 teams across 32 conferences
4
+ *
5
+ * For March Madness Survivor Pool
6
+ */
7
+
8
+ const NCAA_TEAMS = [
9
+ // ACC (15 teams)
10
+ { id: 'acc-1', name: 'Duke', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/150.png' },
11
+ { id: 'acc-2', name: 'North Carolina', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/153.png' },
12
+ { id: 'acc-3', name: 'Virginia', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/258.png' },
13
+ { id: 'acc-4', name: 'Miami', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2390.png' },
14
+ { id: 'acc-5', name: 'Clemson', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/228.png' },
15
+ { id: 'acc-6', name: 'NC State', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/152.png' },
16
+ { id: 'acc-7', name: 'Pittsburgh', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/221.png' },
17
+ { id: 'acc-8', name: 'Syracuse', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/183.png' },
18
+ { id: 'acc-9', name: 'Wake Forest', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/154.png' },
19
+ { id: 'acc-10', name: 'Florida State', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/52.png' },
20
+ { id: 'acc-11', name: 'Louisville', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/97.png' },
21
+ { id: 'acc-12', name: 'Virginia Tech', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/259.png' },
22
+ { id: 'acc-13', name: 'Notre Dame', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/87.png' },
23
+ { id: 'acc-14', name: 'Georgia Tech', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/59.png' },
24
+ { id: 'acc-15', name: 'Boston College', conference: 'ACC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/103.png' },
25
+
26
+ // SEC (14 teams)
27
+ { id: 'sec-1', name: 'Auburn', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2.png' },
28
+ { id: 'sec-2', name: 'Tennessee', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2633.png' },
29
+ { id: 'sec-3', name: 'Kentucky', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/96.png' },
30
+ { id: 'sec-4', name: 'Alabama', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/333.png' },
31
+ { id: 'sec-5', name: 'Texas A&M', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/245.png' },
32
+ { id: 'sec-6', name: 'Arkansas', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/8.png' },
33
+ { id: 'sec-7', name: 'Florida', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/57.png' },
34
+ { id: 'sec-8', name: 'Missouri', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/142.png' },
35
+ { id: 'sec-9', name: 'Ole Miss', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/145.png' },
36
+ { id: 'sec-10', name: 'LSU', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/99.png' },
37
+ { id: 'sec-11', name: 'Vanderbilt', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/238.png' },
38
+ { id: 'sec-12', name: 'Mississippi State', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/344.png' },
39
+ { id: 'sec-13', name: 'South Carolina', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2579.png' },
40
+ { id: 'sec-14', name: 'Georgia', conference: 'SEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/61.png' },
41
+
42
+ // Big Ten (14 teams)
43
+ { id: 'b10-1', name: 'Purdue', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2509.png' },
44
+ { id: 'b10-2', name: 'Michigan State', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/127.png' },
45
+ { id: 'b10-3', name: 'Illinois', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/356.png' },
46
+ { id: 'b10-4', name: 'Wisconsin', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/275.png' },
47
+ { id: 'b10-5', name: 'Michigan', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/130.png' },
48
+ { id: 'b10-6', name: 'Indiana', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/84.png' },
49
+ { id: 'b10-7', name: 'Iowa', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2294.png' },
50
+ { id: 'b10-8', name: 'Ohio State', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/194.png' },
51
+ { id: 'b10-9', name: 'Maryland', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/120.png' },
52
+ { id: 'b10-10', name: 'Northwestern', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/77.png' },
53
+ { id: 'b10-11', name: 'Penn State', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/213.png' },
54
+ { id: 'b10-12', name: 'Rutgers', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/164.png' },
55
+ { id: 'b10-13', name: 'Minnesota', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/135.png' },
56
+ { id: 'b10-14', name: 'Nebraska', conference: 'Big Ten', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/158.png' },
57
+
58
+ // Big 12 (14 teams)
59
+ { id: 'b12-1', name: 'Houston', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/248.png' },
60
+ { id: 'b12-2', name: 'Kansas', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2305.png' },
61
+ { id: 'b12-3', name: 'Iowa State', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/66.png' },
62
+ { id: 'b12-4', name: 'Baylor', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/239.png' },
63
+ { id: 'b12-5', name: 'Texas Tech', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2641.png' },
64
+ { id: 'b12-6', name: 'TCU', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2628.png' },
65
+ { id: 'b12-7', name: 'BYU', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/252.png' },
66
+ { id: 'b12-8', name: 'Kansas State', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2306.png' },
67
+ { id: 'b12-9', name: 'Texas', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/251.png' },
68
+ { id: 'b12-10', name: 'Oklahoma State', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/197.png' },
69
+ { id: 'b12-11', name: 'West Virginia', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/277.png' },
70
+ { id: 'b12-12', name: 'UCF', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2116.png' },
71
+ { id: 'b12-13', name: 'Cincinnati', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2132.png' },
72
+ { id: 'b12-14', name: 'Oklahoma', conference: 'Big 12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/201.png' },
73
+
74
+ // Pac-12 (remaining teams after expansion - now only 4)
75
+ { id: 'p12-1', name: 'Oregon State', conference: 'Pac-12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/204.png' },
76
+ { id: 'p12-2', name: 'Washington State', conference: 'Pac-12', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/265.png' },
77
+
78
+ // Big East (11 teams)
79
+ { id: 'be-1', name: 'UConn', conference: 'Big East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/41.png' },
80
+ { id: 'be-2', name: 'Marquette', conference: 'Big East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/269.png' },
81
+ { id: 'be-3', name: 'Creighton', conference: 'Big East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/156.png' },
82
+ { id: 'be-4', name: 'Villanova', conference: 'Big East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/222.png' },
83
+ { id: 'be-5', name: 'Xavier', conference: 'Big East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2752.png' },
84
+ { id: 'be-6', name: 'St. Johns', conference: 'Big East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2599.png' },
85
+ { id: 'be-7', name: 'Providence', conference: 'Big East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2507.png' },
86
+ { id: 'be-8', name: 'Seton Hall', conference: 'Big East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2550.png' },
87
+ { id: 'be-9', name: 'Butler', conference: 'Big East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2086.png' },
88
+ { id: 'be-10', name: 'Georgetown', conference: 'Big East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/46.png' },
89
+ { id: 'be-11', name: 'DePaul', conference: 'Big East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/305.png' },
90
+
91
+ // American (14 teams)
92
+ { id: 'aac-1', name: 'Memphis', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/235.png' },
93
+ { id: 'aac-2', name: 'SMU', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2567.png' },
94
+ { id: 'aac-3', name: 'Tulane', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2655.png' },
95
+ { id: 'aac-4', name: 'FAU', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2226.png' },
96
+ { id: 'aac-5', name: 'Wichita State', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2724.png' },
97
+ { id: 'aac-6', name: 'Temple', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/218.png' },
98
+ { id: 'aac-7', name: 'UAB', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/5.png' },
99
+ { id: 'aac-8', name: 'South Florida', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/58.png' },
100
+ { id: 'aac-9', name: 'Charlotte', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2429.png' },
101
+ { id: 'aac-10', name: 'Tulsa', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2656.png' },
102
+ { id: 'aac-11', name: 'East Carolina', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/151.png' },
103
+ { id: 'aac-12', name: 'Rice', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/242.png' },
104
+ { id: 'aac-13', name: 'UTSA', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2636.png' },
105
+ { id: 'aac-14', name: 'North Texas', conference: 'American', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/249.png' },
106
+
107
+ // Mountain West (11 teams)
108
+ { id: 'mw-1', name: 'San Diego State', conference: 'Mountain West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/21.png' },
109
+ { id: 'mw-2', name: 'New Mexico', conference: 'Mountain West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/167.png' },
110
+ { id: 'mw-3', name: 'Utah State', conference: 'Mountain West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/328.png' },
111
+ { id: 'mw-4', name: 'UNLV', conference: 'Mountain West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2439.png' },
112
+ { id: 'mw-5', name: 'Boise State', conference: 'Mountain West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/68.png' },
113
+ { id: 'mw-6', name: 'Colorado State', conference: 'Mountain West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/36.png' },
114
+ { id: 'mw-7', name: 'Nevada', conference: 'Mountain West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2440.png' },
115
+ { id: 'mw-8', name: 'Wyoming', conference: 'Mountain West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2751.png' },
116
+ { id: 'mw-9', name: 'Fresno State', conference: 'Mountain West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/278.png' },
117
+ { id: 'mw-10', name: 'Air Force', conference: 'Mountain West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2005.png' },
118
+ { id: 'mw-11', name: 'San Jose State', conference: 'Mountain West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/23.png' },
119
+
120
+ // West Coast (10 teams)
121
+ { id: 'wcc-1', name: 'Gonzaga', conference: 'WCC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2250.png' },
122
+ { id: 'wcc-2', name: 'Saint Marys', conference: 'WCC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2608.png' },
123
+ { id: 'wcc-3', name: 'San Francisco', conference: 'WCC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2539.png' },
124
+ { id: 'wcc-4', name: 'Santa Clara', conference: 'WCC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2541.png' },
125
+ { id: 'wcc-5', name: 'Loyola Marymount', conference: 'WCC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2350.png' },
126
+ { id: 'wcc-6', name: 'Pepperdine', conference: 'WCC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2492.png' },
127
+ { id: 'wcc-7', name: 'Pacific', conference: 'WCC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/279.png' },
128
+ { id: 'wcc-8', name: 'Portland', conference: 'WCC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2501.png' },
129
+ { id: 'wcc-9', name: 'San Diego', conference: 'WCC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2538.png' },
130
+ { id: 'wcc-10', name: 'Oregon', conference: 'WCC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2483.png' },
131
+
132
+ // Atlantic 10 (15 teams)
133
+ { id: 'a10-1', name: 'Dayton', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2168.png' },
134
+ { id: 'a10-2', name: 'VCU', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2670.png' },
135
+ { id: 'a10-3', name: 'Saint Louis', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/139.png' },
136
+ { id: 'a10-4', name: 'Richmond', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/257.png' },
137
+ { id: 'a10-5', name: 'Davidson', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2166.png' },
138
+ { id: 'a10-6', name: 'George Mason', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2244.png' },
139
+ { id: 'a10-7', name: 'St. Bonaventure', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/179.png' },
140
+ { id: 'a10-8', name: 'Rhode Island', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/227.png' },
141
+ { id: 'a10-9', name: 'George Washington', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/45.png' },
142
+ { id: 'a10-10', name: 'UMass', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/113.png' },
143
+ { id: 'a10-11', name: 'La Salle', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2325.png' },
144
+ { id: 'a10-12', name: 'Duquesne', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2184.png' },
145
+ { id: 'a10-13', name: 'Fordham', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2230.png' },
146
+ { id: 'a10-14', name: 'Saint Josephs', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2603.png' },
147
+ { id: 'a10-15', name: 'Loyola Chicago', conference: 'A-10', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2349.png' },
148
+
149
+ // Missouri Valley (12 teams)
150
+ { id: 'mvc-1', name: 'Drake', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2181.png' },
151
+ { id: 'mvc-2', name: 'Bradley', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/71.png' },
152
+ { id: 'mvc-3', name: 'Belmont', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2057.png' },
153
+ { id: 'mvc-4', name: 'Murray State', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/93.png' },
154
+ { id: 'mvc-5', name: 'Missouri State', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2623.png' },
155
+ { id: 'mvc-6', name: 'Indiana State', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/282.png' },
156
+ { id: 'mvc-7', name: 'Northern Iowa', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2460.png' },
157
+ { id: 'mvc-8', name: 'Southern Illinois', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/79.png' },
158
+ { id: 'mvc-9', name: 'Illinois State', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2287.png' },
159
+ { id: 'mvc-10', name: 'Evansville', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/339.png' },
160
+ { id: 'mvc-11', name: 'UIC', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/82.png' },
161
+ { id: 'mvc-12', name: 'Valparaiso', conference: 'MVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2674.png' },
162
+
163
+ // Colonial (13 teams)
164
+ { id: 'caa-1', name: 'Charleston', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/232.png' },
165
+ { id: 'caa-2', name: 'Hofstra', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2275.png' },
166
+ { id: 'caa-3', name: 'UNCW', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/350.png' },
167
+ { id: 'caa-4', name: 'Towson', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/119.png' },
168
+ { id: 'caa-5', name: 'Northeastern', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/111.png' },
169
+ { id: 'caa-6', name: 'Drexel', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2182.png' },
170
+ { id: 'caa-7', name: 'Delaware', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/48.png' },
171
+ { id: 'caa-8', name: 'William & Mary', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2729.png' },
172
+ { id: 'caa-9', name: 'Elon', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2210.png' },
173
+ { id: 'caa-10', name: 'Stony Brook', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2619.png' },
174
+ { id: 'caa-11', name: 'Monmouth', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2405.png' },
175
+ { id: 'caa-12', name: 'Hampton', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2261.png' },
176
+ { id: 'caa-13', name: 'Campbell', conference: 'CAA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2097.png' },
177
+
178
+ // Ivy League (8 teams)
179
+ { id: 'ivy-1', name: 'Princeton', conference: 'Ivy', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/163.png' },
180
+ { id: 'ivy-2', name: 'Yale', conference: 'Ivy', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/43.png' },
181
+ { id: 'ivy-3', name: 'Cornell', conference: 'Ivy', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/172.png' },
182
+ { id: 'ivy-4', name: 'Penn', conference: 'Ivy', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/219.png' },
183
+ { id: 'ivy-5', name: 'Brown', conference: 'Ivy', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/225.png' },
184
+ { id: 'ivy-6', name: 'Harvard', conference: 'Ivy', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/108.png' },
185
+ { id: 'ivy-7', name: 'Columbia', conference: 'Ivy', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/171.png' },
186
+ { id: 'ivy-8', name: 'Dartmouth', conference: 'Ivy', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/159.png' },
187
+
188
+ // Southern (10 teams)
189
+ { id: 'socon-1', name: 'Furman', conference: 'SoCon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/231.png' },
190
+ { id: 'socon-2', name: 'Chattanooga', conference: 'SoCon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/236.png' },
191
+ { id: 'socon-3', name: 'ETSU', conference: 'SoCon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2193.png' },
192
+ { id: 'socon-4', name: 'Samford', conference: 'SoCon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2534.png' },
193
+ { id: 'socon-5', name: 'UNC Greensboro', conference: 'SoCon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2430.png' },
194
+ { id: 'socon-6', name: 'Wofford', conference: 'SoCon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2747.png' },
195
+ { id: 'socon-7', name: 'Mercer', conference: 'SoCon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2382.png' },
196
+ { id: 'socon-8', name: 'Western Carolina', conference: 'SoCon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2717.png' },
197
+ { id: 'socon-9', name: 'The Citadel', conference: 'SoCon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2643.png' },
198
+ { id: 'socon-10', name: 'VMI', conference: 'SoCon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2678.png' },
199
+
200
+ // Conference USA (10 teams)
201
+ { id: 'cusa-1', name: 'Liberty', conference: 'CUSA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2335.png' },
202
+ { id: 'cusa-2', name: 'New Mexico State', conference: 'CUSA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/166.png' },
203
+ { id: 'cusa-3', name: 'Jacksonville State', conference: 'CUSA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/55.png' },
204
+ { id: 'cusa-4', name: 'Sam Houston', conference: 'CUSA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2534.png' },
205
+ { id: 'cusa-5', name: 'Western Kentucky', conference: 'CUSA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/98.png' },
206
+ { id: 'cusa-6', name: 'Louisiana Tech', conference: 'CUSA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2348.png' },
207
+ { id: 'cusa-7', name: 'FIU', conference: 'CUSA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2229.png' },
208
+ { id: 'cusa-8', name: 'Middle Tennessee', conference: 'CUSA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2393.png' },
209
+ { id: 'cusa-9', name: 'UTEP', conference: 'CUSA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2638.png' },
210
+ { id: 'cusa-10', name: 'Kennesaw State', conference: 'CUSA', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/338.png' },
211
+
212
+ // Sun Belt (14 teams)
213
+ { id: 'sbc-1', name: 'James Madison', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/256.png' },
214
+ { id: 'sbc-2', name: 'App State', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2026.png' },
215
+ { id: 'sbc-3', name: 'Georgia State', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2247.png' },
216
+ { id: 'sbc-4', name: 'Old Dominion', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/295.png' },
217
+ { id: 'sbc-5', name: 'Marshall', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/276.png' },
218
+ { id: 'sbc-6', name: 'Southern Miss', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2572.png' },
219
+ { id: 'sbc-7', name: 'Texas State', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/326.png' },
220
+ { id: 'sbc-8', name: 'Arkansas State', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2032.png' },
221
+ { id: 'sbc-9', name: 'Coastal Carolina', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/324.png' },
222
+ { id: 'sbc-10', name: 'Troy', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2653.png' },
223
+ { id: 'sbc-11', name: 'UL Monroe', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2433.png' },
224
+ { id: 'sbc-12', name: 'Louisiana', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/309.png' },
225
+ { id: 'sbc-13', name: 'South Alabama', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/6.png' },
226
+ { id: 'sbc-14', name: 'Georgia Southern', conference: 'Sun Belt', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/290.png' },
227
+
228
+ // Horizon League (12 teams)
229
+ { id: 'hl-1', name: 'Oakland', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2473.png' },
230
+ { id: 'hl-2', name: 'Cleveland State', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2146.png' },
231
+ { id: 'hl-3', name: 'Milwaukee', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/270.png' },
232
+ { id: 'hl-4', name: 'Wright State', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2750.png' },
233
+ { id: 'hl-5', name: 'Northern Kentucky', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/94.png' },
234
+ { id: 'hl-6', name: 'Youngstown State', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2754.png' },
235
+ { id: 'hl-7', name: 'Detroit Mercy', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2174.png' },
236
+ { id: 'hl-8', name: 'IUPUI', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/85.png' },
237
+ { id: 'hl-9', name: 'Green Bay', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2739.png' },
238
+ { id: 'hl-10', name: 'Robert Morris', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2523.png' },
239
+ { id: 'hl-11', name: 'Purdue Fort Wayne', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2870.png' },
240
+ { id: 'hl-12', name: 'IU Indy', conference: 'Horizon', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/85.png' },
241
+
242
+ // Mid-American (12 teams)
243
+ { id: 'mac-1', name: 'Toledo', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2649.png' },
244
+ { id: 'mac-2', name: 'Akron', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2006.png' },
245
+ { id: 'mac-3', name: 'Kent State', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2309.png' },
246
+ { id: 'mac-4', name: 'Ohio', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/195.png' },
247
+ { id: 'mac-5', name: 'Buffalo', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2084.png' },
248
+ { id: 'mac-6', name: 'Bowling Green', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/189.png' },
249
+ { id: 'mac-7', name: 'Miami (OH)', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/193.png' },
250
+ { id: 'mac-8', name: 'Ball State', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2050.png' },
251
+ { id: 'mac-9', name: 'Central Michigan', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2117.png' },
252
+ { id: 'mac-10', name: 'Eastern Michigan', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2199.png' },
253
+ { id: 'mac-11', name: 'Western Michigan', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2711.png' },
254
+ { id: 'mac-12', name: 'Northern Illinois', conference: 'MAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2459.png' },
255
+
256
+ // SWAC (12 teams)
257
+ { id: 'swac-1', name: 'Texas Southern', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2640.png' },
258
+ { id: 'swac-2', name: 'Grambling', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2755.png' },
259
+ { id: 'swac-3', name: 'Southern', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2582.png' },
260
+ { id: 'swac-4', name: 'Prairie View', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2504.png' },
261
+ { id: 'swac-5', name: 'Alcorn State', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2010.png' },
262
+ { id: 'swac-6', name: 'Jackson State', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2296.png' },
263
+ { id: 'swac-7', name: 'Alabama State', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2011.png' },
264
+ { id: 'swac-8', name: 'Alabama A&M', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2010.png' },
265
+ { id: 'swac-9', name: 'Bethune-Cookman', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2065.png' },
266
+ { id: 'swac-10', name: 'Florida A&M', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/50.png' },
267
+ { id: 'swac-11', name: 'Arkansas-Pine Bluff', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2029.png' },
268
+ { id: 'swac-12', name: 'Mississippi Valley State', conference: 'SWAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2400.png' },
269
+
270
+ // MEAC (8 teams)
271
+ { id: 'meac-1', name: 'Norfolk State', conference: 'MEAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2450.png' },
272
+ { id: 'meac-2', name: 'Howard', conference: 'MEAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/47.png' },
273
+ { id: 'meac-3', name: 'Coppin State', conference: 'MEAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2154.png' },
274
+ { id: 'meac-4', name: 'Morgan State', conference: 'MEAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2410.png' },
275
+ { id: 'meac-5', name: 'Delaware State', conference: 'MEAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2169.png' },
276
+ { id: 'meac-6', name: 'South Carolina State', conference: 'MEAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2569.png' },
277
+ { id: 'meac-7', name: 'Maryland Eastern Shore', conference: 'MEAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2379.png' },
278
+ { id: 'meac-8', name: 'NC Central', conference: 'MEAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2428.png' },
279
+
280
+ // Big Sky (11 teams)
281
+ { id: 'bsky-1', name: 'Montana State', conference: 'Big Sky', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/149.png' },
282
+ { id: 'bsky-2', name: 'Montana', conference: 'Big Sky', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/149.png' },
283
+ { id: 'bsky-3', name: 'Weber State', conference: 'Big Sky', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2692.png' },
284
+ { id: 'bsky-4', name: 'Eastern Washington', conference: 'Big Sky', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/331.png' },
285
+ { id: 'bsky-5', name: 'Northern Arizona', conference: 'Big Sky', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2464.png' },
286
+ { id: 'bsky-6', name: 'Sacramento State', conference: 'Big Sky', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/16.png' },
287
+ { id: 'bsky-7', name: 'Portland State', conference: 'Big Sky', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2502.png' },
288
+ { id: 'bsky-8', name: 'Northern Colorado', conference: 'Big Sky', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2458.png' },
289
+ { id: 'bsky-9', name: 'Idaho State', conference: 'Big Sky', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/304.png' },
290
+ { id: 'bsky-10', name: 'Idaho', conference: 'Big Sky', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/70.png' },
291
+ { id: 'bsky-11', name: 'Cal Poly', conference: 'Big Sky', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/13.png' },
292
+
293
+ // Ohio Valley (9 teams)
294
+ { id: 'ovc-1', name: 'Little Rock', conference: 'OVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2031.png' },
295
+ { id: 'ovc-2', name: 'Southeast Missouri State', conference: 'OVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2546.png' },
296
+ { id: 'ovc-3', name: 'Morehead State', conference: 'OVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2413.png' },
297
+ { id: 'ovc-4', name: 'SIU Edwardsville', conference: 'OVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2565.png' },
298
+ { id: 'ovc-5', name: 'Tennessee State', conference: 'OVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2634.png' },
299
+ { id: 'ovc-6', name: 'Tennessee Tech', conference: 'OVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2635.png' },
300
+ { id: 'ovc-7', name: 'UT Martin', conference: 'OVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2630.png' },
301
+ { id: 'ovc-8', name: 'Eastern Illinois', conference: 'OVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2197.png' },
302
+ { id: 'ovc-9', name: 'Lindenwood', conference: 'OVC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2815.png' },
303
+
304
+ // Summit League (9 teams)
305
+ { id: 'sum-1', name: 'South Dakota State', conference: 'Summit', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2571.png' },
306
+ { id: 'sum-2', name: 'Oral Roberts', conference: 'Summit', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/198.png' },
307
+ { id: 'sum-3', name: 'South Dakota', conference: 'Summit', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/233.png' },
308
+ { id: 'sum-4', name: 'North Dakota State', conference: 'Summit', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2449.png' },
309
+ { id: 'sum-5', name: 'North Dakota', conference: 'Summit', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/155.png' },
310
+ { id: 'sum-6', name: 'Omaha', conference: 'Summit', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2437.png' },
311
+ { id: 'sum-7', name: 'Kansas City', conference: 'Summit', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/140.png' },
312
+ { id: 'sum-8', name: 'Denver', conference: 'Summit', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2172.png' },
313
+ { id: 'sum-9', name: 'St. Thomas (MN)', conference: 'Summit', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2900.png' },
314
+
315
+ // America East (9 teams)
316
+ { id: 'ae-1', name: 'Vermont', conference: 'America East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/261.png' },
317
+ { id: 'ae-2', name: 'Bryant', conference: 'America East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2803.png' },
318
+ { id: 'ae-3', name: 'UMBC', conference: 'America East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2378.png' },
319
+ { id: 'ae-4', name: 'New Hampshire', conference: 'America East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/160.png' },
320
+ { id: 'ae-5', name: 'UMass Lowell', conference: 'America East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2349.png' },
321
+ { id: 'ae-6', name: 'Albany', conference: 'America East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/399.png' },
322
+ { id: 'ae-7', name: 'Maine', conference: 'America East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/311.png' },
323
+ { id: 'ae-8', name: 'Binghamton', conference: 'America East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2066.png' },
324
+ { id: 'ae-9', name: 'NJIT', conference: 'America East', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2885.png' },
325
+
326
+ // Northeast (8 teams)
327
+ { id: 'nec-1', name: 'Merrimack', conference: 'NEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2771.png' },
328
+ { id: 'nec-2', name: 'Wagner', conference: 'NEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2681.png' },
329
+ { id: 'nec-3', name: 'FDU', conference: 'NEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/161.png' },
330
+ { id: 'nec-4', name: 'Long Island', conference: 'NEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2344.png' },
331
+ { id: 'nec-5', name: 'Mount St. Marys', conference: 'NEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/116.png' },
332
+ { id: 'nec-6', name: 'Sacred Heart', conference: 'NEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2529.png' },
333
+ { id: 'nec-7', name: 'Central Connecticut', conference: 'NEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2115.png' },
334
+ { id: 'nec-8', name: 'Stonehill', conference: 'NEC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2901.png' },
335
+
336
+ // ASUN (13 teams)
337
+ { id: 'asun-1', name: 'Florida Gulf Coast', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/526.png' },
338
+ { id: 'asun-2', name: 'Stetson', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/56.png' },
339
+ { id: 'asun-3', name: 'Queens', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2866.png' },
340
+ { id: 'asun-4', name: 'Eastern Kentucky', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2198.png' },
341
+ { id: 'asun-5', name: 'North Florida', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2454.png' },
342
+ { id: 'asun-6', name: 'Jacksonville', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/294.png' },
343
+ { id: 'asun-7', name: 'Austin Peay', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2046.png' },
344
+ { id: 'asun-8', name: 'Central Arkansas', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2110.png' },
345
+ { id: 'asun-9', name: 'Lipscomb', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/288.png' },
346
+ { id: 'asun-10', name: 'North Alabama', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2453.png' },
347
+ { id: 'asun-11', name: 'Bellarmine', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/91.png' },
348
+ { id: 'asun-12', name: 'West Georgia', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2904.png' },
349
+ { id: 'asun-13', name: 'Southern Indiana', conference: 'ASUN', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2902.png' },
350
+
351
+ // Patriot League (9 teams)
352
+ { id: 'pat-1', name: 'Colgate', conference: 'Patriot', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2142.png' },
353
+ { id: 'pat-2', name: 'Navy', conference: 'Patriot', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2426.png' },
354
+ { id: 'pat-3', name: 'Lehigh', conference: 'Patriot', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2329.png' },
355
+ { id: 'pat-4', name: 'Bucknell', conference: 'Patriot', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2083.png' },
356
+ { id: 'pat-5', name: 'Holy Cross', conference: 'Patriot', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/107.png' },
357
+ { id: 'pat-6', name: 'Lafayette', conference: 'Patriot', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/322.png' },
358
+ { id: 'pat-7', name: 'American', conference: 'Patriot', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/44.png' },
359
+ { id: 'pat-8', name: 'Army', conference: 'Patriot', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/349.png' },
360
+ { id: 'pat-9', name: 'Boston U', conference: 'Patriot', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/104.png' },
361
+
362
+ // Southland (10 teams)
363
+ { id: 'sland-1', name: 'McNeese', conference: 'Southland', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2377.png' },
364
+ { id: 'sland-2', name: 'Nicholls', conference: 'Southland', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2447.png' },
365
+ { id: 'sland-3', name: 'Southeastern Louisiana', conference: 'Southland', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2545.png' },
366
+ { id: 'sland-4', name: 'Northwestern State', conference: 'Southland', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2466.png' },
367
+ { id: 'sland-5', name: 'Incarnate Word', conference: 'Southland', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2916.png' },
368
+ { id: 'sland-6', name: 'Houston Christian', conference: 'Southland', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2277.png' },
369
+ { id: 'sland-7', name: 'Texas A&M-Commerce', conference: 'Southland', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2904.png' },
370
+ { id: 'sland-8', name: 'Texas A&M-CC', conference: 'Southland', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/357.png' },
371
+ { id: 'sland-9', name: 'Lamar', conference: 'Southland', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2320.png' },
372
+ { id: 'sland-10', name: 'New Orleans', conference: 'Southland', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2443.png' },
373
+
374
+ // Big West (11 teams)
375
+ { id: 'bw-1', name: 'UC Irvine', conference: 'Big West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/300.png' },
376
+ { id: 'bw-2', name: 'UC Santa Barbara', conference: 'Big West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2540.png' },
377
+ { id: 'bw-3', name: 'UC Davis', conference: 'Big West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/302.png' },
378
+ { id: 'bw-4', name: 'Long Beach State', conference: 'Big West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/299.png' },
379
+ { id: 'bw-5', name: 'Hawaii', conference: 'Big West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/62.png' },
380
+ { id: 'bw-6', name: 'Cal State Fullerton', conference: 'Big West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2239.png' },
381
+ { id: 'bw-7', name: 'Cal State Northridge', conference: 'Big West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2463.png' },
382
+ { id: 'bw-8', name: 'UC San Diego', conference: 'Big West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/301.png' },
383
+ { id: 'bw-9', name: 'UC Riverside', conference: 'Big West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/27.png' },
384
+ { id: 'bw-10', name: 'Cal State Bakersfield', conference: 'Big West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2934.png' },
385
+ { id: 'bw-11', name: 'Cal Poly', conference: 'Big West', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/13.png' },
386
+
387
+ // WAC (9 teams)
388
+ { id: 'wac-1', name: 'Grand Canyon', conference: 'WAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2253.png' },
389
+ { id: 'wac-2', name: 'Seattle U', conference: 'WAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2547.png' },
390
+ { id: 'wac-3', name: 'Utah Valley', conference: 'WAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/3084.png' },
391
+ { id: 'wac-4', name: 'Abilene Christian', conference: 'WAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2000.png' },
392
+ { id: 'wac-5', name: 'Tarleton State', conference: 'WAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2626.png' },
393
+ { id: 'wac-6', name: 'Stephen F. Austin', conference: 'WAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/2617.png' },
394
+ { id: 'wac-7', name: 'Utah Tech', conference: 'WAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/253.png' },
395
+ { id: 'wac-8', name: 'Southern Utah', conference: 'WAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/253.png' },
396
+ { id: 'wac-9', name: 'UT Arlington', conference: 'WAC', logo: 'https://a.espncdn.com/i/teamlogos/ncaa/500/250.png' },
397
+ ];
398
+
399
+ // Get all unique conferences
400
+ const CONFERENCES = [...new Set(NCAA_TEAMS.map(t => t.conference))].sort();
401
+
402
+ module.exports = {
403
+ NCAA_TEAMS,
404
+ CONFERENCES,
405
+ TEAM_COUNT: NCAA_TEAMS.length
406
+ };