\begin{problem}{LCA-сумма}{стандартный ввод}{стандартный вывод}{2 секунды}{256 мегабайт}

Дано дерево, состоящее из $n$ вершин, пронумерованных числами от $1$ до $n$. У каждой вершины $v$ кроме корневой \textit{непосредственный} предок равен $p_v$, если $v$~--- корень, то выполняется $p_v = v$. Вершина $u$ называется предком $v$, если $u$ содержится на простом пути от $v$ до корня дерева. В частности, сама вершина, ее \textit{непосредственный} предок и корень всегда являются ее предками.

Пусть $S$~--- некоторое множество вершин дерева, обозначим через $\textrm{LCA}(S)$ наименьшего общего предка множества $S$, то есть наиболее удаленную от корня вершину, которая является предком для каждой вершины из $S$.

\begin{center}
  \def \htmlPixelsInCm {45}  % pixels in 1 centimeter in HTML mode
  \includegraphics[width=8cm]{graph.png}
\end{center}

Например, пусть дерево состоит из $6$ вершин и имеет вид как на картинке выше. Тогда:
\begin{itemize}
\item $\textrm{LCA}(\{2, 3\}) = 5$
\item $\textrm{LCA}(\{6, 1\}) = 1$
\item $\textrm{LCA}(\{5, 2, 3\}) = 5$
\item $\textrm{LCA}(\{3\}) = 3$
\end{itemize}

Требуется узнать сумму значений номеров наименьших общих предков для всех непустых подмножеств вершин дерева. Так как ответ может быть слишком большим, выведите его по модулю $10^9 + 7$

\InputFile
Первая строка входных данных содержит единственное число $t$ ($1 \le t \le 10^4$)~--- количество наборов входных данных. 

Далее следуют описания наборов входных данных.

Первая строка каждого набора содержит целое число $n$ ($1 \le n \le 10^5$)~--- количество вершин в дереве.

Вторая строка каждого набора содержит $n$ целых чисел $p_1, p_2, \dots, p_n$ ($1 \le p_i \le n$)~--- массив предков. 

Гарантируется, что массив $p$ кодирует некоторое корневое дерево, и что сумма значений $n$ по всем наборам входных данных не превосходит $10^5$.

\OutputFile
Для каждого набора входных данных на отдельной строке выведите единственное число --- сумму значений функции $\textrm{LCA}$ по всем подмножествам вершин дерева по модулю $10^9 + 7$.

\Example

\begin{example}
\exmpfile{example.01}{example.01.a}%
\end{example}

\Note
Первый набор входных данных соответствует дереву из условия.

\end{problem}

