#include <bits/stdc++.h>
using namespace std;

int mod = 1'000'000'007;

long long modpow(long long x, long long y){
    if (y == 0) return 1;
    if (y % 2) return x * modpow(x, y - 1) % mod;
    long long res = modpow(x, y / 2);
    return res * res % mod;
}

int main(){
    vector<long long> fac(100'001, 1);
    for (int i = 2; i < 100'001; i++) fac[i] = fac[i - 1] * i % mod;
    vector<long long> inv(100'001, 0);
    inv[1] = 1;
    for (int i = 0; i < 100'001; i++) inv[i] = modpow(fac[i], mod - 2);
    int n;
    cin >> n;
    vector<int> x(n);
    for (int i = 0; i < n; i++) cin >> x[i];
    long long ans = 0;
    long long b = 0;
    for (int i = 0; i < n - 1; i++){
        long long tmp = fac[n - 1] * (i + 1) % mod;
        long long c = ((fac[i] * fac[n - 1] % mod) * inv[i + 1] % mod) * i % mod;
        c += b;
        b = c;
        tmp += mod - c;
        tmp %= mod;
        tmp *= (x[i + 1] - x[i]);
        tmp %= mod;
        ans += tmp;
        ans %= mod;
    }
    cout << ans << endl;
}