#include using namespace std; const int N=200005; const int MD=1e9+7; int a[N],fac[N],inv[N]; int f[3],g[3]; int quick_pow(int x,int y) { int ans=1; while(y) { if(y&1) ans=1LL*ans*x%MD; y>>=1; x=1LL*x*x%MD; } return ans; } void init() { fac[0]=1; for(int i=1;i=0;i--) inv[i]=1LL*inv[i+1]*(i+1)%MD; } void add(int &x,int y) { x+=y; if(x>MD) x-=MD; } int main() { init(); int T,n; scanf("%d",&T); while(T--) { scanf("%d",&n),n<<=1; f[1]=f[2]=0,f[0]=1; for(int i=1;i<=n;i++) a[i]=0; for(int i=0,x;i>1; add(g[0],1LL*f[1]*fac[a[i]]%MD*inv[t]%MD*inv[a[i]-t]%MD); add(g[0],1LL*f[2]*fac[a[i]]%MD*inv[t]%MD*inv[a[i]-t]%MD); add(g[1],1LL*f[0]*fac[a[i]]%MD*inv[t]%MD*inv[a[i]-t]%MD); add(g[2],1LL*f[0]*fac[a[i]]%MD*inv[t]%MD*inv[a[i]-t]%MD); } else { for(int j=0;j<3;j++) g[j]=1LL*f[j]*fac[a[i]]%MD*inv[a[i]/2]%MD*inv[a[i]/2]%MD; add(g[1],1LL*f[2]*fac[a[i]]%MD*inv[a[i]/2+1]%MD*inv[a[i]/2-1]%MD); add(g[2],1LL*f[1]*fac[a[i]]%MD*inv[a[i]/2+1]%MD*inv[a[i]/2-1]%MD); } for(int j=0;j<3;j++) f[j]=g[j],g[j]=0; } printf("%d\n",f[0]); } return 0; }