#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll p = 1e9 + 7;
ll n, L, R, q;
ll add(ll x, ll y){return (x % p + y % p + p) % p;}
ll mul(ll x, ll y){return (x % p * y % p) % p;}
ll C(ll x){
if(x < 2) return 0LL;
if(x == 2) return 1LL;
ll a = x;
ll b = x - 1;
if(b % 2 == 0) b /= 2;
else a /= 2;
return mul(a, b);
}
int main(){
freopen("love.inp", "r", stdin);
freopen("love.out", "w", stdout);
cin >> q;
while(q--){
cin >> L >> R >> n;
ll a = C(R - L + 1) + R - L + 1;
ll newL = (L - 1) / n, newR = R / n;
ll b = add(C(R / n - (L - 1) / n), (newR - newL));
cout << a - b << endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBsbCBwID0gMWU5ICsgNzsKbGwgbiwgTCwgUiwgcTsKbGwgYWRkKGxsIHgsIGxsIHkpe3JldHVybiAoeCAlIHAgKyB5ICUgcCArIHApICUgcDt9CmxsIG11bChsbCB4LCBsbCB5KXtyZXR1cm4gKHggJSBwICogeSAlIHApICUgcDt9CgpsbCBDKGxsIHgpewogICAgaWYoeCA8IDIpIHJldHVybiAwTEw7CiAgICBpZih4ID09IDIpIHJldHVybiAxTEw7CiAgICBsbCBhID0geDsKICAgIGxsIGIgPSB4IC0gMTsKICAgIGlmKGIgJSAyID09IDApIGIgLz0gMjsKICAgIGVsc2UgYSAvPSAyOwogICAgcmV0dXJuIG11bChhLCBiKTsKfQoKaW50IG1haW4oKXsKICAgIGZyZW9wZW4oImxvdmUuaW5wIiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJsb3ZlLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIGNpbiA+PiBxOwogICAgd2hpbGUocS0tKXsKICAgICAgICBjaW4gPj4gTCA+PiBSID4+IG47CiAgICAgICAgbGwgYSA9IEMoUiAtIEwgKyAxKSArIFIgLSBMICsgMTsKICAgICAgICBsbCBuZXdMID0gKEwgLSAxKSAvIG4sIG5ld1IgPSBSIC8gbjsKICAgICAgICBsbCBiID0gYWRkKEMoUiAvIG4gLSAoTCAtIDEpIC8gbiksIChuZXdSIC0gbmV3TCkpOwogICAgICAgIGNvdXQgPDwgYSAtIGIgPDwgZW5kbDsKICAgIH0KCn0=