//be name khoda :)

// #include <ext/pb_ds/assoc_container.hpp> // Common file
// #include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
#include <bits/stdc++.h>
using namespace std;
// typedef tree< int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;

#define sz(x) ((int)x.size())
#define rep(i, n) for(int i = 0; i < (n); i++)
#define res(i, s) for(int i = 0; i < (sz(s)); i++)
#define pii pair<int, int>
#define all(v) v.begin(), v.end()
#define vi vector <int> 
#define pb push_back
#define mp make_pair
#define INF 0x3f3f3f3f 
typedef long long ll;

const int N = 11221;

ll a[N], ys, yt, ms, mt, ds, dt;

ll f(int ms, int ds) {
	ll sum = ds;
	rep(i, ms - 1)
		sum += a[i];
	return sum;
}

int main()
{
	int tests;
    cin >> tests;
	while(tests--) {
		int n;
		cin >> n;
		ll sum = 0, year = 0;

		rep(i, n) {
			cin >> a[i];
			year += a[i];
		}

		ll ys, ms, ds, mt, dt, yt;
    	cin >> ys >> ms >> ds;
    	cin >> yt >> mt >> dt;

		sum += max(0LL, (yt - ys - 1)) * (ll)year;
		for(int i = ys + 1; i < yt; i++)
			sum += (i % 4 == 0);
		sum += -f(ms, ds) + 1 + year + (ys % 4 == 0);
		if(ys == yt)
			sum -= year - f(mt, dt) + (yt % 4 == 0);
		else
			sum += f(mt, dt);
		cout << sum << endl;
	}
	return 0;
}