#include int w, a, l, n, u, t, X, x; char *p, *q, *r; int D(int d) { return d > 47 && d < 58 ? d - 48 : (d > 96 && d < 103) || (d > 64 && d < 71) ? d % 16 + 9 : -1; } void e(char *d) { for(r = d; *d; d++) { *r++ = *d - 92 ? *d : (a = *++d) - 'r' ? a - 'v' ? a - 'n' ? a - 't' ? a - 'b' ? a - 'a' ? a - 'x' ? a : D(d[1]) >= 0 ? D(d[2]) >= 0 ? (d += 2), D(d[-1]) * 16 + D(*d) : D(*++d) : 'x' : 7 : 8 : 9 : 10 : 11 : 13; } *r = 0; } void o(const char *d) { for(; (a = *d); d++) a > 32 || a == 9 ? a > 83 && a < 91 ? printf("$%c", a + 32) : putchar(a < 80 || a > 83 ? a : (a * 12 ^ 72) % 62) : 0; } int main(int d, char **b) { if( d > 1 && d < 4 ) { e(p = q = b[1]); if( d > 2 ) { e(q = b[2]); } #define Q(q) #q for(o("#include/*S" "T=\"*/S" Q(static Q int Q l = 1 R I R i R o; int Q main(int Q O R char **s) {O=O?O: S)); *p || *q; p++, q++) { X = x = 1; for(w = 4; w >= 0; w -= 4) { d = ((*p >> w) - (*q >> w)) & 15; for(u = l = 0; !u && d - ((X - x) & 15); l++) { for(a = 1 << l; a--; u = ((t - x - l) & 15) - d ? u : a) for(t = X, n = 0; n < l; t += a & (1 << n++) ? 8 - ~-t % 8 : 1); } for(t = ((*p >> w) - 1) & 15; u; u /= 2) { X += u & 1 ? o("\t"), 8 - ~-X % 8 : (o("Q"), 1); x++; } while( X % 16 - t ) { o("Q"); X++; x++; } o("O/0-"); X += 4; x += 4; } o("S"); p = *p ? p : q; q = *q ? q : p; } d = 0; o( Q( **s; while( (O = getchar()) - EOF ) { l = l ? l - 100 ? l - 105 ? O - 58 ? O > 47 && O < 58 ? (i = i * 10 + O - 48) R l : 10 - O ? 100 - O || l - 5 ? l : O : 1 : 2 - l ? l + 1 : (i = 0) + 3 : O - 118 ? 6 : o ? (I |= i & 15) ? (o = !putchar(I)) + 8 : 0 : 11 + (I = (i & 15) << (o = 4)) : O - 'i' ? 6 : O : 0; } return Q 0; )); o( "}/*\";" Q( W = X = Y = Z = 1; V = "#{W = 8; T.each_byte{|i| U = i; %q["; if( V ) { foreach U (unpack "C*" R T) { ) "#];" Q( S U == 47 && Z == 79 && print(P0 R ":" R Y + 1 R ":" R X R ":: div\n"); X += U == 9 ? W - ~-X % W : 1; Y += U == 10 ? X = 1 : 0; Z = U; } } ) "#\"#*/S"); } return d ? o(*b), o("Q{msg1}Q[msg2]S"), 1 : 0; }