solve [a, b] = (sum $ map subsequences deltas) `mod` (10^9+7) where deltas = zipWith (-) (tail interestPoints) interestPoints interestPoints = a : (dropWhile (<= a) $ takeWhile (<= b) powers) ++ [b+1] subsequences x = (x * succ x) `div` 2 powers = map (2^) [1..] main = do input <- getContents let queries = map ((map read) . words) $ (tail . lines) input sequence $ map (print . solve) queries