#include<iostream>
#include<cstring>
using namespace std;
const int N = 3e6 + 10, M = 30 + 10;
long long f[M],a[N],b[N], n, t,res,mod=998244353;
int main()
{
scanf("%d", &t);
b[0] = 1;
for (int i = 1; i < N; i++) {
b[i] = (b[i - 1] * 2) % mod;
}
for (int i = 1; i <= t; i++) {
scanf("%d", &n);
memset(f, 0, sizeof f);
res = 0;
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
}
for (int j = 1; j <=32; j++) {
int k1 = 0, k2 = 0;
for (int i = 1; i <= n; i++) {
//f[j] = f[j];
if (a[i] &( 1ll << (j - 1))) {
if (k1 + k2 >= 1) {
if (k2) {
f[j] = (f[j] + b[k1 + k2 - 1]) % mod;
}
else {
f[j] = (f[j] + b[k1]) % mod;
}
}
else {
f[j] = (f[j] + 1);
}
k2++;
}
else {
if (k2) {
f[j] = (f[j] + b[k1 + k2 - 1]) % mod;
}
k1++;
}
}
res = (res + ((f[j]) * b[j - 1]) % mod) % mod;
}
printf("%d\n", res);
}
return 0;
}