#include <bits/stdc++.h>
using namespace std;
bool lcs(string a, string b) {
  long long m = a.length();
  long long n = b.length();
  long long L[m + 1][n + 1];
  memset(L, 0, sizeof(L));
  long long i, j;
  for (i = 0; i <= m; i++) {
    for (j = 0; j <= n; j++) {
      if (i == 0 || j == 0)
        L[i][j] = 0;
      else if (a[i - 1] == b[j - 1])
        L[i][j] = L[i - 1][j - 1] + 1;
      else
        L[i][j] = max(L[i - 1][j], L[i][j - 1]);
    }
  }
  return (L[m][n] == m);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long q;
  cin >> q;
  while (q--) {
    string s, t, p;
    cin >> s >> t >> p;
    long long f[26], f1[26];
    memset(f, 0, sizeof(f));
    memset(f1, 0, sizeof(f1));
    for (long long i = 0; i < s.length(); i++) {
      f[s[i] - 'a']++;
    }
    for (long long i = 0; i < t.length(); i++) {
      f1[t[i] - 'a']++;
    }
    for (long long i = 0; i < p.length(); i++) {
      f[p[i] - 'a']++;
    }
    bool flg = true;
    for (long long i = 0; i < 26; i++) {
      if (f[i] < f1[i]) {
        flg = false;
      }
    }
    if (flg and lcs(s, t))
      cout << "YES\n";
    else
      cout << "NO\n";
  }
}
