#include <bits/stdc++.h>
using namespace std;
int T, n, m, a[1005], b[1005], A[1005], cn1 = 0, B[1005], cn2 = 0, C[1005],
                                        cn3 = 0, D[1005], cn4 = 0, su = 0,
                                        f1 = 1, f2 = 1;
bool fl;
bitset<1000002> f[1005];
inline bool cmp1(int x, int y) { return (x > y); }
inline bool cmp2(int x, int y) { return (x < y); }
pair<int, int> all[1005 << 1];
bool vi[1005 << 1];
int main() {
  scanf("%d", &T);
  f[0][0] = 1;
  while (T--) {
    scanf("%d", &n);
    int i, X = 0, Y = 0;
    fl = true;
    su = 0;
    for (i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
      su += a[i];
      f[i] = f[i - 1] | (f[i - 1] << a[i]);
    }
    if ((su & 1) || (!f[n][su >> 1])) fl = false;
    if (fl) {
      su >>= 1;
      cn1 = cn3 = 0;
      for (i = n; i >= 1; i--)
        if ((su >= a[i]) && f[i - 1][su - a[i]])
          su -= (A[++cn1] = a[i]);
        else
          C[++cn3] = a[i];
    }
    scanf("%d", &m);
    su = 0;
    for (i = 1; i <= m; i++) {
      scanf("%d", &b[i]);
      su += b[i];
      f[i] = f[i - 1] | (f[i - 1] << b[i]);
    }
    if ((su & 1) || (!f[m][su >> 1])) fl = false;
    if (fl) {
      su >>= 1;
      cn2 = cn4 = 0;
      for (i = m; i >= 1; i--)
        if ((su >= b[i]) && f[i - 1][su - b[i]])
          su -= (B[++cn2] = b[i]);
        else
          D[++cn4] = b[i];
    }
    if ((n != m) || (!fl)) {
      printf("No\n");
      continue;
    }
    if (cn1 > cn3) swap(cn1, cn3), swap(A, C);
    if (cn2 < cn4) swap(cn2, cn4), swap(B, D);
    printf("Yes\n");
    sort(A + 1, A + cn1 + 1, cmp1);
    sort(C + 1, C + cn3 + 1, cmp1);
    sort(B + 1, B + cn2 + 1, cmp2);
    sort(D + 1, D + cn4 + 1, cmp2);
    int o1 = 1, o2 = 2;
    memset(vi, 0, sizeof(vi));
    for (i = 1; i <= cn1; i++)
      all[o1] = make_pair(A[i], 0), vi[o1] = 1, o1 += 2;
    for (i = 1; i <= cn2; i++)
      all[o2] = make_pair(0, B[i]), vi[o2] = 1, o2 += 2;
    for (i = 1; i <= cn3; i++)
      all[o1] = make_pair(-C[i], 0), vi[o1] = 1, o1 += 2;
    for (i = 1; i <= cn4; i++)
      all[o2] = make_pair(0, -D[i]), vi[o2] = 1, o2 += 2;
    for (i = 1; i <= max(o1, o2); i++)
      if (vi[i]) printf("%d %d\n", X, Y), X += all[i].first, Y += all[i].second;
  }
  return 0;
}
