#include <bits/stdc++.h>
using namespace std;
const int sz = 3e5 + 9;
long long a[sz];
long long cs[65][sz];
long long mod = 1e9 + 7;
long long add(long long a, long long b) {
  return ((a % mod + b % mod) % mod + mod) % mod;
}
long long mul(long long a, long long b) { return (a % mod * b % mod) % mod; }
long long ans;
int n;
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &a[i]);
  }
  for (int i = n; i >= 1; i--) {
    for (int j = 0; j < 64; j++) {
      cs[j][i] = cs[j][i + 1] + ((a[i] >> j) & 1);
    }
  }
  for (int i = 1; i < n; i++) {
    long long tot = n - i;
    for (int j = 0; j < 64; j++) {
      long long cnt = cs[j][i + 1];
      if ((a[i] >> j) & 1)
        ans = add(ans, mul(1ll << j, tot - cnt));
      else
        ans = add(ans, mul(1ll << j, cnt));
    }
  }
  printf("%lld", ans);
  return 0;
}
