#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")