#include <bits/stdc++.h>   using namespace std;   long double PI = acosl(-1);   bool compare_int(int a, int b) { return (a > b); }   bool compare_string(string a, string b) { return a.size() < b.size(); }   bool compare_pair(const pair<int, int> &a, const pair<int, int> &b) {     if (a.second == b.second)       return a.first < b.first;     else       return (a.second > b.second);   }   bool cmp(pair<string, int> x, pair<string, int> y) {     return (x.second < y.second);   }   long long int bigmod(long long int a, long long int b, long long int m) {     if (b == 0) return 1 % m;     long long int x = bigmod(a, b / 2, m);     x = (x * x) % m;     if (b % 2 == 1) x = (x * a) % m;     return x;   }   void NA() {     printf( NO n );     exit(0);   }   void YA() {     printf( YES n );     exit(0);   }   int32_t main() {     ios::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     int n;     cin >> n;     vector<int> a(n);     for (int i = 0; i < n; i++) cin >> a[i];     long long int mx = 0LL, mn = 0LL;     sort(a.begin(), a.end());     for (int i = 0; i < n; i++) {       mx = (mx + bigmod(2, i, 1000000007) * a[i]) % 1000000007;       mn = (mn + bigmod(2, n - i - 1, 1000000007) * a[i]) % 1000000007;     }     cout << (mx - mn + 1000000007) % 1000000007 << endl;   }   