#include<stdio.h>
struct mar
{
long long a[2][2];
};
mar mar_mul(mar x,mar y);
int Fmod(long long n);
int main()
{
int t,i;
long long b[100];
scanf("%d",&t);
for(i=0;i<t;i++)
scanf("%lld",&b[i]);
for(i=0;i<t;i++)
printf("%d\n",Fmod(b[i]));
return 0;
}
mar mar_mul(mar x,mar y)
{
mar latest;
latest.a[0][0]=(x.a[0][0]*y.a[0][0]+x.a[0][1]*y.a[1][0])%100000007;//此步骤见下方详解
latest.a[0][1]=(x.a[0][0]*y.a[0][1]+x.a[0][1]*y.a[1][1])%100000007;
latest.a[1][0]=(x.a[1][0]*y.a[0][0]+x.a[1][1]*y.a[1][0])%100000007;
latest.a[1][1]=(x.a[1][0]*y.a[0][1]+x.a[1][1]*y.a[1][1])%100000007;
return latest;
}
int Fmod(long long n)
{
long long N=n-1;
int ans;
mar res,f;
res.a[0][0]=1;
res.a[0][1]=0;
res.a[1][0]=0;
res.a[1][1]=1;
f.a[0][0]=1;
f.a[0][1]=1;
f.a[1][0]=1;
f.a[1][1]=0;
while(N>0)
{
if(N%2!=0)
res=mar_mul(res,f);
N/=2;