MOD = 10**9+7 A = [[0]*4 for _ in range(4)] inv3 = pow(3, MOD-2, MOD) A[0][2] = A[1][3] = 1 A[2][1] = A[2][2] = A[3][1] = A[3][3] = inv3 A[3][0] = 2*inv3 % MOD def multiple(X, Y): r = len(X) c = len(Y[0]) n = len(Y) Z = [[0]*c for _ in range(r)] for i in range(r): for j in range(c): for k in range(n): Z[i][j] += X[i][k]*Y[k][j] % MOD Z[i][j] %= MOD return Z M = 30 B = [] B.append(A) for _ in range(M): B.append(multiple(B[-1], B[-1])) def solve(n): C = [[0]*4 for _ in range(4)] for i in range(4): C[i][i] = 1 for i in range(M): if (n >> i) & 1: C = multiple(B[i], C) ans = [[1], [0], [inv3], [0]] ans = multiple(C, ans) return ans[0][0] def main(): T = int(input()) ans = [0]*T for i in range(T): N = int(input()) ans[i] = solve(N) print(*ans, sep='\n') main()