#include using namespace std; using ll = long long; using Graph = vector>; using ull = unsigned long long; long long modinv(long long a, long long m) { long long b = m, u = 1, v = 0; while (b) { long long t = a / b; a -= t * b; swap(a, b); u -= t * v; swap(u, v); } u %= m; if (u < 0) u += m; return u; } long long mod = 1000000007; int main() { long long N; cin >> N; long long ans = 0; vector> CD(N); for(int i = 0; i < N; i++) { long long a,b; cin >> a >> b; long long x = 0; if(a % 2ll == 1) { x = 1ll; } a %= mod; b %= mod; a = a * modinv(2ll, mod) % mod; a += x; ans += (a * b) % mod; ans %= mod; cout <