#include <algorithm> #include <bitset> #include <cassert> #include <cctype> #include <climits> #include <cmath> #include <complex> #include <cstdio> #include <cstring> #include <deque> #include <functional> #include <iomanip> #include <iostream> #include <map> #include <numeric> #include <queue> #include <random> #include <set> #include <stack> #include <string> #include <tuple> #include <unordered_map> #include <vector> #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define show(x) cout << #x << " = " << (x) << endl; using namespace std; using ll = long long; using pii = pair<int,int>; int main(){ int n; cin >> n; ll mod = 1e9+7; n++; vector<ll>a(n); vector<ll>b(n+1,0); rep(i,n)cin >> a[i]; rep(i,n)cin >> b[i]; rep(i,n)b[i+1] += b[i]; rep(i,n)b[i+1]%=mod; ll ans = 0; rep(i,n){ ans += a[i] * b[n-1-i]; ans %= mod; } cout << ans << endl; }