--- /dev/null
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE TypeFamilies #-}
+
+-- | Parse TSN XML for the DTD
+-- \"Auto_Racing_Schedule_XML.dtd\". There's a top-level
+-- \<message\>, containing \<Listing\>s, containing \<RaceResults\>,
+-- containing \<RaceResultsListing\>s.
+--
+module TSN.XML.AutoRacingSchedule (
+ pickle_message,
+ -- * Tests
+ auto_racing_schedule_tests,
+ -- * WARNING: these are private but exported to silence warnings
+ AutoRacingScheduleConstructor(..),
+ AutoRacingScheduleListingConstructor(..),
+ AutoRacingScheduleListingRaceResultRaceResultListingConstructor(..) )
+where
+
+-- System imports.
+import Control.Monad ( forM_ )
+import Data.Time ( UTCTime(..) )
+import Data.Tuple.Curry ( uncurryN )
+import Database.Groundhog (
+ countAll,
+ executeRaw,
+ migrate,
+ runMigration,
+ silentMigrationLogger )
+import Database.Groundhog.Core ( DefaultKey )
+import Database.Groundhog.Generic ( runDbConn )
+import Database.Groundhog.Sqlite ( withSqliteConn )
+import Database.Groundhog.TH (
+ groundhog,
+ mkPersist )
+import Test.Tasty ( TestTree, testGroup )
+import Test.Tasty.HUnit ( (@?=), testCase )
+import Text.XML.HXT.Core (
+ PU,
+ xp7Tuple,
+ xp8Tuple,
+ xp10Tuple,
+ xpElem,
+ xpInt,
+ xpList,
+ xpOption,
+ xpText,
+ xpWrap )
+
+-- Local imports.
+import TSN.Codegen (
+ tsn_codegen_config )
+import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate )
+import TSN.Picklers ( xp_date, xp_tba_time, xp_time_stamp )
+import TSN.XmlImport ( XmlImport(..), XmlImportFk(..) )
+import Xml (
+ FromXml(..),
+ FromXmlFk(..),
+ ToDb(..),
+ pickle_unpickle,
+ unpickleable,
+ unsafe_unpickle )
+
+
+--
+-- DB/XML data types
+--
+
+-- * AutoRacingSchedule/Message
+
+-- | Database representation of a 'Message'.
+--
+data AutoRacingSchedule =
+ AutoRacingSchedule {
+ db_xml_file_id :: Int,
+ db_heading :: String,
+ db_category :: String,
+ db_sport :: String,
+ db_title :: String,
+ db_complete_through :: String,
+ db_time_stamp :: UTCTime }
+ deriving (Eq, Show)
+
+
+-- | XML Representation of an 'AutoRacingSchedule'.
+--
+data Message =
+ Message {
+ xml_xml_file_id :: Int,
+ xml_heading :: String,
+ xml_category :: String,
+ xml_sport :: String,
+ xml_title :: String,
+ xml_complete_through :: String,
+ xml_listings :: [AutoRacingScheduleListingXml],
+ xml_time_stamp :: UTCTime }
+ deriving (Eq, Show)
+
+instance ToDb Message where
+ type Db Message = AutoRacingSchedule
+
+instance FromXml Message where
+ from_xml Message{..} =
+ AutoRacingSchedule {
+ db_xml_file_id = xml_xml_file_id,
+ db_heading = xml_heading,
+ db_category = xml_category,
+ db_sport = xml_sport,
+ db_title = xml_title,
+ db_complete_through = xml_complete_through,
+ db_time_stamp = xml_time_stamp }
+
+instance XmlImport Message
+
+
+-- * AutoRacingScheduleListing/AutoRacingScheduleListingXml
+
+-- | Database representation of a \<Listing\> contained within a
+-- \<Message\>. We combine the race date/time into a single
+-- race_time, drop the race results list, and add a foreign key to
+-- our parent.
+data AutoRacingScheduleListing =
+ AutoRacingScheduleListing {
+ db_auto_racing_schedules_id :: DefaultKey AutoRacingSchedule,
+ db_race_id :: Int,
+ db_race_time :: UTCTime,
+ db_race_name :: String,
+ db_track_name :: String,
+ db_location :: String,
+ db_tv_listing :: Maybe String,
+ db_laps :: Int,
+ db_track_length :: String -- ^ Sometimes the word "miles" shows up.
+ }
+
+-- | XML representation of a \<Listing\> contained within a
+-- \<message\>.
+--
+data AutoRacingScheduleListingXml =
+ AutoRacingScheduleListingXml {
+ xml_race_id :: Int,
+ xml_race_date :: UTCTime,
+ xml_race_time :: Maybe UTCTime,
+ xml_race_name :: String,
+ xml_track_name :: String,
+ xml_location :: String,
+ xml_tv_listing :: Maybe String,
+ xml_laps :: Int,
+ xml_track_length :: String, -- ^ Sometimes the word \"miles\" shows up.
+ xml_race_results :: [AutoRacingScheduleListingRaceResult] }
+ deriving (Eq, Show)
+
+-- | Pseudo-accessor to get the race result listings out of a
+-- 'AutoRacingScheduleListingXml'.
+result_listings :: AutoRacingScheduleListingXml
+ -> [AutoRacingScheduleListingRaceResultRaceResultListingXml]
+result_listings = (concatMap xml_race_result_listing) . xml_race_results
+
+
+instance ToDb AutoRacingScheduleListingXml where
+ type Db AutoRacingScheduleListingXml = AutoRacingScheduleListing
+
+instance FromXmlFk AutoRacingScheduleListingXml where
+ type Parent AutoRacingScheduleListingXml = AutoRacingSchedule
+
+ from_xml_fk fk AutoRacingScheduleListingXml{..} =
+ AutoRacingScheduleListing {
+ db_auto_racing_schedules_id = fk,
+ db_race_id = xml_race_id,
+ db_race_time = make_race_time xml_race_date xml_race_time,
+ db_race_name = xml_race_name,
+ db_track_name = xml_track_name,
+ db_location = xml_location,
+ db_tv_listing = xml_tv_listing,
+ db_laps = xml_laps,
+ db_track_length = xml_track_length }
+ where
+ -- Take the day part from one, the time from the other.
+ make_race_time d Nothing = d
+ make_race_time d (Just t) = UTCTime (utctDay d) (utctDayTime t)
+
+instance XmlImportFk AutoRacingScheduleListingXml
+
+-- * AutoRacingScheduleListingRaceResult
+
+-- | The XML representation of \<message\> -> \<Listing\> ->
+-- \<RaceResults\>. This element serves only to contain
+-- \<RaceResultsListing\>s, so we don't store the intermediate table
+-- in the database.
+--
+newtype AutoRacingScheduleListingRaceResult =
+ AutoRacingScheduleListingRaceResult {
+ xml_race_result_listing ::
+ [AutoRacingScheduleListingRaceResultRaceResultListingXml] }
+ deriving (Eq, Show)
+
+-- * AutoRacingScheduleListingRaceResultRaceResultListing /
+-- AutoRacingScheduleListingRaceResultRaceResultListingXml
+
+data AutoRacingScheduleListingRaceResultRaceResultListing =
+ AutoRacingScheduleListingRaceResultRaceResultListing {
+ db_auto_racing_schedules_listings_id ::
+ DefaultKey AutoRacingScheduleListing,
+ db_finish_position :: Int,
+ db_driver_id :: Int,
+ db_name :: String,
+ db_leading_laps :: Int,
+ db_listing_laps :: Int, -- Avoid clash with race's "laps" field.
+ db_earnings :: String, -- Should be an int, but they use commas.
+ db_status :: String }
+
+data AutoRacingScheduleListingRaceResultRaceResultListingXml =
+ AutoRacingScheduleListingRaceResultRaceResultListingXml {
+ xml_finish_position :: Int,
+ xml_driver_id :: Int,
+ xml_name :: String,
+ xml_leading_laps :: Int,
+ xml_listing_laps :: Int, -- Avoid clash with race's "laps" field.
+ xml_earnings :: String, -- Should be an int, but they use commas.
+ xml_status :: String }
+ deriving (Eq, Show)
+
+instance ToDb AutoRacingScheduleListingRaceResultRaceResultListingXml where
+ type Db AutoRacingScheduleListingRaceResultRaceResultListingXml =
+ AutoRacingScheduleListingRaceResultRaceResultListing
+
+instance FromXmlFk AutoRacingScheduleListingRaceResultRaceResultListingXml where
+ type Parent AutoRacingScheduleListingRaceResultRaceResultListingXml =
+ AutoRacingScheduleListing
+
+ from_xml_fk fk AutoRacingScheduleListingRaceResultRaceResultListingXml{..} =
+ AutoRacingScheduleListingRaceResultRaceResultListing {
+ db_auto_racing_schedules_listings_id = fk,
+ db_finish_position = xml_finish_position,
+ db_driver_id = xml_driver_id,
+ db_name = xml_name,
+ db_leading_laps = xml_leading_laps,
+ db_listing_laps = xml_listing_laps,
+ db_earnings = xml_earnings,
+ db_status = xml_earnings }
+
+instance XmlImportFk AutoRacingScheduleListingRaceResultRaceResultListingXml
+
+---
+--- Database stuff.
+---
+
+instance DbImport Message where
+ dbmigrate _ =
+ run_dbmigrate $ do
+ migrate (undefined :: AutoRacingSchedule)
+ migrate (undefined :: AutoRacingScheduleListing)
+ migrate (undefined
+ :: AutoRacingScheduleListingRaceResultRaceResultListing)
+
+ dbimport m = do
+ msg_id <- insert_xml m
+
+ forM_ (xml_listings m) $ \listing -> do
+ listing_id <- insert_xml_fk msg_id listing
+
+ mapM_ (insert_xml_fk_ listing_id) (result_listings listing)
+
+ return ImportSucceeded
+
+
+mkPersist tsn_codegen_config [groundhog|
+- entity: AutoRacingSchedule
+ dbName: auto_racing_schedules
+ constructors:
+ - name: AutoRacingSchedule
+ uniques:
+ - name: unique_auto_racing_schedule
+ type: constraint
+ # Prevent multiple imports of the same message.
+ fields: [db_xml_file_id]
+
+- entity: AutoRacingScheduleListing
+ dbName: auto_racing_schedules_listings
+ constructors:
+ - name: AutoRacingScheduleListing
+ fields:
+ - name: db_auto_racing_schedules_id
+ reference:
+ onDelete: cascade
+
+- entity: AutoRacingScheduleListingRaceResultRaceResultListing
+ dbName: auto_racing_schedules_listings_race_result_listings
+ constructors:
+ - name: AutoRacingScheduleListingRaceResultRaceResultListing
+ fields:
+ - name: db_auto_racing_schedules_listings_id
+ reference:
+ onDelete: cascade
+|]
+
+
+
+---
+--- Pickling
+---
+
+-- | Pickler for the top-level 'Message'.
+--
+pickle_message :: PU Message
+pickle_message =
+ xpElem "message" $
+ xpWrap (from_tuple, to_tuple) $
+ xp8Tuple (xpElem "XML_File_ID" xpInt)
+ (xpElem "heading" xpText)
+ (xpElem "category" xpText)
+ (xpElem "sport" xpText)
+ (xpElem "Title" xpText)
+ (xpElem "Complete_Through" xpText)
+ (xpList pickle_listing)
+ (xpElem "time_stamp" xp_time_stamp)
+ where
+ from_tuple = uncurryN Message
+ to_tuple m = (xml_xml_file_id m,
+ xml_heading m,
+ xml_category m,
+ xml_sport m,
+ xml_title m,
+ xml_complete_through m,
+ xml_listings m,
+ xml_time_stamp m)
+
+
+pickle_listing :: PU AutoRacingScheduleListingXml
+pickle_listing =
+ xpElem "Listing" $
+ xpWrap (from_tuple, to_tuple) $
+ xp10Tuple (xpElem "RaceID" xpInt)
+ (xpElem "Race_Date" xp_date)
+ (xpElem "Race_Time" xp_tba_time)
+ (xpElem "RaceName" xpText)
+ (xpElem "TrackName" xpText)
+ (xpElem "Location" xpText)
+ (xpElem "TV_Listing" $ xpOption xpText)
+ (xpElem "Laps" xpInt)
+ (xpElem "TrackLength" xpText)
+ (xpList pickle_race_results)
+ where
+ from_tuple = uncurryN AutoRacingScheduleListingXml
+ to_tuple m = (xml_race_id m,
+ xml_race_date m,
+ xml_race_time m,
+ xml_race_name m,
+ xml_track_name m,
+ xml_location m,
+ xml_tv_listing m,
+ xml_laps m,
+ xml_track_length m,
+ xml_race_results m)
+
+pickle_race_results :: PU AutoRacingScheduleListingRaceResult
+pickle_race_results =
+ xpElem "RaceResults" $
+ xpWrap (to_result, from_result) $
+ xpList pickle_race_results_listing
+ where
+ to_result = AutoRacingScheduleListingRaceResult
+ from_result = xml_race_result_listing
+
+pickle_race_results_listing ::
+ PU AutoRacingScheduleListingRaceResultRaceResultListingXml
+pickle_race_results_listing =
+ xpElem "RaceResultsListing" $
+ xpWrap (from_tuple, to_tuple) $
+ xp7Tuple (xpElem "FinishPosition" xpInt)
+ (xpElem "DriverID" xpInt)
+ (xpElem "Name" xpText)
+ (xpElem "LeadingLaps" xpInt)
+ (xpElem "Laps" xpInt)
+ (xpElem "Earnings" xpText)
+ (xpElem "Status" xpText)
+ where
+ from_tuple =
+ uncurryN AutoRacingScheduleListingRaceResultRaceResultListingXml
+
+ to_tuple m = (xml_finish_position m,
+ xml_driver_id m,
+ xml_name m,
+ xml_leading_laps m,
+ xml_listing_laps m,
+ xml_earnings m,
+ xml_status m)
+
+
+--
+-- Tasty Tests
+--
+
+-- | A list of all tests for this module.
+--
+auto_racing_schedule_tests :: TestTree
+auto_racing_schedule_tests =
+ testGroup
+ "AutoRacingSchedule tests"
+ [ test_on_delete_cascade,
+ test_pickle_of_unpickle_is_identity,
+ test_unpickle_succeeds ]
+
+-- | If we unpickle something and then pickle it, we should wind up
+-- with the same thing we started with. WARNING: success of this
+-- test does not mean that unpickling succeeded.
+--
+test_pickle_of_unpickle_is_identity :: TestTree
+test_pickle_of_unpickle_is_identity = testGroup "pickle-unpickle tests"
+ [ check "pickle composed with unpickle is the identity"
+ "test/xml/Auto_Racing_Schedule_XML.xml",
+
+ check "pickle composed with unpickle is the identity (miles track length)"
+ "test/xml/Auto_Racing_Schedule_XML-miles-track-length.xml" ]
+ where
+ check desc path = testCase desc $ do
+ (expected, actual) <- pickle_unpickle pickle_message path
+ actual @?= expected
+
+
+-- | Make sure we can actually unpickle these things.
+--
+test_unpickle_succeeds :: TestTree
+test_unpickle_succeeds = testGroup "unpickle tests"
+ [ check "unpickling succeeds"
+ "test/xml/Auto_Racing_Schedule_XML.xml",
+
+ check "unpickling succeeds (non-int team_id)"
+ "test/xml/Auto_Racing_Schedule_XML-miles-track-length.xml" ]
+ where
+ check desc path = testCase desc $ do
+ actual <- unpickleable path pickle_message
+ let expected = True
+ actual @?= expected
+
+
+-- | Make sure everything gets deleted when we delete the top-level
+-- record.
+--
+test_on_delete_cascade :: TestTree
+test_on_delete_cascade = testGroup "cascading delete tests"
+ [ check "deleting auto_racing_schedules deletes its children"
+ "test/xml/Auto_Racing_Schedule_XML.xml" ,
+
+ check ("deleting auto_racing_schedules deletes its children " ++
+ "(miles track length)")
+ "test/xml/Auto_Racing_Schedule_XML-miles-track-length.xml" ]
+ where
+ check desc path = testCase desc $ do
+ sched <- unsafe_unpickle path pickle_message
+ let a = undefined :: AutoRacingSchedule
+ let b = undefined :: AutoRacingScheduleListing
+ let c = undefined :: AutoRacingScheduleListingRaceResultRaceResultListing
+
+ actual <- withSqliteConn ":memory:" $ runDbConn $ do
+ runMigration silentMigrationLogger $ do
+ migrate a
+ migrate b
+ migrate c
+ _ <- dbimport sched
+ -- No idea how 'delete' works, so do this instead.
+ executeRaw False "DELETE FROM auto_racing_schedules;" []
+ count_a <- countAll a
+ count_b <- countAll b
+ count_c <- countAll c
+ return $ sum [count_a, count_b, count_c]
+ let expected = 0
+ actual @?= expected
--- /dev/null
+<?xml version="1.0" standalone="no" ?>\r<!DOCTYPE message PUBLIC "-//TSN//DTD Leader 1.0/EN" "Auto_Racing_Schedule_XML.dtd">\r<message>\r<XML_File_ID>20136714</XML_File_ID>\r<heading>BFX%SCHEDULE</heading>\r<category>Statistics</category>\r<sport>NASCAR</sport>\r<Title>2013 NASCAR Sprint Cup Schedule</Title>\r<Complete_Through>Complete through </Complete_Through>\r<Listing>\r<RaceID>1492</RaceID>\r<Race_Date>02/16/2013</Race_Date>\r<Race_Time>08:10 PM</Race_Time>\r<RaceName>Sprint Unlimited at Daytona</RaceName>\r<TrackName>Daytona International Speedway</TrackName>\r<Location>Daytona Beach, FL</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>75</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>40</LeadingLaps>\r<Laps>75</Laps>\r<Earnings>205,075</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>75</Laps>\r<Earnings>101,325</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>75</Laps>\r<Earnings>61,325</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>5</LeadingLaps>\r<Laps>75</Laps>\r<Earnings>52,325</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>26</LeadingLaps>\r<Laps>75</Laps>\r<Earnings>51,300</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1493</RaceID>\r<Race_Date>02/21/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>Budweiser Duel 1</RaceName>\r<TrackName>Daytona International Speedway</TrackName>\r<Location>Daytona Beach, FL</Location>\r<TV_Listing>SPEED</TV_Listing>\r<Laps>60</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>23</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>57,792</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>42,789</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>59</DriverID>\r<Name>Juan Pablo Montoya</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>37,789</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>23,789</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>30,789</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1494</RaceID>\r<Race_Date>02/21/2013</Race_Date>\r<Race_Time>04:00 PM</Race_Time>\r<RaceName>Budweiser Duel 2</RaceName>\r<TrackName>Daytona International Speedway</TrackName>\r<Location>Daytona Beach, FL</Location>\r<TV_Listing>SPEED</TV_Listing>\r<Laps>60</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>19</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>58,977</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>43,963</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1321</DriverID>\r<Name>Austin Dillon</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>38,963</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>33,963</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>60</Laps>\r<Earnings>31,963</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1495</RaceID>\r<Race_Date>02/24/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Daytona 500</RaceName>\r<TrackName>Daytona International Speedway</TrackName>\r<Location>Daytona Beach, FL</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>200</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>17</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>1,525,275</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>1,104,814</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>32</DriverID>\r<Name>Mark Martin</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>817,013</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>13</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>707,855</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>578,471</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1496</RaceID>\r<Race_Date>03/03/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>Subway Fresh Fit 500</RaceName>\r<TrackName>Phoenix International Raceway</TrackName>\r<Location>Avondale, AZ</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>316</Laps>\r<TrackLength>1.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>122</LeadingLaps>\r<Laps>316</Laps>\r<Earnings>298,875</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>316</Laps>\r<Earnings>209,686</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>490</DriverID>\r<Name>Denny Hamlin</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>316</Laps>\r<Earnings>157,575</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>16</LeadingLaps>\r<Laps>316</Laps>\r<Earnings>168,076</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>47</LeadingLaps>\r<Laps>316</Laps>\r<Earnings>130,750</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1497</RaceID>\r<Race_Date>03/10/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>Kobalt Tools 400</RaceName>\r<TrackName>Las Vegas Motor Speedway</TrackName>\r<Location>Las Vegas, NV</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>42</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>408,666</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>114</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>284,340</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>12</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>248,956</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>27</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>208,698</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>180,590</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1498</RaceID>\r<Race_Date>03/17/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Food City 500</RaceName>\r<TrackName>Bristol Motor Speedway</TrackName>\r<Location>Bristol, TN</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>500</Laps>\r<TrackLength>0.533</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>109</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>176,760</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>56</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>188,893</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>62</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>168,651</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>134,255</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>144,543</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1499</RaceID>\r<Race_Date>03/24/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>Auto Club 400</RaceName>\r<TrackName>Auto Club Speedway</TrackName>\r<Location>Fontana, CA</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>200</Laps>\r<TrackLength>2.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>125</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>334,233</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>212,340</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>41</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>193,673</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>181,815</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>146,585</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1500</RaceID>\r<Race_Date>04/07/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>STP Gas Booster 500</RaceName>\r<TrackName>Martinsville Speedway</TrackName>\r<Location>Martinsville, VA</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>500</Laps>\r<TrackLength>0.526</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>346</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>214,471</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>164,893</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>146,446</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>112,385</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>56</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>145,278</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1501</RaceID>\r<Race_Date>04/13/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>NRA 500</RaceName>\r<TrackName>Texas Motor Speedway</TrackName>\r<Location>Fort Worth, TX</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>334</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>171</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>550,858</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>142</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>346,555</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>268,605</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>214,855</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>209,913</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1502</RaceID>\r<Race_Date>04/21/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>STP 400</RaceName>\r<TrackName>Kansas Speedway</TrackName>\r<Location>Kansas City, KS</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>163</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>263,816</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>182,085</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>9</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>185,021</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>46</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>155,985</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>156,218</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1503</RaceID>\r<Race_Date>04/27/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>Toyota Owners 400</RaceName>\r<TrackName>Richmond International Raceway</TrackName>\r<Location>Richmond, VA</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>406</Laps>\r<TrackLength>0.75</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>406</Laps>\r<Earnings>242,511</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>113</LeadingLaps>\r<Laps>406</Laps>\r<Earnings>196,668</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>406</Laps>\r<Earnings>161,618</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>59</DriverID>\r<Name>Juan Pablo Montoya</Name>\r<LeadingLaps>67</LeadingLaps>\r<Laps>406</Laps>\r<Earnings>147,474</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>16</DriverID>\r<Name>Jeff Burton</Name>\r<LeadingLaps>7</LeadingLaps>\r<Laps>406</Laps>\r<Earnings>118,435</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1504</RaceID>\r<Race_Date>05/05/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Aaron's 499</RaceName>\r<TrackName>Talladega Superspeedway</TrackName>\r<Location>Talladega, AL</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>192</Laps>\r<TrackLength>2.66</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>455</DriverID>\r<Name>David Ragan</Name>\r<LeadingLaps>4</LeadingLaps>\r<Laps>192</Laps>\r<Earnings>373,108</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>399</DriverID>\r<Name>David Gilliland</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>192</Laps>\r<Earnings>235,153</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>5</LeadingLaps>\r<Laps>192</Laps>\r<Earnings>207,720</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>46</DriverID>\r<Name>Michael Waltrip</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>192</Laps>\r<Earnings>155,620</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>16</LeadingLaps>\r<Laps>192</Laps>\r<Earnings>181,426</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1505</RaceID>\r<Race_Date>05/11/2013</Race_Date>\r<Race_Time>07:00 PM</Race_Time>\r<RaceName>Bojangles Southern 500</RaceName>\r<TrackName>Darlington Raceway</TrackName>\r<Location>Darlington, SC</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>367</Laps>\r<TrackLength>1.366</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>17</LeadingLaps>\r<Laps>367</Laps>\r<Earnings>314,866</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>490</DriverID>\r<Name>Denny Hamlin</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>367</Laps>\r<Earnings>211,465</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>16</LeadingLaps>\r<Laps>367</Laps>\r<Earnings>200,026</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>367</Laps>\r<Earnings>178,876</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>367</Laps>\r<Earnings>165,976</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1506</RaceID>\r<Race_Date>05/18/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>Sprint Showdown</RaceName>\r<TrackName>Charlotte Motor Speedway</TrackName>\r<Location>Concord, NC</Location>\r<TV_Listing>SPEED</TV_Listing>\r<Laps>40</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>34</DriverID>\r<Name>Jamie McMurray</Name>\r<LeadingLaps>40</LeadingLaps>\r<Laps>40</Laps>\r<Earnings>50,915</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>1341</DriverID>\r<Name>Ricky Stenhouse Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>40</Laps>\r<Earnings>40,915</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>16</DriverID>\r<Name>Jeff Burton</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>40</Laps>\r<Earnings>36,640</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>310</DriverID>\r<Name>Paul Menard</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>40</Laps>\r<Earnings>34,540</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>40</Laps>\r<Earnings>33,540</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1507</RaceID>\r<Race_Date>05/18/2013</Race_Date>\r<Race_Time>09:00 PM</Race_Time>\r<RaceName>NASCAR Sprint All-Star Race</RaceName>\r<TrackName>Charlotte Motor Speedway</TrackName>\r<Location>Concord, NC</Location>\r<TV_Listing>SPEED</TV_Listing>\r<Laps>90</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>10</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>1,039,175</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>244,175</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>29</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>144,175</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>11</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>114,150</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>29</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>109,150</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1508</RaceID>\r<Race_Date>05/26/2013</Race_Date>\r<Race_Time>06:00 PM</Race_Time>\r<RaceName>Coca-Cola 600</RaceName>\r<TrackName>Charlotte Motor Speedway</TrackName>\r<Location>Concord, NC</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>400</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>28</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>407,011</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>161</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>291,615</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>8</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>218,560</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>490</DriverID>\r<Name>Denny Hamlin</Name>\r<LeadingLaps>6</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>220,915</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>174,823</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1509</RaceID>\r<Race_Date>06/02/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>FedEx 400</RaceName>\r<TrackName>Dover International Speedway</TrackName>\r<Location>Dover, DE</Location>\r<TV_Listing>FOX</TV_Listing>\r<Laps>400</Laps>\r<TrackLength>1.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>139</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>318,100</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>59</DriverID>\r<Name>Juan Pablo Montoya</Name>\r<LeadingLaps>19</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>226,504</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>203,051</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>150</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>196,198</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>177,431</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1510</RaceID>\r<Race_Date>06/09/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Party in the Poconos 400</RaceName>\r<TrackName>Pocono Raceway</TrackName>\r<Location>Long Pond, PA</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>160</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>128</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>244,436</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>179,185</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>143,060</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>165,810</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>19</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>144,343</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1511</RaceID>\r<Race_Date>06/16/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Quicken Loans 400</RaceName>\r<TrackName>Michigan International Speedway</TrackName>\r<Location>Brooklyn, MI</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>200</Laps>\r<TrackLength>2.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>48</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>240,460</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>173,781</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>145,670</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>148,803</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>142,085</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1513</RaceID>\r<Race_Date>06/23/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>Toyota/Save Mart 350</RaceName>\r<TrackName>Sonoma Raceway</TrackName>\r<Location>Sonoma, CA</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>110</Laps>\r<TrackLength>1.99</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>51</LeadingLaps>\r<Laps>110</Laps>\r<Earnings>309,250</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>4</LeadingLaps>\r<Laps>110</Laps>\r<Earnings>240,451</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>110</Laps>\r<Earnings>198,140</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>15</LeadingLaps>\r<Laps>110</Laps>\r<Earnings>154,860</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>110</Laps>\r<Earnings>157,548</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1514</RaceID>\r<Race_Date>06/30/2013</Race_Date>\r<Race_Time>12:00 PM</Race_Time>\r<RaceName>Quaker State 400</RaceName>\r<TrackName>Kentucky Speedway</TrackName>\r<Location>Sparta, KY</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>38</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>200,451</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>34</DriverID>\r<Name>Jamie McMurray</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>159,115</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>146,078</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>130,338</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>139,743</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1515</RaceID>\r<Race_Date>07/06/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>Coke Zero 400</RaceName>\r<TrackName>Daytona International Speedway</TrackName>\r<Location>Daytona Beach, FL</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>161</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>94</LeadingLaps>\r<Laps>161</Laps>\r<Earnings>327,961</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>161</Laps>\r<Earnings>254,490</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>161</Laps>\r<Earnings>224,301</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>161</Laps>\r<Earnings>182,073</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>46</DriverID>\r<Name>Michael Waltrip</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>161</Laps>\r<Earnings>141,365</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1516</RaceID>\r<Race_Date>07/14/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Camping World RV Sales 301</RaceName>\r<TrackName>New Hampshire Motor Speedway</TrackName>\r<Location>Loudon, NH</Location>\r<TV_Listing>TNT</TV_Listing>\r<Laps>302</Laps>\r<TrackLength>1.058</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>118</DriverID>\r<Name>Brian Vickers</Name>\r<LeadingLaps>16</LeadingLaps>\r<Laps>302</Laps>\r<Earnings>214,075</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>53</LeadingLaps>\r<Laps>302</Laps>\r<Earnings>228,043</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>16</DriverID>\r<Name>Jeff Burton</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>302</Laps>\r<Earnings>147,135</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>14</LeadingLaps>\r<Laps>302</Laps>\r<Earnings>179,076</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>580</DriverID>\r<Name>Aric Almirola</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>302</Laps>\r<Earnings>152,496</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1517</RaceID>\r<Race_Date>07/28/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Crown Royal 400 at the Brickyard</RaceName>\r<TrackName>Indianapolis Motor Speedway</TrackName>\r<Location>Indianapolis, IN</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>160</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>45</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>423,033</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>73</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>379,736</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>299,500</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>43</DriverID>\r<Name>Tony Stewart</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>300,650</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>273,266</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1518</RaceID>\r<Race_Date>08/04/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>GoBowling.com 400</RaceName>\r<TrackName>Pocono Raceway</TrackName>\r<Location>Long Pond, PA</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>160</Laps>\r<TrackLength>2.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>66</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>208,500</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>7</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>199,221</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>9</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>153,930</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>161,343</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>160</Laps>\r<Earnings>130,585</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1519</RaceID>\r<Race_Date>08/11/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Cheez-It 355 at the Glen</RaceName>\r<TrackName>Watkins Glen International</TrackName>\r<Location>Watkins Glen, NY</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>90</Laps>\r<TrackLength>2.45</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>29</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>236,658</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>204,876</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>161,735</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>149,360</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>59</DriverID>\r<Name>Juan Pablo Montoya</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>90</Laps>\r<Earnings>137,524</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1520</RaceID>\r<Race_Date>08/18/2013</Race_Date>\r<Race_Time>01:00 PM</Race_Time>\r<RaceName>Pure Michigan 400</RaceName>\r<TrackName>Michigan International Speedway</TrackName>\r<Location>Brooklyn, MI</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>200</Laps>\r<TrackLength>2.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>51</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>252,393</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>180,731</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>43</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>136,315</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>310</DriverID>\r<Name>Paul Menard</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>143,486</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>200</Laps>\r<Earnings>145,493</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1521</RaceID>\r<Race_Date>08/24/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>IRWIN Tools Night Race</RaceName>\r<TrackName>Bristol Motor Speedway</TrackName>\r<Location>Bristol, TN</Location>\r<TV_Listing>ABC</TV_Listing>\r<Laps>500</Laps>\r<TrackLength>0.533</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>149</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>328,466</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>214,815</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>59</DriverID>\r<Name>Juan Pablo Montoya</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>200,529</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>118</DriverID>\r<Name>Brian Vickers</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>150,315</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>155,973</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1522</RaceID>\r<Race_Date>09/01/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>AdvoCare 500</RaceName>\r<TrackName>Atlanta Motor Speedway</TrackName>\r<Location>Hampton, GA</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>325</Laps>\r<TrackLength>1.54</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>36</LeadingLaps>\r<Laps>325</Laps>\r<Earnings>338,058</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>78</LeadingLaps>\r<Laps>325</Laps>\r<Earnings>244,473</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>325</Laps>\r<Earnings>207,065</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>325</Laps>\r<Earnings>165,235</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>325</Laps>\r<Earnings>167,848</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1523</RaceID>\r<Race_Date>09/07/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>Federated Auto Parts 400</RaceName>\r<TrackName>Richmond International Raceway</TrackName>\r<Location>Richmond, VA</Location>\r<TV_Listing>ABC</TV_Listing>\r<Laps>400</Laps>\r<TrackLength>0.75</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>46</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>286,475</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>73</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>185,355</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>47</DriverID>\r<Name>Ryan Newman</Name>\r<LeadingLaps>4</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>181,443</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>34</DriverID>\r<Name>Jamie McMurray</Name>\r<LeadingLaps>6</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>151,805</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>310</DriverID>\r<Name>Paul Menard</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>140,701</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1524</RaceID>\r<Race_Date>09/15/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>GEICO 400</RaceName>\r<TrackName>Chicagoland Speedway</TrackName>\r<Location>Joliet, IL</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>89</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>334,891</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>67</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>261,048</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>221,326</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>169,960</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>40</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>176,926</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1525</RaceID>\r<Race_Date>09/22/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>Sylvania 300</RaceName>\r<TrackName>New Hampshire Motor Speedway</TrackName>\r<Location>Loudon, NH</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>300</Laps>\r<TrackLength>1.058</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>106</LeadingLaps>\r<Laps>300</Laps>\r<Earnings>262,066</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>300</Laps>\r<Earnings>210,143</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>49</DriverID>\r<Name>Greg Biffle</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>300</Laps>\r<Earnings>151,785</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>300</Laps>\r<Earnings>160,796</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>34</DriverID>\r<Name>Jamie McMurray</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>300</Laps>\r<Earnings>142,005</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1526</RaceID>\r<Race_Date>09/29/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>AAA 400</RaceName>\r<TrackName>Dover International Speedway</TrackName>\r<Location>Dover, DE</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>400</Laps>\r<TrackLength>1.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>243</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>243,836</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>80</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>197,210</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>166,068</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>168,296</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>30</LeadingLaps>\r<Laps>400</Laps>\r<Earnings>162,068</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1527</RaceID>\r<Race_Date>10/06/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>Hollywood Casino 400</RaceName>\r<TrackName>Kansas Speedway</TrackName>\r<Location>Kansas City, KS</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>138</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>364,636</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>229,810</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>216,776</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>33</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>176,473</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>127</DriverID>\r<Name>Carl Edwards</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>169,965</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1528</RaceID>\r<Race_Date>10/12/2013</Race_Date>\r<Race_Time>07:30 PM</Race_Time>\r<RaceName>Bank of America 500</RaceName>\r<TrackName>Charlotte Motor Speedway</TrackName>\r<Location>Concord, NC</Location>\r<TV_Listing>ABC</TV_Listing>\r<Laps>334</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>11</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>314,441</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>138</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>224,810</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>199,426</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>130</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>192,721</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>4</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>163,568</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1529</RaceID>\r<Race_Date>10/20/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>Camping World RV Sales 500</RaceName>\r<TrackName>Talladega Superspeedway</TrackName>\r<Location>Talladega, AL</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>188</Laps>\r<TrackLength>2.66</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>34</DriverID>\r<Name>Jamie McMurray</Name>\r<LeadingLaps>16</LeadingLaps>\r<Laps>188</Laps>\r<Earnings>236,345</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>38</LeadingLaps>\r<Laps>188</Laps>\r<Earnings>185,410</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1341</DriverID>\r<Name>Ricky Stenhouse Jr.</Name>\r<LeadingLaps>6</LeadingLaps>\r<Laps>188</Laps>\r<Earnings>187,596</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>310</DriverID>\r<Name>Paul Menard</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>188</Laps>\r<Earnings>154,726</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>304</DriverID>\r<Name>Kyle Busch</Name>\r<LeadingLaps>9</LeadingLaps>\r<Laps>188</Laps>\r<Earnings>162,068</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1530</RaceID>\r<Race_Date>10/27/2013</Race_Date>\r<Race_Time>02:00 PM</Race_Time>\r<RaceName>Goody's Headache Relief Shot 500</RaceName>\r<TrackName>Martinsville Speedway</TrackName>\r<Location>Ridgeway, VA</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>500</Laps>\r<TrackLength>0.526</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>22</DriverID>\r<Name>Jeff Gordon</Name>\r<LeadingLaps>78</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>188,796</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>202</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>177,736</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>60</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>141,478</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>433</DriverID>\r<Name>Brad Keselowski</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>153,436</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>123</LeadingLaps>\r<Laps>500</Laps>\r<Earnings>144,046</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1531</RaceID>\r<Race_Date>11/03/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>AAA Texas 500</RaceName>\r<TrackName>Texas Motor Speedway</TrackName>\r<Location>Fort Worth, TX</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>334</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>255</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>484,211</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>337,810</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>1306</DriverID>\r<Name>Joey Logano</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>256,393</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>3</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>238,776</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>334</Laps>\r<Earnings>180,585</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1532</RaceID>\r<Race_Date>11/10/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>AdvoCare 500</RaceName>\r<TrackName>Phoenix International Raceway</TrackName>\r<Location>Avondale, AZ</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>312</Laps>\r<TrackLength>1.0</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>25</DriverID>\r<Name>Kevin Harvick</Name>\r<LeadingLaps>70</LeadingLaps>\r<Laps>312</Laps>\r<Earnings>263,386</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>109</DriverID>\r<Name>Kasey Kahne</Name>\r<LeadingLaps>41</LeadingLaps>\r<Laps>312</Laps>\r<Earnings>171,715</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>27</DriverID>\r<Name>Jimmie Johnson</Name>\r<LeadingLaps>1</LeadingLaps>\r<Laps>312</Laps>\r<Earnings>182,326</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>2</LeadingLaps>\r<Laps>312</Laps>\r<Earnings>131,135</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>18</DriverID>\r<Name>Kurt Busch</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>312</Laps>\r<Earnings>137,630</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<Listing>\r<RaceID>1533</RaceID>\r<Race_Date>11/17/2013</Race_Date>\r<Race_Time>03:00 PM</Race_Time>\r<RaceName>Ford EcoBoost 400</RaceName>\r<TrackName>Homestead-Miami Speedway</TrackName>\r<Location>Homestead, FL</Location>\r<TV_Listing>ESPN</TV_Listing>\r<Laps>267</Laps>\r<TrackLength>1.5</TrackLength>\r<RaceResults>\r<RaceResultsListing>\r<FinishPosition>1</FinishPosition>\r<DriverID>490</DriverID>\r<Name>Denny Hamlin</Name>\r<LeadingLaps>72</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>322,350</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>2</FinishPosition>\r<DriverID>28</DriverID>\r<Name>Matt Kenseth</Name>\r<LeadingLaps>144</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>293,251</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>3</FinishPosition>\r<DriverID>20</DriverID>\r<Name>Dale Earnhardt Jr.</Name>\r<LeadingLaps>28</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>203,860</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>4</FinishPosition>\r<DriverID>266</DriverID>\r<Name>Martin Truex Jr.</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>179,435</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r<RaceResultsListing>\r<FinishPosition>5</FinishPosition>\r<DriverID>431</DriverID>\r<Name>Clint Bowyer</Name>\r<LeadingLaps>0</LeadingLaps>\r<Laps>267</Laps>\r<Earnings>167,968</Earnings>\r<Status>Running</Status>\r</RaceResultsListing>\r</RaceResults>\r</Listing>\r<time_stamp> January 13, 2014, at 11:34 AM ET </time_stamp>\r</message>\r
\ No newline at end of file