import java.util.Arrays;
import java.util.Scanner;
/**
 * 奶牛编号
 * @author WangYixin
 *
 */
public class Main2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()){
			int n = sc.nextInt();
			//假设arr非降序,否则需要对齐排序
			int[] arr = new int[n];
			for(int i= 0;i<n;i++){
				arr[i] = sc.nextInt();
			}
			//!!!!新增加排序
			Arrays.sort(arr);
			
			long[] f = new long[n];
			f[0] = arr[0];
			for(int i=1;i<n;i++){
				//不影响前面+影响前面
				long front = (arr[i]-arr[i-1])*f[i-1] % 1000000007;
				long after = f[i-1]*(arr[i-1]- i) ;
				f[i] = (front + after)% 1000000007;
			}
			
			System.out.println(f[n-1]);
		}
	}

}