GMA’s Amy and T

0
12

[]

History together. Good Morning America anchors Amy Robach and T.J. Holmes trained for and ran a marathon together earlier this month, before photos of them getting cozy surfaced.

“Amazing group and incredible weather today. Our half marathon posse slaying the final long training run,” Robach, 49, captioned a carousel of Instagram photos in March. In one snap, the television personality posed with both Holmes, 45, and her husband, Andrew Shue.

The NBC News alum has been married to Shue, 55, since 2010. In a photo published by the Daily Mail on Wednesday, November 30, Robach can be seen holding hands with her GMA coworker, who has been married to attorney Marilee Fiebig since 2010.

{ let bidders = [‘a9’, ‘ix’, ‘iris’]; // create a requestManager to keep track of bidder state to determine when to send ad server // request and what amazonSlots to request from the ad server var requestManager = { adserverRequestSent: false, }; //loop through bidder array and add the bidders to the request manager: bidders.forEach( function( bidder ) { requestManager[bidder] = false; } ); // return true if all bidders have returned function allBiddersBack() { var allBiddersBack = bidders // get the booleans from the object .map( function( bidder ) { return requestManager[bidder]; } ) // get rid of false values – indicates that the bidder has responded .filter( Boolean ) // if length is equal to bidders, all bidders are back .length === bidders.length; return allBiddersBack; } // handler for header bidder responses function headerBidderBack( bidder ) { // return early if request to adserver is already sent if ( requestManager.adserverRequestSent === true ) { return; } // flip bidder back flag if ( bidder === ‘a9’ ) { requestManager.a9 = true; console.log(‘second promise a9 ready’); } else if ( bidder === ‘ix’ ) { requestManager.ix = true; console.log(‘second promise ix ready’); } else if ( bidder === ‘iris’ ) { requestManager.iris = true; console.log(‘second promise iris ready’); } // if all bidders are back, send the request to the ad server if ( allBiddersBack() ) { resolve( url ); } } if ( typeof apstag == ‘object’ && apstag ) { apstag.fetchBids({ slots: [{ slotID: window.prerollTag[vHash], mediaType: ‘video’ }] }, function( bids ) { console.log( “AMI jwp amazon bid callback”, new Date().getTime(), bids ); window.jwpBids[vHash].amazon = true; if ( bids.length > 0 ) { //If we have received any bids back try { console.log(“AMI jwp amazon bid request ad”, bids[0].encodedQsParams); url = url + ‘&scp=’ + bids[0].encodedQsParams; } catch ( e ) { console.log(e); } } else { console.log(“AMI jwp amazon no bids”); } headerBidderBack(‘a9’); }); } else { headerBidderBack(‘a9’); } headertag.cmd.push( function() { headertag.retrieveVideoDemand( [{‘htSlotName’: ‘preroll’}], function( demand ) { console.log( “AMI jwp IX callback”, demand ); if ( ‘undefined’ !== typeof demand.preroll && demand.preroll.length ){ window.jwpBids[vHash].ixBids = demand.preroll[0].targeting.price; console.log( ‘AMI jwp IX Bids’, new Date().getTime(), demand.preroll[0].targeting ); var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( ‘cust_params’ ) ) { var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) ); } else { var custParams = new URLSearchParams(); } var keys = Object.keys( demand.preroll[0].targeting.price ); for ( var key of keys ) { custParams.set( key, demand.preroll[0].targeting.price[key][0]); } vastParams.set( ‘cust_params’, custParams.toString() ); vastURL.search = vastParams.toString(); url = vastURL.toString(); } headerBidderBack(‘ix’); } ); } ); // Get main item context data window.irisContext.getContext(jwplayer(el).getPlaylistItem().mediaid).then(function(data) { // Encode the context data console.log( ‘AMI jwp IrisTV Bids’, new Date().getTime(), data.context ); // Replace the server url with the context data (this is for simple ad requests), // If you have the serverUrl dynamically configured, then you will need to append the context data // under cust_params, so this is just for testing purpose if ( data.context && Object.keys( data.context ).length ) { var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( ‘cust_params’ ) ) { var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) ); } else { var custParams = new URLSearchParams(); } custParams.set( ‘iris_context’, data.context.join(‘,’)); vastParams.set( ‘cust_params’, decodeURIComponent( custParams.toString() ) ); vastURL.search = vastParams.toString(); url = vastURL.toString(); } headerBidderBack(‘iris’); }); setTimeout(function(){ resolve( url ); }, 10000); }); } var player_jwplayer_kIDtriTw_zhNYySv2_div = jwplayer(el).setup(videoParams).on(“ready”, function(){ var el = decodeURIComponent( “jwplayer_kIDtriTw_zhNYySv2_div” ); var playerInstance = jwplayer(el); ns_.StreamingAnalytics.JWPlayer( playerInstance, { publisherId: “6036076”, labelmapping: “ns_st_pu=”AMI”, c3=”Us Weekly”, ns_st_ge=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ia=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ce=”” + decodeURIComponent( “1” ) + “”, ns_st_ddt=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_tdt=”” + decodeURIComponent( “%2Anull” ) + “””, }); }).on(‘adsManager’, (e) => { var vHash = ‘ami’ + decodeURIComponent( ‘kIDtriTw’ ); const { adsManager, videoElement } = e; const iasConfig = { anId: ‘928572’, campId: `${jwplayer().getWidth()}x${jwplayer().getHeight()}`, // This is dynamic based on player dimensions, but can be hard coded chanId: window.prerollTag[vHash], placementId: ‘Open Auction’, pubOrder: ‘Video’, pubId: ‘Direct’ }; if (googleImaVansAdapter) { googleImaVansAdapter.init(window.google, adsManager, videoElement, iasConfig); } }).on( ‘time’, function( e ) { var id = this.id; var pct = Math.round( e.position ); if ( ! window.amiPlayersData ) { window.amiPlayersData = {}; } if ( ! window.amiPlayersData[id] ) { window.amiPlayersData[id] = { m3: false, m10: false }; } if ( window.amiPlayersData[id][‘m3’] === false && pct >= 3 ) { window.amiPlayersData[id][‘m3’] = true; console.log( ‘3sec played: ‘, id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: ‘JWPlayEvent’, jwTime: ‘3s played’} ); } if ( window.amiPlayersData[id][‘m10’] === false && pct >= 10 ) { window.amiPlayersData[id][‘m10’] = true; console.log( ’10sec played: ‘, id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: ‘JWPlayEvent’, jwTime: ’10s played’} ); } }).on( ‘complete’, function( e ) { if ( window.amiPlayersData && window.amiPlayersData[ this.id ] ) { window.amiPlayersData[ this.id ][‘m3’] = false; window.amiPlayersData[ this.id ][‘m10’] = false; console.log( ‘clear played: ‘, this.id ); } }).once(“play”, function(){ var el = decodeURIComponent( “jwplayer_kIDtriTw_zhNYySv2_div” ); var playerInstance = jwplayer(el); loadIrisPlugin(playerInstance, playerInstance.getConfig().plugins[“https://ovp.iris.tv/plugins/jwplayer/v2/iris-jwplayer8.adaptive.min.js”]) }).on(‘play’, (e) => { var el = decodeURIComponent( “jwplayer_kIDtriTw_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “kIDtriTw” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) { return; } window.permutive.track(“VideoPlay”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “kIDtriTw” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language:”English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video play”); }).on(‘complete’, (e) => { var el = decodeURIComponent( “jwplayer_kIDtriTw_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “kIDtriTw” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) { return; } window.permutive.track(“VideoComplete”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “kIDtriTw” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video event:”, e); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false; }).on(‘time’, (e) => { var el = decodeURIComponent( “jwplayer_kIDtriTw_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “kIDtriTw” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.currentTime/e.duration).toFixed(2); if ( (0.25 === progress && false === window.lock_25) || (0.5 === progress && false === window.lock_50) || (0.75 === progress && false === window.lock_75) || (100 === progress && false === window.lock_100) ) { window.permutive.track(“VideoProgress”, { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “kIDtriTw” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); if ( 0.25 === progress ) { window.lock_25 = true; } if ( 0.5 === progress ) { window.lock_50 = true; } if ( 0.75 === progress ) { window.lock_75 = true; } if ( 1 === progress ) { window.lock_100 = true; } console.log(“Permutive video play progress ” + progress); } }).on(‘mute’, (e) => { var el = decodeURIComponent( “jwplayer_kIDtriTw_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “kIDtriTw” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoEvent”, { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.mute) ? “sound off” : “sound on”, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “kIDtriTw” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘fullscreen’, (e) => { var el = decodeURIComponent( “jwplayer_kIDtriTw_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “kIDtriTw” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoEvent”, { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.fullscreen) ? “fullscreen on” : “fullscreen off”, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “kIDtriTw” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘ready’, (e) => { var el = decodeURIComponent( “jwplayer_kIDtriTw_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “kIDtriTw” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); console.log(jwInfo); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false; window.permutive.track(“VideoLoad”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “kIDtriTw” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video load event”); }).on(‘adPlay’, (e) => { var el = decodeURIComponent( “jwplayer_kIDtriTw_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “kIDtriTw” ); window.adInfo = e; var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.adlock_25 = false; window.adlock_50 = false; window.adlock_75 = false; window.adlock_100 = false; window.permutive.track(“VideoAdPlay”, { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “kIDtriTw” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video ad play”); }).on(‘adClick’, (e) => { var el = decodeURIComponent( “jwplayer_kIDtriTw_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “kIDtriTw” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoAdClick”, { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “kIDtriTw” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video ad click”); }).on(‘adTime’, (e) => { var el = decodeURIComponent( “jwplayer_kIDtriTw_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “kIDtriTw” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.position/e.duration).toFixed(2); if ( (0.25 >= progress && false === window.adlock_25) || (0.5 >= progress && false === window.adlock_50) || (0.75 >= progress && false === window.adlock_75) || (0.95 >= progress && false === window.adlock_100) ) { window.permutive.track(“VideoAdProgress”, { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “kIDtriTw” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); if ( 0.25 >= progress ) { window.adlock_25 = true; } if ( 0.5 >= progress ) { window.adlock_50 = true; } if ( 0.75 >= progress ) { window.adlock_75 = true; } if ( 0.95 >= progress ) { window.adlock_100 = true; } console.log(“Permutive video ad progress ” + progress); } }).setPlaylistItemCallback(function(item, index) { return waitForAmazon // Wait until Amazon is loaded. .then(() => performAsyncBidding( player_jwplayer_kIDtriTw_zhNYySv2_div, item, index ), () => { console.log(“AMI JWP bidding FAILER”); }) // External bidding. .then(tag => { // Update the playlist item. console.log(“AMI jwp new headerbid”, tag); return Object.assign({}, item, { adschedule: [{ tag, offset: “pre” }] }); }).catch(function(e){ console.log(“AMI jwp bidding failed”, e); return item; }); // If bidding fails, use unmodified playlist item. });; clearInterval(checkJWReady); } }, 500); })(); ]]>

In another snap, Holmes playfully touches Robach’s backside. According to the outlet, the images are from various outings in November. Neither of the news anchors have publicly commented on the photos. (Us Weekly has reached out to their reps.)

After the New York City marathon earlier this month, Robach posted photos from the event, including a shot of her and Holmes running side by side.

“NO WAY I could have ever accomplished this alone! I love this running crew so much. We encourage each other, train together and finish together,” she captioned the Instagram post.

Earlier this week, Holmes took to social media to share a cryptic quote about relationships. “End the relationship and cry once. It’s better than being with them and crying daily,” the excerpt shared via Instagram read. The Arkansas native has since deleted the social media platform amid speculation of his relationship with his coworker, as has Robach.

Both journalists have been married prior to their relationships with their current spouses. Robach shares daughters Ava and Annie with ex-husband Tim McIntosh, whom she was married to from 1996 to 2008. She is also stepmom to Shue’s three children with ex Jennifer Hageney: Nate, Aidan and Wyatt.

In February, the 20/20 anchor gushed about her husband via Instagram. “This picture is from more than a decade ago but it’s still how you make me feel (almost) every day! I love you so much,” she captioned a photo of them hugging.

Holmes, for his part, shares daughter Brianna and son Jaiden with ex-wife Amy Person. In a 2014 blog post, the ABC News correspondent described how his second wife had made him a better person.

“My family and I are closer, my individual net worth has gone up every year since we met, I’ve learned a second language, I’m healthier, I use the N-word less, I listen to Sunday church service more, I’m a better friend, I’m more forgiving than I used to be, I’m more involved in charitable work. In every way, I’m better off because I’m married. So, for me, a successful marriage has revolved around this principle: I like who I am with her,” he wrote at the time.

Scroll through to see photos of Robach and Holmes’ marathon experience:

GMA’s Amy and TJ Ran NYC Marathon Together Before Cozy Photos Surfaced

Credit: Courtesy of Amy Robach/Instagram

Good Morning America’s Amy Robach and T.J. Holmes Trained for NYC Marathon With Andrew Shue Before Cozy Photos Surfaced

History together. Good Morning America anchors Amy Robach and T.J. Holmes trained for and ran a marathon together earlier this month, before photos of them getting cozy surfaced. [ami-related id=”2498586″ url=”https://www.usmagazine.com/celebrity-news/pictures/everything-gmas-amy-robach-and-t-j-holmes-have-said-about-each-other-were-blessed-and-we-know-it/” title=”‘GMA’ Anchors Amy Robach and T.J. Holmes’ Candid Quotes About Each Other” target=”_blank” thumb=”false” imgsrc=”https://www.usmagazine.com/wp-content/uploads/2022/11/Amy-Robach-and-TJ-Holmes.jpg?quality=86&strip=all” imgid=”2498640″ format=”gallery” flag=”” channel=”1″] “Amazing group and incredible weather today. Our half marathon posse slaying the final long training run,” Robach, 49, captioned a carousel of Instagram photos in March. In one snap, the television personality posed with both Holmes, 45, and her husband, Andrew Shue. The NBC News alum has been married to Shue, 55, since 2010. In a photo published by the Daily Mail on Wednesday, November 30, Robach can be seen holding hands with her GMA coworker, who has been married to attorney Marilee Fiebig since 2010. [jwplayer kIDtriTw-zhNYySv2] In another snap, Holmes playfully touches Robach’s backside. According to the outlet, the images are from various outings in November. Neither of the news anchors have publicly commented on the photos. (Us Weekly has reached out to their reps.) After the New York City marathon earlier this month, Robach posted photos from the event, including a shot of her and Holmes running side by side. “NO WAY I could have ever accomplished this alone! I love this running crew so much. We encourage each other, train together and finish together,” she captioned the Instagram post. Earlier this week, Holmes took to social media to share a cryptic quote about relationships. “End the relationship and cry once. It’s better than being with them and crying daily,” the excerpt shared via Instagram read. The Arkansas native has since deleted the social media platform amid speculation of his relationship with his coworker, as has Robach. [ami-related id=”5040″ url=”https://www.usmagazine.com/celebrity-news/pictures/biggest-celebrity-cheating-scandals-ever-2009318/” title=”Biggest Celebrity Cheating Scandals Ever: From Bill Clinton to Adam Levine” target=”_blank” thumb=”false” imgsrc=”https://www.usmagazine.com/wp-content/uploads/2022/09/Biggest-Celebrity-Cheating-Scandals-006.jpg?quality=86&strip=all” imgid=”2427132″ format=”gallery” flag=”” channel=”1″] Both journalists have been married prior to their relationships with their current spouses. Robach shares daughters Ava and Annie with ex-husband Tim McIntosh, whom she was married to from 1996 to 2008. She is also stepmom to Shue’s three children with ex Jennifer Hageney: Nate, Aidan and Wyatt. In February, the 20/20 anchor gushed about her husband via Instagram. “This picture is from more than a decade ago but it’s still how you make me feel (almost) every day! I love you so much,” she captioned a photo of them hugging. Holmes, for his part, shares daughter Brianna and son Jaiden with ex-wife Amy Person. In a 2014 blog post, the ABC News correspondent described how his second wife had made him a better person. [ami-related id=”2498447″ url=”https://www.usmagazine.com/celebrity-news/pictures/amy-robach-andrew-shues-relationship-timeline/” title=”Amy Robach and Andrew Shue’s Relationship Timeline” target=”_blank” thumb=”false” imgsrc=”https://www.usmagazine.com/wp-content/uploads/2022/11/Amy-Robach-and-Andrew-Shues-Relationship-Timeline-427.jpg?quality=86&strip=all” imgid=”2498419″ format=”gallery” flag=”” channel=”1″] “My family and I are closer, my individual net worth has gone up every year since we met, I’ve learned a second language, I’m healthier, I use the N-word less, I listen to Sunday church service more, I’m a better friend, I’m more forgiving than I used to be, I’m more involved in charitable work. In every way, I’m better off because I’m married. So, for me, a successful marriage has revolved around this principle: I like who I am with her,” he wrote at the time. Scroll through to see photos of Robach and Holmes’ marathon experience:

GMA’s Amy and TJ Ran NYC Marathon Together Before Cozy Photos Surfaced

Credit: Courtesy of Amy Robach/Instagram

Training With Andrew

Before sparking speculation about the nature of their relationship in November, the coworkers trained for a half marathon together along with Robach’s husband, Shue.

GMAs-Amy-TJ-Ran-NYC-Marathon-Together-Before-Cozy-Photos-Surfaced-00001

Credit: Courtesy of Amy Robach/Instagram

Running Together

Just weeks before photos of them getting cozy surfaced, Robach shared a photo of her and Holmes running the New York City marathon side by side.

GMAs-Amy-TJ-Ran-NYC-Marathon-Together-Before-Cozy-Photos-Surfaced-00001

Credit: Courtesy of Amy Robach/Instagram

All Smiles

“NO WAY I could have ever accomplished this alone! I love this running crew so much,” the University of Georgia alum captioned an Instagram post documenting the experience she shared with her fellow television personality.

“I was very proud of him … and he had a big smile on his face the entire time,” Robach said of Holmes on Good Morning America after the race.

In order to view the gallery, please allow Manage Cookies

Read The Full Article Here