SP8001
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int n=3,N=n+5,mod=1e9+7;
int num;
struct matrix{
int a[N][N];
matrix(){
memset(a,0,sizeof(a));
}
};
matrix operator*(matrix a,matrix b){
matrix ret;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=n;k++){
ret.a[i][j]=(ret.a[i][j]+a.a[i][k]*b.a[k][j])%mod;
}
}
}
return ret;
}
int fib(int num){
if(!num){
return 0;
}
num--;
matrix ret;
ret.a[1][1]=1,ret.a[1][2]=1;
matrix base;
base.a[1][1]=1,base.a[1][2]=1,base.a[1][3]=1,base.a[2][2]=1,base.a[2][3]=1,base.a[3][2]=1;
while(num){
if(num%2){
ret=ret*base;
}
base=base*base,num/=2;
}
return ret.a[1][1];
}
int T,l,r;
signed main(){
cin>>T;
while(T--){
cin>>l>>r;
int ans=fib(r)-fib(l-1);
cout<<(ans%mod+mod)%mod<<'\n';
}
}