#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+5,B=2e5+5;
int a[N],L[B],R[B],pos[N];
vector<int>block[B],sum[B];
int query(int l,int r,int d)
{
int x=pos[l],y=pos[r],ans=0;
if(x==y)
{
for(int i=l;i<=r;++i)
if(a[i]<=d)
ans+=a[i];
return ans;
}
ans+=query(l,R[x],d)+query(L[y],r,d);
for(int i=x+1;i<y;++i)
{
int pos=upper_bound(block[i].begin(),block[i].end(),d)-block[i].begin()-1;
if(block[i][pos]<=d)
ans+=sum[i][pos];
}
return ans;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n,m;
cin>>n;
for(int i=1;i<=n;++i)
cin>>a[i];
int t=sqrt(n);
for(int i=1;i<=t;++i)
L[i]=(i-1)*t+1,R[i]=i*t;
if(R[t]<n)
{
++t;
L[t]=R[t-1]+1;
R[t]=n;
}
for(int i=1;i<=t;++i)
{
for(int j=L[i];j<=R[i];++j)
{
pos[j]=i;
block[i].emplace_back(a[j]);
}
sort(block[i].begin(),block[i].end());
sum[i].emplace_back(block[i][0]);
for(int j=1;j<(int)block[i].size();++j)
sum[i].emplace_back(block[i][j]+sum[i][j-1]);
}
cin>>m;
int lst=0;
while(m--)
{
int l,r,k;
cin>>l>>r>>k;
l^=lst,r^=lst,k^=lst;
cout<<(lst=query(l,r,k))<<'\n';
}
}