Chiaki 有一棵包含 $n$ 个顶点的树。树的每个顶点上可能有一个白色或黑色的标记,且恰好有 $w$ 个白色标记和 $b$ 个黑色标记。此外,对于每一对颜色相同的标记,它们之间必须存在一条路径,使得该路径上的每个顶点都包含相同颜色的标记。
Chiaki 想要执行以下操作:
- 选择一个带有标记的顶点 $u$。
- 选择一条路径 $p_1, p_2, \dots, p_k$,使得 $p_1 = u$,所有顶点 $p_1, p_2, \dots, p_{k-1}$ 都包含相同颜色的标记,且 $p_k$ 上没有标记。
- 将 $p_1$ 上的标记移动到 $p_k$。现在 $p_1$ 上没有标记,而 $p_k$ 上有一个标记。
对于两种初始标记配置 $S$ 和 $T$,如果 Chiaki 可以通过多次执行上述操作使 $S$ 变为 $T$,则称 $S$ 和 $T$ 是等价的。
令 $f(w, b)$ 为等价类的数量(等价类是一个极大集合,其中任意两个配置都是等价的;所有等价类构成了所有配置的一个划分),Chiaki 想要知道以下表达式的值:
$$\left( \sum_{w=1}^{n-1} \sum_{b=1}^{n-w} w \cdot b \cdot f(w, b) \right) \pmod{10^9 + 7}$$
输入格式
输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。
对于每组测试数据,第一行包含一个整数 $n$ ($2 \le n \le 2 \times 10^5$),表示树的顶点数。第二行包含 $n-1$ 个整数 $p_2, p_3, \dots, p_n$ ($1 \le p_i < i$),其中 $p_i$ 表示顶点 $i$ 和顶点 $p_i$ 之间有一条边。
保证所有测试数据的 $n$ 之和不超过 $2 \times 10^5$。
输出格式
对于每组测试数据,输出一个整数,表示以下表达式的值:
$$\left( \sum_{w=1}^{n-1} \sum_{b=1}^{n-w} w \cdot b \cdot f(w, b) \right) \pmod{10^9 + 7}$$
样例
样例输入 1
2 5 1 2 3 3 10 1 2 3 4 3 6 3 8 2
样例输出 1
71 989
说明
对于第一个样例,每个 $w$ 和 $b$ 对应的 $f(w, b)$ 值为:$f(1, 1) = 1, f(1, 2) = 2, f(1, 3) = 3, f(1, 4) = 3, f(2, 1) = 2, f(2, 2) = 2, f(2, 3) = 1, f(3, 1) = 3, f(3, 2) = 1$ 以及 $f(4, 1) = 3$。