#include <bits/stdc++.h>
using namespace std;
bitset<1000001> L, R;
vector<int> H1, H2, V1, V2, res;
multiset<int> AA, BB;
int A[1000], B[1000];
bool solve(int *A, int s, int e, int S) {
  int m = (s + e) >> 1;
  if (s == e || S == 0) {
    if (S) res.push_back(A[m]);
    return true;
  }
  for (int i = 0; i <= S; i++) L[i] = R[i] = 0;
  L[0] = R[0] = 1;
  for (int i = s; i <= m; i++) L |= L << A[i];
  for (int i = e; i > m; i--) R |= R << A[i];
  for (int i = 0; i <= S; i++)
    if (L[i] && R[S - i]) {
      solve(A, s, m, i);
      solve(A, m + 1, e, S - i);
      return true;
    }
  return false;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ((void)0);
  ((void)0);
  ((void)0);
  int T, N, M;
  for (cin >> T; T--;) {
    int H = 0, V = 0, x = 0, y = 0;
    cin >> N;
    AA.clear();
    BB.clear();
    for (int i = 0; i < N; i++) {
      cin >> A[i];
      H += A[i];
      AA.insert(A[i]);
    }
    cin >> M;
    for (int i = 0; i < M; i++) {
      cin >> B[i];
      V += B[i];
      BB.insert(B[i]);
    }
    if ((H & 1) || (V & 1) || N != M || N == 1 || M == 1) {
      cout << "No\n";
      continue;
    }
    sort(A, A + N);
    sort(B, B + M);
    res.clear();
    if (!solve(A, 0, N - 1, H / 2)) {
      cout << "No\n";
      continue;
    }
    H1.clear();
    H2.clear();
    for (auto v : res) {
      H1.push_back(v);
      AA.erase(AA.find(v));
    }
    for (auto v : AA) H2.push_back(v);
    res.clear();
    if (!solve(B, 0, M - 1, V / 2)) {
      cout << "No\n";
      continue;
    }
    V1.clear();
    V2.clear();
    for (auto v : res) {
      V1.push_back(v);
      BB.erase(BB.find(v));
    }
    for (auto v : BB) V2.push_back(v);
    if (V1.size() > V2.size()) swap(V1, V2);
    if (H1.size() < H2.size()) swap(H1, H2);
    reverse(V1.begin(), V1.end());
    reverse(V2.begin(), V2.end());
    cout << "Yes\n";
    for (auto &v : V1) v *= -1;
    for (auto &h : H2) H1.push_back(-h);
    for (auto v : V2) V1.push_back(v);
    for (int i = 0; i < N; i++) {
      y += V1[i];
      cout << x << ' ' << y << '\n';
      x += H1[i];
      cout << x << ' ' << y << '\n';
    }
  }
  return 0;
}
