Chris Froome declared this year's Tour de France to be the hardest he has ridden so far after retaining his overall lead on a fiercely contested ninth stage.
The Team Sky rider had to chase down multiple attacks from Richie Porte, Dan Martin, Bauke Mollema and Adam Yates on the climb to the day's summit finish to stay top of the general classification by 16 seconds.
Froome put in two attacks of his own but was unable to pull clear of rivals he believes are evenly matched.
He said: "Several times before the Tour, I said this would be the biggest battle of my career and it's definitely the case.
"It's not easy to ride away from everyone this year. The level is higher than in previous years. The race is still very open and a lot of guys are still up there in contention.
"It would have been nice to take a bit more time [on stage nine] to have a bit more of a buffer in the yellow jersey, but all in all, I'm really happy.
"Going into the first rest day, in yellow, I have got a fantastic team around me and I couldn't be in a better place right now."
One rider who did not attack on stage nine was Nairo Quintana, who instead opted to shadow Froome up the 10.1km final climb.
Froome added: "At the back of my mind, I was waiting for Nairo Quintana to attack until we reached the last 1km. I was wondering if he was saving himself for a big move.
"As he didn't, I like to think that he was at his limit. He stayed on my wheel, glued."
Froome's chances of overall victory were improved by Alberto Contador's withdrawal from the race with 100km to go on stage nine due to illness.
Froome added: "I was quite surprised to hear that Alberto Contador was in his car. It's a shame he's no longer in the race. It would have made the Tour even more exciting that it already is.
"The change for me is that we won't have to chase his attacks 100km before the finish. It's something less to worry about but it's a pity."
The Tour now pauses for its first rest day on Monday, but the race resumes on Tuesday with a 197km 10th stage from Escaldes Engordany to Revel. Find out more about the route in our race guide and follow the stage live with our live blog from 1pm BST.