编程题
### 问题描述
小然有一个长度为 $N$ 的整数数组 $A$。
现在,他想要从 $A$ 中移除一些元素(也可以不移除任何元素),得到一个新的数组 $B$。
如果对于所有的 $1 \leq i \leq j \leq |B|$,子数组 $B[i, j]$ 中的所有元素之和都能被 $2$ 整除,那么我们称这样的移除操作是好的。
你的任务是找出有多少种好的移除操作。由于答案可能非常大,所以请你将答案对 $10^9 + 7$ 取模后输出。
### 输入格式
第一行输入一个整数 $T$,表示测试用例的数量。
每个测试用例包含两行:
- 第一行输入一个整数 $N$,表示数组的长度。
- 第二行输入 $N$ 个整数,分别是 $A_1$,$A_2$,...,$A_N$,表示数组 $A$。
### 输出格式
对于每个测试用例,输出一行,表示好的移除操作的数量对 $10^9 + 7$ 取模后的结果。
### 样例输入
```text
2
3
2 1 4
3
1 2 3
```
### 样例输出
```text
4
2
```
### 说明
样例中的第二个测试用例:存在 $2$ 种好的移除操作,分别是移除元素 $1$ 和 $3$,以及移除所有元素。
### 评测数据范围
$1 \leq T \leq 10^4$。
$1 \leq N \leq 2 \times 10^5$。
$0 \leq A_i \leq 2 \times 10^5$。
所有测试用例中 $N$ 的和不超过 $2 \times 10^5$。