#include <iostream>
#include <vector>
using namespace std;
long long num(int left, int right) {
    long long sum = 0;
    for (int i = 1; i <= left + 1; i++) {
        sum += i;
    }
    sum *= (right + 1);
    return sum;
}

int main() {
    int n;
    cin >> n;
    vector<int> arr;
    int a;
    while (cin >> a) {
        arr.push_back(a);
    }
    //cout<<arr[n-1]<<endl;
    long long sum = 0;
    for (int i = 0; i < n; i++) {
        int left = i;
        int right = n - i - 1;
        sum += (num(left, right) * arr[i]) % static_cast<long long>(1e9 + 7);
    }
    sum = sum % static_cast<long long>(1e9 + 7);
    printf("%lld", sum);
    //cout<<sum<<endl;
    return 0;
}
// 64 位输出请用 printf("%lld")