#include <bits/stdc++.h>
#define task "1"
#define int long long
#define double long double
#define ii pair<int,int>
#define fi first
#define se second
#define c_bit(i) __builtin_popcountll(i)
#define Bit(mask,i) ((mask >> i) & 1)
#define onbit(mask,i) ((mask) | (1LL << i))
#define offbit(mask,i) ((mask) &~ (1LL << i))
using namespace std;
const int maxn = 1e5 + 5;
const int oo = 1e18;
const int mod = 1e9 + 7;
const int dx[] = {0,1,0,-1} , dy[] = {1,0,-1,0};
int t, pref[2005][2005];
int get(int x, int y, int u, int v)
{
return pref[u][v] - pref[x - 1][v] - pref[u][y - 1] + pref[x - 1][y - 1];
}
int sum(const int &x, const int &y)
{
int res = x + y;
if(res >= mod) res -= mod;
return res;
}
void add(int &x, const int &y)
{
if((x += y) >= mod) x -= mod;
}
int diff(const int &x, const int &y)
{
int res = x - y;
if(res < 0) res += mod;
return res;
}
main()
{
ios_base::sync_with_stdio(false); cin.tie(nullptr);
if(fopen(task".inp","r")){
freopen(task".inp","r",stdin);
freopen(task".out","w",stdout);
}
cin >> t;
for(int i = 1;i <= 2003;i ++) for(int j = 1;j <= 2003;j ++){
pref[i][j] = pref[i][j - 1] + (__gcd(i, j) == 1 ? 1LL * i * j : 0);
}
int pre = t;
while(t --){
int a, b, c, d, k; cin >> a >> b >> c >> d >> k;
// if(max(b, d) <= 2000 && pre <= 2){
// int res = 0;
// for(int i = a;i <= b;i ++) for(int j = c;j <= d;j ++) if(__gcd(i, j) == k) res += 1LL * i * j;
// cout << res % mod << '\n';
// continue;
// }
if(k == 1){
int res = 0;
for(int i = a;i <= b;i ++) add(res, pref[i][d] - pref[i][c - 1]);
cout << res<< '\n';
continue;
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgdGFzayAiMSIKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZG91YmxlIGxvbmcgZG91YmxlCiNkZWZpbmUgaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgY19iaXQoaSkgICAgICAgX19idWlsdGluX3BvcGNvdW50bGwoaSkKI2RlZmluZSBCaXQobWFzayxpKSAgICAoKG1hc2sgPj4gaSkgJiAxKQojZGVmaW5lIG9uYml0KG1hc2ssaSkgICgobWFzaykgfCAoMUxMIDw8IGkpKQojZGVmaW5lIG9mZmJpdChtYXNrLGkpICgobWFzaykgJn4gKDFMTCA8PCBpKSkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IG1heG4gPSAxZTUgKyA1Owpjb25zdCBpbnQgb28gPSAxZTE4Owpjb25zdCBpbnQgbW9kID0gMWU5ICsgNzsKY29uc3QgaW50IGR4W10gPSB7MCwxLDAsLTF9ICwgZHlbXSA9IHsxLDAsLTEsMH07CmludCB0LCBwcmVmWzIwMDVdWzIwMDVdOwppbnQgZ2V0KGludCB4LCBpbnQgeSwgaW50IHUsIGludCB2KQp7CiAgICByZXR1cm4gcHJlZlt1XVt2XSAtIHByZWZbeCAtIDFdW3ZdIC0gcHJlZlt1XVt5IC0gMV0gKyBwcmVmW3ggLSAxXVt5IC0gMV07Cn0KaW50IHN1bShjb25zdCBpbnQgJngsIGNvbnN0IGludCAmeSkKewogICAgaW50IHJlcyA9IHggKyB5OwogICAgaWYocmVzID49IG1vZCkgcmVzIC09IG1vZDsKICAgIHJldHVybiByZXM7Cn0Kdm9pZCBhZGQoaW50ICZ4LCBjb25zdCBpbnQgJnkpCnsKICAgIGlmKCh4ICs9IHkpID49IG1vZCkgeCAtPSBtb2Q7Cn0KaW50IGRpZmYoY29uc3QgaW50ICZ4LCBjb25zdCBpbnQgJnkpCnsKICAgIGludCByZXMgPSB4IC0geTsKICAgIGlmKHJlcyA8IDApIHJlcyArPSBtb2Q7CiAgICByZXR1cm4gcmVzOwp9CiBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUobnVsbHB0cik7CiAgICBpZihmb3Blbih0YXNrIi5pbnAiLCJyIikpewogICAgICAgZnJlb3Blbih0YXNrIi5pbnAiLCJyIixzdGRpbik7CiAgICAgICBmcmVvcGVuKHRhc2siLm91dCIsInciLHN0ZG91dCk7CiAgICB9CiAgICBjaW4gPj4gdDsKICAgIGZvcihpbnQgaSA9IDE7aSA8PSAyMDAzO2kgKyspIGZvcihpbnQgaiA9IDE7aiA8PSAyMDAzO2ogKyspewogICAgICAgIHByZWZbaV1bal0gPSBwcmVmW2ldW2ogLSAxXSArIChfX2djZChpLCBqKSA9PSAxID8gMUxMICogaSAqIGogOiAwKTsKICAgIH0KICAgIGludCBwcmUgPSB0OwogICAgd2hpbGUodCAtLSl7CiAgICAgICAgaW50IGEsIGIsIGMsIGQsIGs7IGNpbiA+PiBhID4+IGIgPj4gYyA+PiBkID4+IGs7Ci8vICAgICAgICBpZihtYXgoYiwgZCkgPD0gMjAwMCAmJiBwcmUgPD0gMil7Ci8vICAgICAgICAgICAgaW50IHJlcyA9IDA7Ci8vICAgICAgICAgICAgZm9yKGludCBpID0gYTtpIDw9IGI7aSArKykgZm9yKGludCBqID0gYztqIDw9IGQ7aiArKykgaWYoX19nY2QoaSwgaikgPT0gaykgcmVzICs9IDFMTCAqIGkgKiBqOwovLyAgICAgICAgICAgIGNvdXQgPDwgcmVzICUgbW9kIDw8ICdcbic7Ci8vICAgICAgICAgICAgY29udGludWU7Ci8vICAgICAgICB9CiAgICAgICAgaWYoayA9PSAxKXsKICAgICAgICAgICAgaW50IHJlcyA9IDA7CiAgICAgICAgICAgIGZvcihpbnQgaSA9IGE7aSA8PSBiO2kgKyspIGFkZChyZXMsIHByZWZbaV1bZF0gLSBwcmVmW2ldW2MgLSAxXSk7CiAgICAgICAgICAgIGNvdXQgPDwgcmVzPDwgJ1xuJzsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0K