#include <bits/stdc++.h>
using namespace std;
void Freopen() {
  freopen(
      "title"
      ".in",
      "r", stdin);
  freopen(
      "title"
      ".out",
      "w", stdout);
}
int read() {
  int g = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || '9' < ch) {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while ('0' <= ch && ch <= '9') {
    g = g * 10 + ch - '0';
    ch = getchar();
  }
  return g * f;
}
const int N = 1e6 + 5;
const int mod = 1e9 + 7;
int a[N], b[N], c[N], f[N], d[N], n, len;
long long ans;
void fwt(int *a) {
  for (int i = 1; i < len; i *= 10)
    for (int j = (len - 1); j >= (0); j--)
      if (j / i % 10) a[j - i] = (a[j - i] + a[j]) % mod;
}
void ifwt(int *a) {
  for (int i = 1; i < len; i *= 10)
    for (int j = (0); j <= (len - 1); j++)
      if (j / i % 10) a[j - i] = (a[j - i] - a[j] + mod) % mod;
}
signed main() {
  n = read();
  for (int i = (1); i <= (n); i++) {
    int x = read();
    a[x]++, b[x] = (b[x] + x) % mod, c[x] = (c[x] + 1ll * x * x % mod) % mod;
  }
  len = 1e6;
  fwt(a);
  fwt(b);
  fwt(c);
  d[0] = 1;
  for (int i = (1); i <= (n); i++) d[i] = (d[i - 1] << 1) % mod;
  for (int i = (0); i <= (len - 1); i++)
    if (a[i]) {
      if (a[i] == 1)
        f[i] = c[i];
      else
        f[i] = 1ll * d[a[i] - 2] * (1ll * b[i] * b[i] % mod + c[i]) % mod;
    }
  ifwt(f);
  for (int i = (0); i <= (len - 1); i++) ans ^= 1ll * f[i] * i;
  return cout << ans, signed();
}
