#include <bits/stdc++.h>
using namespace std;
int M[30][2][30][2];
void F(int a, int b, int c) {
if (a == b || b == c)
return;
pair<int, int> x, y;
for(int i = 29; i >= 0; i--) {
int ai = (a >> i) & 1;
int bi = (b >> i) & 1;
if (ai != bi) {
x = make_pair(i, ai);
break;
}
}
for(int i = 29; i >= 0; i--) {
int ci = (c >> i) & 1;
int bi = (b >> i) & 1;
if (ci != bi) {
y = make_pair(i, ci);
break;
}
}
if (x > y)
swap(x, y);
M[x.first][x.second][y.first][y.second]++;
}
int main()
{
int n;
cin >> n;
vector<int> a(n);
for(int i = 0; i < n; i++)
cin >> a[i];
for(int i = 1; i < n - 1; i++)
F(a[i - 1], a[i], a[i + 1]);
int q;
cin >> q;
int X = 0;
for(int it = 0; it < q; it++) {
int x;
cin >> x;
X ^= x;
vector<int> A;
for(int i = 0; i < 30; i++)
A.push_back((X >> i) & 1);
int res = 0;
for(int i = 0; i < 30; i++)
for(int j = i; j < 30; j++)
res += M[i][A[i]][j][A[j]];
cout << res << endl;
}
return 0;
}