import Data.List.Split

distance x y = abs (x - y)

main = do
	first <- getLine
	let nums = map (\x -> read x :: Int) (splitOn " " first)
	let a = nums !! 0
	let b = nums !! 1
	let c = nums !! 2
	let d = nums !! 3
	let judge = ((distance a c) <= d) || ((distance a b) <= d && (distance b c) <= d)
	putStrLn $ if judge then "Yes" else "No"
