///个人感觉vector好看一点
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
int tang[12],fan[12],mian[12],hun[12],su[12];
int t,a,b,c,d,e,ml,mr;
int solve()
{
vector<int>v[6];
for(int i = 0; i < 6; i++)v[i].clear();
for(int i = 0; i < d; i++)
{
for(int j = 0; j < e; j++)
{
if(hun[i] + su[j] <= mr)
v[0].push_back(hun[i] + su[j]);
}
}
for(int i = 0; i < d; i++)
{
for(int j = 0; j < e; j++)
{
for(int q = j+1; q < e; q++)
{
int num = su[j] + su[q];
if(num + hun[i] <= mr)
v[1].push_back(num + hun[i]);
}
}
}
for(int i = 0; i < d; i++)
{
for(int j = i+1; j < d; j++)
{
int num = hun[i] + hun[j];
if(num <= mr)
for(int q = 0; q < e; q++)
{
if(num + su[q] <= mr)
v[2].push_back(num + su[q]);
}
}
}
for(int i = 0; i < d; i++)
{
for(int j = i+1; j < d; j++)
{
int num1 = hun[i] + hun[j];
if(num1 <= mr)
for(int q = 0; q < e; q++)
{
for(int k = q+1; k < e; k++)
{
int num2 = su[q] + su[k];
if(num1 + num2 <= mr)
v[3].push_back(num1+ num2);
}
}
}
}
for(int i = 0; i < a; i++)
{
for(int j = 0; j < b; j++)
{
if(tang[i] + fan[j] <= mr)
v[4].push_back(tang[i] + fan[j]);
}
}
for(int i = 0; i < c; i++)
{
if(mian[i] <= mr)
v[5].push_back(mian[i]);
}
int ans = 0;
for(int i = 0; i < 4; i++)
{
int len = v[i].size();
for(int j = 0; j < len; j++)
{
int len1 = v[4].size(),len2 = v[5].size();
for(int k = 0; k < len1; k++)
{
if(v[i][j] + v[4][k] >= ml && v[i][j] + v[4][k] <= mr)
ans++;
}
for(int k = 0; k < len2; k++)
{
if(v[i][j] + v[5][k] >= ml && v[i][j] + v[5][k] <= mr)
ans++;
}
}
}
return ans;
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
for(int i = 0; i < a; i++)
scanf("%d",&tang[i]);
for(int i = 0; i < b; i++)
scanf("%d",&fan[i]);
for(int i = 0; i < c; i++)
scanf("%d",&mian[i]);
for(int i = 0; i < d; i++)
scanf("%d",&hun[i]);
for(int i = 0; i < e; i++)
scanf("%d",&su[i]);
scanf("%d%d",&ml,&mr);
printf("%d
",solve());
}
}