#include<bits/stdc++.h>

typedef long long LL;

const int N=100005;
const int MOD=1000000007;

int n,x[N],ny[N];

int main()
{
	scanf("%d",&n);
	for (int i=1;i<=n;i++) scanf("%d",&x[i]);
	ny[0]=ny[1]=1;
	for (int i=2;i<=n;i++) ny[i]=(LL)(MOD-MOD/i)*ny[MOD%i]%MOD;
	for (int i=2;i<=n;i++) (ny[i]+=ny[i-1])%=MOD;
	int ans=0;
	for (int i=1;i<n;i++) (ans+=(LL)ny[i]*(x[i+1]-x[i])%MOD)%=MOD;
	for (int i=2;i<n;i++) ans=(LL)ans*i%MOD;
	printf("%d\n",ans);
	return 0;
}