| ofs | hex dump | ascii | 
|---|
| 0000 |  32 30 34 38 2d 67 61 6d 65 2d 32 30 32 33 30 38    30 39 2e 33 35 36 2f 00 00 00 00 00 00 00 00 00  | 2048-game-20230809.356/......... | 
| 0020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0060 |  00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000755.0000000.0000000.0000 | 
| 0080 |  30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 32 32 34 32 00 20 35 00 00 00  | 0000000.00000000000.012242..5... | 
| 00a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 00c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 00e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0100 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0120 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0200 |  32 30 34 38 2d 67 61 6d 65 2d 32 30 32 33 30 38    30 39 2e 33 35 36 2f 32 30 34 38 2d 67 61 6d 65  | 2048-game-20230809.356/2048-game | 
| 0220 |  2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | -pkg.el......................... | 
| 0240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0260 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 0280 |  30 30 30 30 36 32 33 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 36 35 30 00 20 30 00 00 00  | 0000623.00000000000.014650..0... | 
| 02a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 02c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 02e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0300 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0320 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0400 |  28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20    22 32 30 34 38 2d 67 61 6d 65 22 20 22 32 30 32  | (define-package."2048-game"."202 | 
| 0420 |  33 30 38 30 39 2e 33 35 36 22 20 22 70 6c 61 79    20 32 30 34 38 20 69 6e 20 45 6d 61 63 73 22 0a  | 30809.356"."play.2048.in.Emacs". | 
| 0440 |  20 20 27 28 28 65 6d 61 63 73 20 22 32 34 2e 33    22 29 29 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 38  | ..'((emacs."24.3"))...:commit."8 | 
| 0460 |  31 37 35 63 61 35 31 39 31 31 37 35 31 38 33 62    39 35 32 32 31 34 31 64 63 62 35 35 64 33 30 36  | 175ca5191175183b9522141dcb55d306 | 
| 0480 |  37 33 64 32 33 32 33 22 20 3a 61 75 74 68 6f 72    73 0a 20 20 27 28 28 22 5a 61 63 68 61 72 79 20  | 73d2323".:authors...'(("Zachary. | 
| 04a0 |  4b 61 6e 66 65 72 22 20 2e 20 22 7a 6b 61 6e 66    65 72 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 29 0a  | Kanfer"..."zkanfer@gmail.com")). | 
| 04c0 |  20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20    20 27 28 28 22 5a 61 63 68 61 72 79 20 4b 61 6e  | ..:maintainers...'(("Zachary.Kan | 
| 04e0 |  66 65 72 22 20 2e 20 22 7a 6b 61 6e 66 65 72 40    67 6d 61 69 6c 2e 63 6f 6d 22 29 29 0a 20 20 3a  | fer"..."zkanfer@gmail.com"))...: | 
| 0500 |  6d 61 69 6e 74 61 69 6e 65 72 0a 20 20 27 28 22    5a 61 63 68 61 72 79 20 4b 61 6e 66 65 72 22 20  | maintainer...'("Zachary.Kanfer". | 
| 0520 |  2e 20 22 7a 6b 61 6e 66 65 72 40 67 6d 61 69 6c    2e 63 6f 6d 22 29 0a 20 20 3a 75 72 6c 20 22 68  | .."zkanfer@gmail.com")...:url."h | 
| 0540 |  74 74 70 73 3a 2f 2f 68 67 2e 73 72 2e 68 74 2f    7e 7a 63 6b 2f 67 61 6d 65 2d 32 30 34 38 22 29  | ttps://hg.sr.ht/~zck/game-2048") | 
| 0560 |  0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62    6c 65 73 3a 0a 3b 3b 20 6e 6f 2d 62 79 74 65 2d  | .;;.Local.Variables:.;;.no-byte- | 
| 0580 |  63 6f 6d 70 69 6c 65 3a 20 74 0a 3b 3b 20 45 6e    64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00  | compile:.t.;;.End:.............. | 
| 05a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 05c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 05e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0600 |  32 30 34 38 2d 67 61 6d 65 2d 32 30 32 33 30 38    30 39 2e 33 35 36 2f 32 30 34 38 2d 67 61 6d 65  | 2048-game-20230809.356/2048-game | 
| 0620 |  2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .el............................. | 
| 0640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0660 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 0680 |  30 30 35 31 35 32 32 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 30 37 35 00 20 30 00 00 00  | 0051522.00000000000.014075..0... | 
| 06a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 06c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 06e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0700 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0720 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 07a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 07c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 07e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0800 |  3b 3b 3b 20 32 30 34 38 2d 67 61 6d 65 2e 65 6c    20 2d 2d 2d 20 70 6c 61 79 20 32 30 34 38 20 69  | ;;;.2048-game.el.---.play.2048.i | 
| 0820 |  6e 20 45 6d 61 63 73 0a 0a 3b 3b 20 43 6f 70 79    72 69 67 68 74 20 32 30 31 34 20 5a 61 63 68 61  | n.Emacs..;;.Copyright.2014.Zacha | 
| 0840 |  72 79 20 4b 61 6e 66 65 72 0a 0a 3b 3b 20 41 75    74 68 6f 72 3a 20 5a 61 63 68 61 72 79 20 4b 61  | ry.Kanfer..;;.Author:.Zachary.Ka | 
| 0860 |  6e 66 65 72 20 3c 7a 6b 61 6e 66 65 72 40 67 6d    61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 56 65 72 73  | nfer.<zkanfer@gmail.com>.;;.Vers | 
| 0880 |  69 6f 6e 3a 20 32 30 32 33 2e 38 2e 38 2e 31 0a    3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f  | ion:.2023.8.8.1.;;.URL:.https:// | 
| 08a0 |  68 67 2e 73 72 2e 68 74 2f 7e 7a 63 6b 2f 67 61    6d 65 2d 32 30 34 38 0a 0a 3b 3b 20 50 61 63 6b  | hg.sr.ht/~zck/game-2048..;;.Pack | 
| 08c0 |  61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28    65 6d 61 63 73 20 22 32 34 2e 33 22 29 29 0a 0a  | age-Requires:.((emacs."24.3")).. | 
| 08e0 |  3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20    6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20  | ;;.This.file.is.not.part.of.GNU. | 
| 0900 |  45 6d 61 63 73 0a 0a 3b 3b 20 54 68 69 73 20 70    72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73  | Emacs..;;.This.program.is.free.s | 
| 0920 |  6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e    20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74  | oftware:.you.can.redistribute.it | 
| 0940 |  20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b    3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74  | .and/or.modify.;;.it.under.the.t | 
| 0960 |  65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20    47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c  | erms.of.the.GNU.General.Public.L | 
| 0980 |  69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73    68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72  | icense.as.published.by.;;.the.Fr | 
| 09a0 |  65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e    64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76  | ee.Software.Foundation,.either.v | 
| 09c0 |  65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20    4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28  | ersion.3.of.the.License,.or.;;.( | 
| 09e0 |  61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20    61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f  | at.your.option).any.later.versio | 
| 0a00 |  6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67    72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74  | n...;;.This.program.is.distribut | 
| 0a20 |  65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74    68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75  | ed.in.the.hope.that.it.will.be.u | 
| 0a40 |  73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49    54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e  | seful,.;;.but.WITHOUT.ANY.WARRAN | 
| 0a60 |  54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e    20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72  | TY;.without.even.the.implied.war | 
| 0a80 |  72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43    48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46  | ranty.of.;;.MERCHANTABILITY.or.F | 
| 0aa0 |  49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52    54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e  | ITNESS.FOR.A.PARTICULAR.PURPOSE. | 
| 0ac0 |  20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55    20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20  | ..See.the.;;.GNU.General.Public. | 
| 0ae0 |  4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65    20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f  | License.for.more.details...;;.Yo | 
| 0b00 |  75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65    63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66  | u.should.have.received.a.copy.of | 
| 0b20 |  20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c    20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a  | .the.GNU.General.Public.License. | 
| 0b40 |  3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68    69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20  | ;;.along.with.this.program...If. | 
| 0b60 |  6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f    2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63  | not,.see.<http://www.gnu.org/lic | 
| 0b80 |  65 6e 73 65 73 2f 3e 2e 0a 0a 0a 3b 3b 3b 20 43    6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54  | enses/>....;;;.Commentary:..;;.T | 
| 0ba0 |  68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 61    6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e  | his.program.is.an.implementation | 
| 0bc0 |  20 6f 66 20 32 30 34 38 20 66 6f 72 20 45 6d 61    63 73 2e 0a 3b 3b 20 49 74 73 20 73 6f 75 72 63  | .of.2048.for.Emacs..;;.Its.sourc | 
| 0be0 |  65 20 72 65 70 6f 73 69 74 6f 72 79 20 69 73 20    68 74 74 70 73 3a 2f 2f 68 67 2e 73 72 2e 68 74  | e.repository.is.https://hg.sr.ht | 
| 0c00 |  2f 7e 7a 63 6b 2f 67 61 6d 65 2d 32 30 34 38 0a    0a 3b 3b 20 54 6f 20 62 65 67 69 6e 20 70 6c 61  | /~zck/game-2048..;;.To.begin.pla | 
| 0c20 |  79 69 6e 67 2c 20 63 61 6c 6c 20 60 4d 2d 78 20    32 30 34 38 2d 67 61 6d 65 60 2c 20 74 68 65 6e  | ying,.call.`M-x.2048-game`,.then | 
| 0c40 |  20 75 73 65 20 74 68 65 20 61 72 72 6f 77 20 6b    65 79 73 2c 0a 3b 3b 20 70 2f 6e 2f 62 2f 66 2c  | .use.the.arrow.keys,.;;.p/n/b/f, | 
| 0c60 |  20 6f 72 20 43 2d 70 2f 43 2d 6e 2f 43 2d 62 2f    43 2d 66 20 74 6f 20 6d 6f 76 65 20 74 68 65 20  | .or.C-p/C-n/C-b/C-f.to.move.the. | 
| 0c80 |  74 69 6c 65 73 20 61 72 6f 75 6e 64 2e 0a 0a 3b    3b 20 57 68 65 6e 65 76 65 72 20 79 6f 75 20 6d  | tiles.around...;;.Whenever.you.m | 
| 0ca0 |  6f 76 65 20 74 68 65 20 62 6f 61 72 64 2c 20 61    6c 6c 20 74 69 6c 65 73 20 73 6c 69 64 65 20 61  | ove.the.board,.all.tiles.slide.a | 
| 0cc0 |  73 20 66 61 72 20 74 6f 20 74 68 61 74 20 64 69    72 65 63 74 69 6f 6e 0a 3b 3b 20 61 73 20 74 68  | s.far.to.that.direction.;;.as.th | 
| 0ce0 |  65 79 20 63 61 6e 20 67 6f 2e 20 20 49 66 20 61    20 74 69 6c 65 20 63 6f 6c 6c 69 64 65 73 20 77  | ey.can.go...If.a.tile.collides.w | 
| 0d00 |  69 74 68 20 61 6e 6f 74 68 65 72 20 74 69 6c 65    20 6f 66 20 74 68 65 20 73 61 6d 65 20 76 61 6c  | ith.another.tile.of.the.same.val | 
| 0d20 |  75 65 2c 0a 3b 3b 20 74 68 65 20 74 69 6c 65 73    20 63 6f 6d 62 69 6e 65 20 69 6e 74 6f 20 61 20  | ue,.;;.the.tiles.combine.into.a. | 
| 0d40 |  74 69 6c 65 20 77 69 74 68 20 64 6f 75 62 6c 65    20 74 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c  | tile.with.double.the.initial.val | 
| 0d60 |  75 65 2c 20 61 6e 64 20 79 6f 75 0a 3b 3b 20 67    61 69 6e 20 74 68 65 20 6e 65 77 20 74 69 6c 65  | ue,.and.you.;;.gain.the.new.tile | 
| 0d80 |  27 73 20 76 61 6c 75 65 20 61 73 20 79 6f 75 72    20 73 63 6f 72 65 2e 0a 0a 3b 3b 20 54 68 65 20  | 's.value.as.your.score...;;.The. | 
| 0da0 |  67 6f 61 6c 20 69 73 20 74 6f 20 63 72 65 61 74    65 20 61 20 74 69 6c 65 20 77 69 74 68 20 76 61  | goal.is.to.create.a.tile.with.va | 
| 0dc0 |  6c 75 65 20 32 30 34 38 2e 0a 0a 3b 3b 20 54 68    65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 62 6f  | lue.2048...;;.The.size.of.the.bo | 
| 0de0 |  61 72 64 20 61 6e 64 20 67 6f 61 6c 20 76 61 6c    75 65 20 63 61 6e 20 62 65 20 63 75 73 74 6f 6d  | ard.and.goal.value.can.be.custom | 
| 0e00 |  69 7a 65 64 20 2d 2d 20 73 65 65 20 74 68 65 20    76 61 72 69 61 62 6c 65 73 0a 3b 3b 20 2a 32 30  | ized.--.see.the.variables.;;.*20 | 
| 0e20 |  34 38 2d 63 6f 6c 75 6d 6e 73 2a 2c 20 2a 32 30    34 38 2d 72 6f 77 73 2a 2c 20 61 6e 64 20 2a 32  | 48-columns*,.*2048-rows*,.and.*2 | 
| 0e40 |  30 34 38 2d 76 69 63 74 6f 72 79 2d 76 61 6c 75    65 2a 2e 0a 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a  | 048-victory-value*....;;;.Code:. | 
| 0e60 |  0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64    2d 6d 6f 64 65 20 32 30 34 38 2d 6d 6f 64 65 20  | .(define-derived-mode.2048-mode. | 
| 0e80 |  73 70 65 63 69 61 6c 2d 6d 6f 64 65 20 22 32 30    34 38 2d 6d 6f 64 65 22 0a 20 20 28 64 65 66 69  | special-mode."2048-mode"...(defi | 
| 0ea0 |  6e 65 2d 6b 65 79 20 32 30 34 38 2d 6d 6f 64 65    2d 6d 61 70 20 28 6b 62 64 20 22 70 22 29 20 27  | ne-key.2048-mode-map.(kbd."p").' | 
| 0ec0 |  32 30 34 38 2d 75 70 29 0a 20 20 28 64 65 66 69    6e 65 2d 6b 65 79 20 32 30 34 38 2d 6d 6f 64 65  | 2048-up)...(define-key.2048-mode | 
| 0ee0 |  2d 6d 61 70 20 28 6b 62 64 20 22 43 2d 70 22 29    20 27 32 30 34 38 2d 75 70 29 0a 20 20 28 64 65  | -map.(kbd."C-p").'2048-up)...(de | 
| 0f00 |  66 69 6e 65 2d 6b 65 79 20 32 30 34 38 2d 6d 6f    64 65 2d 6d 61 70 20 28 6b 62 64 20 22 3c 75 70  | fine-key.2048-mode-map.(kbd."<up | 
| 0f20 |  3e 22 29 20 27 32 30 34 38 2d 75 70 29 0a 20 20    28 64 65 66 69 6e 65 2d 6b 65 79 20 32 30 34 38  | >").'2048-up)...(define-key.2048 | 
| 0f40 |  2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22    6e 22 29 20 27 32 30 34 38 2d 64 6f 77 6e 29 0a  | -mode-map.(kbd."n").'2048-down). | 
| 0f60 |  20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 32 30    34 38 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64  | ..(define-key.2048-mode-map.(kbd | 
| 0f80 |  20 22 43 2d 6e 22 29 20 27 32 30 34 38 2d 64 6f    77 6e 29 0a 20 20 28 64 65 66 69 6e 65 2d 6b 65  | ."C-n").'2048-down)...(define-ke | 
| 0fa0 |  79 20 32 30 34 38 2d 6d 6f 64 65 2d 6d 61 70 20    28 6b 62 64 20 22 3c 64 6f 77 6e 3e 22 29 20 27  | y.2048-mode-map.(kbd."<down>").' | 
| 0fc0 |  32 30 34 38 2d 64 6f 77 6e 29 0a 20 20 28 64 65    66 69 6e 65 2d 6b 65 79 20 32 30 34 38 2d 6d 6f  | 2048-down)...(define-key.2048-mo | 
| 0fe0 |  64 65 2d 6d 61 70 20 28 6b 62 64 20 22 62 22 29    20 27 32 30 34 38 2d 6c 65 66 74 29 0a 20 20 28  | de-map.(kbd."b").'2048-left)...( | 
| 1000 |  64 65 66 69 6e 65 2d 6b 65 79 20 32 30 34 38 2d    6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 43  | define-key.2048-mode-map.(kbd."C | 
| 1020 |  2d 62 22 29 20 27 32 30 34 38 2d 6c 65 66 74 29    0a 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 32  | -b").'2048-left)...(define-key.2 | 
| 1040 |  30 34 38 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62    64 20 22 3c 6c 65 66 74 3e 22 29 20 27 32 30 34  | 048-mode-map.(kbd."<left>").'204 | 
| 1060 |  38 2d 6c 65 66 74 29 0a 20 20 28 64 65 66 69 6e    65 2d 6b 65 79 20 32 30 34 38 2d 6d 6f 64 65 2d  | 8-left)...(define-key.2048-mode- | 
| 1080 |  6d 61 70 20 28 6b 62 64 20 22 66 22 29 20 27 32    30 34 38 2d 72 69 67 68 74 29 0a 20 20 28 64 65  | map.(kbd."f").'2048-right)...(de | 
| 10a0 |  66 69 6e 65 2d 6b 65 79 20 32 30 34 38 2d 6d 6f    64 65 2d 6d 61 70 20 28 6b 62 64 20 22 43 2d 66  | fine-key.2048-mode-map.(kbd."C-f | 
| 10c0 |  22 29 20 27 32 30 34 38 2d 72 69 67 68 74 29 0a    20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 32 30  | ").'2048-right)...(define-key.20 | 
| 10e0 |  34 38 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64    20 22 3c 72 69 67 68 74 3e 22 29 20 27 32 30 34  | 48-mode-map.(kbd."<right>").'204 | 
| 1100 |  38 2d 72 69 67 68 74 29 0a 20 20 28 64 65 66 69    6e 65 2d 6b 65 79 20 32 30 34 38 2d 6d 6f 64 65  | 8-right)...(define-key.2048-mode | 
| 1120 |  2d 6d 61 70 20 28 6b 62 64 20 22 72 22 29 20 27    32 30 34 38 2d 72 61 6e 64 6f 6d 2d 6d 6f 76 65  | -map.(kbd."r").'2048-random-move | 
| 1140 |  29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f    61 64 0a 28 64 65 66 75 6e 20 32 30 34 38 2d 67  | ))..;;;###autoload.(defun.2048-g | 
| 1160 |  61 6d 65 20 28 29 20 22 53 74 61 72 74 20 70 6c    61 79 69 6e 67 20 32 30 34 38 2e 22 0a 20 20 28  | ame.()."Start.playing.2048."...( | 
| 1180 |  69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28    73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72  | interactive)...(switch-to-buffer | 
| 11a0 |  20 22 32 30 34 38 22 29 0a 20 20 28 62 75 66 66    65 72 2d 64 69 73 61 62 6c 65 2d 75 6e 64 6f 20  | ."2048")...(buffer-disable-undo. | 
| 11c0 |  22 32 30 34 38 22 29 0a 20 20 28 32 30 34 38 2d    6d 6f 64 65 29 0a 20 20 28 32 30 34 38 2d 69 6e  | "2048")...(2048-mode)...(2048-in | 
| 11e0 |  69 74 29 29 0a 0a 28 72 65 71 75 69 72 65 20 27    63 6c 2d 6c 69 62 29 0a 0a 28 64 65 66 76 61 72  | it))..(require.'cl-lib)..(defvar | 
| 1200 |  20 2a 32 30 34 38 2d 62 6f 61 72 64 2a 20 6e 69    6c 0a 20 20 22 54 68 65 20 62 6f 61 72 64 20 69  | .*2048-board*.nil..."The.board.i | 
| 1220 |  74 73 65 6c 66 2e 0a 0a 49 66 20 61 20 6e 75 6d    62 65 72 20 69 73 20 69 6e 20 74 68 65 20 73 71  | tself...If.a.number.is.in.the.sq | 
| 1240 |  75 61 72 65 2c 20 74 68 65 20 6e 75 6d 62 65 72    20 69 73 20 73 74 6f 72 65 64 2e 20 20 4f 74 68  | uare,.the.number.is.stored...Oth | 
| 1260 |  65 72 77 69 73 65 2c 20 30 20 69 73 20 73 74 6f    72 65 64 2e 0a 0a 49 6e 73 74 65 61 64 20 6f 66  | erwise,.0.is.stored...Instead.of | 
| 1280 |  20 61 63 63 65 73 73 69 6e 67 20 74 68 69 73 20    64 69 72 65 63 74 6c 79 2c 20 75 73 65 20 32 30  | .accessing.this.directly,.use.20 | 
| 12a0 |  34 38 2d 67 65 74 2d 63 65 6c 6c 2e 22 29 0a 0a    28 64 65 66 76 61 72 20 2a 32 30 34 38 2d 63 6f  | 48-get-cell.")..(defvar.*2048-co | 
| 12c0 |  6d 62 69 6e 65 73 2d 74 68 69 73 2d 6d 6f 76 65    2a 20 6e 69 6c 0a 20 20 22 54 68 69 73 20 73 74  | mbines-this-move*.nil..."This.st | 
| 12e0 |  6f 72 65 73 2c 20 66 6f 72 20 65 61 63 68 20 63    65 6c 6c 20 69 6e 20 74 68 65 20 62 6f 61 72 64  | ores,.for.each.cell.in.the.board | 
| 1300 |  2c 20 77 68 65 74 68 65 72 20 74 68 65 20 6e 75    6d 62 65 72 20 69 6e 20 69 74 20 77 61 73 20 67  | ,.whether.the.number.in.it.was.g | 
| 1320 |  65 6e 65 72 61 74 65 64 20 74 68 69 73 20 74 75    72 6e 20 62 79 20 74 77 6f 20 6e 75 6d 62 65 72  | enerated.this.turn.by.two.number | 
| 1340 |  73 20 63 6f 6d 62 69 6e 69 6e 67 2e 22 29 0a 0a    28 64 65 66 76 61 72 20 2a 32 30 34 38 2d 63 6f  | s.combining.")..(defvar.*2048-co | 
| 1360 |  6c 75 6d 6e 73 2a 20 34 0a 20 20 22 54 68 65 20    77 69 64 74 68 20 6f 66 20 74 68 65 20 62 6f 61  | lumns*.4..."The.width.of.the.boa | 
| 1380 |  72 64 2e 20 20 49 74 20 63 6f 75 6c 64 20 62 65    20 63 75 73 74 6f 6d 69 7a 65 64 2c 20 69 66 20  | rd...It.could.be.customized,.if. | 
| 13a0 |  79 6f 75 20 77 61 6e 74 65 64 20 74 6f 20 6d 61    6b 65 20 74 68 65 20 67 61 6d 65 20 76 65 72 79  | you.wanted.to.make.the.game.very | 
| 13c0 |  20 76 65 72 79 20 68 61 72 64 2c 20 6f 72 20 76    65 72 79 20 76 65 72 79 20 65 61 73 79 2e 22 29  | .very.hard,.or.very.very.easy.") | 
| 13e0 |  0a 0a 28 64 65 66 76 61 72 20 2a 32 30 34 38 2d    72 6f 77 73 2a 20 34 0a 20 20 22 54 68 65 20 68  | ..(defvar.*2048-rows*.4..."The.h | 
| 1400 |  65 69 67 68 74 20 6f 66 20 74 68 65 20 62 6f 61    72 64 2e 20 20 49 74 20 63 6f 75 6c 64 20 62 65  | eight.of.the.board...It.could.be | 
| 1420 |  20 63 75 73 74 6f 6d 69 7a 65 64 2c 20 69 66 20    79 6f 75 20 77 61 6e 74 65 64 20 74 6f 20 6d 61  | .customized,.if.you.wanted.to.ma | 
| 1440 |  6b 65 20 74 68 65 20 67 61 6d 65 20 76 65 72 79    20 76 65 72 79 20 74 61 6c 6c 2c 20 6f 72 20 76  | ke.the.game.very.very.tall,.or.v | 
| 1460 |  65 72 79 20 76 65 72 79 20 73 68 6f 72 74 2e 22    29 0a 0a 28 64 65 66 76 61 72 20 2a 32 30 34 38  | ery.very.short.")..(defvar.*2048 | 
| 1480 |  2d 70 6f 73 73 69 62 6c 65 2d 76 61 6c 75 65 73    2d 74 6f 2d 69 6e 73 65 72 74 2a 20 28 63 6f 6e  | -possible-values-to-insert*.(con | 
| 14a0 |  73 20 34 20 28 6d 61 6b 65 2d 6c 69 73 74 20 39    20 32 29 29 0a 20 20 22 54 6f 20 67 65 74 20 74  | s.4.(make-list.9.2))..."To.get.t | 
| 14c0 |  68 65 20 76 61 6c 75 65 20 6f 66 20 61 20 6e 65    77 20 65 6c 65 6d 65 6e 74 2c 20 72 61 6e 64 6f  | he.value.of.a.new.element,.rando | 
| 14e0 |  6d 6c 79 20 63 68 6f 6f 73 65 20 61 20 6e 75 6d    62 65 72 20 66 72 6f 6d 20 74 68 69 73 20 73 65  | mly.choose.a.number.from.this.se | 
| 1500 |  71 75 65 6e 63 65 2e 22 29 0a 0a 28 64 65 66 76    61 72 20 2a 32 30 34 38 2d 76 69 63 74 6f 72 79  | quence.")..(defvar.*2048-victory | 
| 1520 |  2d 76 61 6c 75 65 2a 20 6e 69 6c 0a 20 20 22 57    68 65 6e 20 74 68 69 73 20 6e 75 6d 62 65 72 20  | -value*.nil..."When.this.number. | 
| 1540 |  69 73 20 72 65 61 63 68 65 64 2c 20 74 68 65 20    75 73 65 72 20 77 69 6e 73 21 20 59 61 79 21 22  | is.reached,.the.user.wins!.Yay!" | 
| 1560 |  29 0a 0a 28 64 65 66 76 61 72 20 2a 32 30 34 38    2d 64 65 66 61 75 6c 74 2d 76 69 63 74 6f 72 79  | )..(defvar.*2048-default-victory | 
| 1580 |  2d 76 61 6c 75 65 2a 20 32 30 34 38 0a 20 20 22    57 68 65 6e 20 74 68 65 20 67 61 6d 65 20 73 74  | -value*.2048..."When.the.game.st | 
| 15a0 |  61 72 74 73 2c 20 72 65 73 65 74 20 2a 32 30 34    38 2d 76 69 63 74 6f 72 79 2d 76 61 6c 75 65 2a  | arts,.reset.*2048-victory-value* | 
| 15c0 |  20 74 6f 20 74 68 69 73 20 76 61 6c 75 65 2e 22    29 0a 0a 28 64 65 66 76 61 72 20 2a 32 30 34 38  | .to.this.value.")..(defvar.*2048 | 
| 15e0 |  2d 64 65 62 75 67 2a 20 6e 69 6c 0a 20 20 22 57    68 65 6e 20 27 74 2c 20 70 72 69 6e 74 20 64 65  | -debug*.nil..."When.'t,.print.de | 
| 1600 |  62 75 67 67 69 6e 67 20 69 6e 66 6f 72 6d 61 74    69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73  | bugging.information.")..(defcons | 
| 1620 |  74 20 2a 32 30 34 38 2d 6e 75 6d 62 65 72 73 2a    20 27 28 30 20 32 20 34 20 38 20 31 36 20 33 32  | t.*2048-numbers*.'(0.2.4.8.16.32 | 
| 1640 |  20 36 34 20 31 32 38 20 32 35 36 20 35 31 32 20    31 30 32 34 20 32 30 34 38 29 29 0a 0a 28 64 65  | .64.128.256.512.1024.2048))..(de | 
| 1660 |  66 76 61 72 20 2a 32 30 34 38 2d 73 63 6f 72 65    2a 20 6e 69 6c 0a 20 20 22 43 75 72 72 65 6e 74  | fvar.*2048-score*.nil..."Current | 
| 1680 |  20 73 63 6f 72 65 20 69 6e 20 74 68 65 20 67 61    6d 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 2a  | .score.in.the.game.")..(defvar.* | 
| 16a0 |  32 30 34 38 2d 68 69 2d 74 69 6c 65 2a 20 6e 69    6c 0a 20 20 22 43 75 72 72 65 6e 74 20 68 69 67  | 2048-hi-tile*.nil..."Current.hig | 
| 16c0 |  68 65 73 74 2d 6e 75 6d 62 65 72 20 74 69 6c 65    2e 22 29 0a 0a 28 64 65 66 76 61 72 20 2a 32 30  | hest-number.tile.")..(defvar.*20 | 
| 16e0 |  34 38 2d 68 69 73 74 6f 72 79 2a 20 6e 69 6c 0a    20 20 22 53 63 6f 72 65 20 68 69 73 74 6f 72 79  | 48-history*.nil..."Score.history | 
| 1700 |  20 69 6e 20 74 68 69 73 20 45 6d 61 63 73 20 73    65 73 73 69 6f 6e 2e 20 20 45 61 63 68 20 65 6c  | .in.this.Emacs.session...Each.el | 
| 1720 |  65 6d 65 6e 74 20 69 73 20 28 53 43 4f 52 45 20    48 49 2d 54 49 4c 45 20 54 49 4d 45 29 2e 22 29  | ement.is.(SCORE.HI-TILE.TIME).") | 
| 1740 |  0a 0a 28 64 65 66 76 61 72 20 2a 32 30 34 38 2d    68 69 73 74 6f 72 79 2d 73 69 7a 65 2a 20 31 30  | ..(defvar.*2048-history-size*.10 | 
| 1760 |  0a 20 20 22 4b 65 65 70 20 74 68 69 73 20 6d 61    6e 79 20 69 74 65 6d 73 20 69 6e 20 74 68 65 20  | ..."Keep.this.many.items.in.the. | 
| 1780 |  68 69 73 74 6f 72 79 2e 22 29 0a 0a 28 64 65 66    76 61 72 20 2a 32 30 34 38 2d 67 61 6d 65 2d 68  | history.")..(defvar.*2048-game-h | 
| 17a0 |  61 73 2d 62 65 65 6e 2d 61 64 64 65 64 2d 74 6f    2d 68 69 73 74 6f 72 79 2a 20 6e 69 6c 0a 20 20  | as-been-added-to-history*.nil... | 
| 17c0 |  22 57 68 65 74 68 65 72 20 74 68 65 20 63 75 72    72 65 6e 74 20 67 61 6d 65 20 68 61 73 20 62 65  | "Whether.the.current.game.has.be | 
| 17e0 |  65 6e 20 61 64 64 65 64 20 74 6f 20 74 68 65 20    68 69 73 74 6f 72 79 20 79 65 74 2e 0a 0a 52 69  | en.added.to.the.history.yet...Ri | 
| 1800 |  67 68 74 20 6e 6f 77 2c 20 69 74 27 73 20 6f 6e    6c 79 20 66 6f 72 20 75 73 65 20 77 68 65 6e 20  | ght.now,.it's.only.for.use.when. | 
| 1820 |  74 68 65 20 67 61 6d 65 20 68 61 73 20 62 65 65    6e 20 6c 6f 73 74 2e 20 20 53 69 6e 63 65 0a 74  | the.game.has.been.lost...Since.t | 
| 1840 |  68 65 20 75 73 65 72 20 63 61 6e 20 63 68 6f 6f    73 65 20 74 6f 20 6e 6f 74 20 73 74 61 72 74 20  | he.user.can.choose.to.not.start. | 
| 1860 |  61 20 6e 65 77 20 67 61 6d 65 2c 20 77 65 20 77    61 6e 74 20 74 6f 20 61 64 64 20 74 68 65 0a 73  | a.new.game,.we.want.to.add.the.s | 
| 1880 |  63 6f 72 65 20 74 6f 20 74 68 65 20 68 69 73 74    6f 72 79 20 74 68 65 20 66 69 72 73 74 20 74 69  | core.to.the.history.the.first.ti | 
| 18a0 |  6d 65 20 74 68 65 20 67 61 6d 65 20 69 73 20 6c    6f 73 74 2c 20 62 75 74 20 6e 6f 74 20 61 6e 79  | me.the.game.is.lost,.but.not.any | 
| 18c0 |  0a 6f 74 68 65 72 20 74 69 6d 65 2e 22 29 0a 0a    28 64 65 66 76 61 72 20 2a 32 30 34 38 2d 67 61  | .other.time.")..(defvar.*2048-ga | 
| 18e0 |  6d 65 2d 65 70 6f 63 68 2a 20 6e 69 6c 0a 20 20    22 54 68 65 20 74 69 6d 65 20 74 68 65 20 63 75  | me-epoch*.nil..."The.time.the.cu | 
| 1900 |  72 72 65 6e 74 20 67 61 6d 65 20 73 74 61 72 74    65 64 2e 22 29 0a 0a 3b 3b 20 54 68 65 73 65 20  | rrent.game.started.")..;;.These. | 
| 1920 |  61 72 65 20 70 72 65 66 69 78 65 64 20 77 69 74    68 20 22 74 77 65 6e 74 79 66 6f 72 74 79 65 69  | are.prefixed.with."twentyfortyei | 
| 1940 |  67 68 74 2d 66 61 63 65 2d 22 2c 20 6e 6f 74 20    22 32 30 34 38 2d 66 61 63 65 22 0a 3b 3b 20 62  | ght-face-",.not."2048-face".;;.b | 
| 1960 |  65 63 61 75 73 65 20 66 61 63 65 20 6e 61 6d 65    73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20  | ecause.face.names.starting.with. | 
| 1980 |  6e 75 6d 62 65 72 73 20 62 72 65 61 6b 20 68 74    6d 6c 66 6f 6e 74 69 66 79 2d 62 75 66 66 65 72  | numbers.break.htmlfontify-buffer | 
| 19a0 |  2c 0a 3b 3b 20 61 73 20 43 53 53 20 63 6c 61 73    73 65 73 20 62 65 67 69 6e 6e 69 6e 67 20 77 69  | ,.;;.as.CSS.classes.beginning.wi | 
| 19c0 |  74 68 20 6e 75 6d 62 65 72 73 20 61 72 65 20 69    67 6e 6f 72 65 64 2e 0a 28 64 65 66 66 61 63 65  | th.numbers.are.ignored..(defface | 
| 19e0 |  20 74 77 65 6e 74 79 66 6f 72 74 79 65 69 67 68    74 2d 66 61 63 65 2d 32 20 20 20 20 27 28 28 74  | .twentyfortyeight-face-2....'((t | 
| 1a00 |  20 2e 20 28 3a 62 61 63 6b 67 72 6f 75 6e 64 20    22 6b 68 61 6b 69 22 20 3a 66 6f 72 65 67 72 6f  | ...(:background."khaki".:foregro | 
| 1a20 |  75 6e 64 20 22 62 6c 61 63 6b 22 29 29 29 20 22    46 61 63 65 20 66 6f 72 20 74 68 65 20 74 69 6c  | und."black")))."Face.for.the.til | 
| 1a40 |  65 20 32 2e 22 20 3a 67 72 6f 75 70 20 27 32 30    34 38 2d 66 61 63 65 73 29 0a 28 64 65 66 66 61  | e.2.".:group.'2048-faces).(deffa | 
| 1a60 |  63 65 20 74 77 65 6e 74 79 66 6f 72 74 79 65 69    67 68 74 2d 66 61 63 65 2d 34 20 20 20 20 27 28  | ce.twentyfortyeight-face-4....'( | 
| 1a80 |  28 74 20 2e 20 28 3a 62 61 63 6b 67 72 6f 75 6e    64 20 22 62 75 72 6c 79 77 6f 6f 64 22 20 3a 66  | (t...(:background."burlywood".:f | 
| 1aa0 |  6f 72 65 67 72 6f 75 6e 64 20 22 62 6c 61 63 6b    22 29 29 29 20 22 46 61 63 65 20 66 6f 72 20 74  | oreground."black")))."Face.for.t | 
| 1ac0 |  68 65 20 74 69 6c 65 20 34 2e 22 20 3a 67 72 6f    75 70 20 27 32 30 34 38 2d 66 61 63 65 73 29 0a  | he.tile.4.".:group.'2048-faces). | 
| 1ae0 |  28 64 65 66 66 61 63 65 20 74 77 65 6e 74 79 66    6f 72 74 79 65 69 67 68 74 2d 66 61 63 65 2d 38  | (defface.twentyfortyeight-face-8 | 
| 1b00 |  20 20 20 20 27 28 28 74 20 2e 20 28 3a 62 61 63    6b 67 72 6f 75 6e 64 20 22 6f 72 61 6e 67 65 33  | ....'((t...(:background."orange3 | 
| 1b20 |  22 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 62    6c 61 63 6b 22 29 29 29 20 22 46 61 63 65 20 66  | ".:foreground."black")))."Face.f | 
| 1b40 |  6f 72 20 74 68 65 20 74 69 6c 65 20 38 2e 22 20    3a 67 72 6f 75 70 20 27 32 30 34 38 2d 66 61 63  | or.the.tile.8.".:group.'2048-fac | 
| 1b60 |  65 73 29 0a 28 64 65 66 66 61 63 65 20 74 77 65    6e 74 79 66 6f 72 74 79 65 69 67 68 74 2d 66 61  | es).(defface.twentyfortyeight-fa | 
| 1b80 |  63 65 2d 31 36 20 20 20 27 28 28 74 20 2e 20 28    3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 6f 72 61  | ce-16...'((t...(:background."ora | 
| 1ba0 |  6e 67 65 22 20 3a 66 6f 72 65 67 72 6f 75 6e 64    20 22 62 6c 61 63 6b 22 29 29 29 20 22 46 61 63  | nge".:foreground."black")))."Fac | 
| 1bc0 |  65 20 66 6f 72 20 74 68 65 20 74 69 6c 65 20 31    36 2e 22 20 3a 67 72 6f 75 70 20 27 32 30 34 38  | e.for.the.tile.16.".:group.'2048 | 
| 1be0 |  2d 66 61 63 65 73 29 0a 28 64 65 66 66 61 63 65    20 74 77 65 6e 74 79 66 6f 72 74 79 65 69 67 68  | -faces).(defface.twentyfortyeigh | 
| 1c00 |  74 2d 66 61 63 65 2d 33 32 20 20 20 27 28 28 74    20 2e 20 28 3a 62 61 63 6b 67 72 6f 75 6e 64 20  | t-face-32...'((t...(:background. | 
| 1c20 |  22 6f 72 61 6e 67 65 20 72 65 64 22 20 3a 66 6f    72 65 67 72 6f 75 6e 64 20 22 62 6c 61 63 6b 22  | "orange.red".:foreground."black" | 
| 1c40 |  29 29 29 20 22 46 61 63 65 20 66 6f 72 20 74 68    65 20 74 69 6c 65 20 33 32 2e 22 20 3a 67 72 6f  | )))."Face.for.the.tile.32.".:gro | 
| 1c60 |  75 70 20 27 32 30 34 38 2d 66 61 63 65 73 29 0a    28 64 65 66 66 61 63 65 20 74 77 65 6e 74 79 66  | up.'2048-faces).(defface.twentyf | 
| 1c80 |  6f 72 74 79 65 69 67 68 74 2d 66 61 63 65 2d 36    34 20 20 20 27 28 28 74 20 2e 20 28 3a 62 61 63  | ortyeight-face-64...'((t...(:bac | 
| 1ca0 |  6b 67 72 6f 75 6e 64 20 22 66 69 72 65 62 72 69    63 6b 22 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20  | kground."firebrick".:foreground. | 
| 1cc0 |  22 77 68 69 74 65 22 29 29 29 20 22 46 61 63 65    20 66 6f 72 20 74 68 65 20 74 69 6c 65 20 36 34  | "white")))."Face.for.the.tile.64 | 
| 1ce0 |  2e 22 20 3a 67 72 6f 75 70 20 27 32 30 34 38 2d    66 61 63 65 73 29 0a 28 64 65 66 66 61 63 65 20  | .".:group.'2048-faces).(defface. | 
| 1d00 |  74 77 65 6e 74 79 66 6f 72 74 79 65 69 67 68 74    2d 66 61 63 65 2d 31 32 38 20 20 27 28 28 74 20  | twentyfortyeight-face-128..'((t. | 
| 1d20 |  2e 20 28 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22    64 61 72 6b 20 72 65 64 22 20 3a 66 6f 72 65 67  | ..(:background."dark.red".:foreg | 
| 1d40 |  72 6f 75 6e 64 20 22 77 68 69 74 65 22 29 29 29    20 22 46 61 63 65 20 66 6f 72 20 74 68 65 20 74  | round."white")))."Face.for.the.t | 
| 1d60 |  69 6c 65 20 31 32 38 2e 22 20 3a 67 72 6f 75 70    20 27 32 30 34 38 2d 66 61 63 65 73 29 0a 28 64  | ile.128.".:group.'2048-faces).(d | 
| 1d80 |  65 66 66 61 63 65 20 74 77 65 6e 74 79 66 6f 72    74 79 65 69 67 68 74 2d 66 61 63 65 2d 32 35 36  | efface.twentyfortyeight-face-256 | 
| 1da0 |  20 20 27 28 28 74 20 2e 20 28 3a 62 61 63 6b 67    72 6f 75 6e 64 20 22 64 61 72 6b 20 6d 61 67 65  | ..'((t...(:background."dark.mage | 
| 1dc0 |  6e 74 61 22 20 3a 66 6f 72 65 67 72 6f 75 6e 64    20 22 77 68 69 74 65 22 29 29 29 20 22 46 61 63  | nta".:foreground."white")))."Fac | 
| 1de0 |  65 20 66 6f 72 20 74 68 65 20 74 69 6c 65 20 32    35 36 2e 22 20 3a 67 72 6f 75 70 20 27 32 30 34  | e.for.the.tile.256.".:group.'204 | 
| 1e00 |  38 2d 66 61 63 65 73 29 0a 28 64 65 66 66 61 63    65 20 74 77 65 6e 74 79 66 6f 72 74 79 65 69 67  | 8-faces).(defface.twentyfortyeig | 
| 1e20 |  68 74 2d 66 61 63 65 2d 35 31 32 20 20 27 28 28    74 20 2e 20 28 3a 62 61 63 6b 67 72 6f 75 6e 64  | ht-face-512..'((t...(:background | 
| 1e40 |  20 22 6d 61 67 65 6e 74 61 22 20 3a 66 6f 72 65    67 72 6f 75 6e 64 20 22 62 6c 61 63 6b 22 29 29  | ."magenta".:foreground."black")) | 
| 1e60 |  29 20 22 46 61 63 65 20 66 6f 72 20 74 68 65 20    74 69 6c 65 20 35 31 32 2e 22 20 3a 67 72 6f 75  | )."Face.for.the.tile.512.".:grou | 
| 1e80 |  70 20 27 32 30 34 38 2d 66 61 63 65 73 29 0a 28    64 65 66 66 61 63 65 20 74 77 65 6e 74 79 66 6f  | p.'2048-faces).(defface.twentyfo | 
| 1ea0 |  72 74 79 65 69 67 68 74 2d 66 61 63 65 2d 31 30    32 34 20 27 28 28 74 20 2e 20 28 3a 62 61 63 6b  | rtyeight-face-1024.'((t...(:back | 
| 1ec0 |  67 72 6f 75 6e 64 20 22 67 6f 6c 64 22 20 3a 66    6f 72 65 67 72 6f 75 6e 64 20 22 62 6c 61 63 6b  | ground."gold".:foreground."black | 
| 1ee0 |  22 29 29 29 20 22 46 61 63 65 20 66 6f 72 20 74    68 65 20 74 69 6c 65 20 31 30 32 34 2e 22 20 3a  | ")))."Face.for.the.tile.1024.".: | 
| 1f00 |  67 72 6f 75 70 20 27 32 30 34 38 2d 66 61 63 65    73 29 0a 28 64 65 66 66 61 63 65 20 74 77 65 6e  | group.'2048-faces).(defface.twen | 
| 1f20 |  74 79 66 6f 72 74 79 65 69 67 68 74 2d 66 61 63    65 2d 32 30 34 38 20 27 28 28 74 20 2e 20 28 3a  | tyfortyeight-face-2048.'((t...(: | 
| 1f40 |  62 61 63 6b 67 72 6f 75 6e 64 20 22 79 65 6c 6c    6f 77 22 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20  | background."yellow".:foreground. | 
| 1f60 |  22 62 6c 61 63 6b 22 29 29 29 20 22 46 61 63 65    20 66 6f 72 20 74 68 65 20 74 69 6c 65 20 32 30  | "black")))."Face.for.the.tile.20 | 
| 1f80 |  34 38 2e 22 20 3a 67 72 6f 75 70 20 27 32 30 34    38 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 75 6e  | 48.".:group.'2048-faces)..(defun | 
| 1fa0 |  20 32 30 34 38 2d 67 65 74 2d 66 61 63 65 20 28    6e 75 6d 62 65 72 29 0a 20 20 22 52 65 74 75 72  | .2048-get-face.(number)..."Retur | 
| 1fc0 |  6e 20 74 68 65 20 66 61 63 65 20 66 6f 72 20 73    71 75 61 72 65 73 20 68 6f 6c 64 69 6e 67 20 4e  | n.the.face.for.squares.holding.N | 
| 1fe0 |  55 4d 42 45 52 2e 22 0a 20 20 28 6c 65 74 20 28    28 66 61 63 65 2d 73 79 6d 62 6f 6c 20 28 32 30  | UMBER."...(let.((face-symbol.(20 | 
| 2000 |  34 38 2d 67 65 74 2d 66 61 63 65 2d 73 79 6d 62    6f 6c 20 6e 75 6d 62 65 72 29 29 29 0a 20 20 20  | 48-get-face-symbol.number))).... | 
| 2020 |  20 28 69 66 20 28 66 61 63 65 70 20 66 61 63 65    2d 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 20  | .(if.(facep.face-symbol)........ | 
| 2040 |  20 66 61 63 65 2d 73 79 6d 62 6f 6c 0a 20 20 20    20 20 20 27 74 77 65 6e 74 79 66 6f 72 74 79 65  | .face-symbol.......'twentyfortye | 
| 2060 |  69 67 68 74 2d 66 61 63 65 2d 32 30 34 38 29 29    29 0a 0a 28 64 65 66 75 6e 20 32 30 34 38 2d 67  | ight-face-2048)))..(defun.2048-g | 
| 2080 |  65 74 2d 66 61 63 65 2d 73 79 6d 62 6f 6c 20 28    6e 75 6d 62 65 72 29 0a 20 20 22 52 65 74 75 72  | et-face-symbol.(number)..."Retur | 
| 20a0 |  6e 20 74 68 65 20 66 61 63 65 20 73 79 6d 62 6f    6c 20 66 6f 72 20 73 71 75 61 72 65 73 20 68 6f  | n.the.face.symbol.for.squares.ho | 
| 20c0 |  6c 64 69 6e 67 20 4e 55 4d 42 45 52 2e 22 0a 20    20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74  | lding.NUMBER."...(intern.(concat | 
| 20e0 |  20 22 74 77 65 6e 74 79 66 6f 72 74 79 65 69 67    68 74 2d 66 61 63 65 2d 22 0a 20 20 20 20 20 20  | ."twentyfortyeight-face-"....... | 
| 2100 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e    74 2d 74 6f 2d 73 74 72 69 6e 67 20 6e 75 6d 62  | .............(int-to-string.numb | 
| 2120 |  65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 32    30 34 38 2d 65 6d 70 74 79 2d 74 69 6c 65 20 28  | er))))..(defun.2048-empty-tile.( | 
| 2140 |  6e 75 6d 29 0a 20 20 22 52 65 74 75 72 6e 20 74    68 65 20 74 69 6c 65 20 74 6f 20 62 65 20 69 6e  | num)..."Return.the.tile.to.be.in | 
| 2160 |  73 65 72 74 65 64 20 66 6f 72 20 74 68 65 20 62    6c 61 6e 6b 20 70 61 72 74 20 6f 66 20 61 20 73  | serted.for.the.blank.part.of.a.s | 
| 2180 |  71 75 61 72 65 20 68 6f 6c 64 69 6e 67 20 4e 55    4d 2e 0a 0a 54 68 61 74 20 69 73 2c 20 61 6e 20  | quare.holding.NUM...That.is,.an. | 
| 21a0 |  65 6d 70 74 79 20 73 74 72 69 6e 67 20 77 69 74    68 20 66 6f 6e 74 20 73 74 75 66 66 20 6f 6e 20  | empty.string.with.font.stuff.on. | 
| 21c0 |  69 74 2e 22 0a 20 20 28 73 79 6d 62 6f 6c 2d 76    61 6c 75 65 20 28 32 30 34 38 2d 65 6d 70 74 79  | it."...(symbol-value.(2048-empty | 
| 21e0 |  2d 73 79 6d 62 6f 6c 20 6e 75 6d 29 29 29 0a 0a    28 64 65 66 75 6e 20 32 30 34 38 2d 65 6d 70 74  | -symbol.num)))..(defun.2048-empt | 
| 2200 |  79 2d 73 79 6d 62 6f 6c 20 28 6e 75 6d 29 0a 20    20 22 52 65 74 75 72 6e 20 73 79 6d 62 6f 6c 20  | y-symbol.(num)..."Return.symbol. | 
| 2220 |  6f 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20    68 6f 6c 64 69 6e 67 20 65 6d 70 74 79 20 73 70  | of.the.variable.holding.empty.sp | 
| 2240 |  61 63 65 20 66 6f 72 20 6e 75 6d 62 65 72 20 4e    55 4d 2e 22 0a 20 20 28 69 6e 74 65 72 6e 20 28  | ace.for.number.NUM."...(intern.( | 
| 2260 |  63 6f 6e 63 61 74 20 22 32 30 34 38 2d 65 6d 70    74 79 2d 22 20 28 69 6e 74 2d 74 6f 2d 73 74 72  | concat."2048-empty-".(int-to-str | 
| 2280 |  69 6e 67 20 6e 75 6d 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 32 30 34 38 2d 74 69 6c 65 2d 73 79  | ing.num))))..(defun.2048-tile-sy | 
| 22a0 |  6d 62 6f 6c 20 28 6e 75 6d 29 0a 20 20 22 52 65    74 75 72 6e 20 73 79 6d 62 6f 6c 20 6f 66 20 74  | mbol.(num)..."Return.symbol.of.t | 
| 22c0 |  68 65 20 76 61 72 69 61 62 6c 65 20 66 6f 72 20    74 68 65 20 74 69 6c 65 20 66 6f 72 20 73 71 75  | he.variable.for.the.tile.for.squ | 
| 22e0 |  61 72 65 73 20 68 6f 6c 64 69 6e 67 20 4e 55 4d    2e 22 0a 20 20 28 69 6e 74 65 72 6e 20 28 63 6f  | ares.holding.NUM."...(intern.(co | 
| 2300 |  6e 63 61 74 20 22 32 30 34 38 2d 74 69 6c 65 2d    22 20 28 69 6e 74 2d 74 6f 2d 73 74 72 69 6e 67  | ncat."2048-tile-".(int-to-string | 
| 2320 |  20 6e 75 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 32 30 34 38 2d 74 69 6c 65 20 28 6e 75 6d 29  | .num))))..(defun.2048-tile.(num) | 
| 2340 |  0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 74    69 6c 65 20 74 6f 20 62 65 20 69 6e 73 65 72 74  | ..."Return.the.tile.to.be.insert | 
| 2360 |  65 64 20 66 6f 72 20 61 20 73 71 75 61 72 65 20    68 6f 6c 64 69 6e 67 20 4e 55 4d 2e 0a 0a 54 68  | ed.for.a.square.holding.NUM...Th | 
| 2380 |  65 20 74 69 6c 65 20 69 73 20 74 68 65 20 73 74    72 69 6e 67 2c 20 62 75 74 20 77 69 74 68 20 65  | e.tile.is.the.string,.but.with.e | 
| 23a0 |  78 74 72 61 20 66 6f 6e 74 20 73 74 75 66 66 20    6f 6e 20 69 74 2e 22 0a 20 20 28 73 79 6d 62 6f  | xtra.font.stuff.on.it."...(symbo | 
| 23c0 |  6c 2d 76 61 6c 75 65 20 28 32 30 34 38 2d 74 69    6c 65 2d 73 79 6d 62 6f 6c 20 6e 75 6d 29 29 29  | l-value.(2048-tile-symbol.num))) | 
| 23e0 |  0a 0a 28 64 65 66 6d 61 63 72 6f 20 32 30 34 38    2d 67 61 6d 65 2d 6d 6f 76 65 20 28 26 72 65 73  | ..(defmacro.2048-game-move.(&res | 
| 2400 |  74 20 62 6f 64 79 29 0a 20 20 22 50 65 72 66 6f    72 6d 20 74 68 65 20 67 61 6d 65 20 6d 6f 76 65  | t.body)..."Perform.the.game.move | 
| 2420 |  20 69 6e 64 69 63 61 74 65 64 20 62 79 20 42 4f    44 59 2e 0a 0a 54 68 69 73 20 6d 61 63 72 6f 20  | .indicated.by.BODY...This.macro. | 
| 2440 |  69 73 20 75 73 65 64 20 74 6f 20 64 6f 20 73 6f    6d 65 20 68 6f 75 73 65 6b 65 65 70 69 6e 67 20  | is.used.to.do.some.housekeeping. | 
| 2460 |  61 72 6f 75 6e 64 20 74 68 65 20 6d 6f 76 65 2e    22 0a 20 20 60 28 70 72 6f 67 6e 20 28 73 65 74  | around.the.move."...`(progn.(set | 
| 2480 |  71 20 2a 32 30 34 38 2d 63 6f 6d 62 69 6e 65 73    2d 74 68 69 73 2d 6d 6f 76 65 2a 20 28 6d 61 6b  | q.*2048-combines-this-move*.(mak | 
| 24a0 |  65 2d 76 65 63 74 6f 72 20 28 2a 20 2a 32 30 34    38 2d 63 6f 6c 75 6d 6e 73 2a 20 2a 32 30 34 38  | e-vector.(*.*2048-columns*.*2048 | 
| 24c0 |  2d 72 6f 77 73 2a 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -rows*)......................... | 
| 24e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 6e 69 6c 29 29 0a 0a 20 20  | .......................nil)).... | 
| 2500 |  20 20 20 20 20 20 20 20 2c 40 62 6f 64 79 0a 20    20 20 20 20 20 20 20 20 20 28 32 30 34 38 2d 70  | ........,@body...........(2048-p | 
| 2520 |  72 69 6e 74 2d 62 6f 61 72 64 29 0a 20 20 20 20    20 20 20 20 20 20 28 32 30 34 38 2d 63 68 65 63  | rint-board)...........(2048-chec | 
| 2540 |  6b 2d 67 61 6d 65 2d 65 6e 64 29 29 29 0a 0a 28    64 65 66 6d 61 63 72 6f 20 32 30 34 38 2d 64 65  | k-game-end)))..(defmacro.2048-de | 
| 2560 |  62 75 67 20 28 26 72 65 73 74 20 62 6f 64 79 29    0a 20 20 22 49 66 20 2a 32 30 34 38 2d 64 65 62  | bug.(&rest.body)..."If.*2048-deb | 
| 2580 |  75 67 2a 20 69 73 20 27 74 2c 20 6c 6f 67 20 2c    40 42 4f 44 59 20 61 73 20 61 20 73 74 72 69 6e  | ug*.is.'t,.log.,@BODY.as.a.strin | 
| 25a0 |  67 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 20    6e 61 6d 65 64 20 27 32 30 34 38 2d 64 65 62 75  | g.to.the.buffer.named.'2048-debu | 
| 25c0 |  67 27 2e 22 0a 20 20 60 28 77 68 65 6e 20 2a 32    30 34 38 2d 64 65 62 75 67 2a 0a 20 20 20 20 20  | g'."...`(when.*2048-debug*...... | 
| 25e0 |  28 70 72 69 6e 74 20 28 63 6f 6e 63 61 74 20 2c    40 62 6f 64 79 29 0a 09 20 20 20 20 28 67 65 74  | (print.(concat.,@body)......(get | 
| 2600 |  2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22    32 30 34 38 2d 64 65 62 75 67 22 29 29 29 29 0a  | -buffer-create."2048-debug")))). | 
| 2620 |  0a 28 64 65 66 75 6e 20 32 30 34 38 2d 69 6e 69    74 2d 74 69 6c 65 73 20 28 29 0a 20 20 22 49 6e  | .(defun.2048-init-tiles.()..."In | 
| 2640 |  69 74 69 61 6c 69 7a 65 20 65 61 63 68 20 76 61    72 69 61 62 6c 65 20 32 30 34 38 2d 65 6d 70 74  | itialize.each.variable.2048-empt | 
| 2660 |  79 2d 4e 20 61 6e 64 20 32 30 34 38 2d 74 69 6c    65 2d 4e 20 77 69 74 68 20 73 74 72 69 6e 67 20  | y-N.and.2048-tile-N.with.string. | 
| 2680 |  61 6e 64 20 66 61 63 65 2e 22 0a 20 20 28 6d 61    70 63 20 23 27 32 30 34 38 2d 69 6e 69 74 2d 74  | and.face."...(mapc.#'2048-init-t | 
| 26a0 |  69 6c 65 0a 20 20 20 20 20 20 20 20 2a 32 30 34    38 2d 6e 75 6d 62 65 72 73 2a 29 29 0a 0a 28 64  | ile.........*2048-numbers*))..(d | 
| 26c0 |  65 66 75 6e 20 32 30 34 38 2d 69 6e 69 74 2d 74    69 6c 65 20 28 6e 75 6d 62 65 72 29 0a 20 20 22  | efun.2048-init-tile.(number)..." | 
| 26e0 |  49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 74    69 6c 65 20 68 6f 6c 64 69 6e 67 20 4e 55 4d 42  | Initialize.the.tile.holding.NUMB | 
| 2700 |  45 52 2e 0a 0a 54 68 69 73 20 73 65 74 73 20 75    70 20 62 6f 74 68 20 74 68 65 20 74 69 6c 65 20  | ER...This.sets.up.both.the.tile. | 
| 2720 |  74 6f 20 68 6f 6c 64 20 69 74 2c 20 61 6e 64 20    74 68 65 20 65 6d 70 74 79 20 73 70 61 63 65 20  | to.hold.it,.and.the.empty.space. | 
| 2740 |  61 72 6f 75 6e 64 20 69 74 2e 22 0a 20 20 28 73    65 74 20 28 32 30 34 38 2d 65 6d 70 74 79 2d 73  | around.it."...(set.(2048-empty-s | 
| 2760 |  79 6d 62 6f 6c 20 6e 75 6d 62 65 72 29 20 28 66    6f 72 6d 61 74 20 22 25 37 73 22 20 22 20 22 29  | ymbol.number).(format."%7s".".") | 
| 2780 |  29 0a 20 20 3b 3b 20 69 66 20 63 6f 6e 73 74 61    6e 74 20 74 68 65 6e 20 61 6c 6c 20 66 61 63 65  | )...;;.if.constant.then.all.face | 
| 27a0 |  73 20 61 72 65 20 61 70 70 6c 69 65 64 20 74 6f    20 74 68 69 73 20 6f 6e 65 20 63 6f 6e 73 74 61  | s.are.applied.to.this.one.consta | 
| 27c0 |  6e 74 2e 20 28 53 79 6d 70 74 6f 6d 3a 20 61 6c    6c 20 62 61 63 6b 67 72 6f 75 6e 64 20 69 73 20  | nt..(Symptom:.all.background.is. | 
| 27e0 |  79 65 6c 6c 6f 77 29 0a 20 20 3b 3b 20 54 68 65    20 62 79 74 65 63 6f 6d 70 69 6c 65 72 20 69 73  | yellow)...;;.The.bytecompiler.is | 
| 2800 |  20 73 6d 61 72 74 20 65 6e 6f 75 67 68 20 74 6f    20 73 65 65 20 74 68 61 74 20 28 63 6f 6e 63 61  | .smart.enough.to.see.that.(conca | 
| 2820 |  74 2e 2e 2e 29 20 69 73 20 61 20 63 6f 6e 73 74    61 6e 74 2c 20 62 75 74 20 6e 6f 74 20 28 66 6f  | t...).is.a.constant,.but.not.(fo | 
| 2840 |  72 6d 61 74 2e 2e 2e 29 20 3b 2d 29 0a 20 20 28    73 65 74 20 28 32 30 34 38 2d 74 69 6c 65 2d 73  | rmat...).;-)...(set.(2048-tile-s | 
| 2860 |  79 6d 62 6f 6c 20 6e 75 6d 62 65 72 29 20 28 66    6f 72 6d 61 74 20 22 25 35 73 20 20 22 20 28 32  | ymbol.number).(format."%5s..".(2 | 
| 2880 |  30 34 38 2d 6e 75 6d 2d 74 6f 2d 70 72 69 6e 74    61 62 6c 65 20 6e 75 6d 62 65 72 29 29 29 0a 20  | 048-num-to-printable.number))).. | 
| 28a0 |  20 28 77 68 65 6e 20 28 3e 20 6e 75 6d 62 65 72    20 30 29 0a 20 20 20 20 28 6c 65 74 20 28 28 66  | .(when.(>.number.0).....(let.((f | 
| 28c0 |  61 63 65 20 28 32 30 34 38 2d 67 65 74 2d 66 61    63 65 20 6e 75 6d 62 65 72 29 29 29 0a 20 20 20  | ace.(2048-get-face.number))).... | 
| 28e0 |  20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f    70 65 72 74 79 20 30 20 37 20 27 66 6f 6e 74 2d  | ...(put-text-property.0.7.'font- | 
| 2900 |  6c 6f 63 6b 2d 66 61 63 65 20 66 61 63 65 20 28    32 30 34 38 2d 65 6d 70 74 79 2d 74 69 6c 65 20  | lock-face.face.(2048-empty-tile. | 
| 2920 |  6e 75 6d 62 65 72 29 29 0a 20 20 20 20 20 20 28    70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74  | number)).......(put-text-propert | 
| 2940 |  79 20 30 20 37 20 27 66 6f 6e 74 2d 6c 6f 63 6b    2d 66 61 63 65 20 66 61 63 65 20 28 32 30 34 38  | y.0.7.'font-lock-face.face.(2048 | 
| 2960 |  2d 74 69 6c 65 20 6e 75 6d 62 65 72 29 29 29 29    29 0a 0a 28 64 65 66 75 6e 20 32 30 34 38 2d 74  | -tile.number)))))..(defun.2048-t | 
| 2980 |  65 73 74 2d 74 69 6c 65 73 20 28 29 0a 20 20 22    54 65 73 74 20 6f 75 74 20 74 68 65 20 74 69 6c  | est-tiles.()..."Test.out.the.til | 
| 29a0 |  65 20 63 6f 6c 6f 72 73 2e 22 0a 20 20 28 69 6e    74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65  | e.colors."...(interactive)...(le | 
| 29c0 |  74 20 28 28 2a 32 30 34 38 2d 62 6f 61 72 64 2a    0a 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63  | t.((*2048-board*..........(vconc | 
| 29e0 |  61 74 20 2a 32 30 34 38 2d 6e 75 6d 62 65 72 73    2a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | at.*2048-numbers*............... | 
| 2a00 |  20 20 20 20 28 6d 61 6b 65 2d 76 65 63 74 6f 72    20 28 2d 20 28 2a 20 2a 32 30 34 38 2d 63 6f 6c  | ....(make-vector.(-.(*.*2048-col | 
| 2a20 |  75 6d 6e 73 2a 20 2a 32 30 34 38 2d 72 6f 77 73    2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | umns*.*2048-rows*).............. | 
| 2a40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6c 65 6e 67 74 68 20 2a 32 30  | .....................(length.*20 | 
| 2a60 |  34 38 2d 6e 75 6d 62 65 72 73 2a 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 48-numbers*))................... | 
| 2a80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 30 29 29    29 0a 20 20 20 20 20 20 20 20 28 2a 32 30 34 38  | .............0))).........(*2048 | 
| 2aa0 |  2d 73 63 6f 72 65 2a 20 31 32 33 34 35 36 29 0a    20 20 20 20 20 20 20 20 28 2a 32 30 34 38 2d 68  | -score*.123456).........(*2048-h | 
| 2ac0 |  69 73 74 6f 72 79 2a 20 27 28 28 31 32 33 20 20    35 31 32 20 22 32 30 31 34 2d 30 36 2d 31 38 20  | istory*.'((123..512."2014-06-18. | 
| 2ae0 |  31 32 3a 33 34 3a 35 36 22 20 28 30 20 33 30 20    30 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20  | 12:34:56".(0.30.0.0))........... | 
| 2b00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 34 35 36 20 31 30 32 34 20 22 32 30 31 34 2d  | ................(456.1024."2014- | 
| 2b20 |  30 36 2d 31 38 20 31 32 3a 34 35 3a 30 30 22 20    28 30 20 31 32 33 20 30 20 30 29 29 29 29 29 0a  | 06-18.12:45:00".(0.123.0.0))))). | 
| 2b40 |  20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62    75 66 66 65 72 20 22 32 30 34 38 2d 74 65 73 74  | ....(switch-to-buffer."2048-test | 
| 2b60 |  22 29 0a 20 20 20 20 28 32 30 34 38 2d 69 6e 69    74 2d 74 69 6c 65 73 29 0a 20 20 20 20 28 32 30  | ").....(2048-init-tiles).....(20 | 
| 2b80 |  34 38 2d 6d 6f 64 65 29 0a 20 20 20 20 28 32 30    34 38 2d 70 72 69 6e 74 2d 62 6f 61 72 64 29 29  | 48-mode).....(2048-print-board)) | 
| 2ba0 |  29 0a 0a 28 64 65 66 75 6e 20 32 30 34 38 2d 69    6e 69 74 20 28 29 0a 20 20 22 42 65 67 69 6e 20  | )..(defun.2048-init.()..."Begin. | 
| 2bc0 |  61 20 67 61 6d 65 20 6f 66 20 32 30 34 38 2e 22    0a 20 20 28 73 65 74 71 20 2a 32 30 34 38 2d 62  | a.game.of.2048."...(setq.*2048-b | 
| 2be0 |  6f 61 72 64 2a 20 28 6d 61 6b 65 2d 76 65 63 74    6f 72 20 28 2a 20 2a 32 30 34 38 2d 63 6f 6c 75  | oard*.(make-vector.(*.*2048-colu | 
| 2c00 |  6d 6e 73 2a 20 2a 32 30 34 38 2d 72 6f 77 73 2a    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | mns*.*2048-rows*)............... | 
| 2c20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 30 29 29 0a 20 20 28 73 65 74 71 20  | ....................0))...(setq. | 
| 2c40 |  2a 32 30 34 38 2d 63 6f 6d 62 69 6e 65 73 2d 74    68 69 73 2d 6d 6f 76 65 2a 20 28 6d 61 6b 65 2d  | *2048-combines-this-move*.(make- | 
| 2c60 |  76 65 63 74 6f 72 20 28 2a 20 2a 32 30 34 38 2d    63 6f 6c 75 6d 6e 73 2a 20 2a 32 30 34 38 2d 72  | vector.(*.*2048-columns*.*2048-r | 
| 2c80 |  6f 77 73 2a 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ows*)........................... | 
| 2ca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6e 69 6c 29 29 0a 20 20 28 73 65  | .....................nil))...(se | 
| 2cc0 |  74 71 20 2a 32 30 34 38 2d 73 63 6f 72 65 2a 20    30 0a 20 20 20 20 20 20 20 20 2a 32 30 34 38 2d  | tq.*2048-score*.0.........*2048- | 
| 2ce0 |  68 69 2d 74 69 6c 65 2a 20 32 29 0a 20 20 28 73    65 74 71 20 2a 32 30 34 38 2d 76 69 63 74 6f 72  | hi-tile*.2)...(setq.*2048-victor | 
| 2d00 |  79 2d 76 61 6c 75 65 2a 20 2a 32 30 34 38 2d 64    65 66 61 75 6c 74 2d 76 69 63 74 6f 72 79 2d 76  | y-value*.*2048-default-victory-v | 
| 2d20 |  61 6c 75 65 2a 29 0a 20 20 28 73 65 74 71 20 2a    32 30 34 38 2d 67 61 6d 65 2d 68 61 73 2d 62 65  | alue*)...(setq.*2048-game-has-be | 
| 2d40 |  65 6e 2d 61 64 64 65 64 2d 74 6f 2d 68 69 73 74    6f 72 79 2a 20 6e 69 6c 29 0a 20 20 28 73 65 74  | en-added-to-history*.nil)...(set | 
| 2d60 |  71 20 2a 32 30 34 38 2d 67 61 6d 65 2d 65 70 6f    63 68 2a 20 28 63 75 72 72 65 6e 74 2d 74 69 6d  | q.*2048-game-epoch*.(current-tim | 
| 2d80 |  65 29 29 0a 20 20 28 32 30 34 38 2d 69 6e 73 65    72 74 2d 72 61 6e 64 6f 6d 2d 63 65 6c 6c 29 0a  | e))...(2048-insert-random-cell). | 
| 2da0 |  20 20 28 32 30 34 38 2d 69 6e 73 65 72 74 2d 72    61 6e 64 6f 6d 2d 63 65 6c 6c 29 0a 20 20 28 32  | ..(2048-insert-random-cell)...(2 | 
| 2dc0 |  30 34 38 2d 69 6e 69 74 2d 74 69 6c 65 73 29 0a    20 20 28 32 30 34 38 2d 70 72 69 6e 74 2d 62 6f  | 048-init-tiles)...(2048-print-bo | 
| 2de0 |  61 72 64 29 0a 20 20 28 6d 65 73 73 61 67 65 20    22 47 6f 6f 64 20 6c 75 63 6b 21 22 29 29 0a 0a  | ard)...(message."Good.luck!")).. | 
| 2e00 |  28 64 65 66 75 6e 20 32 30 34 38 2d 67 65 74 2d    63 65 6c 6c 20 28 72 6f 77 20 63 6f 6c 29 0a 20  | (defun.2048-get-cell.(row.col).. | 
| 2e20 |  20 22 47 65 74 20 74 68 65 20 76 61 6c 75 65 20    69 6e 20 28 52 4f 57 2c 20 43 4f 4c 29 2e 22 0a  | ."Get.the.value.in.(ROW,.COL).". | 
| 2e40 |  20 20 28 65 6c 74 20 2a 32 30 34 38 2d 62 6f 61    72 64 2a 0a 20 20 20 20 20 20 20 28 2b 20 28 2a  | ..(elt.*2048-board*........(+.(* | 
| 2e60 |  20 72 6f 77 20 2a 32 30 34 38 2d 63 6f 6c 75 6d    6e 73 2a 29 0a 20 20 20 20 20 20 20 20 20 20 63  | .row.*2048-columns*)...........c | 
| 2e80 |  6f 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 32 30    34 38 2d 73 65 74 2d 63 65 6c 6c 20 28 72 6f 77  | ol)))..(defun.2048-set-cell.(row | 
| 2ea0 |  20 63 6f 6c 75 6d 6e 20 76 61 6c 29 0a 20 20 22    53 65 74 20 74 68 65 20 76 61 6c 75 65 20 69 6e  | .column.val)..."Set.the.value.in | 
| 2ec0 |  20 28 52 4f 57 2c 20 43 4f 4c 55 4d 4e 29 20 74    6f 20 56 41 4c 2e 22 0a 20 20 28 77 68 65 6e 20  | .(ROW,.COLUMN).to.VAL."...(when. | 
| 2ee0 |  28 3c 20 2a 32 30 34 38 2d 68 69 2d 74 69 6c 65    2a 20 76 61 6c 29 0a 20 20 20 20 28 73 65 74 71  | (<.*2048-hi-tile*.val).....(setq | 
| 2f00 |  20 2a 32 30 34 38 2d 68 69 2d 74 69 6c 65 2a 20    76 61 6c 29 29 0a 20 20 28 61 73 65 74 20 2a 32  | .*2048-hi-tile*.val))...(aset.*2 | 
| 2f20 |  30 34 38 2d 62 6f 61 72 64 2a 0a 20 20 20 20 20    20 20 20 28 2b 20 28 2a 20 72 6f 77 20 2a 32 30  | 048-board*.........(+.(*.row.*20 | 
| 2f40 |  34 38 2d 63 6f 6c 75 6d 6e 73 2a 29 0a 20 20 20    20 20 20 20 20 20 20 20 63 6f 6c 75 6d 6e 29 0a  | 48-columns*)............column). | 
| 2f60 |  20 20 20 20 20 20 20 20 76 61 6c 29 29 0a 0a 28    64 65 66 75 6e 20 32 30 34 38 2d 6e 75 6d 2d 74  | ........val))..(defun.2048-num-t | 
| 2f80 |  6f 2d 70 72 69 6e 74 61 62 6c 65 20 28 6e 75 6d    29 0a 20 20 22 52 65 74 75 72 6e 20 4e 55 4d 20  | o-printable.(num)..."Return.NUM. | 
| 2fa0 |  61 73 20 61 20 73 74 72 69 6e 67 20 74 68 61 74    20 63 61 6e 20 62 65 20 70 75 74 20 69 6e 74 6f  | as.a.string.that.can.be.put.into | 
| 2fc0 |  20 74 68 65 20 62 6f 61 72 64 2e 0a 0a 54 68 61    74 20 69 73 2c 20 70 72 69 6e 74 20 7a 65 72 6f  | .the.board...That.is,.print.zero | 
| 2fe0 |  73 20 61 73 20 65 6d 70 74 79 20 73 74 72 69 6e    67 73 2c 20 61 6e 64 20 61 6c 6c 20 6f 74 68 65  | s.as.empty.strings,.and.all.othe | 
| 3000 |  72 20 6e 75 6d 62 65 72 73 20 61 73 20 74 68 65    6d 73 65 6c 76 65 73 2e 22 0a 20 20 28 69 66 20  | r.numbers.as.themselves."...(if. | 
| 3020 |  28 65 71 20 6e 75 6d 20 30 29 0a 20 20 20 20 20    20 22 22 0a 20 20 20 20 28 66 6f 72 6d 61 74 20  | (eq.num.0)......."".....(format. | 
| 3040 |  22 25 64 22 20 6e 75 6d 29 29 29 0a 0a 28 64 65    66 75 6e 20 32 30 34 38 2d 77 61 73 2d 63 6f 6d  | "%d".num)))..(defun.2048-was-com | 
| 3060 |  62 69 6e 65 64 2d 74 68 69 73 2d 74 75 72 6e 20    28 72 6f 77 20 63 6f 6c 75 6d 6e 29 0a 20 20 22  | bined-this-turn.(row.column)..." | 
| 3080 |  52 65 74 75 72 6e 20 77 68 65 74 68 65 72 20 28    52 4f 57 2c 20 43 4f 4c 55 4d 4e 29 20 77 61 73  | Return.whether.(ROW,.COLUMN).was | 
| 30a0 |  20 66 69 6c 6c 65 64 20 74 68 69 73 20 74 75 72    6e 20 62 79 20 74 77 6f 20 6e 75 6d 62 65 72 73  | .filled.this.turn.by.two.numbers | 
| 30c0 |  20 63 6f 6d 62 69 6e 69 6e 67 2e 22 0a 20 20 28    65 6c 74 20 2a 32 30 34 38 2d 63 6f 6d 62 69 6e  | .combining."...(elt.*2048-combin | 
| 30e0 |  65 73 2d 74 68 69 73 2d 6d 6f 76 65 2a 0a 20 20    20 20 20 20 20 28 2b 20 28 2a 20 72 6f 77 20 2a  | es-this-move*........(+.(*.row.* | 
| 3100 |  32 30 34 38 2d 63 6f 6c 75 6d 6e 73 2a 29 0a 20    20 20 20 20 20 20 20 20 20 63 6f 6c 75 6d 6e 29  | 2048-columns*)...........column) | 
| 3120 |  29 29 0a 0a 28 64 65 66 75 6e 20 32 30 34 38 2d    73 65 74 2d 77 61 73 2d 63 6f 6d 62 69 6e 65 64  | ))..(defun.2048-set-was-combined | 
| 3140 |  2d 74 68 69 73 2d 74 75 72 6e 20 28 72 6f 77 20    63 6f 6c 75 6d 6e 29 0a 20 20 22 53 65 74 20 74  | -this-turn.(row.column)..."Set.t | 
| 3160 |  68 61 74 20 28 52 4f 57 2c 20 43 4f 4c 55 4d 4e    29 20 77 61 73 20 66 69 6c 6c 65 64 20 74 68 69  | hat.(ROW,.COLUMN).was.filled.thi | 
| 3180 |  73 20 74 75 72 6e 20 62 79 20 74 77 6f 20 6e 75    6d 62 65 72 73 20 63 6f 6d 62 69 6e 69 6e 67 2e  | s.turn.by.two.numbers.combining. | 
| 31a0 |  22 0a 20 20 28 32 30 34 38 2d 64 65 62 75 67 20    28 66 6f 72 6d 61 74 20 22 73 65 74 74 69 6e 67  | "...(2048-debug.(format."setting | 
| 31c0 |  20 28 25 64 2c 20 25 64 29 20 61 73 20 63 6f 6d    62 69 6e 65 64 20 74 68 69 73 20 74 75 72 6e 2e  | .(%d,.%d).as.combined.this.turn. | 
| 31e0 |  22 20 72 6f 77 20 63 6f 6c 75 6d 6e 29 29 0a 20    20 28 61 73 65 74 20 2a 32 30 34 38 2d 63 6f 6d  | ".row.column))...(aset.*2048-com | 
| 3200 |  62 69 6e 65 73 2d 74 68 69 73 2d 6d 6f 76 65 2a    0a 20 20 20 20 20 20 20 20 28 2b 20 28 2a 20 72  | bines-this-move*.........(+.(*.r | 
| 3220 |  6f 77 20 2a 32 30 34 38 2d 63 6f 6c 75 6d 6e 73    2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 63 6f  | ow.*2048-columns*)............co | 
| 3240 |  6c 75 6d 6e 29 0a 20 20 20 20 20 20 20 20 74 29    29 0a 0a 28 64 65 66 75 6e 20 32 30 34 38 2d 69  | lumn).........t))..(defun.2048-i | 
| 3260 |  6e 73 65 72 74 2d 72 61 6e 64 6f 6d 2d 63 65 6c    6c 20 28 29 0a 20 20 22 50 69 63 6b 20 61 20 6e  | nsert-random-cell.()..."Pick.a.n | 
| 3280 |  75 6d 62 65 72 20 72 61 6e 64 6f 6d 6c 79 2c 20    61 6e 64 20 69 6e 73 65 72 74 20 69 74 20 69 6e  | umber.randomly,.and.insert.it.in | 
| 32a0 |  74 6f 20 61 20 72 61 6e 64 6f 6d 20 63 65 6c 6c    2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 75 6d 62  | to.a.random.cell."...(let.((numb | 
| 32c0 |  65 72 2d 74 6f 2d 69 6e 73 65 72 74 20 28 65 6c    74 20 2a 32 30 34 38 2d 70 6f 73 73 69 62 6c 65  | er-to-insert.(elt.*2048-possible | 
| 32e0 |  2d 76 61 6c 75 65 73 2d 74 6f 2d 69 6e 73 65 72    74 2a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | -values-to-insert*.............. | 
| 3300 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 72 61 6e 64 6f 6d 20 28 6c 65 6e 67 74  | ..................(random.(lengt | 
| 3320 |  68 20 2a 32 30 34 38 2d 70 6f 73 73 69 62 6c 65    2d 76 61 6c 75 65 73 2d 74 6f 2d 69 6e 73 65 72  | h.*2048-possible-values-to-inser | 
| 3340 |  74 2a 29 29 29 29 0a 20 20 20 20 20 20 20 20 28    72 6f 77 20 28 72 61 6e 64 6f 6d 20 2a 32 30 34  | t*)))).........(row.(random.*204 | 
| 3360 |  38 2d 72 6f 77 73 2a 29 29 0a 20 20 20 20 20 20    20 20 28 63 6f 6c 75 6d 6e 20 28 72 61 6e 64 6f  | 8-rows*)).........(column.(rando | 
| 3380 |  6d 20 2a 32 30 34 38 2d 63 6f 6c 75 6d 6e 73 2a    29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28  | m.*2048-columns*))).....(while.( | 
| 33a0 |  6e 6f 74 20 28 65 71 20 28 32 30 34 38 2d 67 65    74 2d 63 65 6c 6c 20 72 6f 77 20 63 6f 6c 75 6d  | not.(eq.(2048-get-cell.row.colum | 
| 33c0 |  6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 30 29 29 0a 20 20 20 20 20  | n).....................0))...... | 
| 33e0 |  20 28 73 65 74 71 20 72 6f 77 20 28 72 61 6e 64    6f 6d 20 2a 32 30 34 38 2d 72 6f 77 73 2a 29 29  | .(setq.row.(random.*2048-rows*)) | 
| 3400 |  0a 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6c    75 6d 6e 20 28 72 61 6e 64 6f 6d 20 2a 32 30 34  | .......(setq.column.(random.*204 | 
| 3420 |  38 2d 63 6f 6c 75 6d 6e 73 2a 29 29 29 0a 20 20    20 20 28 32 30 34 38 2d 73 65 74 2d 63 65 6c 6c  | 8-columns*))).....(2048-set-cell | 
| 3440 |  20 72 6f 77 20 63 6f 6c 75 6d 6e 20 6e 75 6d 62    65 72 2d 74 6f 2d 69 6e 73 65 72 74 29 29 29 0a  | .row.column.number-to-insert))). | 
| 3460 |  0a 28 64 65 66 75 6e 20 32 30 34 38 2d 63 68 65    63 6b 2d 67 61 6d 65 2d 65 6e 64 20 28 29 0a 20  | .(defun.2048-check-game-end.().. | 
| 3480 |  20 22 43 68 65 63 6b 20 77 68 65 74 68 65 72 20    74 68 65 20 67 61 6d 65 20 68 61 73 20 65 69 74  | ."Check.whether.the.game.has.eit | 
| 34a0 |  68 65 72 20 62 65 65 6e 20 77 6f 6e 20 6f 72 20    6c 6f 73 74 2c 20 61 6e 64 20 61 63 74 20 61 63  | her.been.won.or.lost,.and.act.ac | 
| 34c0 |  63 6f 72 64 69 6e 67 6c 79 2e 0a 0a 54 68 69 73    20 61 63 74 73 20 62 79 20 6e 6f 74 69 66 79 69  | cordingly...This.acts.by.notifyi | 
| 34e0 |  6e 67 20 74 68 65 20 75 73 65 72 20 61 6e 64 20    72 65 73 74 61 72 74 69 6e 67 2e 22 0a 20 20 28  | ng.the.user.and.restarting."...( | 
| 3500 |  63 6f 6e 64 20 28 28 32 30 34 38 2d 67 61 6d 65    2d 77 61 73 2d 77 6f 6e 29 0a 20 20 20 20 20 20  | cond.((2048-game-was-won)....... | 
| 3520 |  20 20 20 28 32 30 34 38 2d 70 72 69 6e 74 2d 62    6f 61 72 64 29 0a 20 20 20 20 20 20 20 20 20 28  | ...(2048-print-board)..........( | 
| 3540 |  69 66 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 59 61    79 21 20 59 6f 75 20 62 65 61 74 20 74 68 65 20  | if.(y-or-n-p."Yay!.You.beat.the. | 
| 3560 |  67 61 6d 65 21 20 20 79 20 74 6f 20 73 74 61 72    74 20 61 67 61 69 6e 3b 20 6e 20 74 6f 20 63 6f  | game!..y.to.start.again;.n.to.co | 
| 3580 |  6e 74 69 6e 75 65 2e 20 20 53 74 61 72 74 20 61    67 61 69 6e 3f 20 22 29 0a 20 20 20 20 20 20 20  | ntinue...Start.again?.")........ | 
| 35a0 |  20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 32 30    34 38 2d 61 64 64 2d 6e 65 77 2d 68 69 73 74 6f  | ......(progn.(2048-add-new-histo | 
| 35c0 |  72 79 2d 69 74 65 6d 20 2a 32 30 34 38 2d 73 63    6f 72 65 2a 20 2a 32 30 34 38 2d 68 69 2d 74 69  | ry-item.*2048-score*.*2048-hi-ti | 
| 35e0 |  6c 65 2a 20 28 63 75 72 72 65 6e 74 2d 74 69 6d    65 29 20 28 74 69 6d 65 2d 73 75 62 74 72 61 63  | le*.(current-time).(time-subtrac | 
| 3600 |  74 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29    20 2a 32 30 34 38 2d 67 61 6d 65 2d 65 70 6f 63  | t.(current-time).*2048-game-epoc | 
| 3620 |  68 2a 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 32 30 34 38 2d 69  | h*)).....................(2048-i | 
| 3640 |  6e 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 2a 32 30 34 38 2d 76 69 63  | nit))............(setq.*2048-vic | 
| 3660 |  74 6f 72 79 2d 76 61 6c 75 65 2a 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20  | tory-value*..................(*. | 
| 3680 |  2a 32 30 34 38 2d 76 69 63 74 6f 72 79 2d 76 61    6c 75 65 2a 20 32 29 29 29 29 0a 20 20 20 20 20  | *2048-victory-value*.2))))...... | 
| 36a0 |  20 20 20 28 28 32 30 34 38 2d 67 61 6d 65 2d 77    61 73 2d 6c 6f 73 74 29 0a 20 20 20 20 20 20 20  | ...((2048-game-was-lost)........ | 
| 36c0 |  20 20 28 75 6e 6c 65 73 73 20 2a 32 30 34 38 2d    67 61 6d 65 2d 68 61 73 2d 62 65 65 6e 2d 61 64  | ..(unless.*2048-game-has-been-ad | 
| 36e0 |  64 65 64 2d 74 6f 2d 68 69 73 74 6f 72 79 2a 0a    20 20 20 20 20 20 20 20 20 20 20 28 32 30 34 38  | ded-to-history*............(2048 | 
| 3700 |  2d 61 64 64 2d 6e 65 77 2d 68 69 73 74 6f 72 79    2d 69 74 65 6d 20 2a 32 30 34 38 2d 73 63 6f 72  | -add-new-history-item.*2048-scor | 
| 3720 |  65 2a 20 2a 32 30 34 38 2d 68 69 2d 74 69 6c 65    2a 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29  | e*.*2048-hi-tile*.(current-time) | 
| 3740 |  20 28 74 69 6d 65 2d 73 75 62 74 72 61 63 74 20    28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 20 2a  | .(time-subtract.(current-time).* | 
| 3760 |  32 30 34 38 2d 67 61 6d 65 2d 65 70 6f 63 68 2a    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73  | 2048-game-epoch*))............(s | 
| 3780 |  65 74 71 20 2a 32 30 34 38 2d 67 61 6d 65 2d 68    61 73 2d 62 65 65 6e 2d 61 64 64 65 64 2d 74 6f  | etq.*2048-game-has-been-added-to | 
| 37a0 |  2d 68 69 73 74 6f 72 79 2a 20 74 29 29 0a 20 20    20 20 20 20 20 20 20 28 32 30 34 38 2d 70 72 69  | -history*.t))..........(2048-pri | 
| 37c0 |  6e 74 2d 62 6f 61 72 64 29 0a 20 20 20 20 20 20    20 20 20 28 77 68 65 6e 20 28 79 2d 6f 72 2d 6e  | nt-board)..........(when.(y-or-n | 
| 37e0 |  2d 70 20 22 41 77 2c 20 74 6f 6f 20 62 61 64 2e    20 20 59 6f 75 20 6c 6f 73 74 2e 20 20 57 61 6e  | -p."Aw,.too.bad...You.lost...Wan | 
| 3800 |  74 20 74 6f 20 70 6c 61 79 20 61 67 61 69 6e 3f    20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 28  | t.to.play.again?.")............( | 
| 3820 |  32 30 34 38 2d 69 6e 69 74 29 29 29 29 29 0a 0a    28 64 65 66 75 6e 20 32 30 34 38 2d 61 64 64 2d  | 2048-init)))))..(defun.2048-add- | 
| 3840 |  6e 65 77 2d 68 69 73 74 6f 72 79 2d 69 74 65 6d    20 28 73 63 6f 72 65 20 68 69 2d 74 69 6c 65 20  | new-history-item.(score.hi-tile. | 
| 3860 |  67 61 6d 65 2d 65 6e 64 2d 74 69 6d 65 20 67 61    6d 65 2d 64 75 72 61 74 69 6f 6e 29 0a 20 20 22  | game-end-time.game-duration)..." | 
| 3880 |  47 65 6e 65 72 61 74 65 20 61 6e 64 20 61 64 64    20 61 20 6e 65 77 20 68 69 73 74 6f 72 79 20 69  | Generate.and.add.a.new.history.i | 
| 38a0 |  74 65 6d 20 74 6f 20 74 68 65 20 73 63 6f 72 65    20 6c 69 73 74 2e 0a 0a 54 68 69 73 20 69 74 65  | tem.to.the.score.list...This.ite | 
| 38c0 |  6d 20 73 68 6f 75 6c 64 20 68 61 76 65 20 73 63    6f 72 65 20 53 43 4f 52 45 2c 20 74 68 65 20 68  | m.should.have.score.SCORE,.the.h | 
| 38e0 |  69 67 68 65 73 74 20 74 69 6c 65 20 72 65 61 63    68 65 64 20 61 73 20 48 49 2d 54 49 4c 45 2c 0a  | ighest.tile.reached.as.HI-TILE,. | 
| 3900 |  68 61 76 65 20 65 6e 64 65 64 20 61 74 20 47 41    4d 45 2d 45 4e 44 2d 54 49 4d 45 2c 20 61 6e 64  | have.ended.at.GAME-END-TIME,.and | 
| 3920 |  20 68 61 76 65 20 64 75 72 61 74 69 6f 6e 20 47    41 4d 45 2d 44 55 52 41 54 49 4f 4e 22 0a 20 20  | .have.duration.GAME-DURATION"... | 
| 3940 |  28 73 65 74 71 20 2a 32 30 34 38 2d 68 69 73 74    6f 72 79 2a 0a 20 20 20 20 20 20 20 20 28 6c 65  | (setq.*2048-history*.........(le | 
| 3960 |  74 20 28 28 68 69 73 74 6f 72 79 2d 6c 65 6e 67    74 68 20 28 6c 65 6e 67 74 68 20 2a 32 30 34 38  | t.((history-length.(length.*2048 | 
| 3980 |  2d 68 69 73 74 6f 72 79 2a 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 3b 3b 20 67 65 74 20 74 68  | -history*)))...........;;.get.th | 
| 39a0 |  65 20 68 69 73 74 6f 72 79 20 6c 65 6e 67 74 68    20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20  | e.history.length.before.calling. | 
| 39c0 |  63 6c 2d 73 6f 72 74 20 62 65 63 61 75 73 65 20    63 6c 2d 73 6f 72 74 20 69 73 20 64 65 73 74 72  | cl-sort.because.cl-sort.is.destr | 
| 39e0 |  75 63 74 69 76 65 2e 0a 20 20 20 20 20 20 20 20    20 20 28 62 75 74 6c 61 73 74 20 28 63 6c 2d 73  | uctive............(butlast.(cl-s | 
| 3a00 |  6f 72 74 20 28 63 6f 6e 73 20 28 6c 69 73 74 20    2a 32 30 34 38 2d 73 63 6f 72 65 2a 0a 20 20 20  | ort.(cons.(list.*2048-score*.... | 
| 3a20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3a40 |  20 20 20 20 20 2a 32 30 34 38 2d 68 69 2d 74 69    6c 65 2a 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .....*2048-hi-tile*............. | 
| 3a60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72  | ............................(for | 
| 3a80 |  6d 61 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 20    22 25 59 2d 25 6d 2d 25 64 22 20 67 61 6d 65 2d  | mat-time-string."%Y-%m-%d".game- | 
| 3aa0 |  65 6e 64 2d 74 69 6d 65 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | end-time)....................... | 
| 3ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 67 61 6d 65 2d 64 75 72 61 74 69 6f 6e 29  | ..................game-duration) | 
| 3ae0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3b00 |  20 20 20 2a 32 30 34 38 2d 68 69 73 74 6f 72 79    2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...*2048-history*).............. | 
| 3b20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27    3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...............'>............... | 
| 3b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b    65 79 20 27 63 61 72 29 0a 20 20 20 20 20 20 20  | ..............:key.'car)........ | 
| 3b60 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78    20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ............(max.0.............. | 
| 3b80 |  20 20 20 20 20 20 20 20 20 20 20 28 2d 20 28 31    2b 20 68 69 73 74 6f 72 79 2d 6c 65 6e 67 74 68  | ...........(-.(1+.history-length | 
| 3ba0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 2a 32 30  | )............................*20 | 
| 3bc0 |  34 38 2d 68 69 73 74 6f 72 79 2d 73 69 7a 65 2a    29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 32  | 48-history-size*))))))..(defun.2 | 
| 3be0 |  30 34 38 2d 67 61 6d 65 2d 77 61 73 2d 77 6f 6e    20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20  | 048-game-was-won.()..."Return.t. | 
| 3c00 |  69 66 20 74 68 65 20 67 61 6d 65 20 77 61 73 20    77 6f 6e 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69  | if.the.game.was.won,.nil.otherwi | 
| 3c20 |  73 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 67 61    6d 65 2d 77 61 73 2d 77 6f 6e 20 6e 69 6c 29 29  | se."...(let.((game-was-won.nil)) | 
| 3c40 |  0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 72    6f 77 20 2a 32 30 34 38 2d 72 6f 77 73 2a 29 0a  | .....(dotimes.(row.*2048-rows*). | 
| 3c60 |  20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28    63 6f 6c 75 6d 6e 20 2a 32 30 34 38 2d 63 6f 6c  | ......(dotimes.(column.*2048-col | 
| 3c80 |  75 6d 6e 73 2a 29 0a 20 20 20 20 20 20 20 20 28    77 68 65 6e 20 28 65 71 20 28 32 30 34 38 2d 67  | umns*).........(when.(eq.(2048-g | 
| 3ca0 |  65 74 2d 63 65 6c 6c 20 72 6f 77 20 63 6f 6c 75    6d 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | et-cell.row.column)............. | 
| 3cc0 |  20 20 20 20 20 20 2a 32 30 34 38 2d 76 69 63 74    6f 72 79 2d 76 61 6c 75 65 2a 29 0a 20 20 20 20  | ......*2048-victory-value*)..... | 
| 3ce0 |  20 20 20 20 20 20 28 73 65 74 71 20 67 61 6d 65    2d 77 61 73 2d 77 6f 6e 20 74 29 29 29 29 0a 20  | ......(setq.game-was-won.t)))).. | 
| 3d00 |  20 20 20 67 61 6d 65 2d 77 61 73 2d 77 6f 6e 29    29 0a 0a 28 64 65 66 75 6e 20 32 30 34 38 2d 67  | ...game-was-won))..(defun.2048-g | 
| 3d20 |  61 6d 65 2d 77 61 73 2d 6c 6f 73 74 20 28 29 0a    20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 74  | ame-was-lost.()..."Return.t.if.t | 
| 3d40 |  68 65 20 67 61 6d 65 20 77 61 73 20 6c 6f 73 74    2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e  | he.game.was.lost,.nil.otherwise. | 
| 3d60 |  22 0a 20 20 28 6c 65 74 20 28 28 67 61 6d 65 2d    77 61 73 2d 6c 6f 73 74 20 74 29 29 0a 20 20 20  | "...(let.((game-was-lost.t)).... | 
| 3d80 |  20 28 64 6f 74 69 6d 65 73 20 28 72 6f 77 20 2a    32 30 34 38 2d 72 6f 77 73 2a 29 0a 20 20 20 20  | .(dotimes.(row.*2048-rows*)..... | 
| 3da0 |  20 20 28 64 6f 74 69 6d 65 73 20 28 63 6f 6c 75    6d 6e 20 2a 32 30 34 38 2d 63 6f 6c 75 6d 6e 73  | ..(dotimes.(column.*2048-columns | 
| 3dc0 |  2a 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e    20 28 65 71 20 28 32 30 34 38 2d 67 65 74 2d 63  | *).........(when.(eq.(2048-get-c | 
| 3de0 |  65 6c 6c 20 72 6f 77 20 63 6f 6c 75 6d 6e 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ell.row.column)................. | 
| 3e00 |  20 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28    73 65 74 71 20 67 61 6d 65 2d 77 61 73 2d 6c 6f  | ..0)...........(setq.game-was-lo | 
| 3e20 |  73 74 20 6e 69 6c 29 29 29 29 0a 0a 20 20 20 20    3b 3b 20 46 6f 72 20 65 61 63 68 20 73 71 75 61  | st.nil))))......;;.For.each.squa | 
| 3e40 |  72 65 2c 20 69 66 20 74 68 61 74 20 73 71 75 61    72 65 20 68 61 73 20 6f 6e 65 20 62 65 6c 6f 77  | re,.if.that.square.has.one.below | 
| 3e60 |  20 69 74 20 74 68 61 74 27 73 20 74 68 65 20 73    61 6d 65 2c 0a 20 20 20 20 3b 3b 20 74 68 65 20  | .it.that's.the.same,.....;;.the. | 
| 3e80 |  67 61 6d 65 27 73 20 6e 6f 74 20 6f 76 65 72 2e    0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 72  | game's.not.over......(dotimes.(r | 
| 3ea0 |  6f 77 20 28 31 2d 20 2a 32 30 34 38 2d 72 6f 77    73 2a 29 29 0a 20 20 20 20 20 20 28 64 6f 74 69  | ow.(1-.*2048-rows*)).......(doti | 
| 3ec0 |  6d 65 73 20 28 63 6f 6c 75 6d 6e 20 2a 32 30 34    38 2d 63 6f 6c 75 6d 6e 73 2a 29 0a 20 20 20 20  | mes.(column.*2048-columns*)..... | 
| 3ee0 |  20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 32    30 34 38 2d 67 65 74 2d 63 65 6c 6c 20 72 6f 77  | ....(when.(eq.(2048-get-cell.row | 
| 3f00 |  20 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 32 30 34 38  | .column)...................(2048 | 
| 3f20 |  2d 67 65 74 2d 63 65 6c 6c 20 28 31 2b 20 72 6f    77 29 20 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20  | -get-cell.(1+.row).column))..... | 
| 3f40 |  20 20 20 20 20 20 28 73 65 74 71 20 67 61 6d 65    2d 77 61 73 2d 6c 6f 73 74 20 6e 69 6c 29 29 29  | ......(setq.game-was-lost.nil))) | 
| 3f60 |  29 0a 0a 20 20 20 20 3b 3b 20 46 6f 72 20 65 61    63 68 20 73 71 75 61 72 65 2c 20 69 66 20 74 68  | )......;;.For.each.square,.if.th | 
| 3f80 |  61 74 20 73 71 75 61 72 65 20 68 61 73 20 6f 6e    65 20 74 6f 20 69 74 73 20 72 69 67 68 74 20 74  | at.square.has.one.to.its.right.t | 
| 3fa0 |  68 61 74 27 73 20 74 68 65 20 73 61 6d 65 2c 0a    20 20 20 20 3b 3b 20 74 68 65 20 67 61 6d 65 27  | hat's.the.same,.....;;.the.game' | 
| 3fc0 |  73 20 6e 6f 74 20 6f 76 65 72 2e 0a 20 20 20 20    28 64 6f 74 69 6d 65 73 20 28 72 6f 77 20 2a 32  | s.not.over......(dotimes.(row.*2 | 
| 3fe0 |  30 34 38 2d 72 6f 77 73 2a 29 0a 20 20 20 20 20    20 28 64 6f 74 69 6d 65 73 20 28 63 6f 6c 75 6d  | 048-rows*).......(dotimes.(colum | 
| 4000 |  6e 20 28 31 2d 20 2a 32 30 34 38 2d 63 6f 6c 75    6d 6e 73 2a 29 29 0a 20 20 20 20 20 20 20 20 28  | n.(1-.*2048-columns*)).........( | 
| 4020 |  77 68 65 6e 20 28 65 71 20 28 32 30 34 38 2d 67    65 74 2d 63 65 6c 6c 20 72 6f 77 20 63 6f 6c 75  | when.(eq.(2048-get-cell.row.colu | 
| 4040 |  6d 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 32 30 34 38 2d 67 65 74 2d  | mn)...................(2048-get- | 
| 4060 |  63 65 6c 6c 20 72 6f 77 20 28 31 2b 20 63 6f 6c    75 6d 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20  | cell.row.(1+.column))).......... | 
| 4080 |  20 28 73 65 74 71 20 67 61 6d 65 2d 77 61 73 2d    6c 6f 73 74 20 6e 69 6c 29 29 29 29 0a 20 20 20  | .(setq.game-was-lost.nil)))).... | 
| 40a0 |  20 67 61 6d 65 2d 77 61 73 2d 6c 6f 73 74 29 29    0a 0a 28 64 65 66 75 6e 20 32 30 34 38 2d 70 72  | .game-was-lost))..(defun.2048-pr | 
| 40c0 |  69 6e 74 2d 62 6f 61 72 64 20 28 29 0a 20 20 22    57 69 70 65 73 20 74 68 65 20 65 6e 74 69 72 65  | int-board.()..."Wipes.the.entire | 
| 40e0 |  20 66 69 65 6c 64 2c 20 61 6e 64 20 70 72 69 6e    74 73 20 74 68 65 20 62 6f 61 72 64 2e 22 0a 20  | .field,.and.prints.the.board.".. | 
| 4100 |  20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d    72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20  | .(let.((inhibit-read-only.t))... | 
| 4120 |  20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29    0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 72  | ..(erase-buffer).....(dotimes.(r | 
| 4140 |  6f 77 20 2a 32 30 34 38 2d 72 6f 77 73 2a 29 0a    0a 20 20 20 20 20 20 3b 3b 70 72 69 6e 74 20 74  | ow.*2048-rows*)........;;print.t | 
| 4160 |  68 65 20 73 65 70 61 72 61 74 6f 72 20 6c 69 6e    65 20 6f 6e 20 74 6f 70 20 6f 66 2c 20 61 6e 64  | he.separator.line.on.top.of,.and | 
| 4180 |  20 62 65 74 77 65 65 6e 20 63 65 6c 6c 73 0a 20    20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 63  | .between.cells.......(dotimes.(c | 
| 41a0 |  6f 6c 20 2a 32 30 34 38 2d 63 6f 6c 75 6d 6e 73    2a 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65  | ol.*2048-columns*).........(inse | 
| 41c0 |  72 74 20 22 2b 2d 2d 2d 2d 2d 2d 2d 22 29 29 0a    20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2b  | rt."+-------")).......(insert."+ | 
| 41e0 |  22 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74    20 22 5c 6e 22 29 0a 0a 20 20 20 20 20 20 3b 3b  | ").......(insert."\n")........;; | 
| 4200 |  70 72 69 6e 74 20 74 68 65 20 65 6d 70 74 79 20    6c 69 6e 65 20 61 62 6f 76 65 20 6e 75 6d 62 65  | print.the.empty.line.above.numbe | 
| 4220 |  72 73 0a 20 20 20 20 20 20 28 64 6f 74 69 6d 65    73 20 28 63 6f 6c 20 2a 32 30 34 38 2d 63 6f 6c  | rs.......(dotimes.(col.*2048-col | 
| 4240 |  75 6d 6e 73 2a 29 0a 20 20 20 20 20 20 20 20 28    69 6e 73 65 72 74 20 22 7c 22 29 0a 20 20 20 20  | umns*).........(insert."|")..... | 
| 4260 |  20 20 20 20 28 6c 65 74 20 28 28 63 75 72 72 65    6e 74 2d 76 61 6c 75 65 20 28 32 30 34 38 2d 67  | ....(let.((current-value.(2048-g | 
| 4280 |  65 74 2d 63 65 6c 6c 20 72 6f 77 20 63 6f 6c 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e  | et-cell.row.col)))...........(in | 
| 42a0 |  73 65 72 74 20 28 32 30 34 38 2d 65 6d 70 74 79    2d 74 69 6c 65 20 63 75 72 72 65 6e 74 2d 76 61  | sert.(2048-empty-tile.current-va | 
| 42c0 |  6c 75 65 29 29 29 29 0a 20 20 20 20 20 20 28 69    6e 73 65 72 74 20 22 7c 22 29 0a 20 20 20 20 20  | lue)))).......(insert."|")...... | 
| 42e0 |  20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 0a    20 20 20 20 20 20 3b 3b 20 70 72 69 6e 74 20 74  | .(insert."\n")........;;.print.t | 
| 4300 |  68 65 20 6e 75 6d 62 65 72 20 74 69 6c 65 73 0a    20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28  | he.number.tiles.......(dotimes.( | 
| 4320 |  63 6f 6c 20 2a 32 30 34 38 2d 63 6f 6c 75 6d 6e    73 2a 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73  | col.*2048-columns*).........(ins | 
| 4340 |  65 72 74 20 22 7c 22 29 0a 20 20 20 20 20 20 20    20 28 6c 65 74 20 28 28 63 75 72 72 65 6e 74 2d  | ert."|").........(let.((current- | 
| 4360 |  76 61 6c 75 65 20 28 32 30 34 38 2d 67 65 74 2d    63 65 6c 6c 20 72 6f 77 20 63 6f 6c 29 29 29 0a  | value.(2048-get-cell.row.col))). | 
| 4380 |  20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72    74 20 28 32 30 34 38 2d 74 69 6c 65 20 63 75 72  | ..........(insert.(2048-tile.cur | 
| 43a0 |  72 65 6e 74 2d 76 61 6c 75 65 29 29 29 29 0a 20    20 20 20 20 20 28 69 6e 73 65 72 74 20 22 7c 22  | rent-value)))).......(insert."|" | 
| 43c0 |  29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20    22 5c 6e 22 29 0a 0a 20 20 20 20 20 20 3b 3b 70  | ).......(insert."\n")........;;p | 
| 43e0 |  72 69 6e 74 20 74 68 65 20 65 6d 70 74 79 20 6c    69 6e 65 20 62 65 6c 6f 77 20 6e 75 6d 62 65 72  | rint.the.empty.line.below.number | 
| 4400 |  73 0a 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73    20 28 63 6f 6c 20 2a 32 30 34 38 2d 63 6f 6c 75  | s.......(dotimes.(col.*2048-colu | 
| 4420 |  6d 6e 73 2a 29 0a 20 20 20 20 20 20 20 20 28 69    6e 73 65 72 74 20 22 7c 22 29 0a 20 20 20 20 20  | mns*).........(insert."|")...... | 
| 4440 |  20 20 20 28 6c 65 74 20 28 28 63 75 72 72 65 6e    74 2d 76 61 6c 75 65 20 28 32 30 34 38 2d 67 65  | ...(let.((current-value.(2048-ge | 
| 4460 |  74 2d 63 65 6c 6c 20 72 6f 77 20 63 6f 6c 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73  | t-cell.row.col)))...........(ins | 
| 4480 |  65 72 74 20 28 32 30 34 38 2d 65 6d 70 74 79 2d    74 69 6c 65 20 63 75 72 72 65 6e 74 2d 76 61 6c  | ert.(2048-empty-tile.current-val | 
| 44a0 |  75 65 29 29 29 29 0a 20 20 20 20 20 20 28 69 6e    73 65 72 74 20 22 7c 22 29 0a 20 20 20 20 20 20  | ue)))).......(insert."|")....... | 
| 44c0 |  28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 0a    20 20 20 20 3b 3b 70 72 69 6e 74 20 74 68 65 20  | (insert."\n"))......;;print.the. | 
| 44e0 |  73 65 70 61 72 61 74 6f 72 20 6c 69 6e 65 20 6f    6e 20 74 68 65 20 62 6f 74 74 6f 6d 20 6f 66 20  | separator.line.on.the.bottom.of. | 
| 4500 |  74 68 65 20 6c 61 73 74 20 72 6f 77 2e 0a 20 20    20 20 28 64 6f 74 69 6d 65 73 20 28 63 6f 6c 20  | the.last.row......(dotimes.(col. | 
| 4520 |  2a 32 30 34 38 2d 63 6f 6c 75 6d 6e 73 2a 29 0a    20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2b  | *2048-columns*).......(insert."+ | 
| 4540 |  2d 2d 2d 2d 2d 2d 2d 22 29 29 0a 20 20 20 20 28    69 6e 73 65 72 74 20 22 2b 5c 6e 22 29 0a 20 20  | -------")).....(insert."+\n")... | 
| 4560 |  20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a    0a 20 20 20 20 28 6c 65 74 20 28 28 73 63 6f 72  | ..(insert."\n")......(let.((scor | 
| 4580 |  65 2d 77 69 64 74 68 20 28 69 66 20 28 3d 20 30    20 2a 32 30 34 38 2d 73 63 6f 72 65 2a 29 0a 20  | e-width.(if.(=.0.*2048-score*).. | 
| 45a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 31 0a 20 20 20 20  | ..........................1..... | 
| 45c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 63 65 69 6c 69 6e 67 20 28 6c  | .....................(ceiling.(l | 
| 45e0 |  6f 67 20 2a 32 30 34 38 2d 73 63 6f 72 65 2a 20    31 30 29 29 29 29 29 0a 20 20 20 20 20 20 28 69  | og.*2048-score*.10))))).......(i | 
| 4600 |  6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 25    31 30 73 25 73 25 73 5c 6e 22 20 22 2f 22 20 28  | nsert.(format."%10s%s%s\n"."/".( | 
| 4620 |  6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 2b 20 39    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | make-string.(+.9................ | 
| 4640 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 4660 |  20 20 20 20 20 20 20 73 63 6f 72 65 2d 77 69 64    74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .......score-width)............. | 
| 4680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 46a0 |  20 20 20 20 20 20 20 3f 5c 3d 29 20 22 5c 5c 22    29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74  | .......?\=)."\\")).......(insert | 
| 46c0 |  20 28 66 6f 72 6d 61 74 20 22 25 31 30 73 20 25    73 20 25 64 20 25 73 5c 6e 22 20 22 7c 22 20 22  | .(format."%10s.%s.%d.%s\n"."|"." | 
| 46e0 |  53 63 6f 72 65 3a 22 20 2a 32 30 34 38 2d 73 63    6f 72 65 2a 20 22 7c 22 29 29 0a 20 20 20 20 20  | Score:".*2048-score*."|"))...... | 
| 4700 |  20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74    20 22 25 31 30 73 25 73 25 73 5c 6e 22 20 22 5c  | .(insert.(format."%10s%s%s\n"."\ | 
| 4720 |  5c 22 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20    28 2b 20 39 0a 20 20 20 20 20 20 20 20 20 20 20  | \".(make-string.(+.9............ | 
| 4740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 4760 |  20 20 20 20 20 20 20 20 20 20 20 20 73 63 6f 72    65 2d 77 69 64 74 68 29 0a 20 20 20 20 20 20 20  | ............score-width)........ | 
| 4780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 47a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3f 5c 3d    29 20 22 2f 22 29 29 29 0a 20 20 20 20 28 69 6e  | .............?\=)."/"))).....(in | 
| 47c0 |  73 65 72 74 20 22 5c 6e 22 29 0a 0a 20 20 20 20    28 32 30 34 38 2d 70 72 69 6e 74 2d 68 65 6c 70  | sert."\n")......(2048-print-help | 
| 47e0 |  29 0a 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22    5c 6e 22 29 0a 0a 20 20 20 20 3b 3b 20 70 72 69  | )......(insert."\n")......;;.pri | 
| 4800 |  6e 74 20 73 63 6f 72 65 20 61 6e 64 20 68 69 73    74 6f 72 79 0a 20 20 20 20 28 69 6e 73 65 72 74  | nt.score.and.history.....(insert | 
| 4820 |  20 28 66 6f 72 6d 61 74 20 22 25 31 30 73 25 73    25 73 5c 6e 22 20 22 2f 22 20 28 6d 61 6b 65 2d  | .(format."%10s%s%s\n"."/".(make- | 
| 4840 |  73 74 72 69 6e 67 20 31 33 20 3f 5c 3d 29 20 22    5c 5c 22 29 29 0a 20 20 20 20 28 69 6e 73 65 72  | string.13.?\=)."\\")).....(inser | 
| 4860 |  74 20 28 66 6f 72 6d 61 74 20 22 25 32 34 73 5c    6e 22 20 22 7c 20 48 49 47 48 20 53 43 4f 52 45  | t.(format."%24s\n"."|.HIGH.SCORE | 
| 4880 |  53 20 7c 22 29 29 0a 20 20 20 20 28 69 6e 73 65    72 74 20 28 66 6f 72 6d 61 74 20 22 25 31 30 73  | S.|")).....(insert.(format."%10s | 
| 48a0 |  25 73 25 73 5c 6e 22 20 22 5c 5c 22 20 28 6d 61    6b 65 2d 73 74 72 69 6e 67 20 31 33 20 3f 5c 3d  | %s%s\n"."\\".(make-string.13.?\= | 
| 48c0 |  29 20 22 2f 22 29 29 0a 20 20 20 20 28 69 6e 73    65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 28 69  | )."/")).....(insert."\n").....(i | 
| 48e0 |  6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 25    38 73 20 20 25 37 73 20 20 25 37 73 20 20 20 20  | nsert.(format."%8s..%7s..%7s.... | 
| 4900 |  20 25 34 73 5c 6e 22 20 22 53 63 6f 72 65 22 20    22 48 69 2d 54 69 6c 65 22 20 22 44 61 74 65 22  | .%4s\n"."Score"."Hi-Tile"."Date" | 
| 4920 |  20 22 44 75 72 61 74 69 6f 6e 22 29 29 0a 20 20    20 20 28 6d 61 70 63 20 23 27 28 6c 61 6d 62 64  | ."Duration")).....(mapc.#'(lambd | 
| 4940 |  61 20 28 78 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72  | a.(x)...............(insert.(for | 
| 4960 |  6d 61 74 20 22 25 38 64 20 20 25 37 64 20 20 25    31 30 73 20 20 25 73 5c 6e 22 0a 20 20 20 20 20  | mat."%8d..%7d..%10s..%s\n"...... | 
| 4980 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 65 6c 74 20 78 20  | .........................(elt.x. | 
| 49a0 |  30 29 20 28 65 6c 74 20 78 20 31 29 20 28 65 6c    74 20 78 20 32 29 20 28 66 6f 72 6d 61 74 2d 74  | 0).(elt.x.1).(elt.x.2).(format-t | 
| 49c0 |  69 6d 65 2d 73 74 72 69 6e 67 20 22 25 48 3a 25    4d 3a 25 53 22 20 28 65 6c 74 20 78 20 33 29 20  | ime-string."%H:%M:%S".(elt.x.3). | 
| 49e0 |  74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    2a 32 30 34 38 2d 68 69 73 74 6f 72 79 2a 29 0a  | t))))...........*2048-history*). | 
| 4a00 |  0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20    28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 0a  | .....(goto-char.(point-min)))).. | 
| 4a20 |  28 64 65 66 75 6e 20 32 30 34 38 2d 70 72 69 6e    74 2d 68 65 6c 70 20 28 29 0a 20 20 22 50 72 69  | (defun.2048-print-help.()..."Pri | 
| 4a40 |  6e 74 20 62 61 73 69 63 20 68 65 6c 70 20 74 65    78 74 2e 22 0a 20 20 28 69 6e 73 65 72 74 20 22  | nt.basic.help.text."...(insert." | 
| 4a60 |  54 68 65 20 67 6f 61 6c 20 69 73 20 74 6f 20 63    72 65 61 74 65 20 61 20 74 69 6c 65 20 77 69 74  | The.goal.is.to.create.a.tile.wit | 
| 4a80 |  68 20 76 61 6c 75 65 20 32 30 34 38 2e 0a 55 73    65 20 74 68 65 20 61 72 72 6f 77 20 6b 65 79 73  | h.value.2048..Use.the.arrow.keys | 
| 4aa0 |  2c 20 70 2f 6e 2f 62 2f 66 2c 20 6f 72 20 43 2d    70 2f 43 2d 6e 2f 43 2d 62 2f 43 2d 66 0a 74 6f  | ,.p/n/b/f,.or.C-p/C-n/C-b/C-f.to | 
| 4ac0 |  20 6d 6f 76 65 20 74 68 65 20 74 69 6c 65 73 20    61 72 6f 75 6e 64 2e 20 50 72 65 73 73 20 72 20  | .move.the.tiles.around..Press.r. | 
| 4ae0 |  74 6f 20 6d 6f 76 65 20 72 61 6e 64 6f 6d 6c 79    2e 0a 0a 49 66 20 74 77 6f 20 74 69 6c 65 73 20  | to.move.randomly...If.two.tiles. | 
| 4b00 |  6f 66 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75    65 20 63 6f 6c 6c 69 64 65 2c 20 74 68 65 20 74  | of.the.same.value.collide,.the.t | 
| 4b20 |  69 6c 65 73 0a 63 6f 6d 62 69 6e 65 20 69 6e 74    6f 20 61 20 74 69 6c 65 20 77 69 74 68 20 74 77  | iles.combine.into.a.tile.with.tw | 
| 4b40 |  69 63 65 20 74 68 65 20 76 61 6c 75 65 2e 5c 6e    22 29 29 0a 0a 28 64 65 66 75 6e 20 32 30 34 38  | ice.the.value.\n"))..(defun.2048 | 
| 4b60 |  2d 6d 6f 76 65 20 28 66 72 6f 6d 2d 72 6f 77 20    66 72 6f 6d 2d 63 6f 6c 75 6d 6e 20 64 65 6c 74  | -move.(from-row.from-column.delt | 
| 4b80 |  61 2d 72 6f 77 20 64 65 6c 74 61 2d 63 6f 6c 75    6d 6e 29 0a 20 20 22 54 72 79 20 74 6f 20 6d 6f  | a-row.delta-column)..."Try.to.mo | 
| 4ba0 |  76 65 20 74 68 65 20 6e 75 6d 62 65 72 20 69 6e    20 28 46 52 4f 4d 2d 52 4f 57 2c 20 46 52 4f 4d  | ve.the.number.in.(FROM-ROW,.FROM | 
| 4bc0 |  2d 43 4f 4c 55 4d 4e 29 0a 0a 4d 6f 76 65 20 69    74 20 62 79 20 28 44 45 4c 54 41 2d 52 4f 57 2c  | -COLUMN)..Move.it.by.(DELTA-ROW, | 
| 4be0 |  20 44 45 4c 54 41 2d 43 4f 4c 55 4d 4e 29 2e 0a    54 68 69 73 20 73 75 63 63 65 65 64 73 20 77 68  | .DELTA-COLUMN)..This.succeeds.wh | 
| 4c00 |  65 6e 20 74 68 65 20 64 65 73 74 69 6e 61 74 69    6f 6e 20 28 74 6f 2d 72 6f 77 2c 20 74 6f 2d 63  | en.the.destination.(to-row,.to-c | 
| 4c20 |  6f 6c 75 6d 6e 29 20 65 69 74 68 65 72 20 69 73    20 30 2c 0a 6f 72 20 69 73 20 74 68 65 20 73 61  | olumn).either.is.0,.or.is.the.sa | 
| 4c40 |  6d 65 20 76 61 6c 75 65 20 61 73 20 28 66 72 6f    6d 2d 72 6f 77 2c 20 66 72 6f 6d 2d 63 6f 6c 75  | me.value.as.(from-row,.from-colu | 
| 4c60 |  6d 6e 29 2e 0a 49 66 20 28 74 6f 2d 72 6f 77 2c    20 74 6f 2d 63 6f 6c 75 6d 6e 29 20 69 73 20 7a  | mn)..If.(to-row,.to-column).is.z | 
| 4c80 |  65 72 6f 2c 20 63 61 73 63 61 64 65 20 61 6e 64    20 74 72 79 20 74 6f 20 6d 6f 76 65 20 66 75 72  | ero,.cascade.and.try.to.move.fur | 
| 4ca0 |  74 68 65 72 2e 0a 52 65 74 75 72 6e 73 20 74 20    69 66 20 77 65 20 77 65 72 65 20 61 62 6c 65 20  | ther..Returns.t.if.we.were.able. | 
| 4cc0 |  74 6f 20 6d 6f 76 65 3b 20 6f 74 68 65 72 77 69    73 65 20 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20  | to.move;.otherwise.nil."...(let. | 
| 4ce0 |  28 28 74 6f 2d 72 6f 77 20 28 2b 20 66 72 6f 6d    2d 72 6f 77 20 64 65 6c 74 61 2d 72 6f 77 29 29  | ((to-row.(+.from-row.delta-row)) | 
| 4d00 |  0a 20 20 20 20 20 20 20 20 28 74 6f 2d 63 6f 6c    75 6d 6e 20 28 2b 20 66 72 6f 6d 2d 63 6f 6c 75  | .........(to-column.(+.from-colu | 
| 4d20 |  6d 6e 20 64 65 6c 74 61 2d 63 6f 6c 75 6d 6e 29    29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 69 6e  | mn.delta-column))).....(when.(in | 
| 4d40 |  2d 62 6f 75 6e 64 73 20 74 6f 2d 72 6f 77 20 74    6f 2d 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 20 20  | -bounds.to-row.to-column)....... | 
| 4d60 |  28 32 30 34 38 2d 64 65 62 75 67 20 28 66 6f 72    6d 61 74 20 22 6d 6f 76 69 6e 67 20 74 68 65 20  | (2048-debug.(format."moving.the. | 
| 4d80 |  63 65 6c 6c 20 28 25 64 2c 20 25 64 29 20 62 79    20 28 25 64 2c 20 25 64 29 20 74 6f 20 28 25 64  | cell.(%d,.%d).by.(%d,.%d).to.(%d | 
| 4da0 |  2c 20 25 64 29 22 20 66 72 6f 6d 2d 72 6f 77 20    66 72 6f 6d 2d 63 6f 6c 75 6d 6e 20 64 65 6c 74  | ,.%d)".from-row.from-column.delt | 
| 4dc0 |  61 2d 72 6f 77 20 64 65 6c 74 61 2d 63 6f 6c 75    6d 6e 20 74 6f 2d 72 6f 77 20 74 6f 2d 63 6f 6c  | a-row.delta-column.to-row.to-col | 
| 4de0 |  75 6d 6e 29 29 0a 20 20 20 20 20 20 28 6c 65 74    20 28 28 66 72 6f 6d 2d 76 61 6c 20 28 32 30 34  | umn)).......(let.((from-val.(204 | 
| 4e00 |  38 2d 67 65 74 2d 63 65 6c 6c 20 66 72 6f 6d 2d    72 6f 77 20 66 72 6f 6d 2d 63 6f 6c 75 6d 6e 29  | 8-get-cell.from-row.from-column) | 
| 4e20 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74    6f 2d 76 61 6c 20 28 32 30 34 38 2d 67 65 74 2d  | ).............(to-val.(2048-get- | 
| 4e40 |  63 65 6c 6c 20 74 6f 2d 72 6f 77 20 74 6f 2d 63    6f 6c 75 6d 6e 29 29 29 0a 20 20 20 20 20 20 20  | cell.to-row.to-column)))........ | 
| 4e60 |  20 28 63 6f 6e 64 20 28 28 65 71 20 66 72 6f 6d    2d 76 61 6c 20 74 6f 2d 76 61 6c 29 0a 20 20 20  | .(cond.((eq.from-val.to-val).... | 
| 4e80 |  20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c    65 73 73 20 28 6f 72 20 28 65 71 20 66 72 6f 6d  | ............(unless.(or.(eq.from | 
| 4ea0 |  2d 76 61 6c 20 30 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -val.0)......................... | 
| 4ec0 |  20 20 20 28 32 30 34 38 2d 77 61 73 2d 63 6f 6d    62 69 6e 65 64 2d 74 68 69 73 2d 74 75 72 6e 20  | ...(2048-was-combined-this-turn. | 
| 4ee0 |  74 6f 2d 72 6f 77 20 74 6f 2d 63 6f 6c 75 6d 6e    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | to-row.to-column)).............. | 
| 4f00 |  20 20 20 20 28 32 30 34 38 2d 64 65 62 75 67 20    28 66 6f 72 6d 61 74 20 22 63 6f 6d 62 69 6e 69  | ....(2048-debug.(format."combini | 
| 4f20 |  6e 67 20 28 25 64 2c 20 25 64 29 20 69 6e 74 6f    20 28 25 64 2c 20 25 64 29 22 20 66 72 6f 6d 2d  | ng.(%d,.%d).into.(%d,.%d)".from- | 
| 4f40 |  72 6f 77 20 66 72 6f 6d 2d 63 6f 6c 75 6d 6e 20    74 6f 2d 72 6f 77 20 74 6f 2d 63 6f 6c 75 6d 6e  | row.from-column.to-row.to-column | 
| 4f60 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6c 65 74 20 28 28 63 6f 6d 62 69  | ))..................(let.((combi | 
| 4f80 |  6e 65 64 2d 76 61 6c 75 65 20 28 2a 20 66 72 6f    6d 2d 76 61 6c 20 32 29 29 29 0a 20 20 20 20 20  | ned-value.(*.from-val.2)))...... | 
| 4fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75    6e 6c 65 73 73 20 28 62 6f 75 6e 64 70 20 28 32  | ..............(unless.(boundp.(2 | 
| 4fc0 |  30 34 38 2d 74 69 6c 65 2d 73 79 6d 62 6f 6c 20    63 6f 6d 62 69 6e 65 64 2d 76 61 6c 75 65 29 29  | 048-tile-symbol.combined-value)) | 
| 4fe0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 32 30 34 38 2d 69 6e 69 74  | ......................(2048-init | 
| 5000 |  2d 74 69 6c 65 20 63 6f 6d 62 69 6e 65 64 2d 76    61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20  | -tile.combined-value)).......... | 
| 5020 |  20 20 20 20 20 20 20 20 20 20 28 32 30 34 38 2d    73 65 74 2d 63 65 6c 6c 20 74 6f 2d 72 6f 77 20  | ..........(2048-set-cell.to-row. | 
| 5040 |  74 6f 2d 63 6f 6c 75 6d 6e 20 63 6f 6d 62 69 6e    65 64 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20  | to-column.combined-value)....... | 
| 5060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65    74 71 20 2a 32 30 34 38 2d 73 63 6f 72 65 2a 20  | .............(setq.*2048-score*. | 
| 5080 |  28 2b 20 2a 32 30 34 38 2d 73 63 6f 72 65 2a 20    63 6f 6d 62 69 6e 65 64 2d 76 61 6c 75 65 29 29  | (+.*2048-score*.combined-value)) | 
| 50a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 32 30 34 38 2d 73 65 74 2d 63 65  | ....................(2048-set-ce | 
| 50c0 |  6c 6c 20 66 72 6f 6d 2d 72 6f 77 20 66 72 6f 6d    2d 63 6f 6c 75 6d 6e 20 30 29 0a 20 20 20 20 20  | ll.from-row.from-column.0)...... | 
| 50e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 32    30 34 38 2d 73 65 74 2d 77 61 73 2d 63 6f 6d 62  | ..............(2048-set-was-comb | 
| 5100 |  69 6e 65 64 2d 74 68 69 73 2d 74 75 72 6e 20 74    6f 2d 72 6f 77 20 74 6f 2d 63 6f 6c 75 6d 6e 29  | ined-this-turn.to-row.to-column) | 
| 5120 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 28 65 71 20 74 6f 2d 76 61 6c 20 30 29  | )))...............((eq.to-val.0) | 
| 5140 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 32 30 34 38 2d 73 65 74 2d 63 65 6c 6c 20 74  | ................(2048-set-cell.t | 
| 5160 |  6f 2d 72 6f 77 20 74 6f 2d 63 6f 6c 75 6d 6e 20    66 72 6f 6d 2d 76 61 6c 29 0a 20 20 20 20 20 20  | o-row.to-column.from-val)....... | 
| 5180 |  20 20 20 20 20 20 20 20 20 28 32 30 34 38 2d 73    65 74 2d 63 65 6c 6c 20 66 72 6f 6d 2d 72 6f 77  | .........(2048-set-cell.from-row | 
| 51a0 |  20 66 72 6f 6d 2d 63 6f 6c 75 6d 6e 20 30 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .from-column.0)................( | 
| 51c0 |  32 30 34 38 2d 6d 6f 76 65 20 74 6f 2d 72 6f 77    20 74 6f 2d 63 6f 6c 75 6d 6e 20 64 65 6c 74 61  | 2048-move.to-row.to-column.delta | 
| 51e0 |  2d 72 6f 77 20 64 65 6c 74 61 2d 63 6f 6c 75 6d    6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | -row.delta-column).............. | 
| 5200 |  20 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 74 20 6e 69 6c 29 29 29 29 29 29 20  | ..t)...............(t.nil)))))). | 
| 5220 |  3b 3b 75 67 68 2c 20 6e 65 65 64 20 74 6f 20 70    61 73 73 20 6f 75 74 20 77 68 65 74 68 65 72 20  | ;;ugh,.need.to.pass.out.whether. | 
| 5240 |  73 6f 6d 65 74 68 69 6e 67 20 77 61 73 20 63 6f    6d 62 69 6e 65 64 2c 20 61 6e 64 20 70 61 73 73  | something.was.combined,.and.pass | 
| 5260 |  20 74 68 61 74 20 74 6f 20 74 68 65 20 5f 6e 65    78 74 5f 20 63 61 6c 6c 20 74 6f 20 32 30 34 38  | .that.to.the._next_.call.to.2048 | 
| 5280 |  2d 6d 6f 76 65 2e 20 57 65 20 73 65 65 20 62 75    67 73 20 6f 6e 20 72 6f 77 73 20 6c 69 6b 65 20  | -move..We.see.bugs.on.rows.like. | 
| 52a0 |  34 20 30 20 34 20 30 2e 0a 0a 28 64 65 66 75 6e    20 69 6e 2d 62 6f 75 6e 64 73 20 28 72 6f 77 20  | 4.0.4.0...(defun.in-bounds.(row. | 
| 52c0 |  63 6f 6c 75 6d 6e 29 0a 20 20 22 52 65 74 75 72    6e 20 74 20 69 66 20 28 52 4f 57 2c 20 43 4f 4c  | column)..."Return.t.if.(ROW,.COL | 
| 52e0 |  55 4d 4e 29 20 69 73 20 69 6e 20 74 68 65 20 62    6f 75 6e 64 73 20 6f 66 20 74 68 65 20 66 69 65  | UMN).is.in.the.bounds.of.the.fie | 
| 5300 |  6c 64 2e 22 0a 20 20 28 61 6e 64 20 28 3e 3d 20    72 6f 77 20 30 29 0a 20 20 20 20 20 20 20 28 3e  | ld."...(and.(>=.row.0)........(> | 
| 5320 |  3d 20 63 6f 6c 75 6d 6e 20 30 29 0a 20 20 20 20    20 20 20 28 3c 20 72 6f 77 20 2a 32 30 34 38 2d  | =.column.0)........(<.row.*2048- | 
| 5340 |  72 6f 77 73 2a 29 0a 20 20 20 20 20 20 20 28 3c    20 63 6f 6c 75 6d 6e 20 2a 32 30 34 38 2d 63 6f  | rows*)........(<.column.*2048-co | 
| 5360 |  6c 75 6d 6e 73 2a 29 29 29 0a 0a 0a 28 64 65 66    75 6e 20 32 30 34 38 2d 75 70 20 28 29 0a 20 20  | lumns*)))...(defun.2048-up.()... | 
| 5380 |  22 53 68 69 66 74 20 74 68 65 20 62 6f 61 72 64    20 75 70 2e 22 0a 20 20 28 69 6e 74 65 72 61 63  | "Shift.the.board.up."...(interac | 
| 53a0 |  74 69 76 65 29 0a 20 20 28 32 30 34 38 2d 67 61    6d 65 2d 6d 6f 76 65 0a 20 20 20 28 73 65 74 71  | tive)...(2048-game-move....(setq | 
| 53c0 |  20 2a 32 30 34 38 2d 63 6f 6d 62 69 6e 65 73 2d    74 68 69 73 2d 6d 6f 76 65 2a 20 28 6d 61 6b 65  | .*2048-combines-this-move*.(make | 
| 53e0 |  2d 76 65 63 74 6f 72 20 28 2a 20 2a 32 30 34 38    2d 63 6f 6c 75 6d 6e 73 2a 20 2a 32 30 34 38 2d  | -vector.(*.*2048-columns*.*2048- | 
| 5400 |  72 6f 77 73 2a 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rows*).......................... | 
| 5420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 20 20  | .......................nil)).... | 
| 5440 |  28 6c 65 74 20 28 28 68 61 73 2d 6d 6f 76 65 64    20 6e 69 6c 29 29 0a 20 20 20 20 20 28 64 6f 74  | (let.((has-moved.nil))......(dot | 
| 5460 |  69 6d 65 73 20 28 63 6f 6c 20 2a 32 30 34 38 2d    63 6f 6c 75 6d 6e 73 2a 29 0a 20 20 20 20 20 20  | imes.(col.*2048-columns*)....... | 
| 5480 |  20 28 64 6f 6c 69 73 74 20 28 72 6f 77 20 28 6e    75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 31  | .(dolist.(row.(number-sequence.1 | 
| 54a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 54c0 |  20 20 20 20 20 20 28 31 2d 20 2a 32 30 34 38 2d    72 6f 77 73 2a 29 29 29 0a 20 20 20 20 20 20 20  | ......(1-.*2048-rows*)))........ | 
| 54e0 |  20 20 28 73 65 74 71 20 68 61 73 2d 6d 6f 76 65    64 20 28 6f 72 20 28 32 30 34 38 2d 6d 6f 76 65  | ..(setq.has-moved.(or.(2048-move | 
| 5500 |  20 72 6f 77 20 63 6f 6c 20 2d 31 20 30 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .row.col.-1.0).................. | 
| 5520 |  20 20 20 20 20 20 20 20 20 20 20 20 68 61 73 2d    6d 6f 76 65 64 29 29 29 29 0a 20 20 20 20 20 28  | ............has-moved))))......( | 
| 5540 |  77 68 65 6e 20 68 61 73 2d 6d 6f 76 65 64 0a 20    20 20 20 20 20 20 28 32 30 34 38 2d 69 6e 73 65  | when.has-moved........(2048-inse | 
| 5560 |  72 74 2d 72 61 6e 64 6f 6d 2d 63 65 6c 6c 29 29    29 29 29 0a 0a 28 64 65 66 75 6e 20 32 30 34 38  | rt-random-cell)))))..(defun.2048 | 
| 5580 |  2d 64 6f 77 6e 20 28 29 0a 20 20 22 53 68 69 66    74 20 74 68 65 20 62 6f 61 72 64 20 64 6f 77 6e  | -down.()..."Shift.the.board.down | 
| 55a0 |  2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76    65 29 0a 20 20 28 32 30 34 38 2d 67 61 6d 65 2d  | ."...(interactive)...(2048-game- | 
| 55c0 |  6d 6f 76 65 0a 20 20 20 28 73 65 74 71 20 2a 32    30 34 38 2d 63 6f 6d 62 69 6e 65 73 2d 74 68 69  | move....(setq.*2048-combines-thi | 
| 55e0 |  73 2d 6d 6f 76 65 2a 20 28 6d 61 6b 65 2d 76 65    63 74 6f 72 20 28 2a 20 2a 32 30 34 38 2d 63 6f  | s-move*.(make-vector.(*.*2048-co | 
| 5600 |  6c 75 6d 6e 73 2a 20 2a 32 30 34 38 2d 72 6f 77    73 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | lumns*.*2048-rows*)............. | 
| 5620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5640 |  20 20 20 20 6e 69 6c 29 29 0a 20 20 20 28 6c 65    74 20 28 28 68 61 73 2d 6d 6f 76 65 64 20 6e 69  | ....nil))....(let.((has-moved.ni | 
| 5660 |  6c 29 29 0a 20 20 20 20 20 28 64 6f 74 69 6d 65    73 20 28 63 6f 6c 20 2a 32 30 34 38 2d 63 6f 6c  | l))......(dotimes.(col.*2048-col | 
| 5680 |  75 6d 6e 73 2a 29 0a 20 20 20 20 20 20 20 28 64    6f 6c 69 73 74 20 28 72 6f 77 20 28 6e 75 6d 62  | umns*)........(dolist.(row.(numb | 
| 56a0 |  65 72 2d 73 65 71 75 65 6e 63 65 20 28 2d 20 2a    32 30 34 38 2d 72 6f 77 73 2a 20 32 29 20 30 20  | er-sequence.(-.*2048-rows*.2).0. | 
| 56c0 |  2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 68 61 73 2d 6d 6f 76 65 64 20 28 6f  | -1))..........(setq.has-moved.(o | 
| 56e0 |  72 20 28 32 30 34 38 2d 6d 6f 76 65 20 72 6f 77    20 63 6f 6c 20 31 20 30 29 0a 20 20 20 20 20 20  | r.(2048-move.row.col.1.0)....... | 
| 5700 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 68 61 73 2d 6d 6f 76 65 64  | .......................has-moved | 
| 5720 |  29 29 29 29 0a 20 20 20 20 20 28 77 68 65 6e 20    68 61 73 2d 6d 6f 76 65 64 0a 20 20 20 20 20 20  | ))))......(when.has-moved....... | 
| 5740 |  20 28 32 30 34 38 2d 69 6e 73 65 72 74 2d 72 61    6e 64 6f 6d 2d 63 65 6c 6c 29 29 29 29 29 0a 0a  | .(2048-insert-random-cell))))).. | 
| 5760 |  28 64 65 66 75 6e 20 32 30 34 38 2d 6c 65 66 74    20 28 29 0a 20 20 22 53 68 69 66 74 73 20 74 68  | (defun.2048-left.()..."Shifts.th | 
| 5780 |  65 20 62 6f 61 72 64 20 6c 65 66 74 2e 22 0a 20    20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20  | e.board.left."...(interactive).. | 
| 57a0 |  20 28 32 30 34 38 2d 67 61 6d 65 2d 6d 6f 76 65    0a 20 20 20 28 6c 65 74 20 28 28 68 61 73 2d 6d  | .(2048-game-move....(let.((has-m | 
| 57c0 |  6f 76 65 64 20 6e 69 6c 29 29 0a 20 20 20 20 20    28 64 6f 74 69 6d 65 73 20 28 72 6f 77 20 2a 32  | oved.nil))......(dotimes.(row.*2 | 
| 57e0 |  30 34 38 2d 72 6f 77 73 2a 29 0a 20 20 20 20 20    20 20 28 64 6f 6c 69 73 74 20 28 63 6f 6c 20 28  | 048-rows*)........(dolist.(col.( | 
| 5800 |  6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20    31 20 28 31 2d 20 2a 32 30 34 38 2d 63 6f 6c 75  | number-sequence.1.(1-.*2048-colu | 
| 5820 |  6d 6e 73 2a 29 29 29 0a 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 68 61 73 2d 6d 6f 76 65 64  | mns*)))..........(setq.has-moved | 
| 5840 |  20 28 6f 72 20 28 32 30 34 38 2d 6d 6f 76 65 20    72 6f 77 20 63 6f 6c 20 30 20 2d 31 29 0a 20 20  | .(or.(2048-move.row.col.0.-1)... | 
| 5860 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 68 61 73 2d 6d  | ...........................has-m | 
| 5880 |  6f 76 65 64 29 29 29 29 0a 20 20 20 20 20 28 77    68 65 6e 20 68 61 73 2d 6d 6f 76 65 64 0a 20 20  | oved))))......(when.has-moved... | 
| 58a0 |  20 20 20 20 20 28 32 30 34 38 2d 69 6e 73 65 72    74 2d 72 61 6e 64 6f 6d 2d 63 65 6c 6c 29 29 29  | .....(2048-insert-random-cell))) | 
| 58c0 |  29 29 0a 0a 28 64 65 66 75 6e 20 32 30 34 38 2d    72 69 67 68 74 20 28 29 0a 20 20 22 53 68 69 66  | ))..(defun.2048-right.()..."Shif | 
| 58e0 |  74 73 20 74 68 65 20 62 6f 61 72 64 20 72 69 67    68 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74  | ts.the.board.right."...(interact | 
| 5900 |  69 76 65 29 0a 20 20 28 32 30 34 38 2d 67 61 6d    65 2d 6d 6f 76 65 0a 20 20 20 28 6c 65 74 20 28  | ive)...(2048-game-move....(let.( | 
| 5920 |  28 68 61 73 2d 6d 6f 76 65 64 20 6e 69 6c 29 29    0a 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28  | (has-moved.nil))......(dotimes.( | 
| 5940 |  72 6f 77 20 2a 32 30 34 38 2d 72 6f 77 73 2a 29    0a 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20  | row.*2048-rows*)........(dolist. | 
| 5960 |  28 63 6f 6c 20 28 6e 75 6d 62 65 72 2d 73 65 71    75 65 6e 63 65 20 28 2d 20 2a 32 30 34 38 2d 63  | (col.(number-sequence.(-.*2048-c | 
| 5980 |  6f 6c 75 6d 6e 73 2a 20 32 29 20 30 20 2d 31 29    29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | olumns*.2).0.-1))..........(setq | 
| 59a0 |  20 68 61 73 2d 6d 6f 76 65 64 20 28 6f 72 20 28    32 30 34 38 2d 6d 6f 76 65 20 72 6f 77 20 63 6f  | .has-moved.(or.(2048-move.row.co | 
| 59c0 |  6c 20 30 20 31 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | l.0.1).......................... | 
| 59e0 |  20 20 20 20 68 61 73 2d 6d 6f 76 65 64 29 29 29    29 0a 20 20 20 20 20 28 77 68 65 6e 20 68 61 73  | ....has-moved))))......(when.has | 
| 5a00 |  2d 6d 6f 76 65 64 0a 20 20 20 20 20 20 20 28 32    30 34 38 2d 69 6e 73 65 72 74 2d 72 61 6e 64 6f  | -moved........(2048-insert-rando | 
| 5a20 |  6d 2d 63 65 6c 6c 29 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 32 30 34 38 2d 72 61 6e 64 6f 6d 2d  | m-cell)))))..(defun.2048-random- | 
| 5a40 |  6d 6f 76 65 20 28 29 0a 20 20 22 4d 6f 76 65 20    74 68 65 20 62 6f 61 72 64 20 69 6e 20 61 20 72  | move.()..."Move.the.board.in.a.r | 
| 5a60 |  61 6e 64 6f 6d 20 64 69 72 65 63 74 69 6f 6e 2e    0a 0a 54 68 69 73 20 6d 61 79 20 72 65 73 75 6c  | andom.direction...This.may.resul | 
| 5a80 |  74 20 69 6e 20 6e 6f 20 63 68 61 6e 67 65 73 20    74 6f 20 74 68 65 20 62 6f 61 72 64 2c 0a 69 66  | t.in.no.changes.to.the.board,.if | 
| 5aa0 |  20 74 68 65 20 6d 6f 76 65 20 77 61 73 20 74 68    65 20 73 61 6d 65 20 61 73 20 74 68 65 20 6c 61  | .the.move.was.the.same.as.the.la | 
| 5ac0 |  73 74 20 6f 6e 65 2e 22 0a 20 20 28 69 6e 74 65    72 61 63 74 69 76 65 29 0a 20 20 28 66 75 6e 63  | st.one."...(interactive)...(func | 
| 5ae0 |  61 6c 6c 20 28 65 6c 74 20 27 28 32 30 34 38 2d    6c 65 66 74 20 32 30 34 38 2d 72 69 67 68 74 20  | all.(elt.'(2048-left.2048-right. | 
| 5b00 |  32 30 34 38 2d 75 70 20 32 30 34 38 2d 64 6f 77    6e 29 20 28 72 61 6e 64 6f 6d 20 34 29 29 29 29  | 2048-up.2048-down).(random.4)))) | 
| 5b20 |  0a 0a 28 70 72 6f 76 69 64 65 20 27 32 30 34 38    2d 67 61 6d 65 29 0a 3b 3b 3b 20 32 30 34 38 2d  | ..(provide.'2048-game).;;;.2048- | 
| 5b40 |  67 61 6d 65 2e 65 6c 20 65 6e 64 73 20 68 65 72    65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | game.el.ends.here............... | 
| 5b60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5b80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5ba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5bc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5be0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5c00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5c20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5c40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5c60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5c80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5ca0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5cc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5ce0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5d00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5d20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5d40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5d60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5d80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5da0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5dc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5de0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5e00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5e20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5e40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5e60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5e80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5ea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5ec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5ee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5f00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5f20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5f40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5f60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5f80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5fa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5fc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 5fe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6000 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6060 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6080 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 60a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 60c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 60e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6100 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6120 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 61a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 61c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 61e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6200 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6260 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6280 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 62a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 62c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 62e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6300 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6320 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 63a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 63c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 63e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6400 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6420 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6440 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6460 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6480 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 64a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 64c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 64e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6500 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6520 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6540 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6560 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6580 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 65a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 65c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 65e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6600 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6620 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6660 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6680 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 66a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 66c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 66e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6700 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6720 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 67a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 67c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 67e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6800 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6820 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6840 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6860 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6880 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 68a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 68c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 68e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6900 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6920 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6940 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6960 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6980 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 69a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 69c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 69e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6a00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6a20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6a40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6a60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6a80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6aa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6ac0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6ae0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6b00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6b20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6b40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6b60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6b80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6ba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6bc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6be0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6c00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6c20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6c40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6c60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6c80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6ca0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6cc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6ce0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6d00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6d20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6d40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6d60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6d80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6da0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6dc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6de0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6e00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6e20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6e40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6e60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6e80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6ea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6ec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6ee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6f00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6f20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6f40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6f60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6f80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6fa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6fc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 6fe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7000 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7060 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7080 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 70a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 70c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 70e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7100 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7120 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 71a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 71c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 71e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7200 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7260 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7280 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 72a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 72c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 72e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7300 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7320 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 73a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 73c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 73e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7400 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7420 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7440 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7460 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7480 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 74a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 74c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 74e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7500 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7520 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7540 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7560 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7580 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 75a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 75c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 75e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7600 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7620 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7660 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7680 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 76a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 76c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 76e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7700 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7720 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 7780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 77a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 77c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 77e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ |