#lang racket
(define (xorshift seed)
(foldl (lambda (x acc)
(bitwise-xor acc (arithmetic-shift acc x))) seed '(13 -7 17)))
(define (main)
(let ((seed (bitwise-xor (current-seconds) 123456789)))
(for-each (lambda (x)
(printf "~a, " x))
(map (lambda (x)
(add1 (modulo x 6)))
(reverse
(foldl (lambda (x v)
(cons (xorshift (car v)) v))
`(,seed) (range 300)))))
(newline)))
I2xhbmcgcmFja2V0CgooZGVmaW5lICh4b3JzaGlmdCBzZWVkKQogIChmb2xkbCAobGFtYmRhICh4IGFjYykKICAgICAgICAgICAoYml0d2lzZS14b3IgYWNjIChhcml0aG1ldGljLXNoaWZ0IGFjYyB4KSkpIHNlZWQgJygxMyAtNyAxNykpKQoKKGRlZmluZSAobWFpbikKICAobGV0ICgoc2VlZCAoYml0d2lzZS14b3IgKGN1cnJlbnQtc2Vjb25kcykgMTIzNDU2Nzg5KSkpCiAgICAoZm9yLWVhY2ggKGxhbWJkYSAoeCkKICAgICAgICAgICAgICAgIChwcmludGYgIn5hLCAiIHgpKQogICAgICAgICAgICAgIChtYXAgKGxhbWJkYSAoeCkKICAgICAgICAgICAgICAgICAgICAgKGFkZDEgKG1vZHVsbyB4IDYpKSkKICAgICAgICAgICAgICAgICAgIChyZXZlcnNlCiAgICAgICAgICAgICAgICAgICAgKGZvbGRsIChsYW1iZGEgKHggdikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyAoeG9yc2hpZnQgKGNhciB2KSkgdikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGAoLHNlZWQpIChyYW5nZSAzMDApKSkpKQogICAgKG5ld2xpbmUpKSk=