#CF1992G. Ultra-Meow

Ultra-Meow

Ultra-Meow

时间限制:2.5 秒
空间限制:256 MB

K1o0n 给你一个长度为 nn 的数组 aa,由数字 1,2,,n1, 2, \dots, n 组成。接受吗?当然!但拿它做什么?当然,计算 MEOW(a)\operatorname{MEOW}(a)

定义 MEX(S,k)\operatorname{MEX}(S, k) 为不在集合 SS 中的第 kk 个正整数(严格大于零)按升序排列的值。再定义 MEOW(a)\operatorname{MEOW}(a) 为对数组 aa所有不同子集 bb,求 MEX(b,b+1)\operatorname{MEX}(b, |b| + 1) 的总和。

MEX(S,k)\operatorname{MEX}(S, k) 的例子:

  • MEX({3,2},1)=1\operatorname{MEX}(\{3,2\}, 1) = 1,因为 11 是第一个不在集合中的正整数;
  • MEX({4,2,1},2)=5\operatorname{MEX}(\{4,2,1\}, 2) = 5,因为前两个不在集合中的正整数是 3355
  • MEX({},4)=4\operatorname{MEX}(\{\}, 4) = 4,因为空集中没有数,前 44 个缺失的正整数是 1,2,3,41,2,3,4

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试数据组数。

每组数据一行,包含一个整数 nn1n50001 \le n \le 5000)—— 给定数组的大小。

保证所有测试数据 n2n^2 的总和不超过 2510625 \cdot 10^6

输出格式

对于每组测试数据,输出一个整数 —— MEOW(a)\operatorname{MEOW}(a)。由于答案可能很大,请将其对 109+710^9 + 7 取模后输出。

样例输入

5
2
3
4999
5
1

样例输出

12
31
354226409
184
4