#include <bits/stdc++.h>
using namespace std;
int XOR(int a, int b) {
  int i, j, k, l, answer = 0;
  int bin_a[61], bin_b[61], ans[61];
  for (int index = 0; index < 61; index++) {
    bin_a[index] = 0;
    bin_b[index] = 0;
  }
  for (i = 0; a > 0; i++) {
    bin_a[i] = a % 2;
    a /= 2;
  }
  for (j = 0; b > 0; j++) {
    bin_b[j] = b % 2;
    b /= 2;
  }
  for (k = 0; k < 61; k++) {
    ans[k] = (bin_a[k] + bin_b[k]) % 2;
  }
  for (int l = 0; l < 61; l++) {
    if (ans[l] == 1) answer += pow(2, l);
  }
  return answer;
}
int main(void) {
  int N, ans = 0, i, j;
  cin >> N;
  int A[N];
  for (int i = 0; i < N; i++) cin >> A[i];
  for (i = 0; i < N - 1; i++) {
    for (j = i + 1; j < N; j++) {
      ans += XOR(A[i], A[j]);
    }
  }
  ans = ans % 1000000007;
  cout << ans;
  return 0;
}
