#include <bits/stdc++.h>
using namespace std;
int n;
char arr[210][210];
bool did[210][210];
bool ans[210][210];
vector<pair<int, int> > v;
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%s", arr[i]);
  int x, y;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (arr[i][j] == 'o') v.push_back({i, j});
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (arr[i][j] == 'x') {
        int tx, ty, x, y;
        bool judge;
        for (int l = 0; l < v.size(); l++) {
          x = v[l].first;
          y = v[l].second;
          tx = i - x;
          ty = j - y;
          judge = true;
          for (int k = 0; k < v.size(); k++) {
            if (k == l) continue;
            int ttx = v[k].first + tx;
            int tty = v[k].second + ty;
            if (ttx >= 0 && ttx < n && tty >= 0 && tty < n) {
              if (arr[ttx][tty] == '.') {
                judge = false;
                break;
              }
            }
          }
          if (judge) break;
        }
        if (judge) {
          ans[100 + tx][100 + ty] = true;
          did[i][j] = true;
          for (int k = 0; k < v.size(); k++) {
            if (v[k].first == x && v[k].second == y) continue;
            int ttx = v[k].first + tx;
            int tty = v[k].second + ty;
            if (ttx >= 0 && ttx < n && ttx >= 0 && tty < n) {
              did[ttx][tty] = true;
            }
          }
        }
      }
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (arr[i][j] == 'x' && !did[i][j]) {
        printf("NO\n");
        return 0;
      }
    }
  }
  printf("YES\n");
  for (int i = 100 - n + 1; i < 100 + n; i++) {
    for (int j = 100 - n + 1; j < 100 + n; j++) {
      if (i == 100 && j == 100) {
        printf("o");
      } else if (ans[i][j] == false)
        printf(".");
      else
        printf("x");
    }
    puts("");
  }
}
