#include <iostream>
#include <iomanip>

using namespace std;

long blah0 = 0x00000101L;
long blah1 = 0x00000000L;

/*
long blah0 = 0x00000000L;
long blah1 = 0x00000000L;

long blah0 = 0x00000000L;
long blah1 = 0x00000000L;

long blah0 = 0x00000000L;
long blah1 = 0x00000000L;

long blah0 = 0x00000000L;
long blah1 = 0x00000000L;

long blah0 = 0x00000000L;
long blah1 = 0x00000000L;

long blah0 = 0x00000000L;
long blah1 = 0x00000000L;

*/

void p(long num0, long num1) {
  cout << "   ";
  cout << "0x" << setfill('0') << setw(8) << hex << num0 << "L, ";
  cout << "0x" << setfill('0') << setw(8) << hex << num1 << "L, ";
}

void pp(long num0, long num1) {
  long n0 = num0;
  long n1 = num1;
  for (int i=0;i<4;i++) {
    for (int j=0;j<8;j++) {
      if (n0 % 2) cout << "x";
      else if ((i+j) % 2) cout << ".";
      else cout << "-";
      n0 >>= 1;
    }
    cout << "\n";
  }
  for (int i=0;i<3;i++) {
    for (int j=0;j<8;j++) {
      if (n1 % 2) cout << "x";
      else if ((i+j) % 2) cout << ".";
      else cout << "-";
      n1 >>= 1;
    }
    cout << "\n";
  }
}

long shift0(long blah0, long blah1, int i) {
  if (i < 32) return (blah0 << i);
  return 0;
}

long shift1(long blah0, long blah1, int i) {
  if (i == 0) return blah1;
  if (i < 32) return ((blah1 << i) | (blah0 >> (32-i)));
  return (blah0 << (i-32));
}

long rr = 0x01010101L;
long ll = 0x80808080L;

bool legal(long new0, long new1) {
  bool rh = (new0 & rr) || (new1 & rr); 
  bool lh = (new0 & ll) || (new1 & ll); 
  return (!rh || !lh);
}

bool fit(long blah0, long blah1, int i) {
  if (i > 24) {
    if (blah1) return false;
    return !(blah0 >> (56-i));
  }
  return !(blah1 >> (24-i));
}

int main(int argc) {
  for (int i=0;i<56;i++) {
    int v = i;
    long new0 = shift0(blah0, blah1, v); 
    long new1 = shift1(blah0, blah1, v); 
    if (fit(blah0, blah1, v) && legal(new0,new1)) {
      p(new0, new1);
      cout << "\n";
      if (argc > 1) pp(new0, new1);
    }
  }
}
