Ryoku 与最初之人笔记

题目背景

Ryoku 在阅读「最初之人」的笔记的时候,发现了一个有趣的运算:$\rm xor$,这个运算的输入是两个数,输出是一个数,对应的运算时将输入的两个数化为二进制,再把每一位进行比较,若相同则输出的二进制中的这一位为 $0$,否则为 $1$。 在关于运算 $\text{xor}$ 笔记的下面有一道习题。Ryoku 很快就得出了答案,她想要考考你。

题目描述

Ryoku 向你复述了题目:求: $$\sum_{a = 0}^n \sum_{b = a + 1}^n [a\equiv b\pmod {a \text{ xor } b}]$$ 即:求满足 $a\equiv b\pmod {a \text{ xor } b}$,且 $a,b$ 均为小于等于 $n$ 的非负整数,$a<b$,的有序二元组 $(a,b)$ 个数。

输入输出格式

输入格式


输入包含一个整数 $n$。

输出格式


输出包含一个整数,为上式的值,答案对 $10^9 + 7$ 取模。

输入输出样例

输入样例 #1

2

输出样例 #1

2

输入样例 #2

42

输出样例 #2

274

说明

**【样例 1 说明】** 符合题意的数对 $(a,b)$ 的有:$(0,1), (0,2)$。 --- **【数据规模与约定】** 对于 $20\%$ 的数据,$n\le 10^3$。 对于 $60\%$ 的数据,$n\le 10^6$。 对于 $70\%$ 的数据,$n\le 10^9$。 对于 $100\%$ 的数据,$2\le n \le 10^{18}$。