#include <bits/stdc++.h>
using namespace std;
const int maxn = 300000 + 10;
const int mod = (int)1e9 + 7;
int a[maxn], dis[maxn];
long long sum[maxn];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  for (int i = (0); i < n; i++) cin >> a[i];
  sort(a, a + n);
  long long s = 0;
  for (int i = (0); i < n - 1; i++) {
    dis[i] = a[i + 1] - a[i];
    s += dis[i];
  }
  for (int i = 0; i < n / 2; i++) {
    sum[i] += s;
    if (i > 0) sum[i] += sum[i - 1];
    s -= dis[i] + dis[n - 2 - i];
    sum[i] %= mod;
  }
  for (int i = n / 2; i < n - 1; i++) {
    sum[i] = sum[n - 2 - i];
  }
  long long k = 1, ans = 0;
  for (int i = 0; i < n - 1; i++) {
    long long tmp = k * sum[i];
    tmp %= mod;
    ans += tmp;
    ans %= mod;
    k *= 2;
    k %= mod;
  }
  cout << ans % mod << endl;
  return 0;
}
