#include <bits/stdc++.h>
using namespace std;
bool dalis(string shortas, string longas) {
  int i = 0, j = 0;
  while ((i < shortas.size()) && (j < longas.size())) {
    if (shortas[i] == longas[j]) {
      i++;
      j++;
    } else {
      j++;
    }
  }
  if (i != shortas.size())
    return false;
  else
    return true;
}
bool sajunga(string s, string p, string t) {
  int raidziu_skaicius = 'z' - 'a' + 1;
  int masyvas[raidziu_skaicius];
  for (int i = 0; i < raidziu_skaicius; i++) masyvas[i] = 0;
  for (int i = 0; i < s.size(); i++) masyvas[s[i] - 'a']++;
  for (int i = 0; i < p.size(); i++) masyvas[p[i] - 'a']++;
  for (int i = 0; i < t.size(); i++) masyvas[t[i] - 'a']--;
  for (int i = 0; i < raidziu_skaicius; i++) {
    if (masyvas[i] < 0) return false;
  }
  return true;
}
int main() {
  int q;
  cin >> q;
  while (q) {
    q--;
    string s, t, p;
    cin >> s >> t >> p;
    if ((sajunga(s, p, t)) && dalis(s, t))
      cout << "YES" << endl;
    else
      cout << "NO" << endl;
  }
  return 0;
}
