#include <bits/stdc++.h>
using namespace std;
struct edge {
  int to, cost;
};
const int MAX = 510000;
int main() {
  long long N;
  cin >> N;
  long long a[N];
  for (int i = 0; i < (int)(N); i++) {
    cin >> a[i];
  }
  long long ans = 0;
  for (int i = 0; i < (int)(60); i++) {
    long long zero = 0;
    long long one = 0;
    long long g = 1LL << i;
    for (int j = 0; j < (int)(N); j++) {
      if (a[j] & g)
        one++;
      else
        zero++;
    }
    ans += ((one % 1000000007) * (zero % 1000000007) * (g % 1000000007)) %
           1000000007;
    ans %= 1000000007;
  }
  cout << ans;
}
