#include<bits/stdc++.h>
using namespace std;
constexpr int maxn = 200000;
constexpr int maxm = 2000;
constexpr int mod = 1000000007;
void add(int& x, int y){
    x += y;
    if(x >= mod) x -= mod;
}
int A[maxn], B[maxn];
int DP[maxm * 2 + 1][maxm * 2 + 1];
int C[maxm * 2 + 1][maxm * 2 + 1];
int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int N;
    cin >> N;
    for(int i = 0; i < N; i += 1){
        cin >> A[i] >> B[i];
        DP[maxm - A[i]][maxm - B[i]] += 1;
    }
    C[0][0] = 1;
    int ans = 0;
    for(int i = 0; i <= 2 * maxm; i += 1)
        for(int j = 0; j <= 2 * maxm; j += 1){
            if(i) add(DP[i][j], DP[i - 1][j]);
            if(j) add(DP[i][j], DP[i][j - 1]);
            if(i) add(C[i][j], C[i - 1][j]);
            if(j) add(C[i][j], C[i][j - 1]);
        }
    for(int i = 0; i < N; i += 1){
        add(ans, DP[maxm + A[i]][maxm + B[i]]);
        add(ans, mod - C[A[i] * 2][B[i] * 2]);
    }
    cout << (ans & 1 ? (ans + mod) / 2 : ans / 2);
    return 0; 
}