数位DP模板
//求l~r所有数的数位和之和
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
int a[25],len;
int dp[25][2][200];
int dfs(int pos,int limit,int lead,int sum){
if(pos==0)return sum;
if(!limit && dp[pos][lead][sum]!=-1)return dp[pos][lead][sum];
int maxx=limit?a[pos]:9;
int ans=0;
for(int i=0;i<=maxx;i++){
ans=(ans+dfs(pos-1,limit&&i==maxx,lead&&i==0,sum+i))%mod;
}
if(!limit)dp[pos][lead][sum]=ans;
return ans;
}
int solve(ll x){
len=0;
while(x){
a[++len]=x%10;
x/=10;
}
return dfs(len,1,1,0);
}
int main () {
memset(dp,-1,sizeof dp);
int T;
scanf("%d",&T);
while(T--){
ll l,r;
scanf("%lld%lld",&l,&r);
int ans=solve(r)-solve(l-1);
while(ans<0)ans+=mod;
ans%=mod;
printf("%d\n",ans);
}
}