use std::io::{stdin, Read}; fn main() { let mut buf = String::new(); stdin().read_to_string(&mut buf).unwrap(); let mut tok = buf.split_whitespace(); let mut get = || tok.next().unwrap(); macro_rules! get { ($t:ty) => (get().parse::<$t>().unwrap()); () => (get!(i64)); } let n = get!(); let mut ans = 0; for i in 0..63 { let x = 1 << i; ans += n / x; ans %= 1_000_000_007; } ans *= n; ans %= 1_000_000_007; println!("{}", ans); }