P9821 [ICPC 2020 Shanghai R] Sum of Log

Description

Given two non-negative integers $X$ and $Y$, determine the value of $$ \sum_{i=0}^{X}\sum_{j=[i=0]}^{Y}[i\&j=0]\lfloor\log_2(i+j)+1\rfloor $$ modulo $10^9+7$ where - $\&$ denotes bitwise AND; - $[A]$ equals 1 if $A$ is true, otherwise $0$; - $\lfloor x\rfloor$ equals the maximum integer whose value is no more than $x$.

Input Format

The first line contains one integer $T\,(1\le T \le 10^5)$ denoting the number of test cases. Each of the following $T$ lines contains two integers $X, Y\,(0\le X,Y \le 10^9)$ indicating a test case.

Output Format

For each test case, print one line containing one integer, the answer to the test case.

Explanation/Hint

For the first test case: - Two $(i,j)$ pairs increase the sum by 1: $(0, 1), (1, 0)$ - Six $(i,j)$ pairs increase the sum by 2: $(0, 2), (0, 3), (1, 2), (2, 0), (2, 1), (3, 0)$ So the answer is $1\times 2 + 2\times 6 = 14$.