#include <bits/stdc++.h>
using namespace std;
int bit[2][1020000], N = 1000002, arr[1020000], res[1020000];
void update(int idx, int val, int b) {
  idx++;
  while (idx <= N) bit[b][idx] ^= val, idx += idx & (-idx);
}
int xori(int idx, int b) {
  idx++;
  int res = 0;
  while (idx > 0) res ^= bit[b][idx], idx -= idx & (-idx);
  return res;
}
map<int, int> last;
vector<pair<int, int> > qs[1020000];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &arr[i]);
  }
  int q, l, r;
  scanf("%d", &q);
  for (int i = 0; i < q; i++) {
    scanf("%d %d", &l, &r);
    qs[r].emplace_back(l, i);
  }
  for (int i = 1; i <= n; i++) {
    if (last[arr[i]] != 0) {
      update(last[arr[i]], arr[i], 0);
    }
    update(i, arr[i], 1);
    update(i, arr[i], 0);
    last[arr[i]] = i;
    for (pair<int, int> que : qs[i]) {
      res[que.second] = xori(i, 1) ^ xori(que.first - 1, 1) ^ xori(i, 0) ^
                        xori(que.first - 1, 0);
    }
  }
  for (int i = 0; i < q; i++) {
    printf("%d\n", res[i]);
  }
  return 0;
}
