#P1726. 构造矩阵(一)

构造矩阵(一)

题目描述

薯条哥准备用以下方式生成一个无穷大的矩阵:

首先构造一个size1size-12×22\times 2矩阵:

1 2
3 4

之后构造一个size2size-24×44\times 4矩阵:

1 2 4 3
3 4 2 1
4 3 1 2
2 1 3 4

其中它可以拆分成442×22\times 2的小矩阵,左上jj角和右下角即为size1size-1的矩阵,左下角和右上角的2×22\times 2矩阵与size1size-1的矩阵中心对称。

然后构造出size3size-3的矩阵:

1 2 4 3 4 3 1 2
3 4 2 1 2 1 3 4
4 3 1 2 1 2 4 3
2 1 3 4 3 4 2 1
4 3 1 2 1 2 4 3
2 1 3 4 3 4 2 1
1 2 4 3 4 3 1 2
3 4 2 1 2 1 3 4

其中它可以拆分成444×44\times 4的小矩阵,左上角和右下角即为size2size-2的矩阵,左下角和右上角的2×22\times 2矩阵与size2size-2的矩阵中心对称。

按照这种方式可以无限构造下去,sizensize-n的左上角和右下角为size1size-1矩阵,左下角和右上角是size2size-2矩阵的中心对称矩阵。

我们定义,矩阵的坐标是从11开始的(并不是从00开始)。也就是说,矩阵的左上角的坐标是(1,1)(1,1)

薯条哥想知道,对于左上角为(x0,yo)(x_0,y_o),右下角为(x1,y1)(x_1,y_1)的子矩阵,该短阵内部的所有数之和是多少?

由于答案过大,请对109+710^9+7取模。

输入描述

一行输入四个正整数$x_0,y_0,x_1,y_1(1\le x_0\le x_1\le 10^9,1\le y_0\le y_1\le 10^9)$,用空格隔开。

输出描述

矩阵内部所有数之和对109+710^9+7取模的值。

样例

输入

2 2 3 4

输出

13

样例解释

该子矩阵是:

4 2 1 
3 1 2

所有数之和为1313