#include <bits/stdc++.h>
using namespace std;
int n, a[55][55], i, j, dx, dy, b[105][105], k;
string s;
bool ok;
vector<pair<int, int> > mutari;
bool interior(int x, int y) { return (x >= 1 && x <= n && y >= 1 && y <= n); }
int main() {
  cin >> n;
  for (i = 1; i <= n; i++) {
    cin >> s;
    for (j = 0; j < (int)s.size(); j++) {
      if (s[j] == '.') a[i][j + 1] = 0;
      if (s[j] == 'x') a[i][j + 1] = 2;
      if (s[j] == 'o') a[i][j + 1] = 1;
    }
  }
  for (dx = -n; dx <= n; dx++) {
    for (dy = -n; dy <= n; dy++) {
      ok = 1;
      for (i = 1; i <= n; i++) {
        for (j = 1; j <= n; j++) {
          if (a[i][j] == 1) {
            if (interior(i + dx, j + dy) == 1 && a[i + dx][j + dy] == 0) {
              ok = 0;
            }
          }
        }
      }
      if (ok == 1) {
        mutari.push_back({dx, dy});
      }
    }
  }
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= n; j++) {
      if (a[i][j] == 2) {
        ok = 0;
        for (k = 0; k < (int)mutari.size(); k++) {
          if (interior(i - mutari[k].first, j - mutari[k].second) == 1 &&
              a[i - mutari[k].first][j - mutari[k].second] == 1) {
            ok = 1;
          }
        }
        if (ok == 0) {
          cout << "NO";
          return 0;
        }
      }
    }
  }
  cout << "YES\n";
  for (i = 0; i < (int)mutari.size(); i++) {
    b[n + mutari[i].first][n + mutari[i].second] = 2;
  }
  b[n][n] = 1;
  for (i = 1; i <= 2 * n - 1; i++) {
    for (j = 1; j <= 2 * n - 1; j++) {
      if (b[i][j] == 0) cout << ".";
      if (b[i][j] == 1) cout << "o";
      if (b[i][j] == 2) cout << "x";
    }
    cout << "\n";
  }
  return 0;
}
